Differences

This shows you the differences between two versions of the page.

Link to this comparison view

devel:windowsinstaller [2011/06/02 17:43] – Less ambiguous (and safer) to mention dependencies in same cell xueshengdevel:windowsinstaller [2011/09/18 19:58] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== How to build the Windows installer for POPFile 1.1.2 (draft) ====== ====== How to build the Windows installer for POPFile 1.1.2 (draft) ======
  
 +^The Community Edition (i.e. the free edition) of %%ActivePerl%% 5.8.x is no longer available^
  
 ===== Introduction ===== ===== Introduction =====
Line 89: Line 89:
 When PPM updates an existing Perl package or installs a new Perl package these changes are stored separately from the packages included in the %%ActivePerl%% distribution. This means that the Windows installer uses a mixture of original and new/updated package paths when assembling the minimal Perl. When PPM updates an existing Perl package or installs a new Perl package these changes are stored separately from the packages included in the %%ActivePerl%% distribution. This means that the Windows installer uses a mixture of original and new/updated package paths when assembling the minimal Perl.
  
-Here is a complete list of the PPM updates applied to a clean installation of %%ActivePerl%% 5.8.9 build 829 for the POPFile 1.1.2 release. Each package was updated separately.+Here is a complete list of the PPM updates applied to a clean installation of %%ActivePerl%% 5.8.9 build 829 for the POPFile 1.1.2 release. Each package was updated separately (i.e. the updates were done one package at a time).
  
 ^ Package Name           ^ Version ^ Repository      ^ Description ^ ^ Package Name           ^ Version ^ Repository      ^ Description ^
Line 119: Line 119:
 |Math-Complex            |1.57     |%%ActiveState%% |complex numbers and associated mathematical functions | |Math-Complex            |1.57     |%%ActiveState%% |complex numbers and associated mathematical functions |
 |Module-Build            |0.3624   |%%ActiveState%% |Build and install Perl modules | |Module-Build            |0.3624   |%%ActiveState%% |Build and install Perl modules |
-|Module-Metadata         |1.000004 |%%ActiveState%% |Gather package and POD information from perl module files (automatically installed when 'Module-Build 0.3624' was installed) | +|Module-Metadata         |1.000004 |%%ActiveState%% |Gather package and POD information from perl module files (automatically installed by PPM when the 'Module-Build 0.3624' package was installed) | 
-|version                 |0.88     |%%ActiveState%% |Structured version objects (automatically installed when 'Module-Build 0.3624' was installed) | +|version                 |0.88     |%%ActiveState%% |Structured version objects (automatically installed by PPM when the 'Module-Build 0.3624' package was installed) | 
-|Perl-OSType             |1.002    |%%ActiveState%% |Map Perl operating system names to generic types (automatically installed when 'Module-Build 0.3624' was installed ) | +|Perl-OSType             |1.002    |%%ActiveState%% |Map Perl operating system names to generic types (automatically installed by PPM when the 'Module-Build 0.3624' package was installed ) | 
-|CPAN-Meta-YAML          |0.003    |%%ActiveState%% |Read and write a subset of YAML for CPAN Meta files (automatically installed when 'Module-Build 0.3624' was installed ) |+|CPAN-Meta-YAML          |0.003    |%%ActiveState%% |Read and write a subset of YAML for CPAN Meta files (automatically installed by PPM when the 'Module-Build 0.3624' package was installed ) |
 |Module-Corelist         |2.49     |%%ActiveState%% |what modules shipped with versions of perl | |Module-Corelist         |2.49     |%%ActiveState%% |what modules shipped with versions of perl |
 |Module-Load-Conditional |0.44     |%%ActiveState%% |Looking up module information / loading at runtime | |Module-Load-Conditional |0.44     |%%ActiveState%% |Looking up module information / loading at runtime |
Line 161: Line 161:
 |IO-Socket-Socks   |0.4   |%%ActiveState%% |Provides a way to create socks client or server both 4 and 5 version | |IO-Socket-Socks   |0.4   |%%ActiveState%% |Provides a way to create socks client or server both 4 and 5 version |
 |IO-Socket-SSL     |1.13  |  tcool         |Nearly transparent SSL encapsulation for IO::Socket::INET | |IO-Socket-SSL     |1.13  |  tcool         |Nearly transparent SSL encapsulation for IO::Socket::INET |
