GithubHelp home page GithubHelp logo

windows-installer's Introduction

NSIS based Windows Installer for OpenMS

This repository contains all files necessary to create a windows installer from a source build of OpenMS (System A).

Additional required software:

  • NSIS (NullSoft Installer System)
    • in its current version the scripts are written for NSIS 3.0 from http://nsis.sourceforge.net. For 3.0 we upgraded to a newer, better maintained UI plugin (https://github.com/SuperPat45/UltraModernUI) but with legacy design. Please install/copy it, too, before you proceed.
    • to work with NSIS 2.x, you need to remove a subfolder on line 91 in the OpenMS_installer.nsi and use the old UI plugin but we suggest the sole usage of NSIS 3.0 now.
    • you should also copy the content of the 8k string support from http://nsis.sourceforge.net/Special_Builds (Download large strings build) build into your NSIS install directory (this should overwrite makensis.exe and Stubs). It removes problems during the addition of the many thirdparty paths on a user's machine during installation. (There are no problems during compilation)

TODO before running OpenMS_installer.nsi

  1. Copy UAC.dll to your <PATH-to-NSIS>/Plugins directory before running the installer script! Otherwise you'll get an error during script compilation: "Invalid command: UAC::RunElevated"
  2. Extract the content of Inettc.zip to your <PATH-to-NSIS> directory before running the installer script! Otherwise you'll get an error during script compilation: "Invalid command: inetc::get"

Quick guide

  1. Fully compile and test OpenMS using a Visual Studio Generator (create the targets [OpenMS TOPP UTILS GUI] - NOT MORE!!)
  2. create the documentation (targets "doc" and "doc_tutorial" (NOT doc_internal) in OpenMS_build/doc) OR copy the doc folder from Linux if setting up documentation on Windows is too hard or not possible.
  3. Read additional install information in the header of OpenMS_installer.nsi (!)
  4. Adapt relevant settings in the header of OpenMS_installer.nsi to your needs OR see ./auto_package/*.nsi for example files, which you can just copy and modify.
  5. Compile OpenMS_installer.nsi using NSIS (this should create a file named something like OpenMS_setup.exe)
  6. Distribute

Verifying the installer

  • Use a Virtual Machine (System B)
  • Do NOT assume that successfully installing OpenMS_setup.exe on the System A means that the installer will work on a new System B! But you can at least check for major quirks.
  • Check if all files were created and Start Menu entries are present and working.
  • To test the TOPP tools, run TOPPTest_Assembler.pl on System A. e.g.,
    • Adapt paths within TOPPTest_Assembler.pl
    • Open a VS command line
    • > cd c:\<path to win_installer_dir>
    • > TOPPTest_Assembler.pl
    • Now, copy the folder /OpenMS/source/TEST/TOPP/ to System B and run TOPP_test.bat (which should have been created by the perl script).
    • Check if the script runs through without pausing (which means that something needs your attention). If you're picky, then check the whole output of the script. Sometimes a TOPP-tool might give a warning and still produce the correct result, thus the script will not remind you of that.

windows-installer's People

Contributors

aiche avatar cbielow avatar jpfeuffer avatar timosachsenberg avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

windows-installer's Issues

Error: "Plugin not found, cannot call UAC::ExecCodeSegment"

I copied the UAC.dll file to the NSIS Plugin directory as directed by the README.

Few details:

  • Windows 7
  • Visual Studio 2015

I also tried installing VS 2010 Relocatable libraries and re-compiling the DLL using Visual Studio 2015 and the source from the NSIS Plugin site.

Any ideas?

Storage of Thirdparty binaries

We should think about unifying the storage place of the thirdparty binaries.
For Windows, e.g. the nightlies access the SVN repo where all binaries (lnx,mac,win) are stored.
On the other hand, in its current state, the installer in this repository "hard-codedly" takes the binaries from the to_install folder in this git repo.
Potentially a source of errors. I do not even know, if the current versions of the binaries match.

Installer cannot run silent/automated

The installer will show messageboxes (mostly for Proteowizward's .Net depedencies), which currently prevent a silent install.
We would need to add an /SD switch to each MB with a default answer (see http://nsis.sourceforge.net/Docs/Chapter4.html#silent)

Alternatively, the install mode '2' currently excludes ThirdParty installation, i.e. would also be silent out of the box. But we do not specify installation types, see http://nsis.sourceforge.net/Reference/SectionIn, (nor do I know how they can be specified from a commandline).

Installation process of Thirdparty binaries

While looking at how to exclude the Thirdparty binaries from this repo by making the path to them variable, I saw that actually all the folders are hard coded.
I.e. the Installer script installs the Fido folder, then the Xtandem folder, then the MSGF folder and so on. Since we are getting more and more thirdparty binaries it would be great to find a programmatic solution.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.