diff --git a/constructor/nsis/main.nsi.tmpl b/constructor/nsis/main.nsi.tmpl index a0e11b3b..c4897dac 100644 --- a/constructor/nsis/main.nsi.tmpl +++ b/constructor/nsis/main.nsi.tmpl @@ -161,10 +161,13 @@ Page Custom mui_AnaCustomOptions_Show !define MUI_FINISHPAGE_TEXT __CONCLUSION_TEXT__ #endif +#if custom_conclusion # Custom conclusion file(s) @CUSTOM_CONCLUSION_FILE@ - +#else !insertmacro MUI_PAGE_FINISH +#endif + !insertmacro MUI_UNPAGE_WELCOME !define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.OnDirectoryLeave diff --git a/constructor/winexe.py b/constructor/winexe.py index 826243af..345378ce 100644 --- a/constructor/winexe.py +++ b/constructor/winexe.py @@ -274,6 +274,15 @@ def make_nsi(info, dir_path, extra_files=None, temp_extra_files=None): # for the newlines business replace['CONCLUSION_TEXT'] = "\r\n".join(conclusion_lines[1:]) + for key in ['welcome_file', 'conclusion_file']: + value = info.get(key, "") + if value and not value.endswith(".nsi"): + logger.warning( + "On Windows, %s must be a .nsi file; %s will be ignored.", + key, + value, + ) + for key, value in replace.items(): if value.startswith('@'): value = join(dir_path, value[1:]) @@ -323,9 +332,19 @@ def make_nsi(info, dir_path, extra_files=None, temp_extra_files=None): '${NAME} ${VERSION} (Python ${PYVERSION} ${ARCH})' )), ('@EXTRA_FILES@', '\n '.join(extra_files_commands(extra_files, dir_path))), - ('@CUSTOM_WELCOME_FILE@', custom_nsi_insert_from_file(info.get('welcome_file', ''))), - ('@CUSTOM_CONCLUSION_FILE@', custom_nsi_insert_from_file(info.get('conclusion_file', ''))), - ('@TEMP_EXTRA_FILES@', '\n '.join(insert_tempfiles_commands(temp_extra_files))) + ( + '@CUSTOM_WELCOME_FILE@', + custom_nsi_insert_from_file(info.get('welcome_file', '')) + if ppd['custom_welcome'] + else '' + ), + ( + '@CUSTOM_CONCLUSION_FILE@', + custom_nsi_insert_from_file(info.get('conclusion_file', '')) + if ppd['custom_conclusion'] + else '' + ), + ('@TEMP_EXTRA_FILES@', '\n '.join(insert_tempfiles_commands(temp_extra_files))), ]: data = data.replace(key, value) diff --git a/news/701-conclusion-file-windows b/news/701-conclusion-file-windows new file mode 100644 index 00000000..7c2ebc1e --- /dev/null +++ b/news/701-conclusion-file-windows @@ -0,0 +1,19 @@ +### Enhancements + +* + +### Bug fixes + +* On Windows installers, only insert `conclusion_file` if the extension is `.nsi`. Ignore otherwise. Also prevents a double final page. (#700 via #701) + +### Deprecations + +* + +### Docs + +* + +### Other + +*