Win32: Restore the versioned plugin installation path.

Revert parts of g2ef72cb and g7710da4 so that the NSIS installer once
again places plugins in $INSTDIR\plugins\$VERSION. This matches the
behavior of Autotools and previous Windows installers, and reduces the
chances of a version mismatch if the user happens to install a custom
plugin.

Leave the development plugin path unversioned. Leave the extcap path
unversioned for now.

Change-Id: I861d4ee12975fba4b642e391871c5e852d92a2fe
Reviewed-on: https://code.wireshark.org/review/7976
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
Gerald Combs 2015-04-07 11:56:36 -07:00
parent 461666bcd1
commit cec99abac9
2 changed files with 27 additions and 4 deletions

View File

@ -888,7 +888,7 @@ SectionGroup "Plugins & Extensions" SecPluginsGroup
Section "Dissector Plugins" SecPlugins
;-------------------------------------------
SetOutPath '$INSTDIR\plugins'
SetOutPath '$INSTDIR\plugins\${VERSION}'
File "${STAGING_DIR}\plugins\docsis.dll"
File "${STAGING_DIR}\plugins\ethercat.dll"
File "${STAGING_DIR}\plugins\gryphon.dll"
@ -905,13 +905,13 @@ SectionEnd
Section "Tree Statistics Plugin" SecStatsTree
;-------------------------------------------
SetOutPath '$INSTDIR\plugins'
SetOutPath '$INSTDIR\plugins\${VERSION}'
File "${STAGING_DIR}\plugins\stats_tree.dll"
SectionEnd
Section "Mate - Meta Analysis and Tracing Engine" SecMate
;-------------------------------------------
SetOutPath '$INSTDIR\plugins'
SetOutPath '$INSTDIR\plugins\${VERSION}'
File "${STAGING_DIR}\plugins\mate.dll"
SectionEnd

View File

@ -979,7 +979,30 @@ init_plugin_dir(void)
* on Windows, the data file directory is the directory
* in which the Wireshark binary resides.
*/
plugin_dir = g_strdup_printf("%s\\plugins", get_datafile_dir());
plugin_dir = g_strdup_printf("%s\\plugins\\%s", get_datafile_dir(),
VERSION);
/*
* Make sure that pathname refers to a directory.
*/
if (test_for_directory(plugin_dir) != EISDIR) {
/*
* Either it doesn't refer to a directory or it
* refers to something that doesn't exist.
*
* Assume that means we're running a version of
* Wireshark we've built in a build directory,
* in which case {datafile dir}\plugins is the
* top-level plugins source directory, and use
* that directory and set the "we're running in
* a build directory" flag, so the plugin
* scanner will check all subdirectories of that
* directory for plugins.
*/
g_free( (gpointer) plugin_dir);
plugin_dir = g_strdup_printf("%s\\plugins", get_datafile_dir());
running_in_build_directory_flag = TRUE;
}
#else
if (running_in_build_directory_flag) {
/*