Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#163 closed enhancement (fixed)

Windows installer build process needs to check correct NSIS plugins are used

Reported by: Brian Smith Owned by: Brian Smith
Priority: normal Milestone:
Component: Installer Version: 1.1.1
Severity: normal Keywords: Windows NSIS plugins
Cc:

Description

Although the Windows installer for POPFile 1.1.2 RC1 was able to shut down an existing copy of POPFile the installer for RC2 went into a loop until the user manually shut down POPFile.

There were no changes to the relevant NSIS code between RC1 and RC2; the problem was that RC2 was built using several out-of-date NSIS plugins. Simply upgrading these plugins and rebuilding the installer (as RC2a) solved the problem.

The build process needs to include a mechanism to detect this sort of problem at build time. The installer already has some checks on the ActivePerl version so something along similar lines for the NSIS plugins should be relatively straightforward.

Perhaps a simple list of the extra plugins and their MD5 sums could be used as an "include" file which was used to check the plugins at compile time? This would also make it easier to document the identifying details of these extra plugins as most (all?) of them do not include any VersionInfo.

Change History (4)

comment:1 by Brian Smith, 12 years ago

Status: newassigned

comment:2 by Brian Smith, 12 years ago

Only need to consider the DLLs for now, but it is possible that one or more *.nsh files may also need to be checked in the future. The VerifyMeCabInstall function in getparser.nsh provides a good starting point for this enhancement

comment:3 by Brian Smith, 12 years ago

Screenshot showing proposed error message layout:

!error:

   *** Fatal Error ***

   The following 2 NSIS plugins are missing:

      md5dll
      nsUnzip

   NSIS is using incorrect versions of the following 12 plugins:

      AccessControl
      DumpLog
      dumpstate
      getsize
      GetVersion
      inetc
      LockedList
      MoreInfo
      ShellLink
      SimpleSC
      UAC
      untgz

!include: error in script: ".\plugin-status.nsh" on line 3
Error in script "./plugin-vcheck-demo-4.nsi" on line 82 -- aborting creation process

comment:4 by Brian Smith, 12 years ago

Resolution: fixed
Status: assignedclosed

changeset:3801 introduces compile-time checks on the extra NSIS plugins used by the Windows installer and other NSIS-based programs. Since most (all?) NSIS plugins do not include any version information, MD5 checksums are used.

This checksum file should make it easier to record details of all of the extra plugins used by POPFile (up until now the information on the plugins has been spread amongst the various NSIS script files and has therefore been difficult to maintain).

Note: See TracTickets for help on using tickets.