Author Topic: Accelerated Installs  (Read 458 times)

Wendy Krieger

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 4
  • Posts: 20
  • Karma: +5/-0
    • View Profile
Accelerated Installs
« on: October 08, 2021, 01:46:28 pm »
The current project is Accelerated Installs.

The idea is to reduce the time from a clean install of the OS to full working order.  While one can use something like Ghost or pre-installed zip files, I desired to have a fair bit of flexibility in this.  A lot of this is cross-platform, the ideas from one source copied to another.  Some of this stuff dates back to 1992.

The bulk of programs are either copied pre-installed, or pre-registered.  This means, for example, inserting the registry keys in before installing the program.  PMView, Larsen CMD, File Commander/2 work like that.  Strategically placing parts of the INI file work for GSView, Smartsuite 1.73.  4OS2, EFComm and OS2CMD already have their reg keys in the install.

Lotus Smartsuite 1,73

The slipstream was successful, so it installs on one run.  There is a version 1.60 + update on the eCS 1.0 disk.

Graham Utilities. 2.10

This involves a service pack, but the install can be streamlined somewhat.  The idea is to modify the eCS 1.0 install version to handle this without having to reboot.

TinyEdit and QEdit. 

These look for supplemental files in a hard-coded directory or the current directory.  Without the hard-code, T and T2 will try to open Thelp in the current directory.  Reconfigured to use c:\use\thelp.  Likewise Q dos and os2 look for spell-check in a hard-code directory.

Cmd2exe and Bat2com

These are variously OS/2 and DOS programs that produce a loader for programs, so that you don't have to modify config.sys or autoexec,bat and keep the program off-path.  Bat2com from Foley Hitec "Turbobat", which seems to work under HPFS.  (the pc-mag one doesn't). 

4OS2, Tcmdos2, Pmview, filejet, jetcmd, volkov commander, boxer, and lucide all work under this.  jetcmd and filejet can have their environment variables set in the loader.  boxer is DOS, OS/2, TKO and EZ versions.  FC/2 can be off-path, as long as you load it from an on-path file (eg fcw),

There is a Windows proggie of this name (Jim Lawless, 'com2exe'), but it allows includes of other files on top of just a batch compiler.

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Thank You
  • -Given: 615
  • -Receive: 123
  • Posts: 3311
  • Karma: +28/-0
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: Accelerated Installs
« Reply #1 on: October 08, 2021, 03:35:35 pm »
Hi Wendy. Welcome to the forum.

What are you using to slipstream software to the eCS installer? We used to have UpdCD. Are you using it?, by hand? or created something else?

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Neil Waldhauer

  • Hero Member
  • *****
  • Thank You
  • -Given: 14
  • -Receive: 62
  • Posts: 746
  • Karma: +20/-0
    • View Profile
    • Blonde Guy
Re: Accelerated Installs
« Reply #2 on: October 08, 2021, 03:45:41 pm »
All of Blonde Guy computers have their software installed in this way. I wrote Suntan Special to do the job. I have over 700 objects I can install.

http://www.blondeguy.com/suntan6.html
Expert consulting for ArcaOS, OS/2 and eComStation
http://www.blondeguy.com

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 13
  • -Receive: 226
  • Posts: 3151
  • Karma: +59/-0
    • View Profile
Re: Accelerated Installs
« Reply #3 on: October 09, 2021, 12:32:54 am »
For a loader, I just use a cmd file to set all the environment variables, usually a minimum of PATH and BEGINLIBPATH and maybe LIBPATHSTRICT as well as any other needed ones with things like compilers needing quite a few environment variables. Then you can put the cmd files in the PATH, create a program object or remember where they are.

Wendy Krieger

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 4
  • Posts: 20
  • Karma: +5/-0
    • View Profile
Re: Accelerated Installs
« Reply #4 on: October 09, 2021, 09:57:34 am »
Most of the installs are handled by rexx scripts or batch files after the files are copied.

Service packs are integrated if the install consists of loose files.  Nothing is done to packages, either pack2 or wpi. 

There is some 'copy over' stuff.  For example, \os2\mdos\basica.com is copied over with a functional one.  Qbasic.exe is updated to the final IBM release of this.  The ones in 5.02 and the update are later than the OS/2 one, which is the first of the non-linked versions.

When you modify the DOS path from c:\os2;c:\os2\mdos;... to c:\os2\mdos;c:\os2;  you can install the DOS E Editor in there and use it under OS/2.  As with OS/2 PPC, you can have rexx.exe in there.  The 7.00 version does not like OS/2, but the 7.01 (2000) version is quite fine under OS/2.

For a DOS/OS2 history see http://www.os2fan2.com/files/pcdos.pdf

os2fan2.com is my website.  The two big files there (polygloss and metgloss), are maintained in a markup language that is written in REXX.

Wendy Krieger

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 4
  • Posts: 20
  • Karma: +5/-0
    • View Profile
Re: Accelerated Installs
« Reply #5 on: October 09, 2021, 12:47:12 pm »
This is the sort of utility i use in AI's,  It's a distribution of keys before or after the progs are installed.

This is the output batch.

Code: [Select]
@echo off
echo key for Zippy
copy zippy.key c:\programs\zippy

The second !loop command says which letters to process.  These can be anything, but because we only wanted to move the zippy.key to its proper place, we used only 'r' here.

Code: [Select]
extproc regina.exe rxloop.rex

$set
P=c:\programs
S=c:\os2
L=c:\lotusw4
W=c:\os2\mdos\winos2
$end

