1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468
|
@(#)INSTALL 6.60 00/01/31
INSTALLATION INSTRUCTIONS
-------------------------
This file contains instructions relevant to you if you are going to
build xmcd/cda from the source code. If you have a pre-compiled binary
bundle verion of xmcd/cda, simply follow the instructions located in the
xmcdbin.README file that comes with it for installation.
Please read through the following notes before attempting to compile and
install xmcd and cda. If you encounter a problem, read the FAQ file.
GENERAL COMPILE NOTES
---------------------
You must have an ANSI C compatible compilation environment. All C
source code in this package are written in ANSI C syntax.
You must have X11R4/Motif 1.1 or later to build xmcd. Xmcd has been
successfully built under X11R4 with Motif 1.1, and X11R5 or X11R6 with
Motif 1.2 or Motif 2.0.
Motif is available from various third party vendors for those OS
platforms that do not come standard with the libraries and headers. If
you cannot find a commercial Motif product for your platform you can
also build the Motif library from the OSF sources (if you have the
source license).
Xmcd can also be built with the LessTif (freely available Motif clone)
package. LessTif is an ideal choice for xmcd because it is under
the GNU Library General Public license and embodies the same Open Source
spirit as xmcd. If you don't have "real" OSF/Motif, you may want
to give LessTif a try. Visit their web site at:
http://www.lesstif.org
For best results, LessTif version 0.87.0 or later is strongly recommended.
In addition to Motif, xmcd requires the Xt Intrinsics and X11 libraries
(libXt and libX11) to compile. On systems that have multiple versions
of X11 installed, be sure to use matching sets of X11 header files with
the libraries.
If you do not have X11 or Motif, you can still build cda. Edit the top
level Makefile.std and remove xmcd_d from the SUBDIRS definition, and
follow the instructions below for systems that do not have imake.
The cda utility requires named pipe (FIFO) support in your OS
platform. If your system does not support named pipes, you must edit
the top level Imakefile or Makefile.std and remove the cda_d directory
from the SUBDIRS definition.
If your site runs the SOCKS-based security firewall and requires clients
to be SOCKSified in order to access remote Internet hosts, see the
comments in cddb_d/Imakefile and util_d/Imakefile. Also, you must edit
the xmcd_d/Makefile, cda_d/Makefile and util_d/Makefile to link with the
socks library. For further information please refer to the
documentation in the SOCKS.CSTC package.
PLATFORM-SPECIFIC COMPILE NOTES
-------------------------------
ALL PLATFORMS:
IF YOU USE THE GNU C COMPILER (gcc), DO NOT USE THE -ansi OPTION.
The -ansi option may cause some of the system's header files to
exclude definitions that are needed to successfully compile xmcd
and cda.
Apple A/UX:
Use gcc to compile the xmcd distribution. You may have to add
an explicit -DmacII to CFLAGS if your C pre-processor does not
already define this.
You are advised to make certain that xmkmf uses the X11R5 config
files (e.g., /usr/local/X11R5/lib/config). The default config
files in Apple's distribution of X11R4 (/usr/lib/X11/config) will
require extensive hand-editing of the resulting Makefiles (to use
gcc instead of cc, shared-libs are not available, etc.).
BSDI BSD/OS:
See the PLATFORM file for operating system version requirements.
You must ensure that _ANSI_SOURCE and _POSIX_SOURCE are _not_
defined.
The visual mode in cda is disabled by default for BSD/OS due to
the lack of a SYSV-compatible curses library. If you have added
the ncurses package to your system then you should remove the
-DNOVISUAL from your cda_d/Makefile to enable visual mode
functionality.
Data General DG/UX:
You should use the instructions below for systems without imake
to build this distribution, since DG/UX does not provide imake.
A makedgux.inc is provided, which you should rename as make.inc.
Digital UNIX (OSF/1):
See the PLATFORM file for minimum operating system version
requirements.
On Digital UNIX 4.0 systems, the cc compiler imposes stricter
ANSI C conformance and the /usr/include/io/cam/scsi_all.h header
file on the system may not compile correctly. If you encounter
a compilation error in this file, you can fix it by changing
all structure bitfields in this file from u_char type to u_int.
Log in as root and type the following commands to accomplish
this (please substitute all occurrences of \t in the sed script
below with actual tab characters):
cd /usr/include/io/cam
mv scsi_all.h scsi_all.h.orig
sed 's/u_char\(.*:[ \t]*[0-9]*[ \t]*[;,].*\)/u_int\1/' \
scsi_all.h.orig > scsi_all.h
Digital Ultrix:
See the PLATFORM file for minimum operating system version
requirements. Also, check the top level Makefile that's generated
by imake. There should be a SHELL=/bin/sh5 line. If there are
any other SHELL= lines they should be removed.
Digital OpenVMS:
See the INSTALL.VMS file for information about the compilation,
installation and use of xmcd on the Digital OpenVMS platform.
FreeBSD:
See the PLATFORM file for minimum operating system version
requirements.
Hewlett Packard HP-UX:
You may have to add an explicit -D__hpux to CFLAGS if your C
pre-processor does not already define this. If the HP cc compiler
is used, you must enable ANSI C mode (using the -Ae or -Aa options,
depending on your HP-UX release). You may also have to define
-D_HPUX_SOURCE to successfully compile xmcd. See your cc(1) online
manual entry for details.
On some versions of HP-UX, the cddbcmd and wm2xmcd utilities don't
work when compiled with optimization. The symptom is that both
of these utilities simply prints out "00000002" then exits. To work
around this, remove the compiler -O option from the makefile.
Special notes for the m68k systems: Don't use the +O3 option, use
the +02 option instead.
Due to a bug in the HP-UX Bourne Shell (/bin/sh), the install.sh script
will fail on some platforms. The Korn Shell (/bin/ksh) should
be used instead. If you don't have imake, set the SHELL= line in your
make.inc file to SHELL=/bin/ksh before compiling and installing xmcd.
IBM AIX:
You may have to add an explicit -D_AIX to CFLAGS if your C
pre-processor does not already define this. Also, you must ensure
that the _BSD flag is _not_ defined.
If you are using IDE CD-ROM drives, you must define -DAIX_IDE in
the libdi_d directory to enable the AIX IDE ioctl method support
in xmcd and cda. See the comments in the libdi_d/Imakefile.
Linux:
Xmcd requires the C pre-processor flag -Dlinux to be set.
NetBSD:
See the PLATFORM file for minimum operating system version
requirements.
The visual mode in cda is disabled by default for NetBSD due to
the lack of a SYSV-compatible curses library. If you have added
the ncurses package to your system then you should remove the
-DNOVISUAL from your cda_d/Makefile to enable visual mode
functionality.
If you are running an older NetBSD version (prior to 1,2G or so),
you must add -DNETBSD_OLDIOC in the libdi_d directory to compile.
See the comments in the libdi_d/Imakefile. This is needed because
old NetBSD systems have an incompatible <sys/cdio.h> header file.
OpenBSD:
See the PLATFORM file for minimum operating system version
requirements.
QNX 4.2x:
Make certain __QNX__ is defined from the top level on down;
The Watcom C 9.5 and 10.6 compilers do this for you. Depending on
your development environment, you may have to disable the visual mode
for cda, which relies on the ncurses library. To do so, add
-DNOVISUAL to your cda_d/Makefile.
SCO Open Desktop/SCO UNIX:
Xmcd requires the C pre-processor flag -Dsco (lower-case) to be
set. This is done by default on systems running the ODT
Development System. If you are using XFree86, you must modify the
appropriate "OsDefines" line in your
/usr/X11R*/lib/X11/config/x386.cf file to include -Dsco. Also, if
your imake configuration isn't fixed, you may need to explicitly
add -lintl and -lPW to your xmcd_d/Makefile in order to resolve
the regcmp(), regex() and alloca() routines.
Despite the fact that SCO UNIX has the seteuid(S) system call,
do NOT add -DHAS_SETEUID to the xmcd_d/Imakefile because SCO's
seteuid call doesn't behave the way it's supposed to.
Sony NEWS-OS:
You should use the GNU C compiler (gcc) instead of the cc compiler.
This is because the standard C compiler (cc) under Sony NEWS-OS is
not ANSI compliant. Also, you must add -Dsony_news to CFLAGS
if your C pre-processor does not already define it.
The visual mode in cda is disabled by default for NEWS-OS due to
the lack of a SYSV-compatible curses library. You should compile
all files in cda_d with -DNOVISUAL.
Stratus FTX SVR4:
This release of xmcd/cda only supports the HP PA-RISC based
Stratus fault-tolerant servers. Earlier Intel i860 and
Motorola m68k based Stratus systems are not supported.
See the special notes in the FAQ file about setuid programs
and SVR4 dynamic libraries.
SunOS 4.1.x/Solaris 1.x:
You must use the GNU C compiler (gcc) instead of the cc compiler.
This is because the standard C compiler (cc) under SunOS 4.1.x is
not ANSI compliant.
You may encounter compiler warning messages when compiling the
cda utility. These are due to redundant definition of several
symbols between SunOS's <sys/ioctl.h> and <sys/termios.h> files.
You can ignore the warnings, as they are innocuous.
SunOS 5.x/Solaris 2.x and later:
Xmcd requires the C pre-processor defines -DSVR4 and -Dsun.
These should be defined by default. Xmcd also requires -Di386
on Intel x86 platforms.
You may need to add -lsocket to xmcd_d/Makefile and cda_d/Makefile
in order to resolve some external symbols. These include socket()
and connect().
Likewise, you may need to add -lgen to xmcd_d/Makefile in order to
resolve some external symbols that Motif requires. These include
regcmp() and regex().
If you are using the Sun cc compiler, you may need to edit all
the imake-generated xmcd Makefiles to remove the -Xc option from
the cc compiler command line. Otherwise this will mask out
some needed definitions in various header files and cause compile
errors.
Be sure that /usr/ccs/bin is before /usr/ucb in your PATH
environment variable, to get the appropriate cc compiler.
This ensures that the proper SVR4 header files are used to compile
the distribution.
On Solaris 2.2 or later, you may wish to add -DSOL2_RSENSE to
the libdi_d/Makefile to enable support for the auto request-sense
feature.
See the special notes in the FAQ file about setuid programs and
SVR4 dynamic libraries.
UNIX SVR4 and SVR5:
You may need to add -lsocket to xmcd_d/Makefile and cda_d/Makefile
in order to resolve some external symbols. These include socket()
and connect().
Likewise, you may need to add -lgen to xmcd_d/Makefile in order to
resolve some external symbols that Motif requires. These include
regcmp() and regex().
Be sure that /usr/ccs/bin is before /usr/ucb in your PATH
environment variable, to get the appropriate cc compiler.
This ensures that the proper SVR4 header files are used to compile
the distribution.
See the special notes in the FAQ file about setuid programs and
SVR4 dynamic libraries.
XMCD DEMO MODE
--------------
You must compile on one of the supported UNIX OS flavors (See the
PLATFORM file for a list of the supported OS environments) to get a
real functional xmcd. You can compile on other platforms, but you
will end up with a "demo" version of xmcd.
You can also force the build of the demo version by specifying
-DDEMO_ONLY when compiling in the libdi_d directory. See the
comments in libdi_d/Imakefile.
It should be possible to build the demo-only xmcd on any platform
that supports compiling a Motif application. Minor porting work
may be required on systems that aren't POSIX-compliant.
The "demo" version does not actually control or respond to a real
CD-ROM device. Instead, a built-in CD-ROM simulater is used,
which allows you to play with the look-and-feel of xmcd/cda and try
the behavior of all the controls and functions. The demo mode
simulates an 8-disc changer with the same CD loaded in all slots.
If you are running the demo version of xmcd/cda, the following message
will be displayed on stderr when you start the program:
CD-ROM simulator version x.xx (pid=xxxxx) starting...
BUILD INSTRUCTIONS
------------------
Digital OpenVMS users please see the INSTALL.VMS file for information.
Users of other systems please use the instructions below.
If your system has imake (most supported systems do), use these
steps to build xmcd and cda:
1. Take a look at the Imakefiles in various directories, read
the comments, and make changes as appropriate. Pay special
attention to the comments in xmcd_d/Imakefile pertaining to
the LOCAL_LIBRARIES=XmClientLibs line. You may need to change
it in order to successfully compile xmcd.
2. Change to the xmcd top level source directory.
3. Type "xmkmf" (or "imake -DUseInstalled -I/usr/lib/X11/config")
4. Type "make Makefiles"
5. Type "make"
If your system does not have imake (or if the imake configuration is
broken), use these steps to build xmcd:
1. Change to the xmcd top level source directory.
2. Edit make.inc. You will most certainly need to make some
changes in this file to make things compile on your OS
platform.
3. Type "make -f Makefile.std Makefile"
4. Type "make Makefiles"
5. Type "make"
INSTALL INSTRUCTIONS
--------------------
Digital OpenVMS users please see the INSTALL.VMS file for information.
Users of other systems please use the instructions below.
These are instructions on how to install the xmcd package after you
compile it from source code.
1. Log in as the super-user and change to the xmcd source directory.
Super-user status is used to set the permissions of all files
and ensures that you have write privilege to all target
directories. If any target directory is an NFS remote resource,
however, the super-user status may be insufficient and you will
need to manually install some files and set their permissions.
2. You may want to strip(1) the symbol table of the cda_d/cda,
xmcd_d/xmcd, util_d/wm2xmcd and util_d/cddbcmd binaries to reduce
their sizes. On some platforms, you can also use mcs(1) with the
-d option to remove the binary comment section.
3. Type "make install". Answer all questions to configure xmcd and
cda. This step is REQUIRED. If you do not configure the
software using "make install" it will not run correctly.
Install errors, if any, are recorded in the /tmp/xmcd.err file.
4. Edit XMCDLIB/config/common.cfg and make sure that the "device:"
path matches the default raw CD-ROM device on your system
(XMCDLIB is the directory under which the xmcd/cda support files
are installed. This is configured in step 3 above.).
5. You may need to change the XMcd.cddbMailCmd resource in the
XMCDLIB/app-defaults/XMcd file to match the requirements of your
local mailer. For example, A/UX sites should use mush(1)
instead of mail(1). You must use a mailer that can accept a
command-line argument to specify the mail Subject. Otherwise,
the CDDB mail will be rejected by the archive server. See also
the RELNOTES file about MIME encoding.
6. The install.sh script only places the man page raw files in the
designated directories. Depending on your OS platform, you may
need to hand format the files using nroff(1) with the -man option.
7. You may want to configure cron(1) on your system to automatically
run the XMCDLIB/scripts/genidx script periodically (e.g., nightly).
This re-generates the per-category index HTML files for the xmcd
Local Discography feature. You may configure cron to run this
script as root or an ordinary user. An example line for the
crontab(5) file is as follows:
30 3 * * * /usr/lib/X11/xmcd/scriptss/genidx
This will run genidx once every morning at 3:30am. Replace the
/usr/lib/X11/xmcd with your actual XMCDLIB path. See crontab(1)
for more information about setting up the crontab file.
TO MAKE A BINARY RELEASE
------------------------
1. Follow the Build Instructions as above.
2. Make sure the binary you build has the proper mix of static vs.
shared/dynamic library components for your target system. In
particular, if your target system does not have Motif installed,
then you will want to statically link libXm.a. The same
consideration should be given to libXt, libXext, libX11, libnsl,
libsocket, libc, and others where applicable. The more
libraries you link statically, the less platform-dependent the
binary is, but the larger it becomes. In some cases, even a
fully static xmcd binary will still have problem running if the
target system has different kernel-to-library interfaces than
the compiling system.
2. Run the "misc_d/makerel.sh" script. The script generates a file
"xmcdbin.tar.gz", which is a "gzip"ed tar format file containing
all files necessary for a xmcd binary distribution. It also
creates a "xmcdbin.uue" file, which is a uuencoded version of
the xmcdbin.tar.gz file suitable for transmission via electronic
mail. This script assumes the existence of the GNU zip (gzip)
and uuencode utilities.
3. Consult the OSF/Motif licensing terms pertaining to your version
of Motif before distributing binaries containing Motif code to
others.
TO MAKE A SOURCE RELEASE
------------------------
Run the "misc_d/makesrc.sh" script. The script generates a file
"xmcdsrc.tar.gz", which is a "gzip"ed tar format file containing all
xmcd source files. It also creates a "xmcdsrc.uue" file, which is a
uuencoded version of the xmcdsrc.tar.gz file suitable for transmission
via electronic mail. This script assumes the existence of the GNU zip
(gzip) and uuencode utilities.
Alternatively, you can use the "misc_d/makeshar.sh" script. This
generates a multi-part shar archive of the source code instead. Note
that makeshar.sh assumes the existence of the "shar" program as
provided in the "cshar" package from Rich Salz. Other shar
implementations may support different command line parameters which is
incompatible with cshar. The makeshar.sh must be modified to
accommodate those.
ADDITIONAL NOTES
----------------
The "config.sh" shell script supplied with this distribution is not
intended to be run directly in the libdi_d source directory. You
should use "make install" to install the package, which causes
config.sh to be executed with the proper environment. If you must
reconfigure xmcd/cda, run the copy of "config.sh" as installed in
XMCDLIB/config (where XMCDLIB is the directory under which the xmcd/cda
support files are installed).
|