chocolatey-community / chocolatey-packages

Chocolatey Community Maintainers Team Packages - packages that are managed and maintained by core community team for community package repository (https://community.chocolatey.org/packages)
https://community.chocolatey.org/profiles/chocolatey-community
Apache License 2.0
446 stars 377 forks source link

(texmaker) New version only supports 64bit, and uses msi installer #793

Closed AdmiringWorm closed 7 years ago

AdmiringWorm commented 7 years ago

As the title says, the latest version (5.5.0.0) of the texmaker available on their site seem to only support 64bit and not 32bit anymore, not completely sure what would be the best way to support this hence the opening of this issue. The installer have also been changed to be a msi based installer instead of an exe based one.

RedBaron2 commented 7 years ago

The changes can be made to the update and other files, but I see this as a test case of the installer type changing during development. @ferventcoder @gep13 Should Chocolatey auto-detect the installer type?

majkinetor commented 7 years ago

No, chocolatey doesn't auto-detect, but AU could. The problem is in detecting silent switches. The one could automate ussf app to obtain switches. Alternative would include creating custom database that we maintain.

I was already considering this before and I thought its too much effort for the benefit but sure it would be nice to have. It would lead to automatic installer creation and would also handle installer changes on vendor site like this one.

Thinking now more about it, now I see a very easy solution:

Using trid package we could obtain installer type. This is the output for one installer I have at hand:

TrID/32 - File Identifier v2.24 - (C) 2003-16 By M.Pontello
Definitions found:  8677
Analyzing...

Collecting data from file: .\pastexen_v2_win32_installer.exe
 91.9% (.EXE) NSIS - Nullsoft Scriptable Install System (846567/2/133)
  3.3% (.EXE) Win32 Executable MS Visual C++ (generic) (31206/45/13)
  3.0% (.EXE) Win64 Executable (generic) (27625/18/4)
  0.7% (.DLL) Win32 Dynamic Link Library (generic) (6578/25/2)
  0.4% (.EXE) Win32 Executable (generic) (4508/7/1)

It correctly identified the NSIS installer.

Now we maintain database of silent switches in a hash table such as

$silent = @{
   NSIS = '/S'
   ...
}

If anybody else would like to collaborate on this, I am ready to do some work.

majkinetor commented 7 years ago

Here is the PoC: https://github.com/majkinetor/silencer.

AdmiringWorm commented 7 years ago

I'm working on this one now, and just updates the silent args manually for now. I've opted for just throwing an exception if the user is currently running on a 32bit installation, or is using the --x86 argument (also putting a note in the Readme file of course).