-|Net-SSLeay        |1.36  |  bribes        |Perl extension for using %%OpenSSL%% +|Net-SSLeay        |1.36  |  bribes        |Perl extension for using %%OpenSSL%% (automatically installed by PPM when the 'IO-Socket-SSL 1.13' package was installed) |
-|                  |      |                |(automatically installed by 'IO-Socket-SSL 1.13)' |+
 |Text-Kakasi       |2.04  |  uwinnipeg     |perl frontend to kakasi | |Text-Kakasi       |2.04  |  uwinnipeg     |perl frontend to kakasi |
 |%%TimeDate%%          |1.20  |%%ActiveState%% |Parsing of date strings | |%%TimeDate%%          |1.20  |%%ActiveState%% |Parsing of date strings |
Line 180: Line 179:
  
 FIXME Give download links for the %%BerkeleyDB-0.22-modified.zip%% and DBD-SQLite2-0.33.zip files plus installation instructions for these files. FIXME Give download links for the %%BerkeleyDB-0.22-modified.zip%% and DBD-SQLite2-0.33.zip files plus installation instructions for these files.
 +
 +FIXME Give instructions for using PPM's command-line mode to install %%BerkeleyDB%% v-.22 and DBD-SQLite2 v0.33
  
 ===== PDK - Perl Dev Kit (optional) ===== ===== PDK - Perl Dev Kit (optional) =====
Line 192: Line 193:
   * ''popfile-service.exe'' (runs POPFile as a service)   * ''popfile-service.exe'' (runs POPFile as a service)
  
-These programs are all built using [[http://www.activestate.com/perl_dev_kit/| ActiveState's Perl Dev Kit (PDK)]]. The Windows version of POPFile is a 32-bit program so the 32-bit (x86) Windows version of the PDK is required. Unlike %%ActivePerl%%, the PDK requires a licence. In January 2010 the cost of a single-user PDK licence was US $295. A time-limited free trial version of the PDK is also available.+These programs are all built using [[http://www.activestate.com/perl_dev_kit/| ActiveState's Perl Dev Kit (PDK)]]. The Windows version of POPFile is a 32-bit program so the 32-bit (x86) Windows version of the PDK is required. Unlike %%ActivePerl%%, the PDK requires a licence. In June 2011 the cost of a single-user PDK licence was US $295. A time-limited free trial version of the PDK is also available.
  
 Note that POPFile's Subversion repository includes pre-built versions of these six Perl-based programs which is why the PDK is described as "optional" here. The Subversion log entry for each program normally identifies the PDK version used to build the program. Note that POPFile's Subversion repository includes pre-built versions of these six Perl-based programs which is why the PDK is described as "optional" here. The Subversion log entry for each program normally identifies the PDK version used to build the program.
Line 216: Line 217:
 The POPFile installer and some of the NSIS-based POPFile utilities require some additional NSIS plugins. Each plugin is usually made available as a zip file containing the plugin DLL, the source code for the DLL, some documentation, one or more example scripts and occasionally some macros and other support functions in a NSIS header (*.nsh) file. The POPFile installer and some of the NSIS-based POPFile utilities require some additional NSIS plugins. Each plugin is usually made available as a zip file containing the plugin DLL, the source code for the DLL, some documentation, one or more example scripts and occasionally some macros and other support functions in a NSIS header (*.nsh) file.
  
-^ Most of these plugins have been updated since POPFile 1.1.1 was released. Some of the newer versions have changed a lot and will require code changes to the installer if they are to be used for POPFile 1.1.2 ^ +^ Plugin Link ^ Version used by POPFile 1.1.^ Description ^ 
- +| [[http://nsis.sourceforge.net/AccessControl_plug-in| AccessControl]]            | 5 November 2009 (current version) | Access Control List (ACL) management |
-^ Plugin Link ^ Version used by POPFile 1.1.^ Description ^ +
-| [[http://nsis.sourceforge.net/AccessControl_plug-in| AccessControl]]            | [[http://nsis.sourceforge.net/mediawiki/images/archive/4/4a/20091105165009!AccessControl.zip| 23 January 2008]] | Access Control List (ACL) management |+
 | [[http://nsis.sourceforge.net/DumpLog_plug-in| DumpLog]]                        | v1.0 (current version) | Dump the log of the installer (installer details) to a file |    | [[http://nsis.sourceforge.net/DumpLog_plug-in| DumpLog]]                        | v1.0 (current version) | Dump the log of the installer (installer details) to a file |   
 | [[http://nsis.sourceforge.net/DumpState_plug-in| dumpstate]]                    | v0.2 (current version) | Displays the current state of the NSIS variables and stack ((The **dumpstate** plugin is not used by the installer or any of the NSIS-based utilities for POPFile. It is listed here as it is a very useful debugging aid.)) | | [[http://nsis.sourceforge.net/DumpState_plug-in| dumpstate]]                    | v0.2 (current version) | Displays the current state of the NSIS variables and stack ((The **dumpstate** plugin is not used by the installer or any of the NSIS-based utilities for POPFile. It is listed here as it is a very useful debugging aid.)) |
 | [[http://forums.winamp.com/showthread.php?postid=1756112#post1756112| getsize]] | v1.0 (current version) | Finds size of a file or folder, counts files in folder | | [[http://forums.winamp.com/showthread.php?postid=1756112#post1756112| getsize]] | v1.0 (current version) | Finds size of a file or folder, counts files in folder |
-| [[http://nsis.sourceforge.net/GetVersion_(Windows)_plug-in| GetVersion]]        | [[http://nsis.sourceforge.net/mediawiki/images/archive/8/8a/20090724110820!GetVersion.zip| v0.9]] | Windows version information (name, type, version, etc) | +| [[http://nsis.sourceforge.net/GetVersion_(Windows)_plug-in| GetVersion]]        | v1.5 (current version) | Windows version information (name, type, version, etc) | 
-| [[http://nsis.sourceforge.net/Inetc_plug-in| inetc]]                            | [[http://nsis.sourceforge.net/mediawiki/images/archive/c/c9/20090822092840!Inetc.zip| 1 September 2008]] | Internet client plug-in for files download and upload | +| [[http://nsis.sourceforge.net/Inetc_plug-in| inetc]]                            | 28 April 2011 (current version) | Internet client plug-in for files download and upload | 
-| [[http://nsis.sourceforge.net/LockedList_plug-in| LockedList]]                  | [[http://nsis.sourceforge.net/mediawiki/images/archive/c/c9/20090822092840!Inetc.zip| v0.7 RC2]] | Gets a list of programs that are locking a selection of files | +| [[http://nsis.sourceforge.net/LockedList_plug-in| LockedList]]                  | v2.3 (current version) | Gets a list of programs that are locking a selection of files | 
-| [[http://nsis.sourceforge.net/MD5_plugin| md5dll]]                              | [[http://nsis.sourceforge.net/mediawiki/images/archive/d/d7/20100123203607!Md5dll.zip| v0.4]] | Generates a md5 value from contents of specified file | +| [[http://nsis.sourceforge.net/MD5_plugin| md5dll]]                              | v0.5 (current version) | Generates a md5 value from contents of specified file | 
-| [[http://nsis.sourceforge.net/MoreInfo_plug-in| MoreInfo]]                      | 6 June 2005 (current version) | Retrieves version information from files | +| [[http://nsis.sourceforge.net/MoreInfo_plug-in| MoreInfo]]                      | v1.0.1.2 (current version) | Retrieves version information from files | 
-| [[http://nsis.sourceforge.net/NsUnzip_plugin| nsUnzip]]                         | [[http://nsis.sourceforge.net/mediawiki/images/archive/8/88/20091127170431!NsUnzip.zip| v1.0]] | Test or extract files from a ZIP archive | +| [[http://nsis.sourceforge.net/NsUnzip_plugin| nsUnzip]]                         | v1.1 (current version)  | Test or extract files from a ZIP archive | 
-| [[http://nsis.sourceforge.net/ShellLink_plug-in| ShellLink]]                    | v1.(current version) | Reads/Changes shell link (.lnk) files | +| [[http://nsis.sourceforge.net/ShellLink_plug-in| ShellLink]]                    | v1.(current version) | Reads/Changes shell link (.lnk) files | 
-| [[http://nsis.sourceforge.net/NSIS_Simple_Service_Plugin| SimpleSC]]            | v1.26 (current version) | NSIS Simple Service Plugin | +| [[http://nsis.sourceforge.net/NSIS_Simple_Service_Plugin| SimpleSC]]            | v1.29 (current version) | NSIS Simple Service Plugin | 
-| [[http://nsis.sourceforge.net/UAC_plug-in| UAC]]                                | [[http://stashbox.org/v/373549/UAC%20v0.0.11c%20-%2020090124.zip| v0.0.11c]] (not on NSIS wiki) | Helps work around UAC problems on Vista/Windows 7 | +| [[http://nsis.sourceforge.net/UAC_plug-in| UAC]]                                | [[http://stashbox.org/560965/UAC%20v0.0.11d.zip| v0.0.11d]] (not on NSIS wiki) | Helps work around UAC problems on Vista/Windows 7 | 
-| [[http://nsis.sourceforge.net/UnTGZ_plug-in| untgz]]                              | [[http://nsis.sourceforge.net/mediawiki/images/archive/9/9d/20100115165147!Untgz.zip| v1.0.15]] | Extracts files from a simple tarball |+| [[http://nsis.sourceforge.net/UnTGZ_plug-in| untgz]]                              | v1.0.17 (current version) | Extracts files from a simple tarball |
  
-Version information is rarely included in these DLLs. Some plugins are rarely updated, others get frequent updates; this means that some plugins come in zip files which no longer match the current folder structure using by the NSIS compiler package.+Version information is not usually included in these DLLs so it can be difficult to identify a particular DLL. 
 + 
 +Some plugins are rarely updated, others get frequent updates; this means that some plugins come in zip files which no longer match the current folder structure using by the NSIS compiler package.
  
 To make it easier to build the installer and NSIS-based utilities for POPFile these extra plugins (and their associated documentation etc) have been repackaged as a single zip file ([[http://getpopfile.org/installer/plugins/1.1.1-repackaged-plugins.zip| 1.1.1-repackaged-plugins.zip]]) which can simply be unzipped into the main NSIS compiler folder (normally ''C:\Program Files\NSIS''). A complete set of the original plugin zip files is also available ([[http://getpopfile.org/installer/plugins/1.1.1-original-plugins.zip| 1.1.1-original-plugins.zip]]) as some of the plugins are not the most recent versions and are therefore harder to find. To make it easier to build the installer and NSIS-based utilities for POPFile these extra plugins (and their associated documentation etc) have been repackaged as a single zip file ([[http://getpopfile.org/installer/plugins/1.1.1-repackaged-plugins.zip| 1.1.1-repackaged-plugins.zip]]) which can simply be unzipped into the main NSIS compiler folder (normally ''C:\Program Files\NSIS''). A complete set of the original plugin zip files is also available ([[http://getpopfile.org/installer/plugins/1.1.1-original-plugins.zip| 1.1.1-original-plugins.zip]]) as some of the plugins are not the most recent versions and are therefore harder to find.
  
-FIXME Need to upgrade to %%GetVersion%% v1.1 (the current release) because v0.9 cannot detect Windows 7 (it returns an empty string) +FIXME Prepare 'original' and 'repackaged' collections of NSIS plugins used for the POPFile 1.1.2 installer
- +
-FIXME Do any other plugins need to be updated before the next release?+
  
 ====== Obtain the source files from Subversion ====== ====== Obtain the source files from Subversion ======
Line 280: Line 279:
 The Kakasi package is distributed as a ZIP file which contains several folders (''bin'', ''doc'', ''include'', ''lib'' and ''share'') all of which are under a top level folder called ''kakasi''. Unzip the Kakasi package into the new **''C:\Build\POPFile\windows\kakasi_package''** directory. The Kakasi package is distributed as a ZIP file which contains several folders (''bin'', ''doc'', ''include'', ''lib'' and ''share'') all of which are under a top level folder called ''kakasi''. Unzip the Kakasi package into the new **''C:\Build\POPFile\windows\kakasi_package''** directory.
  
-The ''C:\Build\POPFile\windows\kakasi_package'' directory should now contain a directory called ''kakasi'' which contains the files and sub-directories for the Kakasi package.+The **''C:\Build\POPFile\windows\kakasi_package''** directory should now contain a directory called **''kakasi''** which contains the files and sub-directories for the Kakasi package.
  
 ====== SQLite command-line utilities ====== ====== SQLite command-line utilities ======
Line 302: Line 301:
 The release notes are not stored in the project's Subversion repository. The release notes are plain text files and should be stored in the ''C:\Build\POPFile\engine'' directory. The release notes are not stored in the project's Subversion repository. The release notes are plain text files and should be stored in the ''C:\Build\POPFile\engine'' directory.
  
-Use a text editor to create a plain text file called ''v1.1.1.change'' (for the English release notes) and another called ''v1.1.1.change.nihongo'' (for the Japanese release notes). Although the Windows installer can be built if the Japanese file is missing the cross-platform build will fail with an error message if the file cannot be found (so if no Japanese text is available just use a re-named copy of the ''v1.1.1.change'' file).+Use a text editor to create a plain text file called ''v1.1.2.change'' (for the English release notes) and another called ''v1.1.2.change.nihongo'' (for the Japanese release notes). Although the Windows installer can be built if the Japanese file is missing the cross-platform build will fail with an error message if the file cannot be found (so if no Japanese text is available just use a re-named copy of the ''v1.1.2.change'' file).
  
-If the files checked out from Subversion are marked with a release number other than 1.1.then change the filenames of these two files to match (e.g. ''v1.1.2.change'' and ''v1.1.2.change.nihongo'')+If the files checked out from Subversion are marked with a release number other than 1.1.then change the filenames of these two files to match (i.e. ''v1.1.2.change'' and ''v1.1.2.change.nihongo'')
  
 ====== Build the Perl-based programs (optional) ====== ====== Build the Perl-based programs (optional) ======
 
devel/windowsinstaller.1307036637.txt.gz · Last modified: 2011/06/02 19:43 (external edit)
Old revisions

Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License