[CMake] Fix and feature for NSIS template

Eric Noulard eric.noulard at gmail.com
Tue Jan 31 13:03:13 EST 2012


2012/1/31 Mattias Helsing <helsing72 at gmail.com>:
> Hi all
>
> I found a bug in NSIS.template.in thats been bothering me for a while.
> The NSIS scripting language allows relative jumps that are relative to
> the _current_ command and an error in said file bypasses users
> permission check.
> Also my installer runs an external installer for a driver and thus the
> entire installer requires admin or power user privileges. I want to do
> this check directly on startup of the nsis installer. The code to do
> this have been manually added by me enough times to suggest an
> improvement to the NSIS packaging module. It adds the option to set
> CPACK_NSIS_REQUIRE_POWERUSER to get a user permission check at install
> and uninstall time.

Why would you need
IF(CPACK_NSIS_REQUIRE_POWERUSER)
   SET(CPACK_NSIS_REQUIRE_POWERUSER ON)
ENDIF(CPACK_NSIS_REQUIRE_POWERUSER)

You want to enforce "ON" and not other "true" values, like non-zero,
true etc...?


> The following patch addresses both the fix for relative jumps and
> fixes my feature request. Please consider and provide feedback.

It is usually better to provide separate patch for separate issue,
that way it's easier to track.

> The
> patch is against files in master but testing has been done with
> cmake-2.8.7, NSIS 2. on WinXP.
>
> This is my first submission here so please point me in the right
> direction if submissions aren't appropriate here.

You should provide  2 separate patch.
If you want to provide "clean patch" which potentially contains
multiple files modifications it would be easier to do it from
a git tree using "git format-patch".

You can find instruction to get CMake git tree there:
http://www.cmake.org/Wiki/CMake/Git
you don't **need** "push access" for providing patches.

Then if your patch fixes a bug it is usually better to file the bug:
http://public.kitware.com/Bug/main_page.php
and attach the proposed patch to the bug tracker.

The same appy for new feature request.

It is a good practice to discuss the feature request on the mailing list
in order to evaluate its possible acceptation.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list