Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Nullsoft Installer self-extracting archive #96

Open
neuromancer opened this issue Oct 6, 2018 · 8 comments
Open

Support Nullsoft Installer self-extracting archive #96

neuromancer opened this issue Oct 6, 2018 · 8 comments
Labels
crossplatform enhancement New feature or request Priority: low question Further information is requested
Milestone

Comments

@neuromancer
Copy link
Contributor

Some Humble Bundle games installers are Nullsoft self-extracting archives. For instance, Darklands:

$ file Darklands_v1.0.exe 
Darklands_v1.0.exe: PE32 executable (GUI) Intel 80386, for MS Windows, Nullsoft Installer self-extracting archive
$ file -i Darklands_v1.0.exe 
Darklands_v1.0.exe: application/x-dosexec; charset=binary

Using innoextract will silently fail to extract it. It will be nice to support its installation, since file-roller can extract them out-of-the-box (I think it is using 7z)

@tkashkin tkashkin added enhancement New feature or request question Further information is requested crossplatform Priority: low labels Oct 31, 2018
@tkashkin tkashkin added this to the Non-native milestone Oct 31, 2018
@tkashkin
Copy link
Owner

Any reliable way to detect it except file <file>.exe | grep Nullsoft?

@neuromancer
Copy link
Contributor Author

Not really. file should verify the NSIS signature:

https://github.com/kornelski/7z/blob/20e38032e62bd6bb3a176d51bce0558b16dd51e2/CPP/7zip/Archive/Nsis/NsisIn.h#L28

Do you want to avoid to use file?

tkashkin added a commit that referenced this issue Oct 31, 2018
Add NSIS installer support (#96)
@tkashkin
Copy link
Owner

I have added NSIS installer support, but file-roller doesn't seem to be able to correctly extract one NSIS installer I have found in my humble collection.

@neuromancer
Copy link
Contributor Author

Works great!. I tested it with Command H.Q.. If it is not working for you, maybe your 7z binary was compiled without nsis support?

Anyway, my final suggestion for this feature is to change the name of the compatibility layer to avoid confuse the users: Innoextract is too specific now, since we can extract more types of installers.

@tkashkin
Copy link
Owner

No, it ignores compat tool at all if NSIS installer is detected. Innoextract is still correct because it uses innoextract.

@neuromancer
Copy link
Contributor Author

Fair enough. Great work!

@tkashkin
Copy link
Owner

Btw I have added a wiki page about compat tools. You can edit wiki if you want and if you think something may be confusing for users. 🙂

@tkashkin
Copy link
Owner

tkashkin commented Nov 1, 2018

I was implementing #106 and testing with Uplay. It's also NSIS installer and it doesn't unpack correctly for me.
Even if such unpacking works, installer still may do something itself (especially in cases like Uplay), and while it probably should work for most games, for some it won't.

For now I'll use file-roller for NSIS installers only if innoextract is selected and I will think how can it be solved properly. Maybe file-roller should be added as a separate compat tool.

@tkashkin tkashkin reopened this Nov 1, 2018
Lucki pushed a commit to Lucki/GameHub that referenced this issue Oct 30, 2021
Add NSIS installer support (tkashkin#96)


Former-commit-id: d18ac39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crossplatform enhancement New feature or request Priority: low question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants