Author Topic: Innoextract Port?  (Read 6472 times)

Tiny Frogware

  • Guest
Innoextract Port?
« on: June 12, 2023, 11:01:47 pm »
Hello,

  I was wondering if anyone had attempted to port Innoextract to OS/2? For those not familiar with it, it's an open source tool to unpack install/setup files created for Windows by Inno Setup. You can read more about Innoextract here:

https://constexpr.org/innoextract/

 I'm interested in a version for OS/2 so that I can extract my games purchased from Good Old Games, http://www.gog.com and run them under OS/2 using Dosbox/2. Gog has them packaged to install under Windows and run with a Win version of Dosbox. I could install on a Win machine and copy the files over to my Os/2 box, but would rather not.

  The Innoextract tool also runs under many flavors of Linux. I think the main roadblock in porting it would be the Boost C++ libraries it depends on. Boost is open source too and it would need to be ported to OS/2 as well.

  I welcome thoughts and opinions from all. I would love to try porting it myself but not sure where to start or if it's even viable.

Thanks,

  Tony.

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4754
  • Karma: +41/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: Innoextract Port?
« Reply #1 on: June 13, 2023, 03:53:13 am »
Hi Tony.

Sorry that I don't know about how to port.

About the GOG games, how does they came package? Is it an .exe windows file? if so, have you tried with Odin to see if they unpack. Just try "pe <filename>.exe".

Regards
« Last Edit: June 13, 2023, 03:57:20 am by Martin Iturbide »
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4808
  • Karma: +100/-1
    • View Profile
Re: Innoextract Port?
« Reply #2 on: June 13, 2023, 04:44:00 am »
I tried innoextract.exe with Odin, just silently exits. Wonder how much of Boost it needs? Just the headers or some of the libraries.

Tiny Frogware

  • Guest
Re: Innoextract Port?
« Reply #3 on: June 13, 2023, 11:50:00 am »
Thanks for the replies guys.

Martin:
 The Gog files are indeed Windows .exe's but unfortunately no luck running them successfully under Odin. And as Dave mentions, Innoextract doesn't work any better under Odin.

Dave:
 From what I've read, most of the Boost libraries are just headers only, however, as luck would have it the 5 specific libraries needed to build Innoextract, are not. They include iostreams, filesystem, date_time, system and program_options. Although system is just a stub library provided for compatibility so it's actually header only now.

  I'm still reading and researching on porting this. I'm going to see how far I can get. Hopefully it will end with success. Again, thoughts, opinions, etc. are always welcome.

Thanks,

  Tony.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2095
  • Karma: +160/-0
    • View Profile
Re: Innoextract Port?
« Reply #4 on: June 13, 2023, 12:08:43 pm »
Almost builds for me, 1x missing symbol:
Undefined Symbol                Referenced by
================                =============

__ZN5boost9iostreams6detail10bzip2_base3endEbSt9nothrow_t U:/tmp\ldconv_chunk_cpp_o_7ca64883fce1eb5a0.obj(U:\DEV\innoextract-1.9\src\stream\chunk.cpp)

Seems my boost build has no bzip support....

Tiny Frogware

  • Guest
Re: Innoextract Port?
« Reply #5 on: June 13, 2023, 12:47:25 pm »
Hello Paul,

 Thanks for giving it a try. I appreciate it. At least I know that it can be done if Boost.IOStreams can be built with  zlib and bzip2 support. I say if, because I have no idea what is involved in doing so and/or how difficult it would be.

  I'm still in the process of getting my system setup with all the needed resources and development tools needed to give it a try myself.

Thanks,

  Tony.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2095
  • Karma: +160/-0
    • View Profile
Re: Innoextract Port?
« Reply #6 on: June 13, 2023, 11:10:48 pm »
I think I'm winning:
Code: [Select]
    - zlib                     : yes
    - bzip2                    : yes
    - lzma                     : yes

I got an exe - but unfortunately it traps on startup....
Code: [Select]
U:\DEV\INNOEXTRACT-1.9\BUILD\INNOEXTRACT.EXE
INNOEXTR 2:000ff6e0
cs:eip=0008:0032f6e0      ss:esp=0000:00000000      ebp=00000053
 ds=0000      es=0000      fs=0000      gs=0000     efl=00000000
eax=0032f3c8 ebx=1ffc9d54 ecx=0032f3dc edx=0032f400 edi=00000000 esi=0032ff9c
Creating 30DC_01.TRP
Moved 30dc_01.TRP to C:\var\log\app\64896387-30dc_01-INNOEXTRACT-exceptq.txt
« Last Edit: June 13, 2023, 11:23:22 pm by Paul Smedley »

TeLLie

  • Full Member
  • ***
  • Posts: 234
  • Karma: +11/-0
    • View Profile
Re: Innoextract Port?
« Reply #7 on: June 13, 2023, 11:49:29 pm »
Hi all,

I also tried to compile it, using boost 1.57.0
Here its starts...
F:\Request\innoextract-1.9\cmake-920-qt632>innoextract.exe -v
innoextract 1.9
Extracts installers created by Inno Setup 1.2.10 to 6.0.5

But have no idea how to use it...
And not sure it works either...

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4808
  • Karma: +100/-1
    • View Profile
Re: Innoextract Port?
« Reply #8 on: June 14, 2023, 01:58:23 am »
innoextract.exe --help

Tiny Frogware

  • Guest
Re: Innoextract Port?
« Reply #9 on: June 14, 2023, 12:19:44 pm »
Hi all,

I also tried to compile it, using boost 1.57.0
Here its starts...
F:\Request\innoextract-1.9\cmake-920-qt632>innoextract.exe -v
innoextract 1.9
Extracts installers created by Inno Setup 1.2.10 to 6.0.5

But have no idea how to use it...
And not sure it works either...

Hello Tellie,

  Good news! It works!  :) I just finished trying it on 4 different Gog games and was successful at extracting each one! Having an OS/2 version makes things much easier.

  Thanks again for your time and efforts. And thanks to Paul and Dave for their time, efforts and feedback as well.

  I'm still going to try and see if I can compile it successfully myself just to see if I can and in case there are any future changes needed.

Thanks!

  Tony.