Code

OCAL. Fix for Bug #638844 (Errors printed to console if openclipart search fails).
[inkscape.git] / packaging / win32 / AdvUninstLog.txt
1 Overview\r
2 \r
3 Advanced Uninstall Log for NSIS was born in the need to cover a specific gap.\r
4 It's been discussed fairly enough that the File /r command is very useful\r
5 in cases when developers want to add a huge amount of sub directories and\r
6 files, nevertheless it has the disadvantage that such an installation should\r
7 be uninstalled with RmDir /r which is risky and removes also data that has\r
8 been added/created later within the installation folder.\r
9 \r
10 \r
11 \r
12 \r
13 About Advanced Uninstall Log.\r
14 \r
15 Advanced Uninstall Log is a macro system provided in a NSIS header that\r
16 is able to monitor an installation and build an uninstall log file which\r
17 is used by the uninstaller to uninstall files/directories that have been\r
18 added within specific installation blocks.\r
19 \r
20 This means that files which have been installed outside these blocks,\r
21 or added later either by the user or application's activities, ignored\r
22 by the uninstaller.\r
23 \r
24 Moreover files that might exist into the target directory prior the current\r
25 installation, ignored as well.\r
26 \r
27 Advanced Uninstall Log creates an uninstall log that removes only files that\r
28 have been installed and optionally interacts with users for every other file\r
29 and/or directory has found in installation folder and requires permission to\r
30 remove these files/directories.\r
31 \r
32 It is enhanced as well to support updates, e.g. if the installer later would\r
33 update the installation by adding new data, the uninstaller would remove the\r
34 new data that has been added by the installer, without bothering users about.\r
35 \r
36 \r
37 \r
38 \r
39 Features\r
40 \r
41 If target installation folder exists and contains files and/or directories\r
42 they all preserved from being uninstalled.\r
43 \r
44 Uninstaller removes data that has been added within specific installation\r
45 blocks, preserving all other data that has been created/added outside of\r
46 these installation blocks. See included examples for details.\r
47 \r
48 Supports unlimited updates/reinstallations.\r
49 \r
50 Supports two uninstaller modes. Interactive mode requires confirmation\r
51 to remove every other file exept those files that have been installed.\r
52 Unattended mode leaves intact every other file without bothering users.\r
53 \r
54 In case when uninstall log (uninstall.dat) has been removed manually instead\r
55 of execute uninstaller, if users attempt to run the installer later, a warning\r
56 issued that they should select a new output folder.\r
57 \r
58 Implements only the included with NSIS release headers FileFunc and TextFunc.\r
59 There is no need for external plugins and headers, adds a very small overhead.\r
60 \r
61 \r
62 \r
63 \r
64 Restrictions\r
65 \r
66 If uninstall log (uninstall.dat) is missing uninstaller won't execute at all.\r
67 \r
68 Due to file create - write procedure that is required in order to add/update\r
69 the uninstall log (uninstall.dat), restricted users on NT based systems won't \r
70 be able to execute the installer.\r
71 \r
72 \r
73 \r
74 \r
75 Disadvantage\r
76 \r
77 Since the header does not implement anything else than the common NSIS release,\r
78 a delay occurs while builds and reads the uninstall log because it needs to\r
79 throw the list several times. Talking for common cases, most likely the delay\r
80 won't be noticeable, however, in cases where the target directory isn't empty\r
81 and contains a large amount of data which will be excluded from uninstall log,\r
82 or added large amount of data after the installation which will be excluded also,\r
83 the delay should be noticeable.\r
84 \r
85 \r
86 \r
87 \r
88 Credits\r
89 \r
90 A very big thanks goes to kichik.\r
91 When my idea of the Advanced Uninstall Log became an NSIS header, it was \r
92 indeed an amateur's attempt to write a flexible and errors free NSIS header.\r
93 Kichik dropped me a dozen of suggestions helping me to achieve my plan.\r
94 However, his main suggestion to eliminate the mentioned above disadvantage,\r
95 still remains untouched by me.\r
96 \r
97 \r
98 \r
99 \r
100 License\r
101 \r
102 This header file is provided 'as-is', without any express or implied warranty.\r
103 In no event will the author be held liable for any damages arising from the use\r
104 of this header file.\r
105 \r
106 Permission is granted to anyone to use this header file for any purpose,\r
107 including commercial applications, and to alter it and redistribute it freely,\r
108 subject to the following restrictions:\r
109 \r
110    1. The origin of this header file must not be misrepresented; \r
111       you must not claim that you wrote the original header file.\r
112       If you use this header file in a product, an acknowledgment in \r
113       the product documentation would be appreciated but is not required.\r
114 \r
115    2. Altered versions must be plainly marked as such, and must not be \r
116       misrepresented as being the original header file.\r
117 \r
118    3. This notice may not be removed or altered from any distribution. \r
119 \r
120 \r
121 eof