devkitPro / installer

383 stars 40 forks source link

Issue with Chocolatey Package Manager #19

Closed chtof closed 5 years ago

chtof commented 5 years ago

Hi,

Chocolatey is a package manager for Windows (providing already several thousand of packages) and we have received a request to create an installation script for devkitPro but we have an issue. To explain the issue simply and to illustrate the issue, we can resume the installation command used by Chocolatey with: start-process -Wait -FilePath devkitProUpdater-3.0.3.exe The issue is this command never finished and due to my experience with Chocolatey scripts, I guessed it was due to the ExecWait '"$INSTDIR\msys2\usr\bin\bash.exe" --login -c exit' line in your nsi file as I have aleady had a same issue with another software "Octave" using also "bash --login". I have understand this call to a bash subprocess never returns a signal when it's finished. With Octave software, this call was inside a batch file, called by the installer and I was able to create a Chocolatey script which comment this line (I haven't seen any regression, it seems it checks only if msys works properly and it is the case almost of time). I can't apply the same workaround with devkitPro as this call is inside the installer. To proove the issue is really due to this call, I installed NSIS installer, downloaded NSIS files from this GitHub repository and I have also installed the plugins needed by NSIS... I have build the installer without changing anything: I launched start-process -Wait -FilePath devkitProUpdater-3.0.3.exe, I haven't used silent arguments voluntary to see the progres of the installation and at the end of installation, the "start-process" never ends. So, I commented the line with ExecWait '"$INSTDIR\msys2\usr\bin\bash.exe" --login -c exit', rebuild the installer and the start-process has finished as expected.

So, to add also devkitPro in the Chocolatey packages repository, could you tell me if the call to ExecWait '"$INSTDIR\msys2\usr\bin\bash.exe" --login -c exit' is really needed or do you have ideas how a such command can be handled properly when called by a start-process Powershell command waiting to have a signal to finish properly?

Thanks in advance for your help!

fincs commented 5 years ago

devkitPro is not the name of any piece of software. It's the name of the organization which produces and provides a bunch of tools and libraries for homebrew development.

We already have a custom package manager in place (based on pacman from Arch Linux fame), which automatically fetches and installs any packages the user might want to install or remove. We advise you to ignore the request to "add devkitPro" to Chocolatey (which doesn't make any sense), and point people to our guides on how to get started:

https://devkitpro.org/wiki/Getting_Started https://devkitpro.org/wiki/devkitPro_pacman

devkitProUpdater is a small utility we provide as convenience to Windows users in order to set up an msys2 environment (also based on pacman), and install a sensible set of packages necessary for developing homebrew on the consoles the user selects.

ketsuban commented 5 years ago

I didn't ask to "add devkitPro" to Chocolatey - I asked to add devkitPro Updater (the software devkitPro distribute for managing devkitPro's toolchains on Windows). There will no doubt be updates to devkitPro Updater; when there are, users will want to ensure they have the latest version of things not updated by pacman such as MSYS2. That's what Chocolatey is for.

fincs commented 5 years ago

Everything is updated by pacman, including msys2. There is no reason why you would want to have devkitPro Updater on Chocolatey. devkitProUpdater only assists in the initial installation of a msys2 system with the devkitPro repositories pre-configured.