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.
This commit is contained in:
Patrick J Volkerding 2009-08-26 10:00:38 -05:00 committed by Eric Hameleers
commit 5a12e7c134
3679 changed files with 803683 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
LATEST_ADDITION_TO_CURRENT

214
ANNOUNCE.13_0 Normal file
View file

@ -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 <volkerdi@slackware.com>
Visit us on the web at: http://slackware.com

546
BOOTING.TXT Normal file
View file

@ -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
------------------------------------------------------------------------------

373
CHANGES_AND_HINTS.TXT Normal file
View file

@ -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 <Control><Space>
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

339
COPYING Normal file
View file

@ -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.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <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., 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.
<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.

674
COPYING3 Normal file
View file

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
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.
<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 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 <http://www.gnu.org/licenses/>.
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:
<program> Copyright (C) <year> <name of author>
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
<http://www.gnu.org/licenses/>.
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
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

402
COPYRIGHT.TXT Normal file
View file

@ -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 <rse@engelschall.com>
Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
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 <rse@engelschall.com>."
4. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes software developed by
Ralf S. Engelschall <rse@engelschall.com>."
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 <volkerdi@slackware.com>
----------------
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.

14
CRYPTO_NOTICE.TXT Normal file
View file

@ -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.

1441
ChangeLog.txt Normal file

File diff suppressed because it is too large Load diff

9103
FILELIST.TXT Normal file

File diff suppressed because it is too large Load diff

31
GPG-KEY Normal file
View file

@ -0,0 +1,31 @@
security@slackware.com public key
Type bits/keyID Date User ID
pub 1024D/40102233 2003-02-26 Slackware Linux Project <security@slackware.com>
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-----

192
README.TXT Normal file
View file

@ -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

100
README.initrd Normal file
View file

@ -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!

639
README_CRYPT.TXT Normal file
View file

@ -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 <language>". The string <language> 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 <alien@slackware.com> 23-jul-2009
URLs:
http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:setup

196
README_LVM.TXT Normal file
View file

@ -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 <alien@slackware.com> 25-jul-2009
Wiki URLs:
http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:setup
Documentation:
/usr/doc/Linux-HOWTOs/LVM-HOWTO

508
README_RAID.TXT Normal file
View file

@ -0,0 +1,508 @@
Slackware RAID HOWTO
Version 1.00
2008/04/29
by Amritpal Bath <amrit@slackware.com>
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 = <something>
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/

9105
READ_DVD.TXT Normal file

File diff suppressed because it is too large Load diff

140
RELEASE_NOTES Normal file
View file

@ -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 <volkerdi@slackware.com>

331
SPEAKUP_DOCS.TXT Normal file
View file

@ -0,0 +1,331 @@
The Speakup Tutorial
By Saqib Shaikh <ss@saqibshaikh.com>
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
<speakup-request@braille.uwo.ca>. 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 <speakup@braille.uwo.ca>.
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 <kirk@braille.uwo.ca>. 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 <map.diff
Now copy standard.map back to the original filename for your native
keymap, renaming it first. For example:
cp uk.map uk.map.old
mv standard.map uk.map
Load this keymap by typing:
loadkeys uk.map
Using Speakup On A Shared Machine
Previously, using Speakup on a computer that a sighted person also used
was a problem - you would probably need two different kernels. However,
you can now specify the default synthesiser to be "none", so that your
sighted colleague won't have any problems. Now, when you wish to use the
computer with speech, enter a command like the following at the boot
prompt:
linux speakup_synth=synthname speakup_ser=0
Where synthname refers to one of the synthesisers listed earlier, and
0 is the serial port the synth is connected to if it is not detected
automatically.
Installing Speakup From Scratch
If you want to install Speakup from scratch, then you will need to
recompile your kernel. The following is a rough list of things you should
do:
Get the latest kernel source from
ftp://ftp.kernel.org/pub/linux/kernel/vw.x/linux-w.x.y.z.tar.bz2.
At the time of writing the latest kernel was 2.6.27.7.
Also get the Speakup source. Probably it is best to get the CVS verision.
Unpack the kernel in /usr/src like this:
cd /usr/src
tar xjf linux-2.6.27.7.tar.bz2
Then make sure that the linux symlink points to it:
rm -f linux
ln -sf linux-2.6.27.7 linux
Run the speakup-checkout script in source/k in the Slackware tree to patch
speakup into your kernel. Hit enter at the first prompt. At the second,
enter the password for the CVS site. This is:
please
You should probably start with Slackware's config file for the kernel.
Copy it from the Slackware tree (whereever you have it) into the kernel
sources in /usr/src:
cp kernels/speakup.s/config /usr/src/linux/.config
Now you can configure and compile the kernel by typing:
cd /usr/src/linux
make menuconfig (select the options you want)
make
To copy the new kernel into place and reinstall LILO, use this:
rm -f /boot/vmlinuz /boot/System.map
cp arch/i386/boot/bzImage /boot/vmlinuz
cp System.map /boot/System.map
lilo
Please note that the above information is by no means sufficient to teach
someone to compile their kernel. There are many books/tutorials that cover
this topic in much more depth.
Using The CVS Version Of Speakup
[ Pardon the redundant nature of this section. The previous one had recommended
using the speakup-1.00 release tarball, which probably will not work as well
with the 2.6 kernel in Slackware -- Pat ]
CVS, which stands for Concurrent Versions System, is a tool that allows a
development version of a product to exist alongside the official release.
In terms of Speakup, the CVS version is newer than the stable release, but
is also likely to be less reliable as it hasn't been fully tested, and any
new piece of code added could potentially introduce more bugs. However,
using CVS means that you can try out new features and give feedback. If
you're a developer then you can work on the code as well.
Speakup comes with a script called "checkout" which contacts the CVS
server, downloads the program and applies all the patches. In order for
this to work you must have a clean copy of the Linux kernel source in
/usr/src/linux. The first time you run the checkout script you can run it
from anywhere, but after the first time you will want to run the script
from /usr/src/linux/drivers/char/speakup to do future updates.
If you haven't already got a copy of the checkout script you can download
it from ftp://ftp.braille.uwo.ca/pub/linux/speakup/checkout. After
downloading it you will need to make it executable. You can do this by
entering the command:
chmod 755 checkout
from the directory where the script is. To run the script type:
./checkout
You should be prompted with "No CVSROOT set hit return to select
anonymous". Just hit enter, and you will be asked for a password. All
anonymous passwords on the Speakup CVS server are the single word
"please". Kirk says that if you can't say please then you can't have what
you want! If everything went all right you should see multiple CVS
updating and patching messages.
Good luck in your Linux adventures. If you found this document useful and
have successfully installed Linux 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.

358
SPEAK_INSTALL.TXT Normal file
View file

@ -0,0 +1,358 @@
Installing Slackware Linux With Speakup
By Saqib Shaikh <ss@saqibshaikh.com>
<Note from PJV>
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!
</Note from PJV>
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.

1212
Slackware-HOWTO Normal file

File diff suppressed because it is too large Load diff

6
extra/README.TXT Normal file
View file

@ -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".

31
extra/bittorrent/README Normal file
View file

@ -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.

1
extra/flashplayer-plugin Symbolic link
View file

@ -0,0 +1 @@
source/flashplayer-plugin

595
extra/slacktrack/OVERVIEW Normal file
View file

@ -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 <mozes@slackware.com>
# 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 <package.t?z> - install 'package.t?z'
upgradepkg <package.t?z> - upgrade existing 'package' with the
new version specified at the command line.
removepkg <package> - 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<name>
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 <mozes@slackware.com>
7.0 Licence
-------
slacktrack is distributed under BSD Licence.

View file

@ -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
#

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. 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 <ian@caliban.org>.
bash-completion:

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. 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:

View file

@ -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 <alien@slackware.com>
# 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 <alien@slackware.com>
# * Initial build.
# 10.0.d21.1-1: 20/Dec/2008 by Eric Hameleers <alien@slackware.com>
# * Update.
# 10.0.22.87-1: 26/feb/2009 by Eric Hameleers <alien@slackware.com>
# * Update (plugs vulnerability).
# 10.0.32.18-1: 10/aug/2009 by Patrick J. Volkerding <volkerdi@slackware.com>
# * 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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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.
+
+<mcnster@gmail.com>
+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))

121
extra/source/grub/grub.SlackBuild Executable file
View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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.

View file

@ -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.

345
extra/source/jdk-6/LICENSE Normal file
View file

@ -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.

View file

