OS2 World Community Forum

OS/2, eCS & ArcaOS - Technical => Setup & Installation => Topic started by: Alfredo Fernández Díaz on December 30, 2020, 01:33:11 pm

Title: How to create files for UNPACK/UNPACK2 in IBM-based installation packages?
Post by: Alfredo Fernández Díaz on December 30, 2020, 01:33:11 pm
Hi everyone,

I have this old application that needs some files updated/replaced and a few more added after install. No biggie, except when you forget the fixes, and are reminded of them a few days later, the first time the program is started. So I thought, why not slipstream it?

You know, as in, unpack the installation media, replace / add files, repack it all, and have an installation that doesn't need upgrades and/or fixes afterwards.

This being directly based on IBM installers stuff, installation media was easy enough to unpack using, well, IBM's UNPACK or UNPACK2 (both work). However, I have no idea how to create compatible files that will be handled by the UNPACK routines later on. A quick search at Hobbes was not obviously helpful, so any ideas are welcome.

"PACK", anyone?

Thank you in advance,
AFD.
Title: Re: How to create files for UNPACK/UNPACK2 in IBM-based installation packages?
Post by: Martin Iturbide on December 30, 2020, 02:50:32 pm
Hi Alfredo.

As an alternative, I can help you create a WarpIn installer for that application, or at least we can try :)

Regards
Title: Re: How to create files for UNPACK/UNPACK2 in IBM-based installation packages?
Post by: Neil Waldhauer on December 30, 2020, 03:43:47 pm
Pack.Exe is a part of the OS/2 Toolkit. (So is Pack2.Exe, but I don't know if that is also needed.)

Code: [Select]
9-25-01  18:26          58,400    124  pack.exe
Title: Re: How to create files for UNPACK/UNPACK2 in IBM-based installation packages?
Post by: Andreas Schnellbacher on December 30, 2020, 05:44:25 pm
Pack.Exe is a part of the OS/2 Toolkit. (So is Pack2.Exe, but I don't know if that is also needed.)
Yes, PACK2/UNPACK2 gives better compression. IIRC, PACK2/UNPACK2 supports also the old pack method but read here:
Code: [Select]
start view toolsref pack
start view cmdref unpack
IIRC, the OS/2 installation files are packed with PACK2.
Title: Re: How to create files for UNPACK/UNPACK2 in IBM-based installation packages?
Post by: Alfredo Fernández Díaz on December 30, 2020, 10:24:03 pm
Hi guys,

As an alternative, I can help you create a WarpIn installer for that application, or at least we can try :)
You don't remember my old "WPI distro" project, do you? :)

Thank you, Martín, but there is a reason why I will not use WarpIN for this.

Neil, thank you, you were right! Turns out I have had not one, but two pack(2) EXEs lying around for the last twenty years or so! I seemed to recall these were part of the system (I was wrong, obviously), so they didn't fire when I typed 'pack' at a command prompt: I keep all development tools out of the path, etc. and I some 'setenv' scripts for this that I last modified in 2005 -- no wonder I forgot pack/pack2 were even there.

OK, so for anyone out there who may need this, or a possible future self of mine in a couple of years' time:

1. Unpack your archive file with the commands:
"Unpack oldapp.@ /SHOW > oldapp.txt" -- this will let you know the target paths for uncompressed files
"Unpack oldapp.@ ." will expand all files in the current dir (".")

2. Edit oldapp.txt. This might look like this

----8<--------8<--------8<--------8<--------8<--------8<--------8<----
oldapp.@
[...]
->\os2\dll\OldApp.dll
->\os2\help\OldApp.hlp
[...]
----8<--------8<--------8<--------8<--------8<--------8<--------8<----

and we need to transform that into something like this

----8<--------8<--------8<--------8<--------8<--------8<--------8<----
[...]
FixedApp.dll /H:\os2\dll\OldApp.dll
FixedApp.hlp /H:\os2\help\OldApp.hlp
[...]
----8<--------8<--------8<--------8<--------8<--------8<--------8<----

to rebuild the archive using the new files instead of the old ones, while keeping their target paths. Save the list as FixedApp.lst, and type:

"Pack FixedApp.lst OldApp.@ /L"

to pack everything back. You should be good to go. Pack2 shares the same syntax, apparently.

Thank you again,
AFD.