Ticket #26: cupsbase.wis

File cupsbase.wis, 36.0 KB (added by Alex Taylor, 9 years ago)

Updated WIS file for cups-base-2_1_0.wpi

Line 
1<WARPIN VERSION="1.0.18">
2<HEAD>
3 <TITLE>eCups Printing System</TITLE>
4
5
6 <!-- REXX FUNCTIONS -->
7
8 <REXX NAME="CheckSystem">
9 /* Gets certain information about the system. Currently:
10 *
11 * Searches the system to see if RPM/YUM is installed. Saves the
12 * temporary environment variable %YUM_ROOT% with one of these values:
13 * '%UNIXROOT%' if yum.exe was found on the system
14 * '' if yum.exe was not found
15 *
16 * Returns ''
17 */
18 CALL RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
19 CALL SysLoadFuncs
20
21 yum_exe = SysSearchPath('PATH', 'yum.exe')
22 IF yum_exe == '' THEN
23 yum_drive = ''
24 ELSE
25 yum_drive = VALUE('UNIXROOT',,'OS2ENVIRONMENT')
26 CALL WirexxPutEnv 'YUM_ROOT', yum_drive
27
28 RETURN ''
29 </REXX>
30
31 <REXX NAME="CheckEXE">
32 /* Searches the system PATH for the specified EXE. If not found,
33 * displays a popup dialog, and optionally aborts the installation.
34 *
35 * Parameters:
36 * ename Name of the EXE to look for (must include extension)
37 * fail If 1, abort installation if the EXE was not found
38 * message Message text to be shown when the EXE is not found
39 * If text includes '|' then the text is parsed as follows:
40 * common text | no-yum text | with-yum text | wpi file
41 * All but 'common text' are optional. Remarks follow:
42 *
43 * If yum is detected on the system, 'with-yum text' will be
44 * displayed after 'common text', UNLESS the file specified
45 * in 'wpi file' is found in the current directory, in
46 * which case the logic for 'no-yum text' will be used.
47 *
48 * 'no-yum text' will be displayed after 'common text' if
49 * yum is not detected, *unless* it begins with 'REQUIRES='
50 * - in which case NO message will be displayed, and instead
51 * this function will simply return the string as a value.
52 */
53 PARSE ARG ename fail message
54 IF ename == '' THEN RETURN ''
55
56 location = SysSearchPath('PATH', ename )
57
58 IF location == '' THEN DO
59 title = ename 'Not Found'
60 PARSE VAR message common '|' no_yum '|' with_yum '|' look_wpi
61 no_yum = STRIP( no_yum )
62 with_yum = STRIP( with_yum )
63 look_wpi = STRIP( look_wpi )
64
65 yum = WirexxGetEnv('YUM_ROOT')
66 IF look_wpi <> '' THEN DO
67 wpipath = WirexxGetEnv('WI_ARCHIVE_PATH')
68 IF STREAM( wpipath'\'look_wpi, 'C', 'QUERY EXISTS') <> '' THEN
69 yum = ''
70 END
71
72 IF yum <> '' THEN DO
73 IF with_yum <> '' THEN with_yum = '0d0a0d0a'x || with_yum
74 show_text = common with_yum
75 END
76 ELSE DO
77 IF TRANSLATE( LEFT( no_yum, 9 )) == 'REQUIRES=' THEN
78 RETURN TRANSLATE( no_yum, '"', "'")
79 ELSE DO
80 IF no_yum <> '' THEN no_yum = '0d0a0d0a'x || no_yum
81 show_text = common no_yum
82 END
83 END
84 rc = WirexxShowMessage( title, show_text )
85 IF fail == 1 THEN CALL WirexxCancel
86 END
87
88 RETURN ''
89 </REXX>
90
91 <REXX NAME="CheckDLL">
92 /* Searches the system LIBPATH for the specified DLL. If not found,
93 * displays a popup dialog, and optionally aborts the installation.
94 *
95 * Parameters:
96 * dname Name of the DLL to look for (must include extension)
97 * fail If 1, abort installation if the DLL was not found
98 * message Message text to be shown when the DLL is not found
99 * If text includes '|' then the text is parsed as follows:
100 * common text | no-yum text | with-yum text | wpi file
101 * All but 'common text' are optional. Remarks follow:
102 *
103 * If yum is detected on the system, 'with-yum text' will be
104 * displayed after 'common text', UNLESS the file specified
105 * in 'wpi file' is found in the current directory, in
106 * which case the logic for 'no-yum text' will be used.
107 *
108 * 'no-yum text' will be displayed after 'common text' if
109 * yum is not detected, *unless* it begins with 'REQUIRES='
110 * - in which case NO message will be displayed, and instead
111 * this function will simply return the string as a value.
112 */
113 PARSE ARG dname fail message
114 IF dname == '' THEN RETURN ''
115
116 _bd = SysBootDrive()
117 IF _bd == '' THEN
118 _bd = FILESPEC('DRIVE', VALUE('COMSPEC',,'OS2ENVIRONMENT'))
119 _csys = _bd'\CONFIG.SYS'
120
121 CALL SysFileSearch 'LIBPATH=', _csys, 'match.'
122 DO i = 1 TO match.0
123 PARSE UPPER VAR match.i _lead 'LIBPATH=' _lpath
124 IF (_lead == '') & (_lpath <> '') THEN LEAVE
125 END
126 CALL SETLOCAL
127 _testenv = 'TEST_'dname'_LIBPATH'
128 CALL VALUE _testenv, _lpath, 'OS2ENVIRONMENT'
129 location = SysSearchPath( _testenv, dname )
130 CALL ENDLOCAL
131
132 IF location == '' THEN DO
133 title = dname 'Not Found'
134 PARSE VAR message common '|' no_yum '|' with_yum '|' look_wpi
135 no_yum = STRIP( no_yum )
136 with_yum = STRIP( with_yum )
137 look_wpi = STRIP( look_wpi )
138
139 yum = WirexxGetEnv('YUM_ROOT')
140 IF look_wpi <> '' THEN DO
141 wpipath = WirexxGetEnv('WI_ARCHIVE_PATH')
142 IF STREAM( wpipath'\'look_wpi, 'C', 'QUERY EXISTS') <> '' THEN
143 yum = ''
144 END
145
146 IF yum <> '' THEN DO
147 IF with_yum <> '' THEN with_yum = '0d0a0d0a'x || with_yum
148 show_text = common with_yum
149 END
150 ELSE DO
151 IF TRANSLATE( LEFT( no_yum, 9 )) == 'REQUIRES=' THEN
152 RETURN TRANSLATE( no_yum, '"', "'")
153 ELSE DO
154 IF no_yum <> '' THEN no_yum = '0d0a0d0a'x || no_yum
155 show_text = common no_yum
156 END
157 END
158 rc = WirexxShowMessage( title, show_text )
159 IF fail == 1 THEN CALL WirexxCancel
160 END
161
162 RETURN ''
163 </REXX>
164
165 <REXX NAME="ReqEXE">
166 /* Searches the system PATH for the specified EXE. If not found,
167 * returns the string 'REQUIRES=xxx'.
168 *
169 * Use this function instead of CheckEXE if REQUIRES= should be used
170 * (instead of a message) regardless of whether or not YUM is installed.
171 *
172 * Parameters:
173 * ename Name of EXE DLL to look for (must include extension)
174 * reqpkg Value of REQUIRES string to return if DLL is not found
175 */
176 PARSE ARG ename reqpkg
177 IF ename == '' THEN RETURN ''
178 IF reqpkg == '' THEN RETURN ''
179
180 location = SysSearchPath('PATH', ename )
181
182 IF location == '' THEN DO
183 RETURN 'REQUIRES='reqpkg
184 END
185
186 RETURN ''
187 </REXX>
188
189 <REXX NAME="ReqDLL">
190 /* Searches the system LIBPATH for the specified DLL. If not found,
191 * returns the string 'REQUIRES=xxx'.
192 *
193 * Use this function instead of CheckDLL if REQUIRES= should be used
194 * (instead of a message) regardless of whether or not YUM is installed.
195 *
196 * Parameters:
197 * dname Name of the DLL to look for (must include extension)
198 * reqpkg Value of REQUIRES string to return if DLL is not found
199 */
200 PARSE ARG dname reqpkg
201 IF dname == '' THEN RETURN ''
202 IF reqpkg == '' THEN RETURN ''
203
204 _bd = SysBootDrive()
205 IF _bd == '' THEN
206 _bd = FILESPEC('DRIVE', VALUE('COMSPEC',,'OS2ENVIRONMENT'))
207 _csys = _bd'\CONFIG.SYS'
208
209 CALL SysFileSearch 'LIBPATH=', _csys, 'match.'
210 DO i = 1 TO match.0
211 PARSE UPPER VAR match.i _lead 'LIBPATH=' _lpath
212 IF (_lead == '') & (_lpath <> '') THEN LEAVE
213 END
214 CALL SETLOCAL
215 _testenv = 'TEST_'dname'_LIBPATH'
216 CALL VALUE _testenv, _lpath, 'OS2ENVIRONMENT'
217 location = SysSearchPath( _testenv, dname )
218 CALL ENDLOCAL
219
220 IF location == '' THEN DO
221 RETURN 'REQUIRES='reqpkg
222 END
223
224 RETURN ''
225 </REXX>
226
227 <REXX NAME="GetPdrDir">
228 /* Finds out where the system expects to look for installable print
229 * driver files. Also makes sure the directory exists and is on a
230 * writable filesystem.
231 */
232 default = '?:\OS2\DLL'
233
234 PARSE VALUE SysIni('USER', 'PM_INSTALL', 'PDR_DIR') WITH pdr_dir '00'x .
235 pdr_dir = STRIP( pdr_dir, 'T', '\')
236 IF LEFT( pdr_dir, 6 ) == 'ERROR:' THEN RETURN default
237
238 CALL SysFileTree pdr_dir, 'dirs.', 'D'
239 IF dirs.0 == 0 THEN RETURN default
240
241 drv = FILESPEC('DRIVE', pdr_dir )
242 IF drv == '' THEN RETURN default
243 IF WORDPOS( SysFileSystemType( drv ), 'HPFS JFS FAT FAT32') == 0 THEN
244 RETURN default
245
246 RETURN pdr_dir
247 </REXX>
248
249 <REXX NAME="GetUsrDir">
250 /* Find a suitable path to treat as the system "/usr" directory tree
251 * equivalent.
252 */
253 osdir = VALUE('OSDIR',,'OS2ENVIRONMENT')
254 IF osdir <> '' THEN
255 RETURN STRIP( osdir, 'T', '\')
256
257 unxrt = VALUE('UNIXROOT',,'OS2ENVIRONMENT')
258 IF unxrt <> '' THEN
259 RETURN STRIP( unxrt, 'T', '\') || '\usr\local'
260
261 drvs = SysDriveMap('C:', 'LOCAL')
262 DO i = 1 TO WORDS( drvs )
263 drv = WORD( drvs, i )
264 IF WORDPOS( SysFileSystemType( drv ), 'HPFS JFS') == 0 THEN ITERATE
265
266 CALL SysFileTree drv'\usr', 'dirs.', 'D'
267 IF dirs.0 > 0 THEN RETURN dirs.1
268 END
269 RETURN '?:\OS2'
270 </REXX>
271
272 <REXX NAME="TcpipBinCopy">
273 /* Generates a command string to copy the specified file to the
274 * \TCPIP\BIN directory (optionally changing the filename to "target").
275 */
276 ARG copyfile target
277
278 ipath = SysSearchPath('PATH', 'INETD.EXE')
279 IF ipath == '' THEN DO
280 netwdrv = VALUE('DPF_NETDRIVE',,'OS2ENVIRONMENT')
281 IF netwdrv <> '' THEN ipath = netwdrv'\TCPIP\BIN\INETD.EXE'
282 END
283 IF ipath == '' THEN
284 ipath = SysSearchPath('PATH', 'IFCONFIG.EXE')
285 IF ipath == '' THEN
286 ipath = VALUE('COMSPEC',,'OS2ENVIRONMENT')
287 bindir = FILESPEC('DRIVE', ipath ) || '\' || FILESPEC('PATH', ipath )
288
289 RETURN "copy" copyfile bindir'\'target
290 </REXX>
291
292 <REXX NAME="GSUpdate">
293 /* Check for an existing CUPS install and obtain the path where it
294 * thinks Ghostscript is located. Then return a suitable EXECUTE
295 * command for the SET_GS.CMD script, which updates the CUPS scripts
296 * and configuration files to point to the Ghostscript directory.
297 *
298 * The idea is that the previously-installed CUPS files (if they exist)
299 * presumably have the correct path to Ghostscript already configured,
300 * and we need to avoid losing this information if pstoraster etc. get
301 * overwritten by the install.
302 *
303 * If there was no previously-configured Ghostscript path found, then
304 * the returned command string will call SET_GS.CMD with no parameters
305 * (which will cause it to try and search for the correct Ghostscript
306 * path on its own).
307 *
308 * If Ghostscript is being installed/upgraded from this very WPI file,
309 * then SET_GS.CMD should find its new location; this will override the
310 * path specified in the EXECUTE command line.
311 */
312 ARG cupsdrive '\' .
313
314 gspath = ''
315 fltrs = cupsdrive'\cups\lib\cups\filter'
316 ps2r = STREAM( fltrs'\pstopdf', 'C', 'QUERY EXISTS')
317 IF ps2r == '' THEN
318 ps2r = STREAM( fltrs'\pstoraster', 'C', 'QUERY EXISTS')
319 IF ps2r <> '' THEN DO
320 CALL LINEIN ps2r, 1, 0
321 DO WHILE LINES( ps2r ) > 0
322 _line = LINEIN( ps2r )
323 IF ( LEFT( _line, 7 ) == 'prefix=') THEN DO
324 PARSE VAR _line 'prefix=' gspath
325 gspath = STRIP( gspath )
326 IF gspath == '' THEN ITERATE
327 gspath = TRANSLATE( gspath, '\', '/')
328 _start = POS('\', gspath )
329 IF _start > 1 THEN
330 gspath = SUBSTR( gspath, _start )
331 END
332 END
333 CALL STREAM ps2r, 'C', 'CLOSE'
334 END
335 IF gspath == '' THEN
336 RETURN 'EXECUTE="'cupsdrive'\cups\set_gs.cmd /y"'
337
338 RETURN 'EXECUTE="'cupsdrive'\cups\set_gs.cmd /x:'gspath '/y"'
339 </REXX>
340
341
342 <!-- PACKAGES -->
343
344
345 <!-- The following packages contain the core CUPS files -->
346
347 <PCK INDEX=1
348 PACKAGEID="netlabs.org\eCups\CUPS\2\1\0"
349 TITLE="CUPS"
350 =("CheckSystem")
351
352 REQUIRES="netlabs.org\eCups\Port Driver\2\0\4"
353 REQUIRES="netlabs.org\eCups\CUPS-Filters\1\0\61"
354 REQUIRES="netlabs.org\Ghostscript\Ghostscript\8\7\1"
355
356 <!-- Check for required EXEs -->
357 =("CheckEXE CAT.EXE 1 The GNU 'coreutils' package was not found. It must be installed before you can install eCups. | GNU coreutils is included in the RPM/YUM environment, or is available from: os2ports.smedley.info | Try running 'yum update coreutils' from a command line.")
358
359 <!-- Check for required DLLs -->
360 <!-- Make sure you have the most recent NetLabs LIBC-0.6.6 Runtime package, available from: ftp.netlabs.org/pub/libc/ -->
361 =("CheckDLL LIBC066.DLL 1 The required runtime library LIBC066.DLL was not found on your system. | REQUIRES='netlabs.org\kLIBC\LIBC 0.6 Runtime\0\6\6' | To install this library, run 'yum update libc' from a command line.")
362 <!-- Make sure you have the latest NetLabs GCC4 Core package, available from: ftp.netlabs.org/pub/libc/ -->
363 =("CheckDLL GCC1.DLL 1 The required runtime library GCC1.DLL was not found on your system. | REQUIRES='netlabs.org\GCC4\Core\1\3\1' | To install this library, run 'yum install libgcc1' from a command line.")
364 =("CheckDLL USBCALLS.DLL 0 The library USBCALLS.DLL was not found on your system. You must install this library in order to be able to print to USB printers. (USBCALLS.DLL is available through the NetLabs USBDock package, or the Arca Noae USB driver package.)")
365
366 =("ReqDLL LIBUSB10.DLL netlabs.org\libusb\Runtime\1\0\16")
367
368 <!-- Default to current boot drive for CUPS components, including
369 Ghostscript, Gutenprint, HPLIP and SpliX
370 -->
371 TARGET="?:\"
372 BASE
373 LONGFILENAMES
374 SELECT
375 NODESELECT
376
377 <!-- Kill any running CUPSD instance -->
378 KILLPROCESS="cupsd.exe"
379
380 <!-- Recreate symbolic links -->
381 EXECUTE="$(1)cups\rest_ln.cmd $(1) $(1)cups\symlinks.1"
382
383 <!-- Create some required directories -->
384 EXECUTE="MKDIR $(1)cups\etc\cups\ppd"
385 EXECUTE="MKDIR $(1)cups\etc\cups\ssl"
386 EXECUTE="MKDIR $(1)cups\lib\cups\driver"
387 EXECUTE="MKDIR $(1)cups\share\cups\model"
388 EXECUTE="MKDIR $(1)cups\share\cups\profiles"
389 EXECUTE="MKDIR $(1)cups\var"
390 EXECUTE="MKDIR $(1)cups\var\cache"
391 EXECUTE="MKDIR $(1)cups\var\cache\cups"
392 EXECUTE="MKDIR $(1)cups\var\cache\cups\rss"
393 EXECUTE="MKDIR $(1)cups\var\log"
394 EXECUTE="MKDIR $(1)cups\var\log\cups"
395 EXECUTE="MKDIR $(1)cups\var\run"
396 EXECUTE="MKDIR $(1)cups\var\run\cups"
397 EXECUTE="MKDIR $(1)cups\var\spool"
398 EXECUTE="MKDIR $(1)cups\var\spool\cups"
399 EXECUTE="MKDIR $(1)cups\var\spool\cups\tmp"
400
401 <!-- Delete any existing objects created by the old WPI -->
402 EXECUTE="CREATEOBJECT|REXXTRY CALL SysDestroyObject '<eCUPS Daemon>'"
403 EXECUTE="CREATEOBJECT|REXXTRY CALL SysDestroyObject '<eCUPS Documents>'"
404
405 <!-- Copy cups lpr.exe to \tcpip\bin\cupslpr.exe -->
406 EXECUTE="=("TcpipBinCopy $(1)cups\bin\lpr.exe cupslpr.exe")"
407
408 <!-- Start the CUPS daemon (detached) -->
409 EXECUTE="detach $(1)cups\sbin\cupsd.exe"
410
411 <!-- Create and populate the desktop folder -->
412 CREATEOBJECT="REPLACE WPFolder|eCups|<WP_DESKTOP>|OPEN=DEFAULT;OBJECTID=<ECUPS_FOLDER>;"
413 CREATEOBJECT="REPLACE WPProgram|CUPS Daemon^(Detached)|<ECUPS_FOLDER>|EXENAME=cmd.exe;PROGTYPE=WINDOWABLEVIO;PARAMETERS=/c detach $(1)cups\sbin\cupsd.exe;STARTUPDIR=$(1)cups\sbin;MINIMIZED=YES;OBJECTID=<ECUPS_DAEMON>;"
414 CREATEOBJECT="REPLACE WPProgram|CUPS Daemon^(Foreground)|<ECUPS_FOLDER>|EXENAME=cmd.exe;PROGTYPE=WINDOWABLEVIO;PARAMETERS=/c detach $(1)cups\sbin\cupsd.exe;STARTUPDIR=$(1)cups\sbin;MINIMIZED=YES;OBJECTID=<ECUPS_DAEMON_FG>;"
415 CREATEOBJECT="REPLACE WPUrl|CUPS Administration^(Local)|<ECUPS_FOLDER>|URL=http://localhost:631;OBJECTID=<ECUPS_ADMIN>;"
416 CREATEOBJECT="REPLACE WPUrl|eCups Home|<ECUPS_FOLDER>|URL=http://svn.netlabs.org/ecups;OBJECTID=<ECUPS_HOME>;"
417 CREATEOBJECT="REPLACE WPUrl|eCups HowTo|<ECUPS_FOLDER>|URL=http://svn.netlabs.org/ecups/wiki/HowTo;OBJECTID=<ECUPS_HOWTO>;"
418 CREATEOBJECT="REPLACE WPUrl|Frequently^Asked Questions|<ECUPS_FOLDER>|URL=http://svn.netlabs.org/ecups/wiki/CupsFaq;OBJECTID=<ECUPS_FAQ>;"
419 CREATEOBJECT="REPLACE WPShadow|eCups Product Notes|<ECUPS_FOLDER>|SHADOWID=$(1)cups\readme.cups;OBJECTID=<ECUPS_README_SHADOW>;"
420
421 <!-- Create a shadow of CUPSD in the Startup folder -->
422 CREATEOBJECT="REPLACE WPShadow|CUPS Daemon^(Detached)|<WP_START>|SHADOWID=<ECUPS_DAEMON>;OBJECTID=<ECUPS_DAEMON_SHADOW>;"
423
424 <!-- Save the CUPS path in the INI file (for future use) -->
425 WRITEPROFILE="USER\eCups\CUPS|$(1)"
426
427 <!-- Make CUPS20.DLL available to other programs -->
428 CONFIGSYS="LIBPATH=$(1)cups\bin;|ADDRIGHT"
429
430 >This package contains the CUPS daemon and related files</PCK>
431
432 <PCK INDEX=2
433 PACKAGEID="netlabs.org\eCups\Port Driver\2\0\4"
434 TITLE="eCups Port Driver"
435 REQUIRES="netlabs.org\eCups\CUPS\1\3\11"
436 TARGET="?:\"
437 NOBASE
438 FIXED
439 SELECT
440
441 <!-- Reattach the EAs on cups.pdr -->
442 EXECUTE="eautil.exe $(2)OS2\DLL\CUPS.PDR $(2)OS2\DLL\CUPS.EA /J"
443
444 <!-- Install the port driver in Presentation Manager -->
445 WRITEPROFILE="SYSTEM\PM_PORT_DRIVER\CUPS|$(2)OS2\DLL\CUPS.PDR"
446
447 >This package contains the port driver which enables CUPS printing for applications</PCK>
448
449 <PCK INDEX=3
450 PACKAGEID="netlabs.org\eCups\CUPS-Filters\1\0\71\1"
451 TITLE="CUPS Filters"
452 REQUIRES="netlabs.org\Ghostscript\Ghostscript\8\7\1\1"
453
454 <!-- Check for required EXEs -->
455 =("CheckEXE LN.EXE 1 The required program LN.EXE was not found on your system. You must install this program (part of the GNU 'coreutils' package) before you can install eCups.")
456 =("CheckEXE SED.EXE 1 The required program SED.EXE was not found on your system. You must install this program before you can install eCups. | REQUIRES=100 | You can run 'yum install sed' from a command line to install it. | gnused-422.wpi")
457 =("CheckEXE GREP.EXE 1 The required program GREP.EXE was not found on your system. You must install this program before you can install eCups. | REQUIRES=101 | You can run 'yum install grep' from a command line to install it. | gnugrep-223.wpi")
458 =("ReqEXE BC.EXE 102")
459
460 <!-- Check for required DLLs -->
461 =("CheckDLL FNTCFG2.DLL 1 The required library FNTCFG2.DLL was not found on your system. You must install this library (part of the mzfntcfgft_runtime package) before you can install eCups.")
462 =("CheckDLL FREETYP6.DLL 1 The required library FREETYP6.DLL was not found on your system. You must install this library (part of the mzfntcfgft_runtime package) before you can install eCups.")
463
464 TARGET="$(1)"
465 LONGFILENAMES
466 FIXED
467 SELECT
468
469 <!-- Kill any running CUPSD instance -->
470 KILLPROCESS="cupsd.exe"
471
472 <!-- Recreate symbolic links -->
473 EXECUTE="$(1)cups\rest_ln.cmd $(3) $(3)cups\symlinks.3"
474
475 <!-- If installing over an existing CUPS, try to preserve the
476 configured path to Ghostscript.
477 -->
478 =("GSUpdate $(1)")
479
480 >This package contains the CUPS-Filters package, required by various printer drivers</PCK>
481
482
483 <PCK INDEX=4
484 PACKAGEID="netlabs.org\Ghostscript\Ghostscript\8\7\1\1"
485 EXTERNAL="ghostscript-8_7_1_1.wpi"
486 TITLE="Ghostscript v8"
487 TARGET="$(1)gs"
488 FIXED
489 LONGFILENAMES
490
491 <!-- Save the Ghostscript path in the INI file (required by SET_GS.CMD) -->
492 WRITEPROFILE="USER\eCups\Ghostscript|$(4)\gs8.71"
493
494 <!-- Forcibly update the Ghostscript path used by CUPS -->
495 EXECUTE="$(1)\cups\set_gs.cmd /y"
496
497 >This package contains GNU Ghostscript, which is required for CUPS to function. This is a stable version which is reported to work reliably with CUPS.</PCK>
498
499
500 <PCK INDEX=5
501 PACKAGEID="netlabs.org\libusb\Runtime\1\0\16\1"
502 EXTERNAL="libusbdll10.wpi"
503 TITLE="USB interface library"
504 TARGET="=("GetUsrDir")\dll"
505 NOBASE
506 CONFIGSYS="LIBPATH=$(5)|ADDRIGHT"
507 >This package contains the library used for USB interface support.</PCK>
508
509
510 <PCK INDEX=6
511 PACKAGEID="netlabs.org\Ghostscript\Ghostscript\9\1\5"
512 EXTERNAL="ghostscript-9_1_5.wpi"
513 TITLE="Ghostscript v9"
514 TARGET="$(1)gs"
515 FIXED
516 SELECT
517 LONGFILENAMES
518
519 <!-- Save the Ghostscript path in the INI file (required by SET_GS.CMD) -->
520 WRITEPROFILE="USER\eCups\Ghostscript|$(6)\gs9.15"
521
522 <!-- Forcibly update the Ghostscript path used by CUPS -->
523 EXECUTE="$(1)\cups\set_gs.cmd /y"
524
525 >This package contains GNU Ghostscript, which is required for CUPS to function.</PCK>
526
527
528 <PCK INDEX=9
529 PACKAGEID="netlabs.org\eCups\Printer Wizard\1\1\0"
530 EXTERNAL="cupsgui.wpi"
531 TITLE="Graphical printer installer"
532 TARGET="$(1)cups"
533 SELECT
534
535 CREATEOBJECT="REPLACE WPProgram|Install CUPS Printer|<ECUPS_FOLDER>|EXENAME=$(9)\cupswiz.exe;PROGTYPE=PM;STARTUPDIR=$(9);OBJECTID=<ECUPS_WIZARD>;"
536 CREATEOBJECT="REPLACE WPShadow|Install CUPS Printer|<WP_PRINTERSFOLDER>|SHADOWID=<ECUPS_WIZARD>;OBJECTID=<ECUPS_WIZARD_SHADOW>;"
537
538 =("CheckEXE GZIP.EXE 0 The required program GZIP.EXE was not found on your system. You must install this program if you wish to use the graphical printer installer. | | You can run 'yum install gzip' from a command line to install it.")
539 =("CheckDLL VROBJ.DLL 0 The required runtime library VROBJ.DLL was not found on your system. You must install this library (available from various sources) if you want to install the graphical printer installer.")
540
541 >This package contains a simple graphical wizard for creating CUPS-based printer objects.</PCK>
542
543 <PCK INDEX=100
544 PACKAGEID="GNU\Sed\Binaries\4\2\2"
545 TITLE="GNU sed"
546 EXTERNAL="gnused-422.wpi"
547 TARGET="=("GetUsrDir")\bin"
548 NOBASE
549 CONFIGSYS="SET PATH=$(100)|ADDRIGHT"
550
551 =("CheckDLL LIBC063.DLL 1 The required runtime library LIBC063.DLL was not found on your system. | REQUIRES='netlabs.org\kLIBC\LIBC 0.6 Runtime\0\6\6' | To install this library, run 'yum update libc' from a command line.")
552 =("CheckDLL GCC452.DLL 1 The required runtime library GCC452.DLL was not found on your system. | REQUIRES='netlabs.org\GCC4\Core\1\3\1' | To install this library, run 'yum install libgcc-fwd' from a command line.")
553
554 >This package contains GNU sed v4.2.2 (binaries only).</PCK>
555
556 <PCK INDEX=101
557 PACKAGEID="GNU\Grep\Binaries\2\23"
558 TITLE="GNU grep"
559 EXTERNAL="gnugrep-223.wpi"
560 TARGET="=("GetUsrDir")\bin"
561 NOBASE
562 CONFIGSYS="SET PATH=$(101)|ADDRIGHT"
563 >This package contains GNU grep v2.23 (binaries only).</PCK>
564
565 <PCK INDEX=102
566 PACKAGEID="GNU\Bc\Binaries\1\0\6"
567 TITLE="GNU bc"
568 EXTERNAL="gnubc-106.wpi"
569 TARGET="=("GetUsrDir")\bin"
570 SELECT
571 NOBASE
572 CONFIGSYS="SET PATH=$(102)|ADDRIGHT"
573 >This package contains GNU bc v1.0.6 (binaries only).</PCK>
574
575 <GROUP TITLE="Printer support packages (at least one is required)">
576
577 <PCK INDEX=20
578 PACKAGEID="netlabs.org\eCups\Gutenprint\5\2\10"
579 EXTERNAL="gutenprint-5_2_10.wpi"
580 REQUIRES=1
581 TITLE="Gutenprint"
582 TARGET="$(1)"
583 FIXED
584 SELECT
585 LONGFILENAMES
586 KILLPROCESS="cupsd.exe"
587 EXECUTE="$(20)cups\ppd_clup.cmd $(20)"
588 EXECUTE="$(20)cups\ppd_updt.cmd $(20)"
589 >Gutenprint is the main printer support package used by CUPS</PCK>
590
591 <PCK INDEX=21
592 PACKAGEID="netlabs.org\eCups\Splix\2\0\0"
593 EXTERNAL="splix-2_0_0.wpi"
594 TITLE="SpliX"
595 REQUIRES=1
596 TARGET="$(1)"
597 FIXED
598 SELECT
599
600 =("CheckDLL LIBC063.DLL 0 The required runtime library LIBC063.DLL was not found on your system. You must install this library (part of the NetLabs GCC4 Core package) if you want to install SpliX, or print to SMB printers.")
601 =("CheckDLL GCC434.DLL 0 The runtime library GCC434.DLL was not found on your system. You must install this library (part of the NetLabs GCC4 Core package) if you want to install SpliX. | To install this library, run 'yum install libgcc-fwd' from a command line.")
602
603 >This package contains the SpliX package for supporting various Samsung and Xerox printers</PCK>
604
605 <PCK INDEX=23
606 PACKAGEID="netlabs.org\eCups\HP-LIP\3\15\11\3"
607 EXTERNAL="hplip-3_15_11.wpi"
608 TITLE="HPLIP"
609 REQUIRES=1
610 TARGET="$(1)"
611 FIXED
612 SELECT
613 EXECUTE="copy $(23)hplip\hplip.conf.default %ETC%\hplip.conf"
614 DEEXECUTE="erase %ETC%\hplip.conf"
615 >This package contains the HPLIP package for supporting various Hewlett-Packard printers</PCK>
616
617 <PCK INDEX=25
618 PACKAGEID="netlabs.org\eCups\foo2qpdl\2010\6\20\1"
619 EXTERNAL="foo2qpdl-20100620.wpi"
620 REQUIRES=1
621 REQUIRES="netlabs.org\eCups\CUPS-Filters\1\0\71"
622 TITLE="foo2x drivers"
623 TARGET="$(1)"
624 FIXED
625 >This package contains the foo2qpdl, foo2hiperc, foo2hp, foo2lava, foo2oak, foo2slx, foo2xqx and foo2zjs driver packages for printing through foomatic-rip</PCK>
626
627 </GROUP>
628
629
630 <!-- The following packages contain OS/2 printer drivers and related files -->
631
632 <GROUP TITLE="System PostScript drivers (at least one is required)">
633
634 <PCK INDEX=10
635 PACKAGEID="netlabs.org\eCups\ECUPS Driver\30\800\1"
636 EXTERNAL="ecups-pdr-20090324.wpi"
637 TITLE="ECUPS Printer Driver"
638 TARGET="=("GetPdrDir")\ECUPS"
639 NOBASE
640 SELECT
641 WRITEPROFILE="USER\PM_INSTALL\ECUPS_DIR|$(10)"
642 >This package contains the eCups PostScript printer driver, for use with Gutenprint, Splix, and other printer support packages</PCK>
643
644 <PCK INDEX=11
645 PACKAGEID="netlabs.org\eCups\ECUPS-HP Driver\30\800\1"
646 EXTERNAL="ecupshp-pdr-20100304.wpi"
647 TITLE="ECUPS-HP Printer Driver (for HP-LIP)"
648 TARGET="=("GetPdrDir")\ECUPS-HP"
649 NOBASE
650 WRITEPROFILE="USER\PM_INSTALL\ECUPS-HP_DIR|$(11)"
651 >This package contains the eCups PostScript printer driver for use with HP-LIP</PCK>
652
653 <PCK INDEX=12
654 PACKAGEID="netlabs.org\eCups\GUTENPRT Driver\30\800\0"
655 EXTERNAL="guten-pdr-20080712.wpi"
656 TITLE="GUTENPRT Printer Driver"
657 TARGET="=("GetPdrDir")\GUTENPRT"
658 NOBASE
659 >This package contains an older version of the eCups PostScript driver; it is not required if the eCups Printer Driver is installed</PCK>
660
661 </GROUP>
662
663</HEAD>
664
665
666<BODY>
667 <PAGE INDEX=1 TYPE=README>
668 <NEXTBUTTON TARGET=2>~Next</NEXTBUTTON>
669 <TEXT>Welcome to eCups. Please read the information below before continuing.</TEXT>
670 <README FORMAT=HTML>
671This WarpIN package allows you to install the Common Unix Printing System
672(CUPS) framework for OS/2, more commonly referred to as "eCups".<p><br>
673
674<p><b><u>eCups Components</u></b></p>
675
676<p>eCups consists of a number of components. Depending on your environment,
677you may not need to install all of them.</p>
678
679<p>The installable eCups components are described below. Note that all except
680the "CUPS", "CUPS-Filters" and "eCups Port Driver" components are provided as
681separate WPI packages; you must download each package that you require and place
682it in the same directory as this one.</p><br>
683
684<p><u>The core CUPS components</u></p>
685<p>These are always required (although if you already have them installed on
686your system, you do not necessarily have to install them again).</p>
687<dl>
688<dt>CUPS
689<dd>The Common Unix Printing System base product, consisting of the CUPS Daemon
690(cupsd) and related utilities, "backends" for communicating with printers over
691various types of connections, and a basic set of generic printer drivers.
692<dt>CUPS Filters
693<dd>This contains the core conversion filters required for generating the
694print job data (prior to CUPS v1.50 it was part of the CUPS base package).
695<dt>eCups Port Driver
696<dd>Allows redirecting of printer output from the system spooler to the CUPS
697spooler. Effectively, this is what enables CUPS printing from applications.
698<dt>Ghostscript
699<dd>Software PostScript interpreter, required for converting print jobs into
700the necessary format for printing. You must install this unless you already
701have a version installed in your system; even in the latter case, note that
702CUPS <i>must</i> be installed onto the same drive as Ghostscript.
703<dt>Graphical printer installer
704<dd>A graphical 'wizard' for installing CUPS-based printers.
705</dl><br>
706
707<p><u>Printer support packages</u></p>
708<p>These are the driver packages used by CUPS. You must generally have at
709least one of these installed. Choose whichever one includes support for your
710printer; see the listed URLs to find out what printers each one supports.</p>
711<dl>
712<dt>Gutenprint
713<dd>The largest available package of printer drivers, formerly known as GIMP-Print.
714Supports a wide range of printers from a variety of manufacturers; see
715<a href="http://gutenprint.sourceforge.net/p_Supported_Printers.php">http://gutenprint.sourceforge.net/p_Supported_Printers.php</a>
716for a list.
717<dt>SpliX
718<dd>A package of drivers for various printers (mostly) from Samsung and Xerox;
719the list is available at
720<a href="http://splix.sourceforge.net/">http://splix.sourceforge.net/</a>
721<dt>HP-LIP
722<dd>Another CUPS driver package, this one for Hewlett-Packard printers. A list
723of supported devices is available at
724<a href="http://hplipopensource.com/hplip-web/supported_devices/index.html">http://hplipopensource.com/hplip-web/supported_devices/index.html</a>
725<dt>foo2<i>x</i>
726<dd>A set of filters which support various proprietary printer languages. See
727<a href="http://foo2zjs.rkkda.com/">http://foo2zjs.rkkda.com/</a> for details.
728Note that this is still largely experimental, and has not been widely tested.
729</dl><br>
730
731<p><u>System PostScript drivers</u></p>
732<p>These are used by your applications and desktop printer objects to create
733the printer jobs which are passed on to CUPS. You must install at least one
734of these drivers. (The "ECUPS-HP Printer Driver" is intended for use with
735HP-LIP; otherwise, the standard "ECUPS Printer Driver" is recommended.)</p>
736<dl>
737<dt>ECUPS Printer Driver
738<dd>The standard eCups PostScript driver. It contains printer definitions
739(used for configuring your desktop printer object) for over 650 printers
740supported by Gutenprint and SpliX.
741<dt>ECUPS-HP Printer Driver
742<dd>An alternate version of the eCups PostScript driver, for use with HP-LIP.
743It contains definitions for over 600 HP-LIP printer models.</dl>
744<p>Both drivers contain the same functionality; the only difference lies in the
745specific printer models defined in each one by default. In either case, it is
746possible to add support for new printer models by importing PPD files into the
747driver.</p><br>
748
749<p><b><u>Installation</u></b></p>
750<p>Select the packages you need (as described above). To recap, you require:
751<ul>
752<li>The main CUPS package
753<li>The CUPS-Filters package
754<li>The eCups Port Driver
755<li>Ghostscript
756<li>At least one printer support package (generally Gutenprint, SpliX, or
757HP-LIP).
758<li>The ECUPS printer driver if you are installing Gutenprint, SpliX, or
759foo2<i>x</i>; the ECUPS-HP printer driver if you are installing HP-LIP.
760</ul>
761<p>Install the selected packages. If the installation is successful, the
762following should result:
763<ul>
764<li>The selected files will be installed to your hard disk, and the WarpIN
765database will be updated accordingly.
766<li>An <i>eCups</i> folder will be created and opened.
767<li>A shadow of the CUPS Daemon program object will be placed into your
768Startup folder.
769<li>The CUPS Daemon will be started in the background.
770</ul><br>
771<p>It may be necessary to reboot before being able to use CUPS.
772
773<br>
774<p><b><u>Using QPDFView (and other Qt4 apps)</u></b></p>
775
776<p>QPDFView expects the CUPS runtime DLL to be called 'CUPS.DLL'. The current
777version of eCups no longer uses that DLL name for the runtime. If you have
778an old version of CUPS.DLL on your LIBPATH or in the QPDFView program
779directory, it <i>may</i> work with this version of eCups. However, you
780may find it necessary to copy the file \CUPS\BIN\CUPS20.DLL to CUPS.DLL
781in order for QPDFView to function properly.
782
783<p>Other Qt4-based applications may have similar requirements. (Scribus 1.4,
784however, includes its own version of the CUPS runtime, which is compatible
785with this version of eCups.)
786
787
788<br>
789<p><b><u>Upgrade Notes</u></b></p>
790<p><b>Note:</b> If you currently have CUPS 1.<i>x</i> installed, you are
791recommended to <b>uninstall it</b> before installing these packages.
792More specifically, you should uninstall the main CUPS package, and
793CUPS-Filters if it is installed. You do not have to uninstall the system
794PostScript drivers, the printer wizard, Ghostscript, or the various
795printer support packages.</p>
796<p>In general, you can install over top of an existing CUPS 2.<i>x</i>
797installation. However, a few specific remarks are in order:
798<ul>
799<li>In the relatively unlikely event that you have made modifications to
800the default server options in <tt>cupsd.conf</tt>, then you may want to
801back up that file before installing this package.
802<li>The installer will attempt to automatically modify the necessary CUPS
803configuration files to point to the installed version of Ghostscript. If
804you encounter errors while printing, you may wish to double-check the file
805<tt>\cups\lib\cups\filter\pstopdf</tt> to ensure that the Ghostscript
806path is correct. (If you have installed foo2<i>x</i>, you should also
807check the files <tt>\cups\etc\foomatic\filter.conf</tt> and
808<tt>\cups\bin\foo2qpdl-wrapper</tt>.)
809<li>When upgrading to a new release of Gutenprint, any Gutenprint PPD files
810that are in use by CUPS must also be updated. If you have Perl installed
811(and <tt>perl.exe</tt> is on your PATH), then the installer will attempt to
812run the update utility <tt>cups-genppdupdate</tt> automatically. In either
813event, you should double-check your printer configuration in the CUPS
814administration GUI to ensure that all Gutenprint PPD files report the
815correct (newly-installed) version.
816</ul><br>
817 </README>
818 </PAGE>
819
820 <PAGE INDEX=2 TYPE=CONTAINER>
821 <NEXTBUTTON TARGET=3>~Next</NEXTBUTTON>
822 <TEXT>Select the components of eCups that you wish to install.
823
824NOTE: You MUST install the CUPS component to the ROOT directory of the target drive (e.g. "H:\" rather than "H:\some-directory").
825
826If you wish to use a previously-installed copy of Ghostscript, you must install CUPS to the same drive.
827 </TEXT>
828 </PAGE>
829
830 <PAGE INDEX=3 TYPE=TEXT>
831 <NEXTBUTTON TARGET=0>I~nstall</NEXTBUTTON>
832 <TEXT>Press "Install" to begin installing eCups</TEXT>
833 </PAGE>
834</BODY>
835
836</WARPIN>