Win32 Installer

From Inkscape Wiki
Jump to: navigation, search

This page is outdated. It is kept for historical reasons, e.g. to document specific decisions in Inkscape development.

There has been some complaints about the Windows installer and also many ideas has been raised. So I want to bundle all those ideas here on one page.

new feature request will cause complete rework

There is a request from a professor on the university to have a .msi installer in order to integrate inkscape into the university software distribution system. This would require a complete rework and an entirely separate package as NSIS is not compatible with MSI packages. The standard recommendation from NSIS is to use the silent install options they provide to help automate large installations.

reported problems

  • no uninstall option, this is a privilege issue as the user has no rigths to write the necessary registry strings
  • - in order to install Inkscape on systems with limited rights the installer ignores such errors and just do not write registry keys
  • Windows: problems installing as non-privileged user, same as above. We should help the user selecting the correct settings -- remove the check for all users or shortcuts in general (done)
  • the uninstaller simply deletes the install directory. If the user installs accidentally to C:\Program Files\ ... oh that S****

coming up - where you can help

  • check if Inkscape installer is not translated into your language and help translating it
  • msi package using the wix installer, volunteers welcome

status

  • screenshots current version
  • multi user installation
  • translated into catalan, english, czech, french, finnish, german, italian, polish, slovak, slovenian and spanish
  • optional sets file associations for .svg and .svgz
  • optional keeps the personal preferences
  • selectable components (core, gtk, shortcuts, examples, tutorials, translations)
  • show GPL, not need to accept just click next
  • added non program files (README, AUTHORS, ...)
  • crc validation
  • does not show details any more during installation/deinstallation
  • silent install, all settings can be done via command line
  • test if the user has privileges to write registry,
  • test if inkscape is installed and the previous installation is done by the same user
  • ask to uninstall inkscape before overwriting
  • test if the same user uninstalls inkscape
  • optionally removes all reachable inkscape personal settings

feedback or what users say

  • the file association should go to the toplevel three
  • also associations for other file formats

component page

  • inkscape core files (required)
  • gtk files (required)
  • shortcuts
  • - install for all user
  • - desktop icon
  • - quick launch icon
  • - default SVG editor
  • - shell menu integration
  • additional Files
  • - examples
  • - tutorials
  • languages
  • - English (required)
  • - German
  • - French
  • - ...

ideas

  1. (DONE) installer installs everything, I don't need chinese translations
  2. (DONE) installer translations is bad, I don't understand the sense
   * there are descriptions if you select/mouse-over that menu item
  1. (DONE) crc validation
  2. custom installations (examples, tutorial, translations)
  3. (DONE) silent installation
   * is by default enables but no other option as /D directory can be set. Use /S to switch silent mode.
   * now all the Options can be deselected with command line parameters
  1. use the common/extra gtk-lib as gaim or gimp are doing and only supply extra libs
   * (Ishmal) We have talked about this before, and it is something that we need to examine.  But
     what we need is more of a reason to do this than only download size or disk space.  This
     would be much more work than just repackaging.
         # The individual packages of their existing ports were built individually.  This means that
           for development, the dev must have the makefile point to all of their individual trees.
           The pkg-config information thus also refers to individual trees.  This would make development
           -much- more difficult than is is now.  Remember, the Win32 build is just another build 
           environment of the Inkscape tree.  We can edit/compile/debug on it just as easily as
           on Linux.  It is -not- a port, where the development is done entirely on Linux.
         # We would need for the startup code to look for the location of the Gtk directory in the
           registry.  We would then either need to add it to the path, or do explicit LoadLibrary()
           calls.
         # If the user does not already have the common Gtk directory, then it must be part of our
           install process.  We cannot ask the user to go to some website, download and install it.
           We provide -everything- now.  We would need an extremely good reason to stop doing this.
           Actually, if you have ever used InstallShield, you would know that it provides all of its
           dependencies, too (the huge ODBC or OLE packages within your installer are examples).
     I am not against this.  We just need to do it a different way.   What we have discussed is the
     possibility of being able to build the entire set of libraries from source, all of the way from
     iconv to Gtkmm and libxslt and beyond.  If we could do this, then the build would be clean, and have
     valid interdependencies (no missing DLLs or DLLs with the wrong names).  A single pkg-config 
     directory would point to all of the correct places.  This would benefit everyone; Gimp, Gaim,
     Inkscape, and anyone else who wanted to build a Gtk app on Win32 would find it much easier
     this way.  We need to talk with the guys doing the porting, about doing something just like this.
     There is a promising subproject of MinGW, 'portmaker,'  which can maybe allow this to happen.
     It is here.
  1. (DONE) there is no need to show the GPL just for the usage of the program. Make it not mandatory to accept.
   * (Ishmal)  I think the GPL is cool.   It basically says "Welcome to Open Source," and reminds
      the users that it is not a commercial application, but a community effort.
  1. (DONE) not to show Details by default
  2. test dependencies before installing extensions
  3. associate more than just .svg
   * uh, again how do we test which dependencies are supported uberconverter, ghostscript, etc

problems and questions

  • (DONE) we need to detect, what are the inkscape translations and let the user choose
how we present the languages?
In the native one "English, Deutsch, Italiano" or in the language of the installer?
   * currently it is presented like that, ordered by ISO code "am Amharic, de German)
once we detected inkscape translation we can left over the other languages from the gtk package
  • how can we put the translations out of the installer so that more people can help translating
   * what about let a script write the translation part ? 
     this script then should access the po files for the translations
     Q: does python or perl allow to access the inkscape po files ?
  • (DONE) what should a silent installation do, what are the options ?
   * all options are supported a /? gives a screen with all possible options
  • (DONE) we also need to add some none program-files: license (done), authors, hacking, news (release-notes), readme,

more todo

  • please provide samples or screenshots of a application that you satisfied and think is good
  • other ideas

screenshots

Adib