@ -0,0 +1,714 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=us-ascii">
<meta name="collection" content="reference">
<title>README -- Java Platform, Standard Edition Development Kit</title>
</head>
<body lang="en-US" bgcolor="#FFFFFF">
<h1 align="center">README</h1>
<h2 align="center">Java<sup><font size="-2">TM</font></sup> Platform,
Standard Edition 6<br>
Development Kit</h2>
<p align="center"><b>JDK<sup><font size="-2">TM</font></sup> 6</b></p>
<h2>Contents</h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#install">System Requirements &amp; Installation</a></li>
<li><a href="#docs">JDK Documentation</a></li>
<li><a href="#relnotes">Release Notes</a></li>
<li><a href="#compatibility">Compatibility</a></li>
<li><a href="#bugs">Bug Reports and Feedback</a></li>
<li><a href="#contents">Contents of the JDK</a></li>
<li><a href="#jre">Java Runtime Environment</a></li>
<li><a href="#redistribution">Redistribution</a></li>
<li><a href="#endorsed">Java Endorsed Standards Override
Mechanism</a></li>
<li><a href="#javadb">Java DB</a></li>
<li><a href="#webpages">Web Pages</a></li>
</ul>
<h2><a name="introduction" id="introduction"></a>Introduction</h2>
<blockquote>
Thank you for downloading this release of the Java<sup><font size=
"-2">TM</font></sup> Platform, Standard Edition Development Kit
(JDK<sup><font size="-2">TM</font></sup>). The JDK is a development
environment for building applications, applets, and components using the
Java programming language.
</blockquote>
<blockquote>
The JDK includes tools useful for developing and testing programs written
in the Java programming language and running on the Java<sup><font size=
"-2">TM</font></sup> platform.
</blockquote>
<h2><a name="install" id="install"></a>System Requirements &amp;
Installation</h2>
<blockquote>
System requirements, installation instructions and troubleshooting tips
are located on the Java Software web site at:
</blockquote>
<blockquote>
<a href="http://java.sun.com/javase/6/webnotes/install/">JDK 6
Installation Instructions</a>
</blockquote>
<h2><a name="docs" id="docs"></a>JDK<sup><font size="-2">TM</font></sup>
Documentation</h2>
<blockquote>
The on-line <a href=
"http://java.sun.com/javase/6/docs/">Java<sup><font size=
"-2">TM</font></sup> Platform, Standard Edition (Java SE)
Documentation</a> contains API specifications, feature descriptions,
developer guides, reference pages for JDK<sup><font size=
"-2">TM</font></sup> 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 <a href="http://java.sun.com/javase/6/download.jsp">download
page</a>. For API documentation, refer to the <a href=
"http://java.sun.com/javase/6/docs/api/index.html">The
Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition API
Specification</a> This provides brief descriptions of the API with an
emphasis on specifications, not on code examples.
</blockquote>
<h2><a name="relnotes" id="relnotes"></a>Release Notes</h2>
<blockquote>
See the <a href="http://java.sun.com/javase/6/webnotes/">Java SE 6 Release
Notes</a> 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.
</blockquote>
<h2><a name="compatibility" id="compatibility"></a>Compatibility</h2>
<blockquote>
See <a href=
"http://java.sun.com/javase/6/webnotes/compatibility.html">Compatibility
with Previous Releases</a> 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 Java<sup><font size=
"-2">TM</font></sup> 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.
</blockquote>
<h2><a name="bugs" id="bugs"></a>Bug Reports and Feedback</h2>
<blockquote>
The <a href="http://bugs.sun.com/bugdatabase/index.jsp">Bug Database</a>
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:
</blockquote>
<blockquote>
<a href=
"http://bugs.sun.com/services/bugreport/index.jsp">http://bugs.sun.com/services/bugreport/index.jsp</a>
</blockquote>
<blockquote>
You can send feedback to the <a href=
"http://developers.sun.com/contact/feedback.jsp?&category=docteam">Java SE documentation
team</a>. You can also send comments directly to <a href=
"http://developers.sun.com/contact/index.jsp">Java Software engineering
team email addresses</a>.
</blockquote>
<blockquote>
<b>Note</b> - Please do not seek technical support through the Bug
Database or our development teams. For support options, see <a href=
"http://java.sun.com/developer/support/">Support and Services</a> on the
Java Software web site.
</blockquote>
<h2><a name="contents" id="contents"></a>Contents of the JDK<sup><font size=
"-2">TM</font></sup></h2>
<blockquote>
This section contains a general summary of the files and directories in
the JDK<sup><font size="-2">TM</font></sup>. For details on the files and
directories, see the <a href=
"http://java.sun.com/javase/6/docs/technotes/tools/index.html#general">JDK
File Structure</a> section of the Java SE documentation for your platform.
</blockquote>
<dl>
<dd>
<dl>
<dt><b>Development Tools</b></dt>
<dd>(In the <code>bin/</code> subdirectory) Tools and utilities that
will help you develop, execute, debug, and document programs written
in the Java<sup><font size="-2">TM</font></sup> programming language.
For further information, see the <a href=
"http://java.sun.com/javase/6/docs/technotes/tools/index.html">tool
documentation</a>.<br>
<br></dd>
<dt><b>Runtime Environment</b></dt>
<dd>(In the <code>jre/</code> subdirectory) An implementation of the
Java Runtime Environment (JRE<sup><font size="-2">TM</font></sup>) for
use by the JDK. The JRE includes a Java<sup><font size=
"-2">TM</font></sup> Virtual Machine (JVM<sup><font size=
"-2">TM</font></sup>), class libraries, and other files that support
the execution of programs written in the Java<sup><font size=
"-2">TM</font></sup> programming language.<br>
<br></dd>
<dt><b>Additional Libraries</b></dt>
<dd>(In the <code>lib/</code> subdirectory) Additional class libraries
and support files required by the development tools.<br>
<br></dd>
<dt><b>Demo Applets and Applications</b></dt>
<dd>(In the <code>demo/</code> subdirectory) Examples, with source
code, of programming for the Java<sup><font size="-2">TM</font></sup>
platform. These include examples that use Swing and other
Java<sup><font size="-2">TM</font></sup> Foundation Classes, and the
Java<sup><font size="-2">TM</font></sup> Platform Debugger
Architecture.<br>
<br></dd>
<dt><b>Sample Code</b></dt>
<dd>(In the <code>sample</code> subdirectory) Samples, with source
code, of programming for certain Java API's.<br>
<br></dd>
<dt><b>C header Files</b></dt>
<dd>(In the <code>include/</code> subdirectory) Header files that
support native-code programming using the <a href=
"http://java.sun.com/javase/6/docs/technotes/guides/jni/">Java Native
Interface</a>, the <a href=
"http://java.sun.com/javase/6/docs/technotes/guides/jvmti/">JVM<sup><font size="-2">TM</font></sup>
Tool Interface</a>, and other functionality of the
Java<sup><font size="-2">TM</font></sup> platform.<br>
<br></dd>
<dt><b>Source Code</b></dt>
<dd>(In <code>src.zip</code>) Java<sup><font size="-2">TM</font></sup>
programming language source files for all classes that make up the
Java&nbsp;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 Java<sup><font size="-2">TM</font></sup> 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 <code>bin/</code> directory:<br>
<br>
<code>jar xvf src.zip</code></dd>
</dl>
</dd>
</dl>
<h2><a name="jre" id="jre"></a>The Java Runtime Environment
(JRE<sup><font size="-2">TM</font></sup>)</h2>
<blockquote>
The Java<sup><font size="-2">TM</font></sup> Runtime Environment
(JRE<sup><font size="-2">TM</font></sup>) is available as a separately
downloadable product. See the <a href=
"http://java.sun.com/javase/6/download.jsp">download web site</a>.
</blockquote>
<blockquote>
The JRE allows you to run applications written in the Java<sup><font size=
"-2">TM</font></sup> programming language. Like the JDK<sup><font size=
"-2">TM</font></sup>, it contains the Java<sup><font size=
"-2">TM</font></sup> Virtual Machine (JVM<sup><font size=
"-2">TM</font></sup>), classes comprising the Java<sup><font size=
"-2">TM</font></sup> platform API, and supporting files. Unlike the JDK,
it does not contain development tools such as compilers and debuggers.
</blockquote>
<blockquote>
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
Java<sup><font size="-2">TM</font></sup> platform on which to run your
software.
</blockquote>
<h2><a name="redistribution" id="redistribution"></a>Redistribution</h2>
<blockquote>
<blockquote>
<hr>
NOTE - The license for this software does not allow the redistribution
of beta and other pre-release versions.
<hr>
</blockquote>
</blockquote>
<blockquote>
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:
</blockquote>
<blockquote>
<ol type="a">
<li>you distribute the Software complete and unmodified and only bundled
as part of Your applets and applications ("Programs"),</li>
<li>your Programs add significant and primary functionality to the
Software,</li>
<li>your Programs are only intended to run on Java-enabled general
purpose desktop computers and servers,</li>
<li>you distribute Software for the sole purpose of running your
Programs,</li>
<li>you do not distribute additional software intended to replace any
component(s) of the Software,</li>
<li>you do not remove or alter any proprietary legends or notices
contained in or on the Software,</li>
<li>you only distribute the Software subject to a license agreement that
protects Sun's interests consistent with the terms contained in this
Agreement, and</li>
<li>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.</li>
</ol>
</blockquote>
<blockquote>
The term "vendors" used here refers to licensees, developers, and
independent software vendors (ISVs) who license and distribute the
Java<sup><font size="-2">TM</font></sup> Development Kit
(JDK<sup><font size="-2">TM</font></sup>) with their programs.
</blockquote>
<blockquote>
Vendors must follow the terms of the Java Development Kit Binary Code
License agreement.
</blockquote>
<h3>Required vs. Optional Files</h3>
<blockquote>
The files that make up the Java<sup><font size="-2">TM</font></sup>
Development Kit (JDK<sup><font size="-2">TM</font></sup>) are divided into
two categories: required and optional. Optional files may be excluded from
redistributions of the JDK at the vendor's discretion.
</blockquote>
<blockquote>
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.
</blockquote>
<h3>Optional Files and Directories</h3>
<blockquote>
The following files may be optionally excluded from redistributions. These
files are located in the jdk1.6.0_&lt;version&gt; directory, where
&lt;version&gt; is the update version number. Solaris<sup><font size=
"-2">TM</font></sup> and Linux filenames and separators are shown. Windows
executables have the ".exe" suffix. Corresponding files with
<code>_g</code> in the name can also be excluded. The corresponding man
pages should be excluded for any excluded executables (with paths listed
below beginning with <code>bin/</code>, for the Solaris<sup><font size=
"-2">TM</font></sup> Operating System and Linux).
</blockquote>
<dl>
<dd>
<dl>
<dt><code>jre/lib/charsets.jar</code></dt>
<dd>Character conversion classes</dd>
<dt><code>jre/lib/ext/</code></dt>
<dd><code>sunjce_provider.jar</code> - the SunJCE provider for Java
Cryptography APIs<br>
<code>localedata.jar</code> - contains many of the resources needed
for non US English locales<br>
<code>ldapsec.jar</code> - contains security features supported by the
LDAP service provider<br>
<code>dnsns.jar</code> - for the InetAddress wrapper of JNDI DNS
provider</dd>
<dt><code>bin/rmid</code> and <code>jre/bin/rmid</code></dt>
<dd>Java RMI Activation System Daemon</dd>
<dt><code>bin/rmiregistry</code> and
<code>jre/bin/rmiregistry</code></dt>
<dd>Java Remote Object Registry</dd>
<dt><code>bin/tnameserv</code> and <code>jre/bin/tnameserv</code></dt>
<dd>Java IDL Name Server</dd>
<dt><code>bin/keytool</code> and <code>jre/bin/keytool</code></dt>
<dd>Key and Certificate Management Tool</dd>
<dt><code>bin/kinit</code> and <code>jre/bin/kinit</code></dt>
<dd>Used to obtain and cache Kerberos ticket-granting tickets</dd>
<dt><code>bin/klist</code> and <code>jre/bin/klist</code></dt>
<dd>Kerberos display entries in credentials cache and keytab</dd>
<dt><code>bin/ktab</code> and <code>jre/bin/ktab</code></dt>
<dd>Kerberos key table manager</dd>
<dt><code>bin/policytool</code> and
<code>jre/bin/policytool</code></dt>
<dd>Policy File Creation and Management Tool</dd>
<dt><code>bin/orbd</code> and <code>jre/bin/orbd</code></dt>
<dd>Object Request Broker Daemon</dd>
<dt><code>bin/servertool</code> and
<code>jre/bin/servertool</code></dt>
<dd>Java IDL Server Tool</dd>
<dt><code>bin/javaws</code>, <code>jre/bin/javaws</code>,
<code>jre/lib/javaws/</code> and <code>jre/lib/javaws.jar</code></dt>
<dd>Java Web Start</dd>
<dt><code>db/</code></dt>
<dd>
Java DB, Sun Microsystems's distribution of the Apache Derby
database (only with file based distributions of the JDK).
</dd>
<dt><code>demo/</code></dt>
<dd>Demo Applets and Applications</dd>
<dt><code>sample/</code></dt>
<dd>Sample Code</dd>
<dt><code>src.zip</code></dt>
<dd>Archive of source files</dd>
</dl>
</dd>
</dl>
<h3><a name="redistributablejdkfiles" id=
"redistributablejdkfiles"></a>Redistributable JDK<sup><font size=
"-2">TM</font></sup> Files</h3>
<blockquote>
The limited set of files and directories from the JDK listed below may be
included in vendor redistributions of the Java<sup><font size=
"-2">TM</font></sup> Runtime Environment (JRE<sup><font size=
"-2">TM</font></sup>). 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 <code>bin/</code>, for the Solaris<sup><font size=
"-2">TM</font></sup> Operating System and Linux).
</blockquote>
<dl>
<dd>
<dl>
<dt><code>jre/lib/cmm/PYCC.pf</code></dt>
<dd>Color profile. This file is required only if one wishes to convert
between the PYCC color space and another color space.</dd>
<dt>All <code>.ttf</code> font files in the
<code>jre/lib/fonts/</code> directory.</dt>
<dd>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.</dd>
<dt><code>jre/lib/audio/soundbank.gm</code></dt>
<dd>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 <code>soundbank.gm</code> 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: <a href=
"http://java.sun.com/products/java-media/sound/">http://java.sun.com/products/java-media/sound/</a>.
These alternative soundbanks may be included in redistributions of the
JRE.</dd>
<dt>The javac bytecode compiler, consisting of the following
files:</dt>
<dd><code>bin/javac</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System and Linux]<br>
<code>bin/sparcv9/javac</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (SPARC(R) Platform Edition)]<br>
<code>bin/amd64/javac</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (AMD)]<br>
<code>bin/javac.exe</code> [Microsoft Windows]<br>
<code>lib/tools.jar</code> [All platforms]</dd>
<dt>The Annotation Processing Tool, consisting of the following
files:</dt>
<dd><code>lib/tools.jar</code> [All platforms]<br>
<code>bin/apt</code> [Solaris<sup><font size="-2">TM</font></sup>
Operating System and Linux]<br>
<code>bin/sparcv9/apt</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (SPARC(R) Platform Edition)]<br>
<code>bin/amd64/apt</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (AMD)]<br>
<code>bin/apt.exe</code> [Microsoft Windows]</dd>
<dt><code>lib/jconsole.jar</code></dt>
<dd>The Jconsole application. NOTE: The Jconsole application requires
the dynamic attach mechanism.</dd>
<dt>The dynamic attach mechanism consisting of the following
files:</dt>
<dd><code>lib/tools.jar</code> [All platforms]<br>
<code>jre/lib/sparc/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (SPARC(R) Platform Edition) and
Linux]<br>
<code>jre/lib/sparcv9/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (SPARC(R) Platform Edition) and
Linux]<br>
<code>jre/lib/i386/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (x86) and Linux]<br>
<code>jre/lib/amd64/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (AMD) and Linux]<br>
<code>jre\bin\attach.dll</code> [Microsoft Windows]<br></dd>
<dt>The Java Platform Debugger Architecture implementation consisting
of the files shown in the dynamic attach section above, and the
following files:</dt>
<dd><code>lib/tools.jar</code> [All platforms]<br>
<code>lib/sa-jdi.jar</code> [All platforms]<br>
<code>jre/lib/sparc/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (SPARC(R) Platform Edition) and
Linux]<br>
<code>jre/lib/sparcv9/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (SPARC(R) Platform Edition) and
Linux]<br>
<code>jre/lib/i386/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (x86) and Linux]<br>
<code>jre/lib/amd64/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> Operating System (AMD) and Linux]<br></dd>
<dt><code>jre\bin\server\</code></dt>
<dd>On Microsoft Windows platforms, the JDK includes both the Java
HotSpot<sup><font size="-2">TM</font></sup> Server VM and Java
HotSpot<sup><font size="-2">TM</font></sup> Client VM. However, the
JRE for Microsoft Windows platforms includes only the Java
HotSpot<sup><font size="-2">TM</font></sup> Client VM. Those wishing
to use the Java HotSpot<sup><font size="-2">TM</font></sup> Server VM
with the JRE may copy the JDK's <code>jre\bin\server</code> folder to
a <code>bin\server</code> directory in the JRE. Software vendors may
redistribute the Java HotSpot<sup><font size="-2">TM</font></sup>
Server VM with their redistributions of the JRE.</dd>
</dl>
</dd>
</dl>
<h3>Unlimited Strength Java Cryptography Extension</h3>
<blockquote>
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<br>
<br>
<code>&lt;java-home&gt;/lib/security/local_policy.jar</code><br>
<code>&lt;java-home&gt;/lib/security/US_export_policy.jar</code><br>
<br>
where <code>&lt;java-home&gt;</code> is the <code>jre</code> directory of
the JDK or the top-level directory of the JRE.
</blockquote>
<blockquote>
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.
</blockquote>
<h3>The cacerts Certificates File</h3>
<blockquote>
Root CA certificates may be added to or removed from the Java SE
certificate file located at
</blockquote>
<blockquote>
<code>&lt;java-home&gt;/lib/security/cacerts</code>
</blockquote>
<blockquote>
For more information, see <a href=
"http://java.sun.com/javase/6/docs/technotes/tools/solaris/keytool.html#cacerts">
The cacerts Certificates File</a> section in the keytool documentation.
</blockquote>
<h2><a name="endorsed" id="endorsed"></a> Java Endorsed Standards Override
Mechanism</h2>
<blockquote>
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<font size="-2"><sup>SM</sup></font> (JCP<font size=
"-2"><sup>SM</sup></font> <a href=
"http://www.jcp.org/">http://www.jcp.org/</a>) (<i>Endorsed
Standards</i>), or in order to update the version of a technology included
in the platform to correspond to a later standalone version of that
technology (<i>Standalone Technologies</i>).
</blockquote>
<blockquote>
The <i>Endorsed Standards Override Mechanism</i> provides a means whereby
later versions of classes and interfaces that implement Endorsed Standards
or Standalone Technologies may be incorporated into the Java Platform.
</blockquote>
<blockquote>
For more information on the Endorsed Standards Override Mechanism,
including the list of platform packages that it may be used to override,
see
</blockquote>
<blockquote>
<a href=
"http://java.sun.com/javase/6/docs/technotes/guides/standards/">http://java.sun.com/javase/6/docs/technotes/guides/standards/</a>
</blockquote>
<h2><a name="javadb" id="javadb"></a>Java DB</h2>
<blockquote>
This distribution bundles Java DB, Sun Microsystems' distribution of the
Apache Derby pure Java database technology. Default installation locations
are:
<ul>
<li>Solaris: <code>/opt/SUNWjavadb</code></li>
<li>Linux: <code>/opt/sun/javadb</code></li>
<li>Windows: <code>C:\Program Files\Sun\JavaDB</code></li>
</ul>
<p>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.</p>
<p>
Note that file based distributions of the JDK on Solaris and Linux
include Java DB in the ${JAVA_HOME}/db directory.
</p>
</blockquote>
<h2><a name="webpages" id="webpages"></a>Web Pages</h2>
<blockquote>
For additional information, refer to these Sun Microsystems pages on the
World Wide Web:
</blockquote>
<dl>
<dd>
<dl>
<dt><a href="http://java.sun.com/">http://java.sun.com/</a></dt>
<dd>The Java Software web site, with the latest information on Java
technology, product information, news, and features.</dd>
<dt><a href=
"http://java.sun.com/docs">http://java.sun.com/docs</a></dt>
<dd>Java<sup><font size="-2">TM</font></sup> platform Documentation
provides access to white papers, the Java Tutorial and other
documents.</dd>
<dt><a href=
"http://developer.java.sun.com/">http://developer.java.sun.com</a></dt>
<dd>Developer Services web site (Free registration required).
Additional technical information, news, and features; user forums;
support information, and much more.</dd>
<dt><a href=
"http://java.sun.com/products/">http://java.sun.com/products/</a></dt>
<dd>Java Technology Products &amp; API</dd>
</dl>
</dd>
</dl>
<hr>
<p><font size="2">The Java<sup><font size="-2">TM</font></sup> Development
Kit (JDK<sup><font size="-2">TM</font></sup>) is a product of Sun
Microsystems<sup><font size="-2">TM</font></sup>, Inc.<br>
<br>
Copyright &copy; 2009 Sun Microsystems, Inc.<br>
4150 Network Circle, Santa Clara, California 95054, U.S.A.<br>
All rights reserved.</font></p>
<script type="text/javascript" language="JavaScript" src="/js/omi/jsc/s_code_remote.js">
</script>
</body>
</html>

