`MS 1106
`
`
`
`Path: bga.com!news.sprintlink.net!pipex!uunet!sparky!not-for-mail
`From: t...@bazooka.amb.org (Ti Kan)
`Newsgroups: comp.sources.x
`Subject: v22i142: xmcd_1.2 - X11/Motif CD Player, Part01/18
`Followup-To: comp.sources.d
`Date: 30 Nov 1994 20:23:31 -0600
`Organization: Sterling Software
`Lines: 2187
`Sender: ch...@sparky.sterling.com
`Approved: ch...@sterling.com
`Message-ID: <csx-v22i142=xmcd_1.2.202321@sparky.Sterling.COM>
`NNTP-Posting-Host: sparky.sterling.com
`X-Md4-Signature: 56a6b7d69055e2d4b0236662599a7172
`Submitted-by: t...@bazooka.amb.org (Ti Kan)
`Posting-number: Volume 22, Issue 142
`Archive-name: xmcd_1.2/part01
`Environment: X11, Audio, CD, OSF/Motif
`Supersedes: xmcd: Volume 22, Issue 14-25
`
`--------------------
`X M C D version 1.2
`--------------------
`by Ti Kan
`This is xmcd version 1.2, a package including xmcd, an X11/Motif-based
`CD player utility and cda, a command-line driven, non-graphical CD
`audio player.
`This software represents many months of development
`and fine tuning, as well as a beta test program involving many dedicated
`individuals around the world.
`
`The source code of this version of xmcd and cda supports the following
`operating systems environments:
`1. Apple A/UX (on Apple Macintosh)
`- A/UX version 3.0 or later
`(with devscsi module installed)
`2. Data General DG/UX (on DG Aviion)
`- DG/UX version 5.4R3.00 or later
`3. DEC OSF/1 (on DEC Alpha AXP)
`- DEC OSF/1 version 1.3 or later
`4. DEC Ultrix (on DECstation)
`- DEC Ultrix version 4.3 or later
`(with SCSI CAM installed)
`5. Hewlett Packard HP-UX (on HP Series 700 PA-RISC)
`- HP-UX Release 9.x or later
`6. IBM AIX (on IBM RS/6000)
`- AIX version 3.2.x
`7. Linux (on Intel x86 PC-compatible)
`- Linux SCSI kernel 0.99plxx or later with
`XFree86 (X11R5) + Motif 1.2
`8. SCO UNIX System V Release 3.2 (on Intel x86 PC-compatible)
`
`MS 1106 - Page 1
`
`
`
`- SCO Open Desktop Version 2.x (X11R4 or X11R5 server)
`- SCO Open Desktop Version 3.x
`- SCO UNIX 3.2v4.x with XFree86 (X11R5) + Motif 1.2
`9. Silicon Graphics IRIX (on SGI)
`- IRIX version 4.x
`- IRIX version 5.x
`10. Stratus FTX System V Release 4 (on Stratus PA-RISC)
`- FTX version 3.x
`11. SunOS (on Sun Sparc)
`- SunOS 4.1.x / Solaris 1.x
`12. SunOS System V Release 4 (on Sun Sparc)
`- SunOS 5.x / Solaris 2.x
`13. SunOS System V Release 4 (on Intel x86 PC-compatible)
`- SunOS 5.x / Solaris 2.x
`14. UNIX System V Release 4.0 (on Intel x86 PC-compatible)
`(Note: 4.0.3 or later recommended)
`- AT&T
`- Consensys
`- Dell
`- ESIX
`- ISC
`- Microport
`- Micro Station Technology
`- UHC
`- USL
`15. UNIX System V Release 4.0 (on Motorola 88k)
`- Motorola
`16. UNIX System V Release 4.2 (on Intel x86 PC-compatible)
`- Consensys
`- Information Foundation
`- Novell/Univel UnixWare 1.x
`- Onsite
`- USL
`17. UNIX System V Release 4.2MP (on Intel x86 PC-compatible)
`- Novell/USL UnixWare 2.x
`
`This release of xmcd features the following:
`- Standard functions: Stop, Play, Pause, Next/Previous Track,
`Next/Previous Index, Fast forward/rewind with audio sample,
`Eject and On/off.
`- Direct track access keypad.
`- Volume control.
`- Track/Index/Time display: Selectable to display elapsed time,
`remaining track time, or remaining disc time.
`- Status display: for current play status, A->B mode, program
`mode, CD database.
`- Shuffle (random) play function.
`- Repeat function.
`- Sample function: Play a few seconds of each track.
`- A->B function: Repeat from selectable point A and B.
`
`MS 1106 - Page 2
`
`
`
`- Eject inhibit function: To prevent someone from ejecting the
`disc by pressing the button on the drive.
`- Track Program function: Play tracks in custom order.
`- CD database function: Allows you to store CD title/track titles
`in database, and associate each disc with a play program.
`Displays the current playing disc title/track information.
`In addition, you can enter and display arbitrary text associated
`with the disc or each track, such as band information, lyrics,
`etc.
`- CD database entry send: Contribute CD database entries to
`a central archive via Internet electronic mail.
`- Main window button face labels can be configured to display
`pictorial symbols, or text with hotkey mnemonics.
`- The complete application can be operated via the keyboard with
`full support for keyboard traversal and hotkeys.
`- All labels and messages can be customized to non-English
`languages via X resources in the .Xdefaults file.
`- All colors and many other functionality are user-customizable
`using X resource settings.
`- On-line help information.
`- Attractive, intuitive-to-use Motif user interface.
`- Device-specific configuration files to make xmcd adaptible
`to various brands of CD-ROM drives.
`
`This release of xmcd and cda should work with the following CD-ROM
`drives:
`Apple CD SC+, CD-150, CD-300, CD-300i
`Chinon CDS-431, CDX-431, CDS-435, CDX-435, CDS-535, CDX-535
`Compaq CDU-561, CR-503BCQ
`DEC RRD42
`Hitachi CDR-1650S, CDR-1750S, CDR-1950S, CDR-3650, CDR-3750,
`CDR-6750
`IBM 7210-001
`NEC CDR-72, CDR-74, CDR-77, CDR-80, CDR-82, CDR-84, CDR-38,
`CDR-74-1, CDR-84-1, CDR-400 (Multispin 3X),
`CDR-500 (Multispin 3X), CDR-510 (Multispin 3X),
`CDR-600 (Multispin 3X), CDR-900 (4XPro)
`Pioneer DRM-600, DRM-600A, DRM-610, DRM-602X, DRM-604X,
`DRM-1804X
`Plextor/Texel DM-3024, DM-5024, DM-3028, DM-5028, 4Plex
`Procom CDT4-3X, CDT4-DS, CDT4-MX, CDT7-3X, CDT7-DS, DSP-DR0020,
`ICD-MX, MCD-DS, MCDN-3X, SICD-DS, SICDN-3X, SXCD-DS,
`SXCDN-3X
`Sony CDU-541, CDU-561, CDU-6111, CDU-6211, CDU-7211, CDU-7811,
`CDU-8002, CDU-8003, CDU-8003A, CDU-8012
`Sun CD-ROM
`Toshiba XM-3101, XM-3201, XM-3301, XM-3401, XM-4101, XM-8100
`Other SCSI-2 compliant CD-ROM drives
`
`The source code release of xmcd/cda version 1.2 is also available via
`Internet anonymous FTP. Location:
`(Instructions)
`ftp.x.org:/contrib/applications/xmcd/xmcd-1.2.README
`(gzip'd tar archive)
`ftp.x.org:/contrib/applications/xmcd/xmcd-1.2.tar.gz
`An xmcd CD database is also available via FTP:
`
`MS 1106 - Page 3
`
`
`
`(Instructions)
`ftp.x.org:/contrib/applications/xmcd/xmcd-cddb.README
`(gzip'd tar archive)
`ftp.x.org:/contrib/applications/xmcd/xmcd-cddb.tar.gz
`Both packages require the "gunzip" (GNU unzip) utility to uncompress.
`The source code to gzip/gunzip can be found on various FTP sites
`(such as prep.ai.mit.edu:/pub/gnu).
`This CD database is periodically updated with more entries, and you are
`encouraged to contribute to this database by using the "Send" feature
`in xmcd.
`Binary releases of xmcd and cda for certain OS environments are also
`available from the author.
`Please write to "t...@amb.org" for more
`information.
`
`Changes since previous release:
`CD-ROM drive support changes:
`- Fixed to really work with the Chinon CD-43x drives.
`- Add support for the Plextor 4Plex and the NEC CDR-900 (4xPro).
`OS Support changes:
`- Add support for Apple A/UX, Data General DG/UX and Stratus
`FTX SVR4/PA-RISC platforms.
`- Enhancements to the DEC OSF/1 and Ultrix error handling.
`- On Solaris 2.x platforms, added support for the -c, -X and
`-o options for full compatibility with the Solaris Volume
`Manager auto-start feature using the action_workman.so
`program.
`Misc changes:
`- Major source code tree re-organization into subdirectories.
`- "Makefile.std" files are added to the source code distribution.
`These can be used to build the source code on systems that do
`not have imake.
`- Added a new utility "cda" to the distribution. This is a
`command-line driven (non-X) audio CD player. The command
`interface makes it ideal as a script-driven player.
`- A new "Send" button is added to the xmcd CDDB/Program window.
`This allows users to send the CD database entry of the currently
`loaded CD to the xmcd CD database archive site.
`- The "Play Program" button in the CDDB/Program window has been
`deleted. The main window "Play/Pause" button is used to
`start program playback instead. This change also involves a
`few other minor program-mode related behavioral changes.
`- Many common configuration parameters have been moved from
`XMcd.ad into the new common.cfg file.
`- The device-specific configuration file has been renamed from
`dev.config to device.cfg.
`- Added two new device-specific parameters that can be set to
`suit user preferences: "playOnLoad" determines whether xmcd
`will auto-play a CD after loading, and "ejectOnDone" determines
`whether xmcd will automatically eject the CD after it's done
`playing.
`- The CD now does not spin down between tracks when using the
`prev-track or next-track buttons in shuffle and program modes.
`- Xmcd (and cda) no longer silently ignore the error if the
`
`MS 1106 - Page 4
`
`
`
`common or device-specific configuration file cannot be opened.
`- Fixed a few obscure problems involving the use of various
`xmcd controls when the player is in shuffle or program mode
`and the playback is paused.
`- If a CD has multiple links in the database, xmcd no longer
`displays duplicate lines in the Link Selector list menu.
`Also, the list menu sorting is now case-insensitive.
`- All window sizes have been reduced to conserve screen space.
`- The XMcd*mainShowTrackTitle, XMcd*mainShowDiscTitle and
`XMcd*cddbTimeShowLength X resources have been removed. The
`built-in behavior is equivalent to setting these to True.
`- The install.sh and configure.sh scripts now have error message
`logging capability.
`- A new makeshar.sh script is added to the distribution that
`makes shar format xmcd source code releases.
`- Security improvements: the uid and gid settings are forced to
`their original settings regardless of whether SETUID_ROOT is
`defined.
`- Other enhancements and cleanups.
`
`--------- Part 1 starts here ---------
`#! /bin/sh
`# This is a shell archive. Remove anything before this line, then unpack
`# it by saving it into a file and typing "sh file". To overwrite existing
`# files, type "sh file -c". You can also feed this as standard input via
`# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
`# will see the following message at the end:
`#
`"End of archive 1 (of 18)."
`# Contents: common.d xmcd.d Imakefile Makefile.std BUGS COPYING
`#
`INSTALL CHANGES install.sh make.inc common.d/Imakefile
`#
`common.d/Makefile.std xmcd.d/Makefile.std
`# Wrapped by ti@bazooka on Thu Jul 28 01:12:20 1994
`PATH=/bin:/usr/bin:/usr/ucb ; export PATH
`if test ! -d 'common.d' ; then
`echo shar: Creating directory \"'common.d'\"
`mkdir 'common.d'
`fi
`if test ! -d 'xmcd.d' ; then
`echo shar: Creating directory \"'xmcd.d'\"
`mkdir 'xmcd.d'
`fi
`if test -f 'Imakefile' -a "${1}" != "-c" ; then
`echo shar: Will not clobber existing file \"'Imakefile'\"
`else
`echo shar: Extracting \"'Imakefile'\" \(1509 characters\)
`sed "s/^X//" >'Imakefile' <<'END_OF_FILE'
`X/*
`X * @(#)Imakefile 3.5 94/06/25
`X *
`X * Top-level Imakefile for xmcd, cda and libdi
`X *
`X *
`xmcd - Motif(tm) CD Audio Player
`X *
`cda
`- Command-line CD Audio Player
`X *
`libdi - CD Audio Player Device Interface Library
`X *
`X *
`Copyright (C) 1994 Ti Kan
`X *
`E-mail: t...@amb.org
`X *
`X *
`This program is free software; you can redistribute it and/or modify
`
`MS 1106 - Page 5
`
`
`
`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.
`
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X *
`X */
`
`XXX
`
`/*
`X * Source subdirectory management
`X */
`X#define IHaveSubdirs
`XSUBDIRS=common.d \
`X
`libdi.d \
`X
`xmcd.d \
`X
`cda.d \
`X
`wm2xmcd.d
`
`XXX
`
`/*
`X * Build rule for subdirectories
`X */
`X#define PassCDebugFlags
`XMakeSubdirs($(SUBDIRS))
`XDependSubdirs($(SUBDIRS))
`
`XXX
`
`/*
`X * Custom install rule
`X */
`X#if defined(ultrix) || defined(__ultrix)
`XSHELL=/bin/sh5
`X#elif defined(XmacIIServer)
`XSHELL=/bin/ksh
`X#else
`XSHELL=/bin/sh
`X#endif
`install::
`X
`@BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) MANFILE=ManDir/xmcd.ManSuffix \
`X
`$(SHELL) ./install.sh -n
`
`XX
`
`XXE
`
`ND_OF_FILE
`if test 1509 -ne `wc -c <'Imakefile'`; then
`echo shar: \"'Imakefile'\" unpacked with wrong size!
`fi
`# end of 'Imakefile'
`fi
`if test -f 'Makefile.std' -a "${1}" != "-c" ; then
`echo shar: Will not clobber existing file \"'Makefile.std'\"
`else
`echo shar: Extracting \"'Makefile.std'\" \(1294 characters\)
`
`MS 1106 - Page 6
`
`
`
`sed "s/^X//" >'Makefile.std' <<'END_OF_FILE'
`X#
`X#
`@(#)Makefile.std
`3.8 94/06/16
`X#
`X#
`Top-level Makefile for xmcd, cda and libdi
`X#
`X#
`xmcd - Motif(tm) CD Audio Player
`X#
`cda
`- Command-line CD Audio Player
`X#
`libdi - CD Audio Player Device Interface Library
`X#
`X#
`NOTE: You should use this only if you don't have imake!
`X#
`X#
`Copyright (C) 1994 Ti Kan
`X#
`E-mail: t...@amb.org
`X#
`X#
`This program is free software; you can redistribute it and/or modify
`X#
`it under the terms of the GNU General Public License as published by
`X#
`the Free Software Foundation; either version 2 of the License, or
`X#
`(at your option) any later version.
`X#
`X#
`This program is distributed in the hope that it will be useful,
`X#
`but WITHOUT ANY WARRANTY; without even the implied warranty of
`X#
`MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
`X#
`GNU General Public License for more details.
`X#
`X#
`You should have received a copy of the GNU General Public License
`X#
`along with this program; if not, write to the Free Software
`X#
`Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
`X#
`include make.inc
`SUBDIRS=common.d \
`X
`libdi.d \
`X
`xmcd.d \
`X
`cda.d \
`X
`wm2xmcd.d
`all:
`X
`X
`X
`X
`
`for i in $(SUBDIRS) ;\
`do \
`(cd $$i; $(MAKE) $@) ;\
`done
`
`XX
`
`XX
`
`XX
`
`XXX
`
`install:
`X
`@BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) MANFILE=$(MANDIR)/xmcd$(MANSUF) $(SHELL)
`./install.sh -n
`
`XXE
`
`ND_OF_FILE
`if test 1294 -ne `wc -c <'Makefile.std'`; then
`echo shar: \"'Makefile.std'\" unpacked with wrong size!
`fi
`# end of 'Makefile.std'
`fi
`if test -f 'BUGS' -a "${1}" != "-c" ; then
`echo shar: Will not clobber existing file \"'BUGS'\"
`else
`echo shar: Extracting \"'BUGS'\" \(1048 characters\)
`sed "s/^X//" >'BUGS' <<'END_OF_FILE'
`
`MS 1106 - Page 7
`
`
`
`X
`X
`X
`
`X#
`X# @(#)BUGS 3.1 94/06/24
`X#
`XXmcd (Motif(tm) CD Audio Player) by Ti Kan
`X------------------------------------------
`Known bugs/limitations
`X----------------------
`1. Description:
`X
`Clicking the mouse button #3 on the volume control slider thumb
`X
`will not bring up the help window. One must click on the numeric
`X
`label area instead.
`Severity/Analysis:
`Low severity. This is a limitation of the Motif scale widget.
`Solution/Workaround:
`Use the numeric label area to bring up the help window for the volume
`X
`control.
`X
`2. Description:
`X
`When clicking mouse button #3 on the volume control numeric label
`X
`area, sometimes the help window does not appear.
`Severity/Analysis:
`Low severity. The problem occurs when the current keyboard input
`focus is on the volume control slider. This is a limitation of
`the Motif scale widget.
`Solution/Workaround:
`Set the keyboard input focus on some other widget first (such as by
`X
`operating another control or button) before invoking the volume
`X
`control help window.
`X
`ND_OF_FILE
`if test 1048 -ne `wc -c <'BUGS'`; then
`echo shar: \"'BUGS'\" unpacked with wrong size!
`fi
`# end of 'BUGS'
`fi
`if test -f 'COPYING' -a "${1}" != "-c" ; then
`echo shar: Will not clobber existing file \"'COPYING'\"
`else
`echo shar: Extracting \"'COPYING'\" \(17982 characters\)
`sed "s/^X//" >'COPYING' <<'END_OF_FILE'
`X
`GNU GENERAL PUBLIC LICENSE
`X
`Version 2, June 1991
`Copyright (C) 1989, 1991 Free Software Foundation, Inc.
`X
`675 Mass Ave, Cambridge, MA 02139, USA
`X Everyone is permitted to copy and distribute verbatim copies
`X of this license document, but changing it is not allowed.
`Preamble
`The licenses for most software are designed to take away your
`Xfreedom to share and change it. By contrast, the GNU General Public
`XLicense is intended to guarantee your freedom to share and change free
`Xsoftware--to make sure the software is free for all its users. This
`XGeneral Public License applies to most of the Free Software
`
`XX
`
`XX
`
`XE
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`X
`
`XX
`
`XX
`
`MS 1106 - Page 8
`
`
`
`XFoundation's software and to any other program whose authors commit to
`Xusing it. (Some other Free Software Foundation software is covered by
`Xthe GNU Library General Public License instead.) You can apply it to
`Xyour programs, too.
`When we speak of free software, we are referring to freedom, not
`Xprice. Our General Public Licenses are designed to make sure that you
`Xhave the freedom to distribute copies of free software (and charge for
`Xthis service if you wish), that you receive source code or can get it
`Xif you want it, that you can change the software or use pieces of it
`Xin new free programs; and that you know you can do these things.
`To protect your rights, we need to make restrictions that forbid
`Xanyone to deny you these rights or to ask you to surrender the rights.
`XThese restrictions translate to certain responsibilities for you if you
`Xdistribute copies of the software, or if you modify it.
`For example, if you distribute copies of such a program, whether
`Xgratis or for a fee, you must give the recipients all the rights that
`Xyou have. You must make sure that they, too, receive or can get the
`Xsource code. And you must show them these terms so they know their
`Xrights.
`We protect your rights with two steps: (1) copyright the software, and
`X(2) offer you this license which gives you legal permission to copy,
`Xdistribute and/or modify the software.
`Also, for each author's protection and ours, we want to make certain
`Xthat everyone understands that there is no warranty for this free
`Xsoftware. If the software is modified by someone else and passed on, we
`Xwant its recipients to know that what they have is not the original, so
`Xthat any problems introduced by others will not reflect on the original
`Xauthors' reputations.
`Finally, any free program is threatened constantly by software
`Xpatents. We wish to avoid the danger that redistributors of a free
`Xprogram will individually obtain patent licenses, in effect making the
`Xprogram proprietary. To prevent this, we have made it clear that any
`Xpatent must be licensed for everyone's free use or not licensed at all.
`The precise terms and conditions for copying, distribution and
`Xmodification follow.
`X
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`MS 1106 - Page 9
`
`
`
`GNU GENERAL PUBLIC LICENSE
`TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
`0. This License applies to any program or other work which contains
`Xa notice placed by the copyright holder saying it may be distributed
`Xunder the terms of this General Public License. The "Program", below,
`Xrefers to any such program or work, and a "work based on the Program"
`Xmeans either the Program or any derivative work under copyright law:
`Xthat is to say, a work containing the Program or a portion of it,
`Xeither verbatim or with modifications and/or translated into another
`Xlanguage. (Hereinafter, translation is included without limitation in
`Xthe term "modification".) Each licensee is addressed as "you".
`Activities other than copying, distribution and modification are not
`Xcovered by this License; they are outside its scope. The act of
`Xrunning the Program is not restricted, and the output from the Program
`Xis covered only if its contents constitute a work based on the
`XProgram (independent of having been made by running the Program).
`XWhether that is true depends on what the Program does.
`1. You may copy and distribute verbatim copies of the Program's
`Xsource code as you receive it, in any medium, provided that you
`Xconspicuously and appropriately publish on each copy an appropriate
`Xcopyright notice and disclaimer of warranty; keep intact all the
`Xnotices that refer to this License and to the absence of any warranty;
`Xand give any other recipients of the Program a copy of this License
`Xalong with the Program.
`You may charge a fee for the physical act of transferring a copy, and
`Xyou 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
`Xof it, thus forming a work based on the Program, and copy and
`Xdistribute such modifications or work under the terms of Section 1
`Xabove, 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.)
`
`X
`X
`X
`
`XX
`
`X
`X
`X
`X
`X
`X
`X
`X
`X
`X
`
`X
`X
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`X
`
`XX
`
`MS 1106 - Page 10
`
`
`
`XThese requirements apply to the modified work as a whole. If
`Xidentifiable sections of that work are not derived from the Program,
`Xand can be reasonably considered independent and separate works in
`Xthemselves, then this License, and its terms, do not apply to those
`Xsections when you distribute them as separate works. But when you
`Xdistribute the same sections as part of a whole which is a work based
`Xon the Program, the distribution of the whole must be on the terms of
`Xthis License, whose permissions for other licensees extend to the
`Xentire 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
`Xyour rights to work written entirely by you; rather, the intent is to
`Xexercise the right to control the distribution of derivative or
`Xcollective works based on the Program.
`In addition, mere aggregation of another work not based on the Program
`Xwith the Program (or with a work based on the Program) on a volume of
`Xa storage or distribution medium does not bring the other work under
`Xthe scope of this License.
`3. You may copy and distribute the Program (or a work based on it,
`Xunder Section 2) in object code or executable form under the terms of
`XSections 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
`X
`allowed only for noncommercial distribution and only if you
`X
`received the program in object code or executable form with such
`X
`an offer, in accord with Subsection b above.)
`X
`The source code for a work means the preferred form of the work for
`Xmaking modifications to it. For an executable work, complete source
`Xcode means all the source code for all modules it contains, plus any
`Xassociated interface definition files, plus the scripts used to
`Xcontrol compilation and installation of the executable. However, as a
`Xspecial exception, the source code distributed need not include
`Xanything that is normally distributed (in either source or binary
`Xform) with the major components (compiler, kernel, and so on) of the
`Xoperating system on which the executable runs, unless that component
`Xitself accompanies the executable.
`If distribution of executable or object code is made by offering
`Xaccess to copy from a designated place, then offering equivalent
`Xaccess to copy the source code from the same place counts as
`Xdistribution of the source code, even though third parties are not
`Xcompelled to copy the source along with the object code.
`X
`
`X
`X
`X
`X
`X
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`X
`X
`
`MS 1106 - Page 11
`
`
`
`X 4. You may not copy, modify, sublicense, or distribute the Program
`Xexcept as expressly provided under this License. Any attempt
`Xotherwise to copy, modify, sublicense or distribute the Program is
`Xvoid, and will automatically terminate your rights under this License.
`XHowever, parties who have received copies, or rights, from you under
`Xthis License will not have their licenses terminated so long as such
`Xparties remain in full compliance.
`5. You are not required to accept this License, since you have not
`Xsigned it. However, nothing else grants you permission to modify or
`Xdistribute the Program or its derivative works. These actions are
`Xprohibited by law if you do not accept this License. Therefore, by
`Xmodifying or distributing the Program (or any work based on the
`XProgram), you indicate your acceptance of this License to do so, and
`Xall its terms and conditions for copying, distributing or modifying
`Xthe Program or works based on it.
`6. Each time you redistribute the Program (or any work based on the
`XProgram), the recipient automatically receives a license from the
`Xoriginal licensor to copy, distribute or modify the Program subject to
`Xthese terms and conditions. You may not impose any further
`Xrestrictions on the recipients' exercise of the rights granted herein.
`XYou are not responsible for enforcing compliance by third parties to
`Xthis License.
`7. If, as a consequence of a court judgment or allegation of patent
`Xinfringement or for any other reason (not limited to patent issues),
`Xconditions are imposed on you (whether by court order, agreement or
`Xotherwise) that contradict the conditions of this License, they do not
`Xexcuse you from the conditions of this License. If you cannot
`Xdistribute so as to satisfy simultaneously your obligations under this
`XLicense and any other pertinent obligations, then as a consequence you
`Xmay not distribute the Program at all. For example, if a patent
`Xlicense would not permit royalty-free redistribution of the Program by
`Xall those who receive copies directly or indirectly through you, then
`Xthe only way you could satisfy both it and this License would be to
`Xrefrain entirely from distribution of the Program.
`If any portion of this section is held invalid or unenforceable under
`Xany particular circumstance, the balance of the section is intended to
`Xapply and the section as a whole is intended to apply in other
`Xcircumstances.
`It is not the purpose of this section to induce you to infringe any
`Xpatents or other property right claims or to contest validity of any
`Xsuch claims; this section has the sole purpose of protecting the
`Xintegrity of the free software distribution system, which is
`Ximplemented by public license practices. Many people have made
`Xgenerous contributions to the wide range of software distributed
`Xthrough that system in reliance on consistent application of that
`Xsystem; it is up to the author/donor to decide if he or she is willing
`Xto distribute software through any other system and a licensee cannot
`Ximpose that choice.
`This section is intended to make thoroughly clear what is believed to
`Xbe a consequence of the rest of this License.
`X
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`MS 1106 - Page 12
`
`
`
`X 8. If the distribution and/or use of the Program is restricted in
`Xcertain countries either by patents or by copyrighted interfaces, the
`Xoriginal copyright holder who places the Program under this License
`Xmay add an explicit geographical distribution limitation excluding
`Xthose countries, so that distribution is permitted only in or among
`Xcountries not thus excluded. In such case, this License incorporates
`Xthe limitation as if written in the body of this License.
`9. The Free Software Foundation may publish revised and/or new versions
`Xof the General Public License from time to time. Such new versions will
`Xbe similar in spirit to the present version, but may differ in detail to
`Xaddress new problems or concerns.
`Each version is given a distinguishing version number. If the Program
`Xspecifies a version number of this License which applies to it and "any
`Xlater version", you have the option of following the terms and conditions
`Xeither of that version or of any later version published by the Free
`XSoftware Foundation. If the Program does not specify a version number of
`Xthis License, you may choose any version ever published by the Free Software
`XFoundation.
`10. If you wish to incorporate parts of the Program into other free
`Xprograms whose distribution conditions are different, write to the author
`Xto ask for permission. For software which is copyrighted by the Free
`XSoftware Foundation, write to the Free Software Foundation; we sometimes
`Xmake exceptions for this. Our decision will be guided by the two goals
`Xof preserving the free status of all derivatives of our free software and
`Xof promoting the sharing and reuse of software generally.
`NO WARRANTY
`11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
`XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
`XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
`XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
`XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
`XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
`XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
`XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
`XREPAIR OR CORRECTION.
`12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
`XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
`XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
`XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
`XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
`XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
`XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
`XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
`XPOSSIBILITY OF SUCH DAMAGES.
`END OF TERMS AND CONDITIONS
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`XX
`
`X
`
`MS 1106 - Page 13
`
`
`
`X
`
`XX
`
`XX
`
`XX
`
`X
`
`XX
`
`X
`X
`X
`
`Appendix: How to Apply These Terms to Your New Programs
`If you develop a new program, and you want it to be of the greatest
`Xpossible use to the public, the best way to achieve this is to make it
`Xfree software which everyone can redistribute and change under these terms.
`To do so, attach the following notices to the program. It is safest
`Xto attach them to the start of each source file to most effectively
`Xconvey the exclusion of warranty; and each file should have at least
`Xthe "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
`X
`Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
`X
`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
`Xwhen 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'.
`X
`This is free software, and you are welcome to redistribute it
`X
`under certain conditions; type `show c' for details.
`X
`The hypothetical commands `show w' and `show c' should show the appropriate
`Xparts of the General Public License.