$data $nkp
r,Zippy    ,zippy.key,$P\zippy
g,GSview   ,gvpm.ini,$S,
g,Dragtext ,drgtxt39.ini,$P\drgtxt39
g,Amipro   ,amiuser3.ini,$S
g,Lotus SS ,suit.ri,$L
$end

$new distkey.cmd
@echo off
$loop *
echo key for $n
copy $k $p
$loop r
$end

This is RxLoop.  We run it under Regina. rather than SAA, because the former is ANSI complient, and can be run as an application.  You see it's woven from zloop.cmd.  Looking at this shows the specs as implemented for the program, and the bits and pieces of proggie in random order.  At some point, we pull the bits together and make rxloop.rex,

Code: [Select]
/* Woven from zloop.cmd by Wendy Krieger on 20041206 at 22:45:27 */
/*~ Rexx Looping Utility */
numeric digits 30
parse arg infile .
tokens = '$1234567890abcdefghijklmnopqrstuvwxyz'
outfile = ''; print = 0;
call stream infile, 'c', 'open read'
do while lines(infile) ; output = 1; incard = linein(infile)
if left(incard,1) = '$' then call cmdline
if output then call printline; end
call stream infile, 'c', 'close'
exit
cmdline: ; output = 0; parse var incard cmdx tail
select
  when cmdx = '$rem' then output=0
  when cmdx = '$data' then call datacmd
  when cmdx = '$new' then call newcmd
  when cmdx = '$end' then call endcmd
  when cmdx = '$set' then call setcmd
  when cmdx = '$var' then call setvar
  when cmdx = '$loop' then call loopcmd
  when cmdx = '$.' then call lit
  otherwise; output = 1; end
return
lit: ; incard = tail; output = 1; return
printline: ; select;
  when print = 0 then nop
  when print = 1 then call dataact
  when print = 2 then call newact
  when print = 3 then call loopact
  when print = 4 then call setact
  otherwise; nop; end
return
datacmd: ; print = 1; rows = 0;  parse var tail t0 . ;
if left(t0,1)='$' then tokens = t0 ; return
dataact: ; rows = rows + 1; data.rows = incard; return
newcmd: ; print = 2; parse var tail nfile . ; select;
 when nfile = '' then nop;
 when nfile = '*' then nop;
 otherwise;
 call stream outfile, 'c', 'close'; outfile = nfile
 say 'writing' outfile
 call stream outfile, 'c', 'open write replace' ; end
return
newact: ; call lineout outfile, incard; return
setcmd: ; print = 4; kchar = ''; sets. = '$' ; return
setact: ; parse var incard 1 t0 2 t2 3 incard (t2) . ;
if pos(t0, kchar) = 0 then kchar = kchar || t0; t1 = pos(t0, kchar)
sets.t1 = incard; return
setvar: ; thiscard = tail; incard = ''
do forever; parse var thiscard t1 '$' thiscard; incard = incard || t1
parse var thiscard 1 mk 2 thiscard; fld = pos(mk,kchar);
select ; when mk = '' then nop
  when fld > 0 then incard = incard  || sets.fld ;
  otherwise;  incard = incard || '$' || mk ; end
if thiscard = '' then leave ; end
call lineout outfile, incard; return
loopact: ; srcs = srcs + 1; text.srcs = incard ; return
loopcmd: ; select;
  when print = 2 then call loopstart
  when print = 3 then call loopend
  otherwise; nop; end; return
loopstart: ; srcs = 0; print = 3; return
loopend: ; print = 2; parse var tail flags .
do row=1 to rows; rowdata = data.row;
if pos(left(rowdata, 1), flags) = 0 then iterate
parse var rowdata 1 . 2 div 3 rowdata ; incard = ''
fld = 0; field. = '' ; t0 = 0; field.t0 = '$' ;
do forever; fld = fld + 1; parse var rowdata t0 (div) rowdata
field.fld = t0 ; if rowdata = '' then leave; end
do src = 1 to srcs ;   thiscard = text.src ; incard = ''
do forever; parse var thiscard t1 '$' thiscard; incard = incard || t1
parse var thiscard 1 mk 2 thiscard; fld = pos(mk,tokens)-1;
select ; when mk = '' then nop
  when fld > -1 then incard = incard  || field.fld ;
  otherwise;  incard = incard || '$' || mk ; end
if thiscard = '' then leave ; end ; thiscard = incard; incard = ''
do forever; parse var thiscard t1 '$' thiscard; incard = incard || t1
parse var thiscard 1 mk 2 thiscard; fld = pos(mk,kchar);
select ; when mk = '' then nop
  when fld > 0 then incard = incard  || sets.fld ;
  otherwise;  incard = incard || '$' || mk ; end
if thiscard = '' then leave ; end
call lineout outfile, incard; end
end; return
endcmd: ; print = 0; parse var tail ; if tail = 'all' then do
  call stream infile, 'c', 'close'
  call stream outfile, 'c', 'close'
  say 'bye'; exit; end
return
endact: nop; return
« Last Edit: October 09, 2021, 12:51:50 pm by Wendy Krieger »

roberto

  • Hero Member
  • *****
  • Thank You
  • -Given: 19
  • -Receive: 13
  • Posts: 617
  • Karma: +1/-0
    • View Profile
Re: Accelerated Installs
« Reply #6 on: October 09, 2021, 08:00:10 pm »

Wendy Krieger

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 4
  • Posts: 20
  • Karma: +5/-0
    • View Profile
Re: Accelerated Installs
« Reply #7 on: October 10, 2021, 09:26:41 am »
The same url will now work,  Files distributed through forums go into files directory, not the root directory.

Thanks.