View file

@ -0,0 +1,438 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=EUC-JP">
<meta name="collection" content="reference">
<title>README -- Java Platform, Standard Edition Development Kit</title>
</head>
<body lang="en-US" bgcolor="#FFFFFF">
<h1 align="center">README</h1>
<h2 align="center">Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition 6<br> Development Kit</h2>
<p align="center"><b>JDK<sup><font size="-2">TM</font></sup> 6</b></p>
<h2>目次</h2>
<ul>
<li><a href="#introduction">はじめに</a></li>
<li><a href="#install">システム要件およびインストール</a></li>
<li><a href="#docs">JDK ドキュメント</a></li>
<li><a href="#relnotes">リリースノート</a></li>
<li><a href="#compatibility">互換性</a></li>
<li><a href="#bugs">バグ報告とフィードバック</a></li>
<li><a href="#contents">JDK の内容</a></li>
<li><a href="#jre">Java Runtime Environment</a></li>
<li><a href="#redistribution">再配布</a></li>
<li><a href="#endorsed">推奨規格オーバーライド機構</a></li>
<li><a href="#javadb">Java DB</a></li>
<li><a href="#webpages">Web ページ</a></li>
</ul>
<h2><a name="introduction"></a>はじめに</h2>
<blockquote>
Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition Development Kit (JDK<sup><font size="-2">TM</font></sup>) のこのリリースをダウンロードいただきありがとうございます。JDK は、Java プログラミング言語を使用してアプリケーション、アプレット、およびコンポーネントを構築するための開発環境です。
</blockquote>
<blockquote>
JDK には、Java プログラミング言語で記述されたプログラムの開発とテスト、および Java<sup><font size="-2">TM</font></sup> プラットフォームでの実行に使用できる各種ツールが付属しています。
</blockquote>
<h2><a name="install"></a>システム要件およびインストール</h2>
<blockquote>
システム要件、インストール手順、およびトラブルシューティングのヒントについては、次の Java Software Web サイトを参照してください。
</blockquote>
<blockquote>
<a href="http://java.sun.com/javase/ja/6/webnotes/install/">JDK 6 インストール手順</a>
</blockquote>
<h2><a name="docs"></a>JDK<sup><font size="-2">TM</font></sup> ドキュメント</h2>
<blockquote>
<a href="http://java.sun.com/javase/ja/6/docs/ja/index.html">Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition (Java SE) のオンラインドキュメント</a>には、API 仕様、機能説明、開発者ガイド、JDK<sup><font size="-2">TM</font></sup> ツールおよびユーティリティーのリファレンスページ、デモ、および関連情報へのリンクが含まれています。JDK ドキュメントは、使用しているマシンにインストール可能なダウンロードバンドルでも入手できます。 ドキュメントバンドルを入手するには、<a href="../download.html">ダウンロードページ</a>を参照してください。 API については、<a href="http://java.sun.com/javase/ja/6/docs/ja/api/index.html">Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition の API 仕様</a>を参照してください。 API について、コード例よりも仕様に重点をおいた簡単な説明を読むことができます。
</blockquote>
<h2><a name="relnotes"></a>リリースノート</h2>
<blockquote>
このリリースに関する追加情報については、Java Software Web サイトの <a href="index.html">Java SE 6 リリースノート</a>を参照してください。オンライン版のリリースノートは随時更新されるので、定期的にアクセスして最新の情報を確認してください。
</blockquote>
<h2><a name="compatibility"></a>互換性</h2>
<blockquote>
互換性に関する既知の問題については、Java Software Web サイトで<a href="compatibility.html">以前のリリースとの互換性</a>を参照してください。 以前のバージョンの Java<sup><font size="-2">TM</font></sup> プラットフォーム用に記述されたプログラムのサポートについては万全を期しています。互換性を失う変更が必要な箇所もありましたが、ほとんどのソフトウェアはプログラミングをやり直すことなく現在のバージョンに移行できます。互換性に関する Web ページで説明しているような意図的に互換性を排除したわずかな場合を除いて、プログラミングをやり直さないと移行できない場合はバグであるとみなされます。潜在的なセキュリティーホールをふさぐため、または実装や設計上のバグを修正するために必要な変更によって、一部の互換性が失われています。
</blockquote>
<h2><a name="bugs"></a>バグ報告とフィードバック</h2>
<blockquote>
<a href="http://bugs.sun.com/bugdatabase/index.jsp">バグデータベース</a> Web サイトでは、既存のバグ報告の検索と調査、バグ報告の送信、バグ修正の重要度の報告を行うことができます。バグ報告や機能に関する要望を直接送信するには、次のフォームに記入してください。
</blockquote>
<blockquote>
<a href= "http://bugs.sun.com/services/bugreport/index.jsp">http://bugs.sun.com/services/bugreport/index.jsp</a>
</blockquote>
<blockquote>
フィードバックは、<a href="http://java.sun.com/docs/forms/sendusmail.html">Java SE ドキュメントチーム</a>に送信してください。 また、<a href="http://java.sun.com/mail/">Java Software エンジニアリングチームの電子メールアドレス</a>にコメントを直接送信していただくこともできます。
</blockquote>
<blockquote>
<b></b> - Bug Database や弊社開発チームからテクニカルサポートを受けることはできません。 サポートオプションについては、Java Software Web サイトの<a href="http://java.sun.com/support/">サポートとサービス</a>を参照してください。
</blockquote>
<h2><a name="contents"></a>JDK<sup><font size="-2">TM</font></sup> の内容</h2>
<blockquote>
ここでは、JDK<sup><font size="-2">TM</font></sup> のファイルとディレクトリの概要を説明します。 ファイルとディレクトリの詳細については、お使いのプラットフォームの Java SE ドキュメントの「<a href="http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/index.html#general">JDK ファイル構造</a>」を参照してください。
</blockquote>
<dl>
<dd>
<dl>
<dt><b>開発ツール</b></dt>
<dd><code>bin</code> サブディレクトリに格納されています。 Java<sup><font size="-2">TM</font></sup> プログラミング言語で記述されたプログラムの開発、実行、デバッグ、およびドキュメント作成を支援するツールとユーティリティーです。 詳細については、<a href="http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/index.html">各ツールのマニュアル</a>を参照してください。<br> <br></dd>
<dt><b>Runtime Environment</b></dt>
<dd><code>jre</code> サブディレクトリに格納されています。JDK で使用される Java Runtime Environment (JRE<sup><font size="-2">TM</font></sup>) 実行環境の実装です。 JREには、Java<sup><font size="-2">TM</font></sup> 仮想マシン、クラスライブラリ、および Java<sup><font size="-2">TM</font></sup> プログラミング言語で記述されたプログラムの実行をサポートするその他のファイルが含まれます。<br> <br></dd>
<dt><b>追加ライブラリ</b></dt>
<dd><code>lib</code> サブディレクトリに格納されています。 開発ツールに必要な追加のクラスライブラリとサポートファイルです。<br> <br></dd>
<dt><b>デモアプレットとアプリケーション</b></dt>
<dd><code>demo</code> サブディレクトリに格納されています。 Java<sup><font size="-2">TM</font></sup> プラットフォーム用のプログラミング例で、ソースコードが含まれます。 Swing やその他の Java<sup><font size="-2">TM</font></sup> Foundation Classes、および Java<sup><font size="-2">TM</font></sup> Platform Debugger Architecture を使用する例も含まれます。<br> <br></dd>
<dt><b>サンプルコード</b></dt>
<dd><code>sample</code> サブディレクトリに格納されています。 特定の Java API のプログラミングのソースコード付きサンプルです。</dd>
<dt><b>C ヘッダーファイル</b></dt>
<dd><code>include</code> サブディレクトリに格納されています。 <a href="http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jni/index.html">Java Native Interface</a><a href="http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jvmti/index.html">JVM<sup><font size="-2">TM</font></sup> Tool Interface</a>、およびその他の Java<sup><font size="-2">TM</font></sup> Platform の機能を使用するネイティブコードプログラミングをサポートするヘッダーファイルです。<br> <br></dd>
<dt><b>ソースコード</b></dt>
<dd><code>src.zip</code> に格納されています。Java&nbsp;コア API を構成するすべてのクラスに対する Java<sup><font size="-2">TM</font></sup> プログラミング言語のソースファイルです (java.*、javax.*、および一部の org.* パッケージのソースファイル。com.sun.* パッケージは対象外)。このソースコードは情報提供のみを目的としており、開発者が Java<sup><font size="-2">TM</font></sup> プログラミング言語を理解し活用するのに役立ちます。これらのファイルには、プラットフォーム固有の実装コードは含まれません。これらのファイルを使用して、クラスライブラリを再構築することはできません。これらのファイルを展開するには、一般的な zip ユーティリティーを使用します。 また、次のように、JDK の <code>bin/</code> ディレクトリに用意されている Jar ユーティリティーを使用することもできます。<br> <br> <code>jar xvf src.zip</code></dd>
</dl>
</dd>
</dl>
<h2><a name="jre"></a>Java SE Runtime Environment (JRE<sup><font size="-2">TM</font></sup>)</h2>
<blockquote>
Java<sup><font size="-2">TM</font></sup> Runtime Environment (JRE<sup><font size="-2">TM</font></sup>) は、単独でダウンロードできる製品として提供されています。 <a href="../download.html">ダウンロード Web サイト</a>を参照 してください。
</blockquote>
<blockquote>
JRE を使用すると、Java<sup><font size="-2">TM</font></sup> プログラミング言語で記述されたアプリケーションを実行できます。 JDK<sup><font size="-2">TM</font></sup> と同様に、Java<sup><font size="-2">TM</font></sup> 仮想マシン、Java<sup><font size="-2">TM</font></sup> プラットフォーム API を構成するクラス、およびサポートファイルが含まれます。JDK とは異なり、コンパイラやデバッガなどの開発ツールは含まれません。
</blockquote>
<blockquote>
JRE は、JRE のライセンス条項に従って、独自に開発したアプリケーションとともに自由に再配布することができます。JDK を使用してアプリケーションを開発したのち、エンドユーザーがそのソフトウェアを Java<sup><font size="-2">TM</font></sup> プラットフォームで実行できるように、JRE とともに出荷することができます。
</blockquote>
<h2><a name="redistribution"></a>再配布</h2>
<blockquote>
<blockquote>
<hr>
注 - このソフトウェアのライセンスは、ベータ版およびその他のプレリリース版の再配布を許可するものではありません。
<hr>
</blockquote>
</blockquote>
<blockquote>
ソフトウェアライセンス契約の条項、および以下で規定される義務、制限、および例外事項に従い、ソフトウェア (および以下で再配布可能と見なされる、ソフトウェアの一部) を複製および配布できます。
</blockquote>
<blockquote>
<ol type="a">
<li>ソフトウェアを完全な改変されていない状態で、かつアプレットおよびアプリケーション (「プログラム」) の一部としてバンドルされた状態でのみ配布する。</li>
<li>プログラムが重要かつ主要な機能をソフトウェアに追加する。</li>
<li>プログラムが Java 対応の汎用デスクトップコンピュータおよびサーバーで実行されることのみを目的とする。</li>
<li>プログラムの実行のみを目的として、ソフトウェアを配布する。</li>
<li>ソフトウェアのコンポーネントと置き換えることを目的として追加のソフトウェアを配布しない。</li>
<li>ソフトウェアに記載されているいかなる所有権表示や告知も除去または変更しない。</li>
<li>本契約に含まれる条項と合致した、Sun の利益を保護するライセンス契約に従ってのみソフトウェアを配布する。</li>
<li>プログラムおよびソフトウェアの一部またはすべての使用あるいは配布に起因した第三者からの請求、訴訟、または措置に関連して生じるいかなる損害、費用、債務、和解金、および出費 (弁護士費用を含む) から、Sun とそのライセンサを擁護し、補償することに同意する。</li>
</ol>
</blockquote>
<blockquote>
ここで使用されている「ベンダー」という用語は、自らのプログラムとともに Java<sup><font size="-2">TM</font></sup> Development Kit (JDK<sup><font size="-2">TM</font></sup>) をライセンス供与および配布するライセンシ、開発者、および独立系ソフトウェアベンダー (ISV) を指します。
</blockquote>
<blockquote>
ベンダーは、Java Development Kit バイナリコードライセンス契約の条項に従う必要があります。
</blockquote>
<h3>必須ファイルとオプションファイル</h3>
<blockquote>
Java<sup><font size="-2">TM</font></sup> Development Kit (JDK<sup><font size="-2">TM</font></sup>) を構成するファイルは、必須とオプションの 2 つに分類されます。オプションファイルは、ベンダーの判断により JDK の再配布から除外することができます。
</blockquote>
<blockquote>
JDK の再配布から任意で除外できるファイルおよびディレクトリを次に示します。これらのオプションファイル一覧に含まれないファイルは、すべて JDK の再配布に含める必要があります。
</blockquote>
<h3>オプションのファイルとディレクトリ</h3>
<blockquote>
次のファイルは再配布から任意に除外できます。 これらのファイルは、jdk1.6.0_&lt;version&gt; ディレクトリにあります。&lt;version&gt; は、アップデートバージョン番号です。 Solaris<sup><font size= "-2">TM</font></sup> および Linux のファイル名と区切り記号が示されています。Windows の実行可能ファイルには末尾に「.exe」が付きます。名前に <code>_g</code> が付く対応するファイルも除外できます。 除外された実行可能ファイル Solaris<sup><font size="-2">TM</font></sup> オペレーティングシステムおよび Linux の場合、以下の一覧でパスが bin/ から始まる) に対応するマニュアルページは除外する必要があります。
</blockquote>
<dl>
<dd>
<dl>
<dt><code>jre/lib/charsets.jar</code></dt>
<dd>文字変換クラス</dd>
<dt><code>jre/lib/ext/</code></dt>
<dd><code>sunjce_provider.jar</code> - Java 暗号化 API の SunJCE プロバイダ<br> <code>localedata.jar</code> - 米国英語以外のロケールに必要なリソースの多くを含む<br> <code>ldapsec.jar</code> - LDAP サービスプロバイダがサポートするセキュリティー機能を含む<br> <code>dnsns.jar</code> - JNDI DNS プロバイダの InetAddress ラッパー用</dd>
<dt><tt>bin/rmid</tt> および <tt>jre/bin/rmid</tt></dt>
<dd>Java RMI 起動システムデーモン</dd>
<dt><tt>bin/rmiregistry</tt> および <tt>jre/bin/rmiregistry</tt></dt>
<dd>Java リモートオブジェクトレジストリ</dd>
<dt><tt>bin/tnameserv</tt> および <tt>jre/bin/tnameserv</tt></dt>
<dd>Java IDL ネームサーバー</dd>
<dt><tt>bin/keytool</tt> および <tt>jre/bin/keytool</tt></dt>
<dd>鍵および証明書の管理ツール</dd>
<dt><tt>bin/kinit</tt> および <tt>jre/bin/kinit</tt></dt>
<dd>Kerberos チケット認可チケットの取得およびキャッシュに使用</dd>
<dt><tt>bin/klist</tt> および <tt>jre/bin/klist</tt></dt>
<dd>資格キャッシュおよびキータブ内の Kerberos 表示エントリ</dd>
<dt><tt>bin/ktab</tt> および <tt>jre/bin/ktab</tt></dt>
<dd>Kerberos キーテーブルマネージャー</dd>
<dt><tt>bin/policytool</tt> および <tt>jre/bin/policytool</tt></dt>
<dd>ポリシーファイルの作成および管理ツール</dd>
<dt><tt>bin/orbd</tt> および <tt>jre/bin/orbd</tt></dt>
<dd>Object Request Broker Daemon</dd>
<dt><tt>bin/servertool</tt> および <tt>jre/bin/servertool</tt></dt>
<dd>Java IDL サーバーツール</dd>
<dt><tt>bin/javaws</tt><tt>jre/bin/javaws</tt><tt>jre/lib/javaws/</tt> および <tt>jre/lib/javaws.jar</tt></dt>
<dd>Java Web Start</dd>
<dt><code>db/</code></dt>
<dd>
Java DB。Sun Microsystems が配布する Apache Derby データベーステクノロジーです。デフォルトでは以下にインストールされます。
<ul>
<li>Solaris: <code>/opt/SUNWjavadb</code></li>
<li>Linux: <code>/opt/sun/javadb</code></li>
<li>Windows: <code>C:\Program Files\Sun\JavaDB</code></li>
</ul>ユーザードキュメントや API ドキュメント、Java DB の機能やその他リソースなどの Java DB と Derby の情報については、上記ディレクトリの index.html ファイルを参照してください。
</dd>
<dt><code>demo/</code></dt>
<dd>デモアプレットとアプリケーション</dd>
<dt><code>sample/</code></dt>
<dd>サンプルコード</dd>
<dt><code>src.zip</code></dt>
<dd>ソースファイルのアーカイブ</dd>
</dl>
</dd>
</dl>
<h3>再配布可能な JDK<sup><font size="-2">TM</font></sup> ファイル</h3>
<blockquote>
次に示す JDK のファイル/ディレクトリセットは、ベンダーの提供する Java<sup><font size="-2">TM</font></sup> Runtime Environment (JRE<sup><font size="-2">TM</font></sup>) の再配布に含めることができます。 これらを個別に再配布することはできません。バージョンが一致する JRE とともに配布する必要があります。次のパスは、すべて JDK の最上位ディレクトリからの相対パスです。 含められる実行可能ファイル Solaris<sup><font size="-2">TM</font></sup> オペレーティングシステムおよび Linux の場合、以下の一覧でパスが bin/ から始まる) に対応するマニュアルページは含める必要があります。
</blockquote>
<dl>
<dd>
<dl>
<dt><code>jre/lib/cmm/PYCC.pf</code></dt>
<dd>カラープロファイル。このファイルは、PYCC カラー領域とその他のカラー領域の間で変換を行う場合にのみ必要です。</dd>
<dt><tt>jre/lib/fonts</tt> ディレクトリ内のすべての <tt>.ttf</tt> フォントファイル</dt>
<dd>LucidaSansRegular.ttf フォントはすでに JRE に含まれているため、JDK から取得する必要はありません。</dd>
<dt><code>jre/lib/audio/soundbank.gm</code></dt>
<dd>この MIDI サウンドバンクは JDK に含まれますが、JRE から削除されています。これは JRE のダウンロードバンドルのサイズを減らすことが目的です。 ただし、サウンドバンクファイルは MIDI の再生に必要なため、ベンダーの判断で JDK の <tt>soundbank.gm</tt> ファイルを JRE の再配布に含めることができます。 拡張 MIDI サウンドバンクのいくつかのバージョンを Java Sound Web サイト <a href="http://java.sun.com/products/java-media/sound/">http://java.sun.com/products/java-media/sound/</a> で入手できます。これらの代替のサウンドバンクはどれも、JRE の再配布に含めることができます。</dd>
<dt>javac バイトコードコンパイラ。以下のファイルで構成されます。</dt>
<dd><tt>bin/javac</tt> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステムおよび Linux]<br> <tt>bin/sparcv9/javac</tt> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (SPARC(R) プラットフォーム版)]<br> <tt>bin/amd64/javac</tt> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (AMD)]<br> <tt>bin/javac.exe</tt> [Microsoft Windows]<br> <tt>lib/tools.jar</tt> [すべてのプラットフォーム]</dd>
<dt>Annotation Processing Tool。以下のファイルで構成されます。<br></dt>
<dd><code>lib/tools.jar</code> [すべてのプラットフォーム]<br> <code>bin/apt</code> [Solaris<sup><font size="-2">TM</font></sup> オペレーティングシステムおよび Linux]<br> <code>bin/sparcv9/apt</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (SPARC(R) プラットフォーム版)]<br> <code>bin/amd64/apt</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (AMD)]<br> <code>bin/apt.exe</code> [Microsoft Windows]</dd>
<dt><code>lib/jconsole.jar</code></dt>
<dd>Jconsole アプリケーション。注: Jconsole アプリケーションには動的アタッチ機構が必要です。</dd>
<dt>動的アタッチ機構は、以下のファイルで構成されます。</dt>
<dd><code>lib/tools.jar</code> [すべてのプラットフォーム]<br> <code>jre/lib/sparc/libattach.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (SPARC(R) プラットフォーム版) および Linux]<br> <code>jre/lib/sparcv9/libattach.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (SPARC(R) プラットフォーム版) および Linux]<br> <code>jre/lib/i386/libattach.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (x86) および Linux]<br> <code>jre/lib/amd64/libattach.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (AMD) および Linux]<br> <code>jre\bin\attach.dll</code> [Microsoft Windows]<br></dd>
<dt>Java Platform Debugger Architecture の実装は、上の動的アタッチで示されたファイル、および以下のファイルで構成されます。</dt>
<dd><code>lib/tools.jar</code> [すべてのプラットフォーム]<br> <code>lib/sa-jdi.jar</code> [すべてのプラットフォーム]<br> <code>jre/lib/sparc/libsaproc.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (SPARC(R) プラットフォーム版) および Linux]<br> <code>jre/lib/sparcv9/libsaproc.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (SPARC(R) プラットフォーム版) および Linux]<br> <code>jre/lib/i386/libsaproc.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (x86) および Linux]<br> <code>jre/lib/amd64/libsaproc.so</code> [Solaris<sup><font size= "-2">TM</font></sup> オペレーティングシステム (AMD) および Linux]<br></dd>
<dt><code>jre\bin\server\</code></dt>
<dd>Microsoft Windows プラットフォームでは、JDK に Java HotSpot<sup><font size="-2">TM</font></sup> Server VM と Java HotSpot<sup><font size="-2">TM</font></sup> Client VM の両方が含まれます。ただし、Microsoft Windows プラットフォーム版の JRE には Java HotSpot<sup><font size="-2">TM</font></sup> Client VM しか含まれていません。Java HotSpot<sup><font size="-2">TM</font></sup> Server VM を JRE で使用する場合は、JDK の <tt>jre\bin\server</tt> フォルダを JRE の <tt>bin\server</tt> ディレクトリにコピーしてください。ソフトウェアベンダーは、JRE の再配布の際に、Java HotSpot<sup><font size="-2">TM</font></sup> Server VM を再配布することができます。</dd>
</dl>
</dd>
</dl>
<h3>無制限強度 Java 暗号化拡張機能</h3>
<blockquote>
一部の国の輸入規制に対応するため、JDK および JRE とともに出荷される Java 暗号化拡張機能 (JCE) のポリシーファイルは、強力ではあっても制限付きの暗号方式の使用しか許可していません。 これらのファイルは次の場所に格納されています。<br>
<br> <code>&lt;java-home&gt;/lib/security/local_policy.jar</code><br> <code>&lt;java-home&gt;/lib/security/US_export_policy.jar</code><br> <br><code>&lt;java-home&gt;</code> は、JDK の <code>jre</code> ディレクトリまたは JRE の最上位ディレクトリです。 </blockquote>
<blockquote>
規制を受けない国のユーザーのために、暗号化強度に制限のない無制限強度バージョンのファイルが JDK Web サイトに用意されています。これらの国のユーザーは、無制限強度バージョンをダウンロードし、強力暗号化 jar ファイルを無制限強度ファイルで置き換えることができます。
</blockquote>
<h3>cacerts 証明書ファイル</h3>
<blockquote>
以下にある Java SE 証明書ファイルでルート認証局証明書を追加または削除することができます。
</blockquote>
<blockquote>
<code>&lt;java-home&gt;/lib/security/cacerts</code>
</blockquote>
<blockquote>
詳細は keytool ドキュメントの <a href="http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/solaris/keytool.html#cacerts">cacerts 証明書ファイル</a> を参照してください。
</blockquote>
<h2><a name="endorsed"></a>Java 推奨規格オーバーライド機構</h2>
<blockquote>
Java プラットフォームは、Java Community Process<sup><font size="-1">SM</font></sup> (JCP<sup><font size="-1">SM</font></sup><a href="http://www.jcp.org/">http://www.jcp.org/</a>) 以外で作成された標準 (推奨標準) の最新バージョンを組み込むため、またはプラットフォームに含まれるテクノロジーのバージョンを、そのテクノロジーの新しいスタンドアロンバージョン (標準テクノロジー) に対応させるため、適宜更新が必要です。
</blockquote>
<blockquote>
推奨規格オーバーライド機構を使用すれば、Java プラットフォームに組み込まれる可能性のある推奨標準やスタンドアロンテクノロジーを実装する、新しいバージョンのクラスやインタフェースを提供できます。
</blockquote>
<blockquote>
推奨規格オーバーライド機構の詳細については、次のサイトを参照してください。優先指定に使用できるプラットフォームパッケージの一覧も掲載されています。
</blockquote>
<blockquote>
<a href= "http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/standards/">http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/standards/</a>
</blockquote>
<h2><a name="javadb" id="javadb"></a>Java DB</h2>
<blockquote>
この配布は、Sun Microsystems が配布する Apache Derby pure Java データベーステクノロジーである Java DB をバンドルしています。デフォルトでは以下にインストールされます。
<ul>
<li>Solaris: <code>/opt/SUNWjavadb</code></li>
<li>Linux: <code>/opt/sun/javadb</code></li>
<li>Windows: <code>C:\Program Files\Sun\JavaDB</code></li>
</ul>
<p>ユーザードキュメントや API ドキュメント、Java DB の機能やその他リソースなどの Java DB と Derby の情報については、上記ディレクトリの index.html ファイルを参照してください。</p>
</blockquote>
<h2><a name="webpages"></a>Web ページ</h2>
<blockquote>
詳細については、次の Sun Microsystems の Web ページを参照してください。
</blockquote>
<dl>
<dd>
<dl>
<dt><a href="http://java.sun.com/">http://java.sun.com/</a></dt>
<dd>Java Software Web サイト。Java テクノロジ、製品情報、ニュース、および機能についての最新情報が掲載されています。</dd>
<dt><a href= "http://java.sun.com/docs">http://java.sun.com/docs</a></dt>
<dd>Java<sup><font size="-2">TM</font></sup> プラットフォームのドキュメント。ホワイトペーパーや Java チュートリアルなどのドキュメントにアクセスできます。</dd>
<dt><a href= "http://developer.java.sun.com/">http://developer.java.sun.com</a></dt>
<dd>Developer Services Web サイト。(無料の登録が必要。) 技術情報、ニュース、および機能の詳細情報、ユーザーフォーラム、サポート情報などが提供されています。</dd>
<dt><a href= "http://java.sun.com/products/">http://java.sun.com/products/</a></dt>
<dd>Java テクノロジ製品と API</dd>
</dl>
</dd>
</dl>
<hr>
<p><font size="2">Java<sup><font size="-2">TM</font></sup> Development Kit (JDK<sup><font size="-2">TM</font></sup>) は Sun Microsystems<sup><small>TM</small></sup>, Inc. の製品です。<br> <br> Copyright &copy; 2009 Sun Microsystems, Inc.<br> 4150 Network Circle, Santa Clara, California 95054, U.S.A.<br> All rights reserved.</font></p>
<script type="text/javascript" language="JavaScript" src="/js/omi/jsc/s_code_remote.js">
</script>
</body>
</html>

View file

@ -0,0 +1,507 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=GB2312">
<title>自述文件 -- Java Platform, Standard Edition Development Kit</title>
</head>
<body lang="en-US" bgcolor="#FFFFFF">
<h1 align="center">自述文件</h1>
<h2 align="center">Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition 6<br> Development Kit</h2>
<p align="center"><b>JDK<sup><font size="-2">TM</font></sup> 6</b></p>
<h2>目录</h2>
<ul>
<li><a href="#introduction">简介</a></li>
<li><a href="#install">系统要求与安装</a></li>
<li><a href="#docs">JDK 文档</a></li>
<li><a href="#relnotes">发行说明</a></li>
<li><a href="#compatibility">兼容性</a></li>
<li><a href="#bugs">错误报告与反馈</a></li>
<li><a href="#contents">JDK 的内容</a></li>
<li><a href="#jre">Java Runtime Environment</a></li>
<li><a href="#redistribution">再分发</a></li>
<li><a href="#endorsed">Java 签名标准覆盖机制</a></li>
<li><a href="#javadb">Java DB</a></li>
<li><a href="#webpages">Web 页</a></li>
</ul>
<h2><a name="introduction" id="introduction"></a>简介</h2>
<blockquote>
感谢您下载此版本的 Java<sup><font size=
"-2">TM</font></sup> Platform, Standard Edition Development Kit (JDK<sup><font size="-2">TM</font></sup>)。JDK 是一种开发环境,用于使用 Java 编程语言生成应用程序、applet 和组件。
</blockquote>
<blockquote>
JDK 包含的工具可用于开发和测试以 Java 编程语言编写并在 Java<sup><font size=
"-2">TM</font></sup> 平台上运行的程序。
</blockquote>
<h2><a name="install" id="install"></a>系统要求与安装</h2>
<blockquote>
系统要求、安装说明和故障排除提示位于 Java 软件 Web 站点上的以下位置:
</blockquote>
<blockquote>
<a href="http://java.sun.com/javase/6/webnotes/install/">JDK 6 安装说明</a>
</blockquote>
<h2><a name="docs" id="docs"></a>JDK<sup><font size="-2">TM</font></sup> 文档</h2>
<blockquote>
联机 <a href=
"http://java.sun.com/javase/6/docs/">Java<sup><font size=
"-2">TM</font></sup> Platform, Standard Edition (Java SE) 文档</a>包含 API 说明、功能介绍、开发者指南、JDK<sup><font size=
"-2">TM</font></sup> 工具和实用程序的参考页面、演示程序以及指向相关信息的链接。此文档还以下载包的形式提供,您可以将此包安装在计算机上。要获得该文档包,请参见<a href="http://java.sun.com/javase/downloads/index.jsp">下载页面</a>。有关 API 文档的信息,请参阅 <a href=
"http://java.sun.com/javase/6/docs/api/index.html">Java<sup><font size="-2">TM</font></sup> Platform, Standard Edition API 说明</a>。该页面提供了 API 的简要介绍,其中重点介绍了 API 说明而非代码示例。
</blockquote>
<h2><a name="relnotes" id="relnotes"></a>发行说明</h2>
<blockquote>
有关此版本的其他信息,请参见 Java 软件 Web 站点上的 <a href="http://java.sun.com/javase/6/webnotes/">Java SE 6 发行说明</a>。由于联机发行说明将根据需要进行更新,因此请不定期查看联机发行说明以了解最新信息。
</blockquote>
<h2><a name="compatibility" id="compatibility"></a>兼容性</h2>
<blockquote>
有关已知的兼容性问题列表,请参见 Java 软件 Web 站点上<a href=
"http://java.sun.com/javase/6/webnotes/compatibility.html">与早期版本的兼容性</a>。我们已尽力支持为早期版本的 Java<sup><font size=
"-2">TM</font></sup> 平台编写的程序。尽管必然会有某些不兼容的更改,但大部分软件都能够在不重新编程的情况下迁移到当前版本。除了在极少数情况下有意不保持兼容(如我们的兼容性 Web 页中所述)以外,如果做不到这一点,将被认为是一个错误。之所以存在一些破坏兼容性的更改,是因为需要弥补潜在的安全漏洞或修复实现或设计错误。
</blockquote>
<h2><a name="bugs" id="bugs"></a>错误报告与反馈</h2>
<blockquote>
<a href="http://bugs.sun.com/bugdatabase/index.jsp">错误数据库</a> Web 站点使您可以搜索和检查现有的错误报告、提交您自己的错误报告以及通知我们您最希望修复哪些错误。要直接提交错误或请求功能,请填写以下表单:
</blockquote>
<blockquote>
<a href=
"http://bugs.sun.com/services/bugreport/index.jsp">http://bugs.sun.com/services/bugreport/index.jsp</a>
</blockquote>
<blockquote>
您可以向 <a href=
"http://java.sun.com/docs/forms/sendusmail.html">Java SE 文档小组</a>发送反馈,也可以直接向 <a href=
"http://developers.sun.com/contact/index.jsp">Java 软件工程小组的电子邮件地址</a>发送意见。
</blockquote>
<blockquote>
<b></b> - 请不要通过错误数据库或我们的开发团队寻求技术支持。有关可以选择的支持方式,请参见 Java 软件 Web 站点上的<a href=
"http://java.sun.com/developer/support/">支持与服务</a>
</blockquote>
<h2><a name="contents" id="contents"></a>JDK<sup><font size= "-2">TM</font></sup> 的内容</h2>
<blockquote>
本部分概括介绍了 JDK<sup><font size="-2">TM</font></sup> 中的文件和目录。有关这些文件和目录的详细信息,请参见适用于您的平台的 Java SE 文档的 <a href=
"http://java.sun.com/javase/6/docs/technotes/tools/index.html#general">JDK 文件结构</a>部分。
</blockquote>
<dl>
<dd>
<dl>
<dt><b>开发工具</b></dt>
<dd>(位于 <code>bin/</code> 子目录中)指工具和实用程序,可帮助您开发、执行、调试和保存以 Java<sup><font size="-2">TM</font></sup> 编程语言编写的程序。有关详细信息,请参见<a href=
"http://java.sun.com/javase/6/docs/technotes/tools/index.html">工具文档</a><br> <br></dd>
<dt><b>运行时环境</b></dt>
<dd>(位于 <code>jre/</code> 子目录中)由 JDK 使用的 Java Runtime Environment (JRE<sup><font size="-2">TM</font></sup>) 的实现。JRE 包括 Java<sup><font size=
"-2">TM</font></sup> 虚拟机 (JVM<sup><font size=
"-2">TM</font></sup>)、类库以及其他支持执行以 Java<sup><font size=
"-2">TM</font></sup> 编程语言编写的程序的文件。<br> <br></dd>
<dt><b>附加库</b></dt>
<dd>(位于 <code>lib/</code> 子目录中)开发工具所需的其他类库和支持文件。<br> <br></dd>
<dt><b>演示 applet 和应用程序</b></dt>
<dd>(位于 <code>demo/</code> 子目录中Java<sup><font size="-2">TM</font></sup> 平台的编程示例(带源代码)。这些示例包括使用 Swing 和其他 Java<sup><font size="-2">TM</font></sup> 基类以及 Java<sup><font size="-2">TM</font></sup> 平台调试器体系结构的示例。<br> <br></dd>
<dt><b>样例代码</b></dt>
<dd>(位于 <code>sample</code> 子目录中)某些 Java API 的编程样例(带源代码)。<br> <br></dd>
<dt><b>C 头文件</b></dt>
<dd>(位于 <code>include/</code> 子目录中)支持使用 <a href=
"http://java.sun.com/javase/6/docs/technotes/guides/jni/">Java 本机界面</a><a href=
"http://java.sun.com/javase/6/docs/technotes/guides/jvmti/">JVM<sup><font size="-2">TM</font></sup> 工具界面</a>以及 Java<sup><font size="-2">TM</font></sup> 平台的其他功能进行本机代码编程的头文件。<br> <br></dd>
<dt><b>源代码</b></dt>
<dd>(位于 <code>src.zip</code> 中)组成 Java 核心 API 的所有类的 Java<sup><font size="-2">TM</font></sup> 编程语言源文件java.*、javax.* 和某些 org.* 包的源文件,但不包括 com.sun.* 包的源文件)。此源代码仅供参考,以便帮助开发者学习和使用 Java<sup><font size="-2">TM</font></sup> 编程语言。这些文件不包含特定于平台的实现代码,且不能用于重新生成类库。要对这些文件进行解压,请使用任一常用的 zip 实用程序;或者也可以使用位于 JDK 的 <code>bin/</code> 目录中的 Jar 实用程序:<br><br><code>jar xvf src.zip</code></dd>
</dl>
</dd>
</dl>
<h2><a name="jre" id="jre"></a>Java Runtime Environment (JRE<sup><font size="-2">TM</font></sup>)</h2>
<blockquote>
Java<sup><font size="-2">TM</font></sup> Runtime Environment (JRE<sup><font size="-2">TM</font></sup>) 是一款可单独下载的产品。请参见<a href=
"http://java.sun.com/javase/downloads/index.jsp">下载 Web 站点</a>
</blockquote>
<blockquote>
通过 JRE您可以运行以 Java<sup><font size=
"-2">TM</font></sup> 编程语言编写的应用程序。与 JDK<sup><font size=
"-2">TM</font></sup> 相似JRE 包含 Java<sup><font size=
"-2">TM</font></sup> 虚拟机 (JVM<sup><font size=
"-2">TM</font></sup>)、组成 Java<sup><font size=
"-2">TM</font></sup> 平台 API 的类及支持文件。与 JDK 不同的是,它不包含诸如编译器和调试器这样的开发工具。
</blockquote>
<blockquote>
依照 JRE 许可证条款,您可以随意地将 JRE 随应用程序一起进行再分发。使用 JDK 开发应用程序后,可将其与 JRE 一起发行,以便最终用户具有可运行软件的 Java<sup><font size="-2">TM</font></sup> 平台。
</blockquote>
<h2><a name="redistribution" id="redistribution"></a>再分发</h2>
<blockquote>
<blockquote>
<hr>
注 - 本软件的许可证不允许再分发测试版和其他预发行版本。
<hr>
</blockquote>
</blockquote>
<blockquote>
必须遵守软件许可协议的条款和条件以及下面提出的义务、限制和例外。在下列情况下,您可以复制和分发本软件(以及在下面标识为&ldquo;可再分发&rdquo;的软件部分):
</blockquote>
<blockquote>
<ol type="a">
<li>您将完整地分发软件而不能进行修改,并仅作为您的 applet 和应用程序(程序)的一部分打包;</li>
<li>您的程序将向本软件添加重要的主要功能;</li>
<li>您的程序仅用于在启用了 Java 的普通桌面计算机和服务器上运行;</li>
<li>您分发软件只是为了运行您的程序;</li>
<li>您不分发其他软件来替换本软件的任何组件;</li>
<li>您不删除或更改本软件中包含的任何专用图例或声明;</li>
<li>您只按照旨在保护 Sun 的利益的许可协议中的条款来分发本软件;</li>
<li>您同意维护和保障 Sun 及其许可方的利益,不使其承担因第三方使用或分发任意和全部程序和/或软件而引起的赔偿、诉讼或冲突所导致的赔偿金、诉讼费、债务和/或调解费(包括律师费)。</li>
</ol>
</blockquote>
<blockquote>
此处使用的&ldquo;供应商&rdquo;一词是指许可证持有人、开发者以及将 Java<sup><font size="-2">TM</font></sup> Development Kit (JDK<sup><font size="-2">TM</font></sup>) 与其程序一起许可和分发的独立软件供应商 (ISV)。
</blockquote>
<blockquote>
供应商必须遵守 Java Development Kit 二进制代码许可协议的条款。
</blockquote>
<h3>必要文件与可选文件</h3>
<blockquote>
组成 Java<sup><font size="-2">TM</font></sup> Development Kit (JDK<sup><font size="-2">TM</font></sup>) 的文件分为两类:必要的和可选的。可选文件可以不包含在 JDK 的再分发中(由供应商决定)。
</blockquote>
<blockquote>
下面一节列出了可以选择从 JDK 的再分发中省略的文件和目录。没有列为可选文件的所有文件都必须包含在 JDK 的再分发中。
</blockquote>
<h3>可选文件和目录</h3>
<blockquote>
下列文件可以从再分发中排除。这些文件位于 jdk1.6.0_&lt;版本&gt; 目录中,其中 &lt;版本&gt; 是最新的版本号。将显示 Solaris<sup><font size="-2">TM</font></sup> 和 Linux 的文件名和分隔符。Windows 可执行文件具有 &quot;.exe&quot; 后缀。还可以排除名称中带有 <code>_g</code> 的相应文件。对于任何已排除的可执行文件,应排除相应的手册页(包含下面列出的以 <code>bin/</code> 开头的路径,适用于 Solaris<sup><font size="-2">TM</font></sup> 操作系统和 Linux
</blockquote>
<dl>
<dd>
<dl>
<dt><code>jre/lib/charsets.jar</code></dt>
<dd>字符转换类</dd>
<dt><code>jre/lib/ext/</code></dt>
<dd><code>sunjce_provider.jar</code> - SunJCE 的 Java 加密法 API 提供者<br> <code>localedata.jar</code> - 包含非美式英语语言环境所需的许多资源<br> <code>ldapsec.jar</code> - 包含 LDAP 服务提供者所支持的安全特征<br> <code>dnsns.jar</code> - 用于 JNDI DNS 提供者的 InetAddress 包装</dd>
<dt><code>bin/rmid</code><code>jre/bin/rmid</code></dt>
<dd>Java RMI 活化系统守护进程</dd>
<dt><code>bin/rmiregistry</code><code>jre/bin/rmiregistry</code></dt>
<dd>Java 远程对象注册表</dd>
<dt><code>bin/tnameserv</code><code>jre/bin/tnameserv</code></dt>
<dd>Java IDL 名称服务器</dd>
<dt><code>bin/keytool</code><code>jre/bin/keytool</code></dt>
<dd>密钥和证书管理工具</dd>
<dt><code>bin/kinit</code><code>jre/bin/kinit</code></dt>
<dd>用于获取和高速缓存 Kerberos 票证的授予票证</dd>
<dt><code>bin/klist</code><code>jre/bin/klist</code></dt>
<dd>凭据高速缓存和密钥表中的 Kerberos 显示条目</dd>
<dt><code>bin/ktab</code><code>jre/bin/ktab</code></dt>
<dd>Kerberos 密钥表管理器</dd>
<dt><code>bin/policytool</code><code>jre/bin/policytool</code></dt>
<dd>策略文件创建和管理工具</dd>
<dt><code>bin/orbd</code><code>jre/bin/orbd</code></dt>
<dd>对象请求代理守护进程</dd>
<dt><code>bin/servertool</code><code>jre/bin/servertool</code></dt>
<dd>Java IDL 服务器工具</dd>
<dt><code>bin/javaws</code><code>jre/bin/javaws</code><code>jre/lib/javaws/</code><code>jre/lib/javaws.jar</code></dt>
<dd>Java Web Start</dd>
<dt><code>db/</code></dt>
<dd>
Java DB它是 Sun Microsystems 的 Apache Derby 数据库技术的分发。
默认安装位置为:
<ul>
<li>Solaris<code>/opt/SUNWjavadb</code></li>
<li>Linux<code>/opt/sun/javadb</code></li>
<li>Windows<code>C:\Program Files\Sun\JavaDB</code></li>
</ul>有关 Java DB 和 Derby 的信息(包括用户
和 API 文档、Java DB 的功能以及更多资源),
请参见上述目录中的 index.html 文件。
</dd>
<dd>Java<sup><font size="-2">TM</font></sup>DBSun Microsystems 的 Apache Derby 数据库技术分发。</dd>
<dt><code>demo/</code></dt>
<dd>演示 applet 和应用程序</dd>
<dt><code>sample/</code></dt>
<dd>样例代码</dd>
<dt><code>src.zip</code></dt>
<dd>源文件归档</dd>
</dl>
</dd>
</dl>
<h3><a name="redistributablejdkfiles" id=
"redistributablejdkfiles"></a>可再分发的 JDK<sup><font size=
"-2">TM</font></sup> 文件</h3>
<blockquote>
下面列出了有限几组 JDK 文件和目录,供应商在再分发 Java<sup><font size=
"-2">TM</font></sup> Runtime Environment (JRE<sup><font size=
"-2">TM</font></sup>) 时,可能会将这些文件和目录随附其中。不能单独对它们进行再分发,而必须随相同版本的 JRE 一起分发。所有路径都是相对 JDK 的顶层目录而言的。对于任何已包含的可执行文件,应包含相应的手册页(包含下面列出的以 <code>bin/</code> 开头的路径,适用于 Solaris<sup><font size="-2">TM</font></sup> 操作系统和 Linux
</blockquote>
<dl>
<dd>
<dl>
<dt><code>jre/lib/cmm/PYCC.pf</code></dt>
<dd>颜色配置文件。仅当用户希望在 PYCC 颜色区间与另一个颜色区间之间进行转换时才需要用到此文件。</dd>
<dt>位于 <code>jre/lib/fonts/</code> 目录中的所有 <code>.ttf</code> 字体文件。</dt>
<dd>请注意JRE 中已包含 LucidaSansRegular.ttf 字体,因此无需从 JDK 中引入该文件。</dd>
<dt><code>jre/lib/audio/soundbank.gm</code></dt>
<dd>JDK 中具有该 MIDI 声音库,但为了减小 JRE 下载包所占的空间,已从 JRE 中删除该库。但是,对于 MIDI 回放,声音库文件是必需的,因此在再分发 JRE 时可能将 JDK 的 <code>soundbank.gm</code> 文件随附其中(由供应商决定)。可从 Java Sound Web 站点获得若干加强的 MIDI 声音库版本,该站点如下:<a href=
"http://java.sun.com/products/java-media/sound/">http://java.sun.com/products/java-media/sound/</a>。在再分发 JRE 时,可能将这些备用声音库随附其中。</dd>
<dt>javac 字节码编译器由下列文件组成:</dt>
<dd><code>bin/javac</code> [Solaris<sup><font size="-2">TM</font></sup> 操作系统和 Linux]<br> <code>bin/sparcv9/javac</code> [Solaris<sup><font size="-2">TM</font></sup> 操作系统SPARC(R) 平台版)]<br> <code>bin/amd64/javac</code> [Solaris<sup><font size="-2">TM</font></sup> 操作系统 (AMD)]<br> <code>bin/javac.exe</code> [Microsoft Windows]<br> <code>lib/tools.jar</code> [所有平台]</dd>
<dt>注释处理工具由下列文件组成:</dt>
<dd><code>lib/tools.jar</code> [所有平台]<br>
<dd><code>bin/apt</code> [Solaris<sup><font size="-2">TM</font></sup> 操作系统和 Linux]<br> <code>bin/sparcv9/apt</code> [Solaris<sup><font size="-2">TM</font></sup> 操作系统SPARC(R) 平台版)]<br> <code>bin/amd64/apt</code> [Solaris<sup><font size="-2">TM</font></sup> 操作系统 (AMD)]<br> <code>bin/apt.exe</code> [Microsoft Windows]</dd>
<dt><code>lib/jconsole.jar</code></dt>
<dd>Jconsole 应用程序。注意:</dd>
Jconsole 应用程序要求使用动态连接机制。</dd>
<dt>动态连接机制由下列文件组成:</dt>
<dd><code>lib/tools.jar</code> [所有平台]<br>
<code>jre/lib/sparc/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统SPARC(R) 平台版)和 Linux]
<br>
<code>jre/lib/sparcv9/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统SPARC(R) 平台版)和 Linux]
<br>
<code>jre/lib/i386/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统 (x86) 和 Linux]<br>
<code>jre/lib/amd64/libattach.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统 (AMD) 和 Linux]
<code>jre\bin\attach.dll</code> [Microsoft Windows]<br></dd>
<dt>Java 平台调试器体系结构实现由
在上述动态连接部分中显示的文件和
下列文件组成:</dt>
<dd><code>lib/tools.jar</code> [所有平台]<br>
<code>lib/sa-jdi.jar</code> [所有平台]<br>
<code>jre/lib/sparc/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统SPARC(R) 平台版)和 Linux]
<br>
<code>jre/lib/sparcv9/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统SPARC(R) 平台版)和 Linux]
<br>
<code>jre/lib/i386/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统 (x86) 和 Linux]<br>
<code>jre/lib/amd64/libsaproc.so</code> [Solaris<sup><font size=
"-2">TM</font></sup> 操作系统 (AMD) 和 Linux]<br></dd>
<dt><code>jre\bin\server\</code></dt>
<dd>在 Microsoft Windows 平台上JDK 同时包含 Java HotSpot<sup><font size="-2">TM</font></sup> 服务器 VM 和 Java HotSpot<sup><font size="-2">TM</font></sup> 客户机 VM。但是Microsoft Windows 平台上的 JRE 仅包含 Java HotSpot<sup><font size="-2">TM</font></sup> 客户机 VM。如果用户希望和 JRE 一起使用 Java HotSpot<sup><font size="-2">TM</font></sup> 服务器 VM可以将 JDK 的 <code>jre\bin\server</code> 文件夹复制到 JRE 的 <code>bin\server</code> 目录中。软件供应商可将 Java HotSpot<sup><font size="-2">TM</font></sup> 服务器 VM 随 JRE 一起再分发。</dd>
</dl>
</dd>
</dl>
<h3>无限加强的 Java 加密法扩展</h3>
<blockquote>
由于某些国家/地区存在进口控制限制,因此 JDK 和 JRE 随附的 Java 加密法扩展 (JCE) 策略文件允许使用强大但有限的加密法。这些文件位于<br> <br> <code>&lt;java-home&gt;/lib/security/local_policy.jar</code><br> <code>&lt;java-home&gt;/lib/security/US_export_policy.jar</code><br> <br>其中 <code>&lt;java-home&gt;</code> 是 JDK 的 <code>jre</code> 目录或 JRE 的顶层目录。
</blockquote>
<blockquote>
对于那些位于符合条件的国家/地区的用户,可以从 JDK Web 站点获取不对加密技术的强度指定任何限制的无限加强版文件。位于符合条件的国家/地区的用户可以下载无限加强版文件,并用这些文件替换强度有限的 jar 文件。
</blockquote>
<h3>Cacerts 证书文件</h3>
<blockquote>
可以在位于以下位置的 Java SE 证书文件中添加或删除根 CA 证书
</blockquote>
<blockquote>
<code>&lt;java-home&gt;/lib/security/cacerts</code>
</blockquote>
<blockquote>
有关详细信息,请参见 keytool 文档中的 <a href=
"http://java.sun.com/javase/6/docs/technotes/tools/solaris/keytool.html#cacerts">cacerts 证书文件</a>一节。
</blockquote>
<h2><a name="endorsed" id="endorsed"></a>Java 签名标准覆盖机制</h2>
<blockquote>
需时常更新 Java 平台,以便并入在 Java Community Process <font size="-2"><sup>SM</sup></font> (JCP<font size=
"-2"><sup>SM</sup></font> <a href=
"http://www.jcp.org/">http://www.jcp.org/</a>) 之外创建的较新版本的标准(<i>签名标准</i>),或将该平台中所包含的技术版本更新为该技术相应的较新的独立版本(<i>独立技术</i>)。
</blockquote>
<blockquote>
<i>签名标准覆盖机制</i>提供了一种方法,可将执行签名标准或独立技术的较新版本的类和界面并入 Java 平台中。
</blockquote>
<blockquote>
有关签名标准覆盖机制的详细信息,包括该机制进行覆盖时可能用到的平台包的列表,请参见
</blockquote>
<blockquote>
<a href=
"http://java.sun.com/javase/6/docs/technotes/guides/standards/">http://java.sun.com/javase/6/docs/technotes/guides/standards/</a>
</blockquote>
<h2><a name="javadb" id="javadb"></a>Java DB</h2>
<blockquote>
分发包 Java DB它是 Sun Microsystems
的 Apache Derby 纯 Java 数据库技术的分发。
默认安装位置为:
<ul>
<li>Solaris: <code>/opt/SUNWjavadb</code></li>
<li>Linux: <code>/opt/sun/javadb</code></li>
<li>Windows: <code>C:\Program Files\Sun\JavaDB</code></li>
</ul>
<p>有关 Java DB 和 Derby 的信息(包括用户和 API 文档、Java DB
的功能以及更多资源),
请参见上述目录中的 index.html 文件。</p>
</blockquote>
<h2><a name="webpages" id="webpages"></a>Web 页</h2>
<blockquote>
有关详细信息,请参阅万维网上的下列 Sun Microsystems 页面:
</blockquote>
<dl>
<dd>
<dl>
<dt><a href="http://java.sun.com/">http://java.sun.com/</a></dt>
<dd>Java 软件 Web 站点,包含有关 Java 技术、产品信息、新闻和软件特性的最新信息。</dd>
<dt><a href=
"http://java.sun.com/docs">http://java.sun.com/docs</a></dt>
<dd>Java<sup><font size="-2">TM</font></sup> 平台文档包含白皮书、Java 教程以及其他文档。</dd>
<dt><a href=
"http://developer.java.sun.com/">http://developer.java.sun.com</a></dt>
<dd>开发者服务 Web 站点(需要进行免费注册)。其他技术信息、新闻和软件特性;用户论坛;支持信息等等。</dd>
<dt><a href=
"http://java.sun.com/products/">http://java.sun.com/products/</a></dt>
<dd>Java 技术产品和 API</dd>
</dl>
</dd>
</dl>
<hr>
<p><font size="2">Java<sup><font size="-2">TM</font></sup> Development Kit (JDK<sup><font size="-2">TM</font></sup>) 是 Sun Microsystems<sup><font size="-2">TM</font></sup>, Inc. 的产品。<br> <br> 版权所有 (C) 2009 Sun Microsystems, Inc.<br> 4150 Network Circle, Santa Clara, California 95054, U.S.A.<br> 保留所有权利。</font></p>
<script type="text/javascript" language="JavaScript" src="/js/omi/jsc/s_code_remote.js">
</script>
</body>
</html>

123
extra/source/jdk-6/jdk.SlackBuild Executable file
View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Register your JDK</title>
<style type="text/css">
<!--
.style1 {font-family: Arial, Helvetica, sans-serif}
.style3 {font-family: Arial, Helvetica, sans-serif; font-size: small; }
input.buttonblue,input.defbutton{ background: #3F6580;border-right:1px solid #304C60;border-bottom:1px solid #304C60;border-left:1px solid #BACDD9;border-top:1px solid #BACDD9; font-weight:bold; color:#FFFFFF; font-size:.8em; height:1.9em}
input.buttonblue:hover{color:#fbe249;}
a:link,a.named:visited{color:#3E6B8A}
a:hover{text-decoration:underline}
a{text-decoration:none}
a:visited,a:visited code{color:#917E9C}
-->
</style>
</head>
<body>
<table width="813" border="0" cellpadding="3" cellspacing="0">
<tr>
<td width="7" height="78">&nbsp;</td>
<td width="794" align="left" valign="top">
<img src="file:/tmp/package-jdk/usr/lib64/jdk1.6.0_15/jre/lib/servicetag/jdk_header.png" width="783" height="63"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><p class="style1">Thank you for installing the
<strong> Java Development Kit Version 6 Update 15 </strong>
from Sun Microsystems. </p>
<p class="style1">Registering your product will give you the following benefits:</p>
<ul class="style1">
<li> Notification of new versions, patches, and updates</li>
<li> Special offers on Sun developer products, services and training </li>
<li> Access to early releases and documentation </li>
</ul>
<p class="style1">Product registration is FREE, quick and easy!</p>
<blockquote>
<p class="style1">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. </p>
<table width="708" border="0" cellspacing="0" cellpadding="3">
<tr valign="top">
<td width="126" height="35">
<form name="form1" method="post" action="https://inventory.sun.com/RegistrationWeb/register/urn:st:39938c22-57ad-43b4-8953-b7833a960447?product=jdk&locale=en" enctype="text/xml">
<input type="hidden" name="servicetag_payload" value="<?xml version=%221.0%22 encoding=%22UTF-8%22 standalone=%22no%22?><registration_data version=%221.0%22><environment><hostname>midas64</hostname><hostId>00000000</hostId><osName>Linux</osName><osVersion>2.6.29.6</osVersion><osArchitecture>amd64</osArchitecture><systemModel>AuthenticAMD</systemModel><systemManufacturer>gigabyte technology co., ltd.</systemManufacturer><cpuManufacturer>AuthenticAMD</cpuManufacturer><serialNumber>serial number</serialNumber></environment><registry urn=%22urn:st:39938c22-57ad-43b4-8953-b7833a960447%22 version=%221.0%22><service_tag><instance_urn>urn:st:771d40cb-57e3-4969-b32a-769e55e82934</instance_urn><product_name>Java SE 6 Development Kit</product_name><product_version>1.6.0_15</product_version><product_urn>urn:uuid:b58ef9a8-5ae8-11db-a023-080020a9ed93</product_urn><product_parent_urn>urn:uuid:fdc90b21-018d-4cab-b866-612c7c119ed3</product_parent_urn><product_parent>Java Platform Standard Edition 6 (Java SE 6)</product_parent><product_defined_inst_id>id=1.6.0_15-b03 amd64,dir=/tmp/package-jdk/usr/lib64/jdk1.6.0_15/jre</product_defined_inst_id><product_vendor>Sun Microsystems</product_vendor><platform_arch>amd64</platform_arch><timestamp>2009-08-06 00:48:47 GMT</timestamp><container>global</container><source>jdk-6u15-fcs-bin-b03-linux-amd64-02_jul_2009.bin</source><installer_uid>-1</installer_uid></service_tag></registry></registration_data>">
<input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="Register My JDK">
</form></td>
<td width="570"><span class="style3">You need to be connected to the Internet to register this Sun product. </span></td>
</tr>
</table>
</blockquote>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td bgcolor="#f1f7df">
<p class="style3">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.</p>
<p class="style3">For more information on the data that will be collected as
part of the registration process and how it will be managed <br>
see <a href="http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html">http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html</a>. <br>
<br>
For more information on Sun's Privacy Policy see <a href="http://www.sun.com/privacy/">http://www.sun.com/privacy/</a> or contact <a class="moz-txt-link-rfc2396E" href="mailto:privacy@sun.com">privacy@sun.com.</a></p></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,66 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or
g/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>JDK 製品登録</title>
<style type="text/css">
<!--
.style1 {font-family: Arial, Helvetica, sans-serif}
.style3 {font-family: Arial, Helvetica, sans-serif; font-size: small; }
input.buttonblue,input.defbutton{ background: #3F6580;border-right:1px solid #304C60;border-bottom:1px solid #304C60;border-left:1px solid #BACDD9;border-top:1px solid #BACDD9; font-weight:bold; color:#FFFFFF; font-size:.8em; height:1.9em}
input.buttonblue:hover{color:#fbe249;}
a:link,a.named:visited{color:#3E6B8A}
a:hover{text-decoration:underline}
a{text-decoration:none}
a:visited,a:visited code{color:#917E9C}
-->
</style></head><body>
<table border="0" cellpadding="3" cellspacing="0" width="813">
<tbody><tr>
<td height="78" width="7">&nbsp;</td>
<td align="left" valign="top" width="794"><img src="file:/tmp/package-jdk/usr/lib64/jdk1.6.0_15/jre/lib/servicetag/jdk_header.png" height="63" width="783"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><p class="style1">Sun Microsystems の<strong> Java Development Kit Version 6 Update 15 </strong>をインストールしていただき、ありがとうございます。 </p>
<p class="style1">製品登録をすると、次のような特典を受けることができます。</p>
<ul class="style1">
<li> 最新のバージョン、パッチ、および更新についての通知</li>
<li> Sun の開発者向け製品、サービス、およびトレーニングの特別販売 </li>
<li> アーリーリリースおよびドキュメントへのアクセス </li>
</ul>
<p class="style1">製品登録は無料であり、迅速で簡単です。</p>
<blockquote>
<p class="style1">必要になるのは、Sun 開発者向けネットワークアカウントまたはその他の Sun オンラインアカウントだけです。 まだアカウントがない場合は、アカウントの作成が求められます。 </p>
<table width="708" border="0" cellspacing="0" cellpadding="3">
<tr valign="top">
<td width="126" height="35"><form name="form1" method="post" action="https://inventory.sun.com/RegistrationWeb/register/urn:st:39938c22-57ad-43b4-8953-b7833a960447?product=jdk&locale=ja" enctype="text/xml">
<input type="hidden" name="servicetag_payload" value="<?xml version=%221.0%22 encoding=%22UTF-8%22 standalone=%22no%22?><registration_data version=%221.0%22><environment><hostname>midas64</hostname><hostId>00000000</hostId><osName>Linux</osName><osVersion>2.6.29.6</osVersion><osArchitecture>amd64</osArchitecture><systemModel>AuthenticAMD</systemModel><systemManufacturer>gigabyte technology co., ltd.</systemManufacturer><cpuManufacturer>AuthenticAMD</cpuManufacturer><serialNumber>serial number</serialNumber></environment><registry urn=%22urn:st:39938c22-57ad-43b4-8953-b7833a960447%22 version=%221.0%22><service_tag><instance_urn>urn:st:771d40cb-57e3-4969-b32a-769e55e82934</instance_urn><product_name>Java SE 6 Development Kit</product_name><product_version>1.6.0_15</product_version><product_urn>urn:uuid:b58ef9a8-5ae8-11db-a023-080020a9ed93</product_urn><product_parent_urn>urn:uuid:fdc90b21-018d-4cab-b866-612c7c119ed3</product_parent_urn><product_parent>Java Platform Standard Edition 6 (Java SE 6)</product_parent><product_defined_inst_id>id=1.6.0_15-b03 amd64,dir=/tmp/package-jdk/usr/lib64/jdk1.6.0_15/jre</product_defined_inst_id><product_vendor>Sun Microsystems</product_vendor><platform_arch>amd64</platform_arch><timestamp>2009-08-06 00:48:47 GMT</timestamp><container>global</container><source>jdk-6u15-fcs-bin-b03-linux-amd64-02_jul_2009.bin</source><installer_uid>-1</installer_uid></service_tag></registry></registration_data>">
<input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="JDK 製品登録">
</form></td>
<td width="570"><span class="style3">この Sun 製品を登録するには、インターネットに接続している必要があります。 </span></td>
</tr>
</table>
</blockquote>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td bgcolor="#f1f7df">
<p class="style3">Sun Microsystems, Inc. は、お客様のプライバシーを尊重します。 お客様の個人情報は、お客様の Sun オンラインアカウント、お客様が Sun オンラインアカウントを使用してアクセスするサービスとアプリケーション、およびお客様が Sun オンラインアカウントで登録する製品とシステムの通信と管理に使用します。</p>
<p class="style3">登録の際に収集されるデータや、それらがどのように管理されるかについての詳細は、<br><a href="http://java.sun.com/javase/ja/registration/JDKRegistrationPrivacy.html">http://java.sun.com/javase/ja/registration/JDKRegistrationPrivacy.html</a> を参照してください。 <br> <br> Sun のプライバシーポリシーについての詳細は、<a href="http://jp.sun.com/privacy/">http://jp.sun.com/privacy/</a> を参照するか、<a class="moz-txt-link-rfc2396E" href="http://jp.sun.com/cgi-bin/contact/comment.cgi?url=http://jp.sun.com/privacy/">お問い合わせフォーム</a>からお問い合わせください。</p></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,66 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册您的 JDK</title>
<style type="text/css">
<!--
.style1 {font-family: Arial, Helvetica, sans-serif}
.style3 {font-family: Arial, Helvetica, sans-serif; font-size: small; }
input.buttonblue,input.defbutton{ background: #3F6580;border-right:1px solid #304C60;border-bottom:1px solid #304C60;border-left:1px solid #BACDD9;border-top:1px solid #BACDD9; font-weight:bold; color:#FFFFFF; font-size:.8em; height:1.9em}
input.buttonblue:hover{color:#fbe249;}
a:link,a.named:visited{color:#3E6B8A}
a:hover{text-decoration:underline}
a{text-decoration:none}
a:visited,a:visited code{color:#917E9C}
-->
</style></head><body>
<table border="0" cellpadding="3" cellspacing="0" width="813">
<tbody><tr>
<td height="78" width="7">&nbsp;</td>
<td align="left" valign="top" width="794"><img src="file:/tmp/package-jdk/usr/lib64/jdk1.6.0_15/jre/lib/servicetag/jdk_header.png" height="63" width="783"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><p class="style1">感谢您安装 Sun Microsystems 的 <strong>Java Development Kit Version 6 Update 15</strong></p>
<p class="style1">注册产品后您将获得如下增值服务:</p>
<ul class="style1">
<li> 获得新版本、修补程序和更新的通知服务</li>
<li> 获得有关 Sun 开发者产品、服务和培训的优惠 </li>
<li> 获得对早期版本和文档的访问权限 </li>
</ul>
<p class="style1">产品注册是免费的,即快速又轻松!</p>
<blockquote>
<p class="style1">您需要具有 Sun 开发者网络或其他 Sun 联机帐户。如果您没有,系统将提示您创建一个。 </p>
<table width="708" border="0" cellspacing="0" cellpadding="3">
<tr valign="top">
<td width="126" height="35"><form name="form1" method="post" action="https://inventory.sun.com/RegistrationWeb/register/urn:st:39938c22-57ad-43b4-8953-b7833a960447?product=jdk&locale=zh_CN" enctype="text/xml">
<input type="hidden" name="servicetag_payload" value="<?xml version=%221.0%22 encoding=%22UTF-8%22 standalone=%22no%22?><registration_data version=%221.0%22><environment><hostname>midas64</hostname><hostId>00000000</hostId><osName>Linux</osName><osVersion>2.6.29.6</osVersion><osArchitecture>amd64</osArchitecture><systemModel>AuthenticAMD</systemModel><systemManufacturer>gigabyte technology co., ltd.</systemManufacturer><cpuManufacturer>AuthenticAMD</cpuManufacturer><serialNumber>serial number</serialNumber></environment><registry urn=%22urn:st:39938c22-57ad-43b4-8953-b7833a960447%22 version=%221.0%22><service_tag><instance_urn>urn:st:771d40cb-57e3-4969-b32a-769e55e82934</instance_urn><product_name>Java SE 6 Development Kit</product_name><product_version>1.6.0_15</product_version><product_urn>urn:uuid:b58ef9a8-5ae8-11db-a023-080020a9ed93</product_urn><product_parent_urn>urn:uuid:fdc90b21-018d-4cab-b866-612c7c119ed3</product_parent_urn><product_parent>Java Platform Standard Edition 6 (Java SE 6)</product_parent><product_defined_inst_id>id=1.6.0_15-b03 amd64,dir=/tmp/package-jdk/usr/lib64/jdk1.6.0_15/jre</product_defined_inst_id><product_vendor>Sun Microsystems</product_vendor><platform_arch>amd64</platform_arch><timestamp>2009-08-06 00:48:47 GMT</timestamp><container>global</container><source>jdk-6u15-fcs-bin-b03-linux-amd64-02_jul_2009.bin</source><installer_uid>-1</installer_uid></service_tag></registry></registration_data>">
<input type="submit" name="Submit"border="0" class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" value="注册我的 JDK">
</form></td>
<td width="570"><span class="style3">您需要连接到 Internet 来注册此 Sun 产品。 </span></td>
</tr>
</table>
</blockquote>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td bgcolor="#f1f7df">
<p class="style3">Sun Microsystems, Inc. 尊重您的隐私。我们会将您的个人信息用于通信和 Sun 联机帐户的管理、Sun 联机帐户访问的服务和应用程序以及用于使用 Sun 联机帐户注册的产品和系统。</p>
<p class="style3">有关注册过程中收集的数据以及这些数据的管理方式的更多信息,<br>请访问 <a href="http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html">http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html</a><br> <br>有关 Sun 隐私政策的更多信息,请访问 <a href="http://www.sun.com/privacy/">http://www.sun.com/privacy/</a> 或与 <a class="moz-txt-link-rfc2396E" href="mailto:privacy@sun.com">privacy@sun.com</a> 联系。</p></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

View file

@ -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:

View file

@ -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

View file

@ -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)))
{

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -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();

View file

@ -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/types.h>
// Linux kernel headers are documented to not compile
#define _S390_BITOPS_H
-#include <linux/inotify.h>
+#include <sys/inotify.h>
static inline int inotify_init (void)
{

View file

@ -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 <sys/inotify.h>
-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

View file

@ -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

View file

@ -0,0 +1,4 @@
VERSION=3.5.10
ARCH=x86_64
TARGET=x86_64
BUILD=opt1

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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();

View file

@ -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 <qt_windows.h>
#endif
-#include <mysql.h>
+#include <mysql/mysql.h>
#ifdef QT_PLUGIN
#define Q_EXPORT_SQLDRIVER_MYSQL

View file

@ -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

View file

@ -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=<something> 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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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 <alien@slackware.com>, 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 <alien@slackware.com>
# 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 <alien@slackware.com>
# * Initial build.
# 3.55-1: 08/Aug/2008 by Eric Hameleers <alien@slackware.com>
# * 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 <<EOINS >> $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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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 <alien@slackware.com>
# 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 <alien@slackware.com>
# 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 <alien@slackware.com>
# * Initial build.
# 0.3.8.1-2: 13/may/2009 by Eric Hameleers <alien@slackware.com>
# * 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 <<EOT >> $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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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/

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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 <alien@slackware.com>
# 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

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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:

View file

@ -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

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. 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/

204
extra/source/yasm/yasm.SlackBuild Executable file
View file

@ -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 <alien@slackware.com>
# 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 <alien@slackware.com>
# 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 <alien@slackware.com>
# * Initial build.
# 0.7.2-1: 08/dec/2008 by Eric Hameleers <alien@slackware.com>
# * Update.
# 0.8.0-1: 12/may/2009 by Eric Hameleers <alien@slackware.com>
# * 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

View file

@ -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.

132
isolinux/README.TXT Normal file
View file

@ -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.

21
isolinux/README_SPLIT.TXT Normal file
View file

@ -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

16
isolinux/f2.txt Normal file
View file

@ -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!"

3
isolinux/iso.sort Normal file
View file

@ -0,0 +1,3 @@
isolinux 100
isolinux/isolinux.bin 200
kernels 50

Some files were not shown because too many files have changed in this diff Show more