debian/ 0000755 0000000 0000000 00000000000 11701364701 007166 5 ustar debian/GenPat.xml 0000644 0000000 0000000 00000010624 11562742435 011102 0 ustar
Paul">
Wise">
October 5, 2005">
1">
pabs@debian.org">
NSIS">
]>
&package;&package; manual
&email;
&firstname;
&surname;
Created man page2005&username;
&date;
&ucpackage;
§ion;
&package;A program to create patch files in VPatch format.&package;DESCRIPTIONThis manual page documents briefly the
&package; command.This manual page was written for the &debian; distribution
because the original program does not have a manual page.
Instead, it has documentation in the HTML format; see below.&package; is a program that creates installer programs for Windows.OPTIONSReplace a patch with same contents as source silently if it already exists.Set blocksize (default=64), multiple of 2 is required.More verbose information during patch creation.Deactivate match limit of the -A switch (sometimes smaller patches).Maximum number of block matches per block (improves performance).
Default is 500, larger is slower. Use -V to see the cut-off aborts.EXIT STATUS0Success1Arguments missing2Other error3Source file already has a patch in specified patch file (=error)SEE ALSOGenPat is documented more fully in the HTML file
/usr/share/doc/nsis/Docs/VPatch/Readme.html.AUTHORThis manual page was written by &username; &email; for
the &debian; system.
debian/TODO 0000644 0000000 0000000 00000000425 11562742435 007670 0 ustar Remove VPatch, package.
Port to more architectures.
Switch to non-forked halibut. [http://sf.net/support/tracker.php?aid=1651225]
Port makensisw/etc to wxWidgets.
Create a NEWS file in release.py.
Get crossmingw.py merged into scons.
Encourage upstream to add Unicode support.
debian/nsis-doc.doc-base 0000644 0000000 0000000 00000000444 11562742435 012317 0 ustar Document: nsis
Title: Debian nsis Manual
Author: Nullsoft, Inc.
Abstract: This manual describes what nsis is
and how it can be used to create Windows
installer programs.
Section: Programming
Format: HTML
Index: /usr/share/doc/nsis/Docs/Contents.html
Files: /usr/share/doc/nsis/Docs/*.html
debian/nsis-common.lintian-overrides 0000644 0000000 0000000 00000000125 11562742435 015017 0 ustar nsis-common: extra-license-file usr/share/nsis/Contrib/Modern UI 2/Pages/License.nsh
debian/control 0000644 0000000 0000000 00000004776 11616531611 010610 0 ustar Source: nsis
Section: devel
Priority: optional
Maintainer: Thomas Gaugler
Uploaders: Didier Raboud
Build-Depends: debhelper (>= 7.0.50~), scons (>= 1.2.0), xmlto, html2text, libcppunit-dev, zlib1g-dev, mingw-w64 (>= 1.0), libstdc++6-4.6-dev
Standards-Version: 3.9.2
Homepage: http://nsis.sourceforge.net/
Vcs-Git: git://git.debian.org/collab-maint/nsis.git
Vcs-Browser: http://git.debian.org/?p=collab-maint/nsis.git
Package: nsis
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, nsis-common (>= ${source:Version})
Suggests: nsis-doc (>= ${source:Version}), nsis-pluginapi (>= ${source:Version}), mingw-w64 (>= 1.0), wine
Description: Nullsoft Scriptable Install System (modified for Debian)
NSIS is a tool for creating quick and user friendly installers for
Microsoft Windows (Win32) operating systems.
.
NSIS creates installers that are capable of installing, uninstalling,
setting system settings, extracting files, etc. Because it's based on
script files, you can fully control every part of your installers. The
script language supports variables, functions, string manipulation,
just like a normal programming language - but designed for the creation
of installers. Even with all these features, NSIS is still the smallest
installer system available. With the default options, it has an overhead
of only 34 KB.
Package: nsis-common
Architecture: all
Depends: ${misc:Depends}
Replaces: nsis (<< 2.46-4)
Breaks: nsis (<< 2.46-4)
Description: Nullsoft Scriptable Install System stubs and plugins
NSIS is a tool for creating quick and user friendly installers for
Microsoft Windows (Win32) operating systems.
.
This package contains the stubs and plugins of NSIS.
Package: nsis-pluginapi
Architecture: all
Depends: ${misc:Depends}
Replaces: nsis (<< 2.46-4)
Breaks: nsis (<< 2.46-4)
Recommends: mingw-w64 (>= 1.0)
Enhances: nsis (>= ${source:Version})
Description: Nullsoft Scriptable Install System plugin API
NSIS is a tool for creating quick and user friendly installers for
Microsoft Windows (Win32) operating systems.
.
This package contains the header and library files for developing
NSIS plugins.
Package: nsis-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}
Replaces: nsis (<< 2.46-4)
Breaks: nsis (<< 2.46-4)
Description: Nullsoft Scriptable Install System documentation
NSIS is a tool for creating quick and user friendly installers for
Microsoft Windows (Win32) operating systems.
.
This package contains examples and the documentation in HTML format.
debian/patches/ 0000755 0000000 0000000 00000000000 11701045544 010616 5 ustar debian/patches/makensis_native_64bit.patch 0000644 0000000 0000000 00000046237 11562742435 016053 0 ustar Description: Build makensis and portable utilities natively for 64-bit systems
Forwarded: http://sf.net/support/tracker.php?aid=1753070
Author: Thomas Gaugler
diff -urd nsis-2.46-src.orig/SCons/Config/gnu nsis-2.46-src/SCons/Config/gnu
--- nsis-2.46-src.orig/SCons/Config/gnu 2009-02-05 00:52:28.000000000 +0000
+++ nsis-2.46-src/SCons/Config/gnu 2010-05-04 18:15:54.000000000 +0000
@@ -95,8 +95,6 @@
makensis_env.Append(CXXFLAGS = ['-Wall']) # all warnings
conf = FlagsConfigure(makensis_env)
-conf.CheckCompileFlag('-m32') #
-conf.CheckLinkFlag('-m32') #
conf.CheckLinkFlag('$MAP_FLAG') # generate map file
if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_CP']:
TestStrip(conf) # strip
@@ -149,8 +147,6 @@
### cross-platform util environment adjustments
conf = FlagsConfigure(cp_util_env)
-conf.CheckCompileFlag('-m32')
-conf.CheckLinkFlag('-m32')
if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_CP']:
TestStrip(conf) # strip
conf.Finish()
@@ -160,8 +156,6 @@
test_env = defenv.Clone()
test_env.Append(CPPPATH = ['#$BUILD_CONFIG'])
conf = FlagsConfigure(test_env)
-conf.CheckCompileFlag('-m32')
-conf.CheckLinkFlag('-m32')
conf.Finish()
### weird GCC requirements
diff -urd nsis-2.46-src.orig/Source/DialogTemplate.cpp nsis-2.46-src/Source/DialogTemplate.cpp
--- nsis-2.46-src.orig/Source/DialogTemplate.cpp 2007-11-30 09:54:13.000000000 +0000
+++ nsis-2.46-src/Source/DialogTemplate.cpp 2010-05-04 18:15:46.000000000 +0000
@@ -74,7 +74,7 @@
if (IS_INTRESOURCE(x)) { \
*(WORD*)seeker = 0xFFFF; \
seeker += sizeof(WORD); \
- *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \
+ *(WORD*)seeker = ConvertEndianness(WORD((ULONG_PTR)(x))); \
seeker += sizeof(WORD); \
} \
else { \
@@ -444,7 +444,7 @@
szClass = winchar_toansi(m_vItems[i]->szClass);
// Button
- if (long(m_vItems[i]->szClass) == 0x80) {
+ if ((ULONG_PTR)(m_vItems[i]->szClass) == 0x80) {
m_vItems[i]->dwStyle ^= BS_LEFTTEXT;
m_vItems[i]->dwStyle ^= BS_RIGHT;
m_vItems[i]->dwStyle ^= BS_LEFT;
@@ -458,13 +458,13 @@
}
}
// Edit
- else if (long(m_vItems[i]->szClass) == 0x81) {
+ else if ((ULONG_PTR)(m_vItems[i]->szClass) == 0x81) {
if ((m_vItems[i]->dwStyle & ES_CENTER) == 0) {
m_vItems[i]->dwStyle ^= ES_RIGHT;
}
}
// Static
- else if (long(m_vItems[i]->szClass) == 0x82) {
+ else if ((ULONG_PTR)(m_vItems[i]->szClass) == 0x82) {
if ((m_vItems[i]->dwStyle & SS_TYPEMASK) == SS_LEFT || (m_vItems[i]->dwStyle & SS_TYPEMASK) == SS_LEFTNOWORDWRAP)
{
m_vItems[i]->dwStyle &= ~SS_TYPEMASK;
@@ -571,7 +571,7 @@
// Write all of the items
for (unsigned int i = 0; i < m_vItems.size(); i++) {
// DLGITEMTEMPLATE[EX]s must be aligned on DWORD boundary
- if (DWORD(seeker - pbDlg) % sizeof(DWORD))
+ if ((seeker - pbDlg) % sizeof(DWORD))
seeker += sizeof(WORD);
if (m_bExtended) {
@@ -622,7 +622,7 @@
}
}
- assert((DWORD) seeker - (DWORD) pbDlg == dwSize);
+ assert((DWORD)(seeker - pbDlg) == dwSize);
// DONE!
return pbDlg;
diff -urd nsis-2.46-src.orig/Source/Platform.h nsis-2.46-src/Source/Platform.h
--- nsis-2.46-src.orig/Source/Platform.h 2009-06-06 16:22:25.000000000 +0000
+++ nsis-2.46-src/Source/Platform.h 2010-05-04 18:15:54.000000000 +0000
@@ -53,6 +53,7 @@
typedef const char *LPCCH, *PCSTR, *LPCSTR;
typedef unsigned short WCHAR, OLECHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR, *BSTR;
typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR, *LPCOLESTR;
+typedef int INT_PTR;
typedef unsigned int UINT_PTR;
// basic stuff
typedef void * HANDLE;
@@ -60,8 +72,8 @@
typedef HANDLE HMODULE;
typedef unsigned long HKEY;
// some gdi
-typedef unsigned long COLORREF;
-typedef unsigned long HBRUSH;
+typedef DWORD COLORREF;
+typedef UINT32 HBRUSH;
// bool
# define FALSE 0
# define TRUE 1
@@ -166,7 +183,7 @@
# define MAKEINTRESOURCE MAKEINTRESOURCEA
# endif
# ifndef IMAGE_FIRST_SECTION
-# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \
+# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \
FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \
FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) )
# endif
@@ -174,7 +191,7 @@
# define RGB(r,g,b) ((DWORD)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
# endif
# ifndef MAKELONG
-# define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
+# define MAKELONG(a,b) ((DWORD)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
# endif
#endif
#ifndef IS_INTRESOURCE
@@ -197,8 +214,10 @@
# define FOF_NOERRORUI 0x0400
#endif
-#ifndef ULONG_PTR
-# define ULONG_PTR DWORD
+// mingw32 and w64-mingw32 do not define ULONG_PTR
+// but rather declare ULONG_PTR via typedef (see basetsd.h)
+#if !defined(__MINGW32__) && !defined(ULONG_PTR)
+# define ULONG_PTR unsigned long
#endif
#ifndef IDC_HAND
@@ -238,7 +257,7 @@
# undef INVALID_FILE_ATTRIBUTES
#endif
#ifndef INVALID_FILE_ATTRIBUTES
-# define INVALID_FILE_ATTRIBUTES ((unsigned long) -1)
+# define INVALID_FILE_ATTRIBUTES ((DWORD) -1)
#endif
// shell folders
diff -urd nsis-2.46-src.orig/Source/Plugins.cpp nsis-2.46-src/Source/Plugins.cpp
--- nsis-2.46-src.orig/Source/Plugins.cpp 2009-02-01 14:44:30.000000000 +0000
+++ nsis-2.46-src/Source/Plugins.cpp 2010-05-04 18:15:54.000000000 +0000
@@ -29,7 +29,7 @@
#include "dirreader.h"
#ifdef _WIN32
-# include
+# include
#else
# include
#endif
@@ -136,8 +136,8 @@
DWORD prd = FIX_ENDIAN_INT32(sections[i].PointerToRawData);
PIMAGE_EXPORT_DIRECTORY exports = PIMAGE_EXPORT_DIRECTORY(&dlldata[0] + prd + ExportDirVA - va);
DWORD na = FIX_ENDIAN_INT32(exports->AddressOfNames);
- unsigned long *names = (unsigned long*)((unsigned long) exports + (char *) na - ExportDirVA);
- for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
+ LPDWORD names = (LPDWORD)((ULONG_PTR)exports + na - ExportDirVA);
+ for (DWORD j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
{
const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA);
const string signature = dllName + "::" + name;
diff -urd nsis-2.46-src.orig/Source/ResourceEditor.cpp nsis-2.46-src/Source/ResourceEditor.cpp
--- nsis-2.46-src.orig/Source/ResourceEditor.cpp 2009-02-05 00:50:12.000000000 +0000
+++ nsis-2.46-src/Source/ResourceEditor.cpp 2010-05-04 18:15:46.000000000 +0000
@@ -27,20 +27,10 @@
#define ALIGN(dwToAlign, dwAlignOn) dwToAlign = (dwToAlign%dwAlignOn == 0) ? dwToAlign : dwToAlign - (dwToAlign%dwAlignOn) + dwAlignOn
#define RALIGN(dwToAlign, dwAlignOn) ((dwToAlign%dwAlignOn == 0) ? dwToAlign : dwToAlign - (dwToAlign%dwAlignOn) + dwAlignOn)
-#ifndef _WIN32
-static inline ULONG ConvertEndianness(ULONG u) {
- return FIX_ENDIAN_INT32(u);
-}
-#endif
-
static inline DWORD ConvertEndianness(DWORD d) {
return FIX_ENDIAN_INT32(d);
}
-static inline LONG ConvertEndianness(LONG l) {
- return FIX_ENDIAN_INT32(l);
-}
-
static inline WORD ConvertEndianness(WORD w) {
return FIX_ENDIAN_INT16(w);
}
@@ -52,7 +42,7 @@
throw runtime_error("PE file contains invalid DOS header");
// Get NT headers
- PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)(pbPE + ConvertEndianness(dosHeader->e_lfanew));
+ PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)(pbPE + ConvertEndianness((DWORD)dosHeader->e_lfanew));
if (ntHeaders->Signature != IMAGE_NT_SIGNATURE)
throw runtime_error("PE file missing NT signature");
@@ -684,7 +674,7 @@
rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries);
CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY));
- crd->m_dwWrittenAt = DWORD(seeker);
+ crd->m_ulWrittenAt = (ULONG_PTR)(seeker);
seeker += sizeof(IMAGE_RESOURCE_DIRECTORY);
for (int i = 0; i < crd->CountEntries(); i++) {
@@ -705,7 +695,7 @@
rDirE.UName.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0;
CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY));
- crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker);
+ crd->GetEntry(i)->m_ulWrittenAt = (ULONG_PTR)(seeker);
seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY);
}
qDirs.pop();
@@ -721,7 +711,7 @@
rDataE.Size = ConvertEndianness(cRDataE->GetSize());
CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
- cRDataE->m_dwWrittenAt = DWORD(seeker);
+ cRDataE->m_ulWrittenAt = (ULONG_PTR)(seeker);
seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY);
qDataEntries.pop();
@@ -733,7 +723,7 @@
while (!qStrings.empty()) {
CResourceDirectoryEntry* cRDirE = qStrings.front();
- PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->UName.NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec));
+ PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_ulWrittenAt)->UName.NameString.NameOffset = ConvertEndianness((DWORD) (seeker - pbRsrcSec));
WCHAR* szName = cRDirE->GetName();
WORD iLen = winchar_strlen(szName) + 1;
@@ -754,7 +744,7 @@
while (!qDataEntries2.empty()) {
CResourceDataEntry* cRDataE = qDataEntries2.front();
CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize());
- PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA);
+ PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_ulWrittenAt)->OffsetToData = ConvertEndianness((DWORD)(seeker - pbRsrcSec) + m_dwResourceSectionVA);
seeker += RALIGN(cRDataE->GetSize(), 8);
@@ -764,21 +754,21 @@
/*
* Set all of the directory entries offsets.
*/
- SetOffsets(m_cResDir, DWORD(pbRsrcSec));
+ SetOffsets(m_cResDir, (ULONG_PTR)(pbRsrcSec));
}
// Sets the offsets in directory entries
-void CResourceEditor::SetOffsets(CResourceDirectory* resDir, DWORD newResDirAt) {
+void CResourceEditor::SetOffsets(CResourceDirectory* resDir, ULONG_PTR newResDirAt) {
for (int i = 0; i < resDir->CountEntries(); i++) {
- PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY rde = PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(resDir->GetEntry(i)->m_dwWrittenAt);
+ PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY rde = PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(resDir->GetEntry(i)->m_ulWrittenAt);
if (resDir->GetEntry(i)->IsDataDirectory()) {
rde->UOffset.DirectoryOffset.DataIsDirectory = 1;
- rde->UOffset.DirectoryOffset.OffsetToDirectory = resDir->GetEntry(i)->GetSubDirectory()->m_dwWrittenAt - newResDirAt;
+ rde->UOffset.DirectoryOffset.OffsetToDirectory = resDir->GetEntry(i)->GetSubDirectory()->m_ulWrittenAt - newResDirAt;
rde->UOffset.OffsetToData = ConvertEndianness(rde->UOffset.OffsetToData);
SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt);
}
else {
- rde->UOffset.OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt);
+ rde->UOffset.OffsetToData = ConvertEndianness((DWORD)(resDir->GetEntry(i)->GetDataEntry()->m_ulWrittenAt - newResDirAt));
}
}
}
@@ -887,7 +877,7 @@
// Returns -1 if can not be found
int CResourceDirectory::Find(WCHAR* szName) {
if (IS_INTRESOURCE(szName))
- return Find((WORD) (DWORD) szName);
+ return Find((WORD) (ULONG_PTR) szName);
else
if (szName[0] == '#')
return Find(WORD(winchar_stoi(szName + 1)));
@@ -965,7 +955,7 @@
if (IS_INTRESOURCE(szName)) {
m_bHasName = false;
m_szName = 0;
- m_wId = (WORD) (DWORD) szName;
+ m_wId = (WORD) (ULONG_PTR) szName;
}
else {
m_bHasName = true;
@@ -979,7 +969,7 @@
if (IS_INTRESOURCE(szName)) {
m_bHasName = false;
m_szName = 0;
- m_wId = (WORD) (DWORD) szName;
+ m_wId = (WORD) (ULONG_PTR) szName;
}
else {
m_bHasName = true;
diff -urd nsis-2.46-src.orig/Source/ResourceEditor.h nsis-2.46-src/Source/ResourceEditor.h
--- nsis-2.46-src.orig/Source/ResourceEditor.h 2009-02-01 14:44:30.000000000 +0000
+++ nsis-2.46-src/Source/ResourceEditor.h 2010-05-04 18:19:00.000000000 +0000
@@ -27,7 +27,7 @@
#include "Platform.h"
#ifdef _WIN32
-# include
+# include
#else
// all definitions for non Win32 platforms were taken from MinGW's free Win32 library
# define IMAGE_DIRECTORY_ENTRY_RESOURCE 2
@@ -156,7 +156,7 @@
CResourceDirectory* ScanDirectory(PRESOURCE_DIRECTORY rdRoot, PRESOURCE_DIRECTORY rdToScan);
void WriteRsrcSec(BYTE* pbRsrcSec);
- void SetOffsets(CResourceDirectory* resDir, DWORD newResDirAt);
+ void SetOffsets(CResourceDirectory* resDir, ULONG_PTR newResDirAt);
DWORD AdjustVA(DWORD dwVirtualAddress, DWORD dwAdjustment);
DWORD AlignVA(DWORD dwVirtualAddress);
@@ -180,7 +180,7 @@
void Destroy();
- DWORD m_dwWrittenAt;
+ ULONG_PTR m_ulWrittenAt;
private:
IMAGE_RESOURCE_DIRECTORY m_rdDir;
@@ -204,7 +204,7 @@
CResourceDataEntry* GetDataEntry();
- DWORD m_dwWrittenAt;
+ ULONG_PTR m_ulWrittenAt;
private:
bool m_bHasName;
@@ -232,7 +232,7 @@
DWORD GetCodePage();
DWORD GetOffset();
- DWORD m_dwWrittenAt;
+ ULONG_PTR m_ulWrittenAt;
private:
BYTE* m_pbData;
diff -urd nsis-2.46-src.orig/Source/ResourceVersionInfo.cpp nsis-2.46-src/Source/ResourceVersionInfo.cpp
--- nsis-2.46-src.orig/Source/ResourceVersionInfo.cpp 2009-03-28 10:20:04.000000000 +0000
+++ nsis-2.46-src/Source/ResourceVersionInfo.cpp 2010-05-04 18:15:29.000000000 +0000
@@ -146,7 +146,7 @@
p += sizeof(WORD);
szKey = (WCHAR*)p;
p += (winchar_strlen(szKey) + 1) * sizeof (WCHAR);
- while ( ((long)p % 4) != 0 )
+ while ( ((ULONG_PTR)p % 4) != 0 )
p++;
return p - baseP;
}
diff -urd nsis-2.46-src.orig/Source/fileform.cpp nsis-2.46-src/Source/fileform.cpp
--- nsis-2.46-src.orig/Source/fileform.cpp 2009-02-01 14:44:30.000000000 +0000
+++ nsis-2.46-src/Source/fileform.cpp 2010-05-04 18:15:29.000000000 +0000
@@ -149,7 +149,7 @@
m_sink->write_int(data->text);
m_sink->write_int(data->bkc);
m_sink->write_int(data->lbStyle);
- m_sink->write_int((int) data->bkb);
+ m_sink->write_int((INT_PTR) data->bkb);
m_sink->write_int(data->bkmode);
m_sink->write_int(data->flags);
}
diff -urd nsis-2.46-src.orig/Source/mmap.cpp nsis-2.46-src/Source/mmap.cpp
--- nsis-2.46-src.orig/Source/mmap.cpp 2009-02-01 14:44:30.000000000 +0000
+++ nsis-2.46-src/Source/mmap.cpp 2010-05-04 18:15:46.000000000 +0000
@@ -322,7 +322,7 @@
if (!pView)
return;
- unsigned int alignment = ((unsigned int)pView) % m_iAllocationGranularity;
+ unsigned int alignment = ((ULONG_PTR)pView) % m_iAllocationGranularity;
pView = (char *)pView - alignment;
size += alignment;
#ifdef _WIN32
diff -urd nsis-2.46-src.orig/Source/script.cpp nsis-2.46-src/Source/script.cpp
--- nsis-2.46-src.orig/Source/script.cpp 2009-06-10 21:26:01.000000000 +0000
+++ nsis-2.46-src/Source/script.cpp 2010-05-04 18:15:54.000000000 +0000
@@ -2129,7 +2129,7 @@
int k=line.gettoken_enum(1,rootkeys[0]);
if (k == -1) k=line.gettoken_enum(1,rootkeys[1]);
if (k == -1) PRINTHELP()
- build_header.install_reg_rootkey=(int)rootkey_tab[k];
+ build_header.install_reg_rootkey=(INT_PTR)rootkey_tab[k];
if (!build_header.install_reg_rootkey) PRINTHELP() // SHCTX is invalid here
build_header.install_reg_key_ptr = add_string(line.gettoken_str(2),0);
if (line.gettoken_str(2)[0] == '\\')
@@ -5184,7 +5184,7 @@
int k=line.gettoken_enum(2,rootkeys[0]);
if (k == -1) k=line.gettoken_enum(2,rootkeys[1]);
if (ent.offsets[0] == -1 || k == -1) PRINTHELP()
- ent.offsets[1]=(int)rootkey_tab[k];
+ ent.offsets[1]=(INT_PTR)rootkey_tab[k];
ent.offsets[2]=add_string(line.gettoken_str(3));
ent.offsets[3]=add_string(line.gettoken_str(4));
if (which_token == TOK_READREGDWORD) ent.offsets[4]=1;
@@ -5216,7 +5216,7 @@
if (k == -1) k=line.gettoken_enum(a,rootkeys[1]);
if (k == -1) PRINTHELP()
ent.which=EW_DELREG;
- ent.offsets[1]=(int)rootkey_tab[k];
+ ent.offsets[1]=(INT_PTR)rootkey_tab[k];
ent.offsets[2]=add_string(line.gettoken_str(a+1));
ent.offsets[3]=(which_token==TOK_DELETEREGKEY)?0:add_string(line.gettoken_str(a+2));
if (line.gettoken_str(a+1)[0] == '\\')
@@ -5236,7 +5236,7 @@
if (k == -1) k=line.gettoken_enum(1,rootkeys[1]);
if (k == -1) PRINTHELP()
ent.which=EW_WRITEREG;
- ent.offsets[0]=(int)rootkey_tab[k];
+ ent.offsets[0]=(INT_PTR)rootkey_tab[k];
ent.offsets[1]=add_string(line.gettoken_str(2));
if (line.gettoken_str(2)[0] == '\\')
warning_fl("%s: registry path name begins with \'\\\', may cause problems",line.gettoken_str(0));
@@ -5305,7 +5305,7 @@
int k=line.gettoken_enum(2,rootkeys[0]);
if (k == -1) k=line.gettoken_enum(2,rootkeys[1]);
if (ent.offsets[0] == -1 || k == -1) PRINTHELP()
- ent.offsets[1]=(int)rootkey_tab[k];
+ ent.offsets[1]=(INT_PTR)rootkey_tab[k];
ent.offsets[2]=add_string(line.gettoken_str(3));
ent.offsets[3]=add_string(line.gettoken_str(4));
ent.offsets[4]=which_token == TOK_ENUMREGKEY;
diff -urd nsis-2.46-src.orig/Source/util.cpp nsis-2.46-src/Source/util.cpp
--- nsis-2.46-src.orig/Source/util.cpp 2009-03-28 09:56:49.000000000 +0000
+++ nsis-2.46-src/Source/util.cpp 2010-05-04 18:15:54.000000000 +0000
@@ -77,9 +77,9 @@
}
if (width != 0) {
- LONG biWidth;
+ INT32 biWidth;
fseek(f, 18, SEEK_SET); // Seek to the width member of the header
- fread(&biWidth, sizeof(LONG), 1, f);
+ fread(&biWidth, sizeof(INT32), 1, f);
FIX_ENDIAN_INT32_INPLACE(biWidth);
if (width != biWidth) {
fclose(f);
@@ -88,9 +88,9 @@
}
if (height != 0) {
- LONG biHeight;
+ INT32 biHeight;
fseek(f, 22, SEEK_SET); // Seek to the height member of the header
- fread(&biHeight, sizeof(LONG), 1, f);
+ fread(&biHeight, sizeof(INT32), 1, f);
FIX_ENDIAN_INT32_INPLACE(biHeight);
// Bitmap height can be negative too...
if (height != abs(biHeight)) {
@@ -689,8 +689,8 @@
}
// Find the beginning of the NT header at offset e_lfanew.
- pNtExeHdr = (PIMAGE_NT_HEADERS) ( (DWORD) pView
- + (DWORD) pDosExeHdr->e_lfanew );
+ pNtExeHdr = (PIMAGE_NT_HEADERS) ( (ULONG_PTR) pView
+ + pDosExeHdr->e_lfanew );
// Check to make sure the file is a VxD.
if ( (DWORD) pNtExeHdr->Signature != IMAGE_VXD_SIGNATURE )
@@ -728,8 +728,8 @@
}
// e32_winresoff contains the offset of the resource in the VxD.
- pVerRes = (VXD_VERSION_RESOURCE *) ( (DWORD) pView
- + (DWORD) pLEHdr->e32_winresoff );
+ pVerRes = (VXD_VERSION_RESOURCE *) ( (ULONG_PTR) pView
+ + pLEHdr->e32_winresoff );
dwSize = pVerRes->dwResSize;
pRawRes = &(pVerRes->bVerData);
@@ -780,7 +780,7 @@
// GetVxdVersion() will fail with ERROR_INSUFFICIENT_BUFFER and
// the required buffer size will be returned in dwResult.
- if ( GetLastError() == ERROR_INSUFFICIENT_BUFFER )
+ if ( dwError == ERROR_INSUFFICIENT_BUFFER )
{
SetLastError( 0 );
return dwResult;
debian/patches/zmemcpy.patch 0000644 0000000 0000000 00000002707 11700553427 013334 0 ustar Description: Use zmemcpy function of the same calling convention.
The zmemcpy function used to be mapped to the standard C library memcpy
function for POSIX systems. However the prototype of the standard C
library memcpy function differ from the expected one.
Therefore zmemcpy is mapped to mini_memcpy for consistency. The
NSISCALL define is evaluated for setting the calling convention.
Author: Thomas Gaugler
Index: nsis-2.46/Source/zlib/ZUTIL.H
===================================================================
--- nsis-2.46/Source/zlib/ZUTIL.H
+++ nsis-2.46/Source/zlib/ZUTIL.H
@@ -59,12 +59,8 @@
#ifdef EXEHEAD
-# ifdef _WIN32
-# include "../exehead/util.h"
-# define zmemcpy mini_memcpy
-# else
-# define zmemcpy memcpy
-# endif
+# include "../exehead/util.h"
+# define zmemcpy mini_memcpy
#else
# define zmemcpy memcpy
# define zmemzero(a,b) memset(a,0,b)
Index: nsis-2.46/Source/exehead/util.h
===================================================================
--- nsis-2.46/Source/exehead/util.h
+++ nsis-2.46/Source/exehead/util.h
@@ -19,7 +19,15 @@
#include "../Platform.h"
#include "config.h"
+
+#ifdef _WIN32
#include
+#else
+typedef LPCSTR LPCTSTR;
+struct _WIN32_FIND_DATAA;
+typedef struct _WIN32_FIND_DATAA WIN32_FIND_DATAA;
+typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
+#endif /* _WIN32 */
extern char ps_tmpbuf[NSIS_MAX_STRLEN*2];
char * NSISCALL GetNSISString(char *outbuf, int strtab);
debian/patches/static-libgcc-libstdc++.patch 0000644 0000000 0000000 00000002316 11701045543 016120 0 ustar Description: Make plugins not depend on libgcc_s_sjlj-1.dll nor
libdtdc++-6.dll.
.
Plugins must not depend on a shared libgcc. Newer MinGW GCC builds now also
default to a shared libstdc++, so plugins now also require -static-libstdc++.
.
Without this patch, C++ plugins such as NSISdl fail to load.
Origin: upstream, http://sf.net/support/tracker.php?aid=3406350
Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=734905
Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=553971
Bug-Debian: http://bugs.debian.org/654380
Author: Kevin Kofler
Acked-by: Didier Raboud
Last-Update: 2012-01-03
--- a/SCons/Config/gnu
+++ b/SCons/Config/gnu
@@ -115,6 +115,8 @@
plugin_env.Append(LINKFLAGS = ['-mwindows']) # build windows executables
plugin_env.Append(LINKFLAGS = ['$ALIGN_FLAG']) # 512 bytes align
plugin_env.Append(LINKFLAGS = ['$MAP_FLAG']) # generate map file
+plugin_env.Append(LINKFLAGS = ['-static-libgcc']) # Make sure libgcc is statically linked in, for the plugins to work.
+plugin_env.Append(LINKFLAGS = ['-static-libstdc++']) # Make sure libstdc++ is statically linked in, for the plugins to work.
### cross-platform util environment
debian/patches/sconstruct_variant_dir.patch 0000644 0000000 0000000 00000006267 11562742435 016453 0 ustar Description: Use variant_dir instead of build_dir keyword in SConstruct file
The use of the build_dir keyword has been declared deprecated since
scons version 0.98. The variant_dir keyword should be used instead.
Forwarded: http://sf.net/support/tracker.php?aid=3075573
Author: Thomas Gaugler
diff -urd nsis-2.46-src.orig/SConstruct nsis-2.46-src/SConstruct
--- nsis-2.46-src.orig/SConstruct 2010-09-25 17:08:49.000000000 +0200
+++ nsis-2.46-src/SConstruct 2010-09-25 17:27:37.000000000 +0200
@@ -470,7 +470,7 @@
exports = { 'env' : env, 'compression' : compression, 'solid_compression' : solid }
- target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = False, exports = exports)
+ target = defenv.SConscript(dirs = 'Source/exehead', variant_dir = build_dir, duplicate = False, exports = exports)
env.SideEffect('%s/stub_%s.map' % (build_dir, stub), target)
env.DistributeStubs(target, names=compression+suffix)
@@ -494,7 +494,7 @@
build_dir = '$BUILD_PREFIX/makensis'
exports = { 'env' : makensis_env }
-makensis = defenv.SConscript(dirs = 'Source', build_dir = build_dir, duplicate = False, exports = exports)
+makensis = defenv.SConscript(dirs = 'Source', variant_dir = build_dir, duplicate = False, exports = exports)
makensis_env.SideEffect('%s/makensis.map' % build_dir, makensis)
@@ -581,7 +581,7 @@
build_dir = '$BUILD_PREFIX/' + plugin
exports = {'BuildPlugin' : BuildPlugin, 'env' : plugin_env.Clone()}
- defenv.SConscript(dirs = path, build_dir = build_dir, duplicate = False, exports = exports)
+ defenv.SConscript(dirs = path, variant_dir = build_dir, duplicate = False, exports = exports)
######################################################################
####### Utilities ###
@@ -651,7 +651,7 @@
build_dir = '$BUILD_PREFIX/' + util
exports = {'BuildUtil' : BuildUtil, 'BuildUtilEnv' : BuildUtilEnv, 'env' : util_env}
- defenv.SConscript(dirs = path, build_dir = build_dir, duplicate = False, exports = exports)
+ defenv.SConscript(dirs = path, variant_dir = build_dir, duplicate = False, exports = exports)
######################################################################
####### Documentation ###
@@ -659,7 +659,7 @@
halibut = defenv.SConscript(
dirs = 'Docs/src/bin/halibut',
- build_dir = '$BUILD_PREFIX/halibut',
+ variant_dir = '$BUILD_PREFIX/halibut',
duplicate = False,
exports = {'env' : defenv.Clone()}
)
@@ -667,14 +667,14 @@
if defenv['CHMDOCS']:
defenv.SConscript(
dirs = 'Docs/src',
- build_dir = '$BUILD_PREFIX/Docs/chm',
+ variant_dir = '$BUILD_PREFIX/Docs/chm',
duplicate = False,
exports = {'halibut' : halibut, 'env' : defenv.Clone(), 'build_chm' : True}
)
else:
defenv.SConscript(
dirs = 'Docs/src',
- build_dir = '$BUILD_PREFIX/Docs/html',
+ variant_dir = '$BUILD_PREFIX/Docs/html',
duplicate = False,
exports = {'halibut' : halibut, 'env' : defenv.Clone(), 'build_chm' : False}
)
@@ -720,7 +720,7 @@
dirs = 'Source/Tests',
duplicate = False,
exports = exports,
- build_dir = build_dir
+ variant_dir = build_dir
)
defenv.Ignore('$BUILD_PREFIX', '$BUILD_PREFIX/tests')
debian/patches/nsis_system_zlib.patch 0000644 0000000 0000000 00000066257 11562742435 015267 0 ustar Description: Usage of the zlib compression library provided by the system
The changes were cherry-picked from the following upstream svn revisions
6030, 6039, 6044 and 6063. Furthermore the NSIS embedded inflate function
was made compatible with the one from zlib.
Forwarded: http://sf.net/support/tracker.php?aid=2918870
Forwarded: http://sf.net/support/tracker.php?aid=2995455
Author: Thomas Gaugler
Index: nsis-2.46/Source/zlib/INFBLOCK.C
===================================================================
--- nsis-2.46/Source/zlib/INFBLOCK.C
+++ nsis-2.46/Source/zlib/INFBLOCK.C
@@ -424,7 +424,7 @@
}
break;
case LENS:
- NEEDBITS(16)
+ NEEDBITS(32)
s->sub.left = (uInt)b & 0xffff;
b = k = 0; /* dump bits */
Tracev((stderr, "inflate: stored length %u\n", s->sub.left));
Index: nsis-2.46/INSTALL
===================================================================
--- nsis-2.46/INSTALL (revision 6038)
+++ nsis-2.46/INSTALL (revision 6044)
@@ -6,7 +6,8 @@
- Requirements
* Python version 1.6 and above (http://www.python.org/)
- * SCons version 0.96.93 and above (http://www.scons.org/)
+ * SCons version 1.2.0 and above (http://www.scons.org/)
+ * zlib version 1.2.3 and above (http://www.zlib.net/)
* C compiler
- Optional Tools
@@ -16,6 +17,14 @@
* wxWidgets 2.8 for NSIS Menu (http://www.wxwidgets.org)
WXWIN environment variable must be set to wxWidgets directory on Windows
+ - Preparation
+
+ * Unpack the zip archive of the downloaded zlib compiled DLL package
+ to a folder of your choice, e.g. C:\Dev\zlib-1.2.4 and set the
+ ZLIB_W32 environment variable, type:
+
+ set ZLIB_W32=C:\Dev\zlib-1.2.4
+
- Installing
* type:
Index: nsis-2.46/Contrib/VPatch/Source/GenPat/SConscript
===================================================================
--- nsis-2.46/Contrib/VPatch/Source/GenPat/SConscript (revision 6029)
+++ nsis-2.46/Contrib/VPatch/Source/GenPat/SConscript (revision 6030)
@@ -13,6 +13,7 @@
""")
libs = Split("""
+ z
""")
Import('BuildUtil')
Index: nsis-2.46/Contrib/VPatch/Source/GenPat/adler32.cpp
===================================================================
--- nsis-2.46/Contrib/VPatch/Source/GenPat/adler32.cpp (revision 6029)
+++ nsis-2.46/Contrib/VPatch/Source/GenPat/adler32.cpp (revision 6030)
@@ -24,69 +24,14 @@
*/
#include "adler32.h"
+namespace zlib {
+#include
+}
-#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-
-#define BASE 65521UL /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i) {s1 += buf[i]; s2 += s1;}
-#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf) DO8(buf,0); DO8(buf,8);
-
-#ifdef NO_DIVIDE
-# define MOD(a) \
- do { \
- if (a >= (BASE << 16)) a -= (BASE << 16); \
- if (a >= (BASE << 15)) a -= (BASE << 15); \
- if (a >= (BASE << 14)) a -= (BASE << 14); \
- if (a >= (BASE << 13)) a -= (BASE << 13); \
- if (a >= (BASE << 12)) a -= (BASE << 12); \
- if (a >= (BASE << 11)) a -= (BASE << 11); \
- if (a >= (BASE << 10)) a -= (BASE << 10); \
- if (a >= (BASE << 9)) a -= (BASE << 9); \
- if (a >= (BASE << 8)) a -= (BASE << 8); \
- if (a >= (BASE << 7)) a -= (BASE << 7); \
- if (a >= (BASE << 6)) a -= (BASE << 6); \
- if (a >= (BASE << 5)) a -= (BASE << 5); \
- if (a >= (BASE << 4)) a -= (BASE << 4); \
- if (a >= (BASE << 3)) a -= (BASE << 3); \
- if (a >= (BASE << 2)) a -= (BASE << 2); \
- if (a >= (BASE << 1)) a -= (BASE << 1); \
- if (a >= BASE) a -= BASE; \
- } while (0)
-#else
-# define MOD(a) a %= BASE
-#endif
-
namespace Checksum {
/* ========================================================================= */
uLong adler32(uLong adler, const Byte *buf, uInt len) {
- unsigned long s1 = adler & 0xffff;
- unsigned long s2 = (adler >> 16) & 0xffff;
- int k;
-
- if (buf == Z_NULL) return 1L;
-
- while (len > 0) {
- k = len < NMAX ? (int)len : NMAX;
- len -= k;
- while (k >= 16) {
- DO16(buf);
- buf += 16;
- k -= 16;
- }
- if (k != 0) do {
- s1 += *buf++;
- s2 += s1;
- } while (--k);
- MOD(s1);
- MOD(s2);
- }
- return (s2 << 16) | s1;
+ return zlib::adler32(adler, buf, len);
}
}
Index: nsis-2.46/Contrib/zip2exe/zlib/ioapi.c
===================================================================
--- nsis-2.46/Contrib/zip2exe/zlib/ioapi.c (revision 6029)
+++ nsis-2.46/Contrib/zip2exe/zlib/ioapi.c (revision 6030)
@@ -10,7 +10,7 @@
#include
#include
-#include "zlib.h"
+#include
#include "ioapi.h"
Index: nsis-2.46/Contrib/zip2exe/zlib/unzip.c
===================================================================
--- nsis-2.46/Contrib/zip2exe/zlib/unzip.c (revision 6029)
+++ nsis-2.46/Contrib/zip2exe/zlib/unzip.c (revision 6030)
@@ -38,7 +38,7 @@
#include
#include
#include
-#include "zlib.h"
+#include
#include "unzip.h"
#ifdef STDC
Index: nsis-2.46/Contrib/zip2exe/zlib/unzip.h
===================================================================
--- nsis-2.46/Contrib/zip2exe/zlib/unzip.h (revision 6029)
+++ nsis-2.46/Contrib/zip2exe/zlib/unzip.h (revision 6030)
@@ -50,7 +50,7 @@
#endif
#ifndef _ZLIB_H
-#include "zlib.h"
+#include
#endif
#ifndef _ZLIBIOAPI_H
Index: nsis-2.46/Contrib/zip2exe/SConscript
===================================================================
--- nsis-2.46/Contrib/zip2exe/SConscript (revision 6029)
+++ nsis-2.46/Contrib/zip2exe/SConscript (revision 6030)
@@ -2,14 +2,8 @@
files = Split("""
main.cpp
- zlib/adler32.c
- zlib/crc32.c
- zlib/inffast.c
- zlib/inflate.c
- zlib/inftrees.c
zlib/ioapi.c
zlib/unzip.c
- zlib/zutil.c
""")
resources = Split("""
@@ -26,6 +20,7 @@
comdlg32
advapi32
shell32
+ z
""")
headers = Split("""
Index: nsis-2.46/Contrib/SubStart/SConscript
===================================================================
--- nsis-2.46/Contrib/SubStart/SConscript (revision 0)
+++ nsis-2.46/Contrib/SubStart/SConscript (revision 6063)
@@ -0,0 +1,16 @@
+Import('env')
+
+target = "substart"
+
+files = Split("""
+ substart.c
+""")
+
+libs = Split("""
+""")
+
+Import('BuildUtil')
+
+substart = BuildUtil(target, files, libs)
+
+env.DistributeBin(substart, names=['makensis.exe'], alias='install-compiler') # install as makensis
Index: nsis-2.46/Contrib/SubStart/substart.c
===================================================================
--- nsis-2.46/Contrib/SubStart/substart.c (revision 0)
+++ nsis-2.46/Contrib/SubStart/substart.c (revision 6030)
@@ -0,0 +1,109 @@
+/*
+ * substart.c
+ *
+ * Copyright (c) 2010 Thomas Gaugler
+ *
+ * Licensed under the zlib/libpng license (the "License");
+ * you may not use this file except in compliance with the License.
+ *
+ * Licence details can be found in the file COPYING.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty.
+ */
+
+#include
+#include
+#include
+
+/* Macro to determine the string length of a constant */
+#define CONST_STRLEN(x) ((sizeof(x) / sizeof(*x)) - 1)
+
+/* Name of the sub folder containing the executable
+ invoked by this stub executable.
+ */
+static const TCHAR SUBFOLDER[] = _T("Bin");
+
+/* Redirect to an executable located in a sub folder relative to
+ this starter executable. Name of the stub executable has to
+ match with the one in the sub folder.
+ The command line parameters are passed along.
+ */
+int main( int argc, char *argv[] )
+{
+ int err = ERROR_SUCCESS;
+ TCHAR szPath[MAX_PATH];
+
+ /* Get the full path of the running executable */
+ if ( GetModuleFileName( NULL, szPath, MAX_PATH ) )
+ {
+ size_t len = _tcslen(szPath);
+ size_t offset = len + CONST_STRLEN(SUBFOLDER) + 1;
+
+ err = ERROR_BAD_PATHNAME;
+ if (offset < MAX_PATH)
+ {
+ /* Move file name part of full path by length of sub folder
+ name and thereafter fill in the sub folder name in the
+ newly created gap.
+ */
+ register TCHAR *p = szPath + len;
+ register TCHAR *q = szPath + offset;
+
+ while (p > szPath)
+ {
+ *(q--) = *(p--);
+ if (*p == '\\')
+ {
+ /* Fill in sub folder name */
+ *q = *p;
+ q = ++p;
+ p = (TCHAR *)SUBFOLDER;
+ while (*p)
+ {
+ *(q++) = *(p++);
+ }
+ err = ERROR_SUCCESS;
+ break;
+ }
+ }
+ }
+
+ if (err)
+ {
+ _tprintf( _T("Path too long: %s\n"), szPath );
+ }
+ else
+ {
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
+
+ ZeroMemory( &si, sizeof(si) );
+ si.cb = sizeof(si);
+ ZeroMemory( &pi, sizeof(pi) );
+
+ /* Start a subprocess running the executable of the
+ sub folder of the cuand wait for its completion */
+ if ( CreateProcess( szPath, GetCommandLine(), NULL, NULL,
+ FALSE, 0, NULL, NULL, &si, &pi ) )
+ {
+ WaitForSingleObject( pi.hProcess, INFINITE );
+ CloseHandle( pi.hProcess );
+ CloseHandle( pi.hThread );
+ }
+ else
+ {
+ err = GetLastError();
+ _tprintf( _T("CreateProcess (%s) failed (%d).\n"), szPath, err );
+ }
+ }
+ }
+ else
+ {
+ err = GetLastError();
+ _tprintf( _T("GetModuleFileName failed (%d).\n"), err );
+ }
+
+ return err;
+}
+
Index: nsis-2.46/Contrib/SubStart/ReadMe.txt
===================================================================
--- nsis-2.46/Contrib/SubStart/ReadMe.txt (revision 0)
+++ nsis-2.46/Contrib/SubStart/ReadMe.txt (revision 6030)
@@ -0,0 +1,34 @@
+substart - Redirect to an executable located in the 'Bin' sub folder
+ relative to the starter executable.
+------------------------------------------------------------------------
+
+Copyright (C) 2010 Thomas Gaugler
+Licensed under the zlib/libpng license
+
+This tool runs the executable of the same name in the 'Bin' sub folder
+and passes along the command line options.
+
+The main purpose of the tool is that scripts expecting an executable in
+the root of the program installation folder continue to run.
+
+USAGE
+-----
+
+The original executable has to go into the 'Bin' sub folder and the
+the substart executable renamed to the original executable name needs
+to be placed at the original location.
+
+EXAMPLE
+-------
+
+Directory hierarchy:
+C:\Program Files\NSIS
+C:\Program Files\NSIS\Bin\makensis.exe
+C:\Program Files\NSIS\makensis.exe (-> substart.exe renamed to makensis.exe)
+
+C:\Program Files\NSIS\makensis.exe /VERSION
+
+
+Please be aware that the name of the substart executable has to match
+with the one in the sub folder.
+
Index: nsis-2.46/Source/czlib.h
===================================================================
--- nsis-2.46/Source/czlib.h (revision 6029)
+++ nsis-2.46/Source/czlib.h (revision 6030)
@@ -18,7 +18,7 @@
#define __CZLIB_H__
#include "compressor.h"
-#include "zlib/ZLIB.H"
+#include
class CZlib : public ICompressor {
public:
@@ -27,7 +27,13 @@
int Init(int level, unsigned int dict_size) {
stream = new z_stream;
if (!stream) return Z_MEM_ERROR;
- return deflateInit(stream, level);
+
+ stream->zalloc = (alloc_func)Z_NULL;
+ stream->zfree = (free_func)Z_NULL;
+ stream->opaque = (voidpf)Z_NULL;
+
+ return deflateInit2(stream, level,
+ Z_DEFLATED, -MAX_WBITS, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY);
}
int End() {
Index: nsis-2.46/Source/build.cpp
===================================================================
--- nsis-2.46/Source/build.cpp (revision 6029)
+++ nsis-2.46/Source/build.cpp (revision 6030)
@@ -414,7 +414,7 @@
if (dir) nsis_dir = dir;
else {
#ifndef NSIS_CONFIG_CONST_DATA_PATH
- nsis_dir = get_executable_dir(makensis_path);
+ nsis_dir = get_dir_name(get_executable_dir(makensis_path));
#else
nsis_dir = PREFIX_DATA;
#endif
Index: nsis-2.46/Source/SConscript
===================================================================
--- nsis-2.46/Source/SConscript (revision 6029)
+++ nsis-2.46/Source/SConscript (revision 6030)
@@ -46,11 +46,6 @@
7zip/Common/CRC.cpp
""")
-zlib_files = Split("""
- zlib/deflate.c
- zlib/trees.c
-""")
-
libs = Split("""
gdi32
user32
@@ -58,7 +53,7 @@
iconv
""")
-Import('env AddAvailableLibs')
+Import('env AddAvailableLibs AddZLib')
##### Use available libraries
@@ -68,6 +63,7 @@
libs += ['version']
AddAvailableLibs(env, libs)
+AddZLib(env, env['PLATFORM'], 'install-compiler')
##### Defines
@@ -87,7 +83,7 @@
##### Compile makensis
-files = makensis_files + bzip2_files + lzma_files + zlib_files
+files = makensis_files + bzip2_files + lzma_files
makensis = env.Program(target, files)
Index: nsis-2.46/Source/makenssi.cpp
===================================================================
--- nsis-2.46/Source/makenssi.cpp (revision 6029)
+++ nsis-2.46/Source/makenssi.cpp (revision 6030)
@@ -442,7 +442,7 @@
char* env_var = getenv("NSISCONFDIR");
if(env_var == NULL)
#ifndef NSIS_CONFIG_CONST_DATA_PATH
- main_conf = get_executable_dir(argv[0]);
+ main_conf = get_dir_name(get_executable_dir(argv[0]));
#else
main_conf = PREFIX_CONF;
#endif
Index: nsis-2.46/Source/Tests/SConscript
===================================================================
--- nsis-2.46/Source/Tests/SConscript (revision 6029)
+++ nsis-2.46/Source/Tests/SConscript (revision 6030)
@@ -56,16 +56,10 @@
required += bzip2_files
required_exehead += bzip2_exehead_files
-zlib_files = Split("""
- zlib/deflate.c
- zlib/trees.c
-""")
-
zlib_exehead_files = Split("""
zlib/INFBLOCK.C
""")
-required += zlib_files
required_exehead += zlib_exehead_files
cppunitlibs = Split("""
@@ -87,7 +81,7 @@
winver.nsi
""")
-Import('env AddAvailableLibs')
+Import('env AddAvailableLibs AddZLib')
# Test scripts
env.TestScript(scripts)
@@ -99,6 +93,7 @@
extralibs += ['version']
AddAvailableLibs(env, extralibs)
+AddZLib(env, env['PLATFORM'])
# compile using msvcrt (that's how cppunit.lib is built)
if 'msvc' in env['TOOLS'] or 'mstoolkit' in env['TOOLS']:
@@ -146,6 +141,11 @@
# build test program
tests = env.Program(target, tests + required_obj)
+ if env['PLATFORM'] == 'win32' and 'ZLIB_W32_DLL' in env:
+ import os.path
+ env.Depends(tests, env.InstallAs(
+ os.path.basename(str(env['ZLIB_W32_DLL'])),
+ env['ZLIB_W32_DLL']))
# alias running the test to 'test'
test = env.Alias('test-code', [tests], tests[0].abspath)
Index: nsis-2.46/SCons/utils.py
===================================================================
--- nsis-2.46/SCons/utils.py (revision 6029)
+++ nsis-2.46/SCons/utils.py (revision 6030)
@@ -1,6 +1,6 @@
def AddAvailableLibs(env, libs):
"""
- Scans through a list list of libraries and adds
+ Scans through a list of libraries and adds
available libraries to the environment.
"""
conf = env.Configure()
@@ -10,6 +10,32 @@
conf.Finish()
+def AddZLib(env, platform, alias='install-utils'):
+ """
+ Checks for platform specific zlib and adds the
+ appropriate compiler and linker options to the environment
+ """
+ zlib = 'z'
+ if platform == 'win32':
+ if 'ZLIB_W32' in env:
+ # Add include and library path of zlib for Win32
+ env.Append(CPPPATH = env['ZLIB_W32_INC'])
+ env.Append(LIBPATH = env['ZLIB_W32_LIB'])
+ zlib = ['zdll', 'z']
+ if 'ZLIB_W32_DLL' in env:
+ env.DistributeW32Bin(env['ZLIB_W32_DLL'], alias=alias)
+ else:
+ print 'Please specify folder of zlib for Win32 via ZLIB_W32'
+ Exit(1)
+
+ conf = env.Configure()
+ if not conf.CheckLibWithHeader(zlib, 'zlib.h', 'c'):
+ print 'zlib (%s) is missing!' % (platform)
+ Exit(1)
+
+ env = conf.Finish()
+
+
def GetAvailableLibs(env, libs):
"""
Scans through a list list of libraries and adds
@@ -87,4 +113,4 @@
"""
return env.Configure(custom_tests = { 'CheckCompileFlag' : check_compile_flag, 'CheckLinkFlag': check_link_flag })
-Export('AddAvailableLibs FlagsConfigure GetAvailableLibs')
+Export('AddAvailableLibs AddZLib FlagsConfigure GetAvailableLibs')
Index: nsis-2.46/SConstruct
===================================================================
--- nsis-2.46/SConstruct (revision 6029)
+++ nsis-2.46/SConstruct (revision 6030)
@@ -1,4 +1,4 @@
-EnsureSConsVersion(0,98)
+EnsureSConsVersion(1,2)
stubs = [
'bzip2',
@@ -36,6 +36,7 @@
'Makensisw',
'NSIS Menu',
'UIs',
+ 'SubStart',
'VPatch/Source/GenPat',
'zip2exe'
]
@@ -156,6 +157,7 @@
opts.Add(('APPEND_CCFLAGS', 'Additional C/C++ compiler flags'))
opts.Add(('APPEND_LINKFLAGS', 'Additional linker flags'))
opts.Add(PathVariable('WXWIN', 'Path to wxWindows library folder (e.g. C:\\Dev\\wxWidgets-2.8.10)', os.environ.get('WXWIN')))
+opts.Add(PathVariable('ZLIB_W32', 'Path to Win32 zlib library folder (e.g. C:\\Dev\\zlib-1.2.3)', os.environ.get('ZLIB_W32')))
# build options
opts.Add(BoolVariable('DEBUG', 'Build executables with debugging information', 'no'))
opts.Add(PathVariable('CODESIGNER', 'A program used to sign executables', None))
@@ -306,6 +308,14 @@
def DistributeExamples(files, names=[], path='', alias=None):
return defenv.Distribute(files, names, 'doc', 'Examples', path, alias, 'examples')
+def FindMakeNSIS(env, path):
+ exename = 'makensis_not_found'
+ file = env.FindFile('makensis$PROGSUFFIX',
+ [os.path.join(path, '.'), os.path.join(path, 'Bin')])
+ if file:
+ exename = str(file)
+ return exename
+
def Sign(targets):
if defenv.has_key('CODESIGNER'):
for t in targets:
@@ -344,6 +354,30 @@
defenv.Default('$BUILD_PREFIX')
+if 'ZLIB_W32' in defenv:
+ defenv['ZLIB_W32_INC'] = os.path.dirname(str(
+ defenv.FindFile('zlib.h',
+ [
+ defenv['ZLIB_W32'],
+ os.path.join(defenv['ZLIB_W32'], 'include')
+ ]
+ )
+ ))
+ # Search for import library of zlib for VisualC or mingw
+ for importlib in ['zdll.lib', 'libzdll.a']:
+ defenv['ZLIB_W32_LIB'] = os.path.dirname(str(
+ defenv.FindFile(importlib,
+ [
+ defenv['ZLIB_W32'],
+ os.path.join(defenv['ZLIB_W32'], 'lib')
+ ]
+ )
+ ))
+ if defenv['ZLIB_W32_LIB']:
+ break
+ defenv['ZLIB_W32_DLL'] = defenv.FindFile('zlib1.dll',
+ [defenv['ZLIB_W32'], defenv['ZLIB_W32_LIB']])
+
tools = defenv['TOOLS']
envs = []
@@ -393,17 +427,21 @@
inst_env['NSISDIR'] = os.path.abspath(str(defenv['INSTDISTDIR']))
inst_env['NSISCONFDIR'] = os.path.abspath(str(defenv['INSTDISTDIR']))
+def build_installer(target, source, env):
+ cmdline = FindMakeNSIS(env, str(env['INSTDISTDIR'])) + ' %sDOUTFILE=%s %s' % (optchar, target[0].abspath, env['INSTVER'])
+ cmd = env.Command(None, source, cmdline + ' $SOURCE')
+ AlwaysBuild(cmd)
+ AlwaysBuild(env.AddPostAction(cmd, Delete('$INSTDISTDIR')))
+ env.Alias('dist-installer', cmd)
+
installer_target = defenv.Command('nsis-${VERSION}-setup${DISTSUFFIX}.exe',
- '$INSTDISTDIR' + os.sep + 'Examples' + os.sep + 'makensis.nsi',
- '$INSTDISTDIR' + os.sep + 'makensis$PROGSUFFIX ' +
- '%sDOUTFILE=$TARGET.abspath $INSTVER $SOURCE' % optchar,
+ os.path.join('$INSTDISTDIR', 'Examples', 'makensis.nsi'),
+ build_installer,
ENV = inst_env)
defenv.Depends(installer_target, '$INSTDISTDIR')
defenv.Sign(installer_target)
defenv.Alias('dist-installer', installer_target)
-AlwaysBuild(defenv.AddPostAction(installer_target, Delete('$INSTDISTDIR')))
-
defenv.Alias('dist', ['dist-zip', 'dist-installer'])
######################################################################
@@ -462,7 +500,10 @@
defenv.Alias('makensis', makensis)
-ins = defenv.DistributeBin(makensis,alias='install-compiler')
+if defenv['PLATFORM'] == 'win32':
+ defenv.DistributeW32Bin(makensis, alias='install-compiler')
+else:
+ defenv.DistributeBin(makensis, alias='install-compiler')
######################################################################
####### Common Functions ###
@@ -546,13 +587,21 @@
####### Utilities ###
######################################################################
+Import('AddZLib')
+
def BuildUtilEnv(defines = None, flags = None, libs = None,
entry = None, nodeflib = None,
cross_platform = False):
if not cross_platform:
env = util_env.Clone()
+ platform = 'win32'
else:
env = cp_util_env.Clone()
+ platform = env['PLATFORM']
+
+ if libs and 'z' in libs:
+ libs.remove('z')
+ AddZLib(env, platform)
AddEnvStandardFlags(env, defines, flags, libs, entry, nodeflib)
@@ -692,6 +741,8 @@
skipped_tests = env['SKIPTESTS'].split(',')
ignored_tests = env['IGNORETESTS'].split(',')
+ compiler = FindMakeNSIS(env, env.subst('$TESTDISTDIR'))
+
for root, dirs, files in walk(instdir):
for file in files:
if file[-4:] == '.nsi':
@@ -702,9 +753,9 @@
continue
if nsif in ignored_tests:
- cmd = env.Command(None, nsi, '-makensis $SOURCE')
+ cmd = env.Command(None, nsi, '-' + compiler + ' $SOURCE')
else:
- cmd = env.Command(None, nsi, 'makensis $SOURCE')
+ cmd = env.Command(None, nsi, compiler + ' $SOURCE')
AlwaysBuild(cmd)
env.Alias('test-scripts', cmd)
Index: nsis-2.46/Docs/src/build.but
===================================================================
--- nsis-2.46/Docs/src/build.but (revision 6029)
+++ nsis-2.46/Docs/src/build.but (revision 6030)
@@ -6,7 +6,32 @@
Source code is available in \W{http://nsis.svn.sourceforge.net/viewvc/nsis/}{SVN} and as a separate package with every \W{http://sourceforge.net/project/showfiles.php?group_id=22049}{NSIS distribution}.
-To build NSIS \W{http://www.python.org/}{Python} and \W{http://www.scons.org/}{SCons} must be installed. Currently, the supported version of SCons is version 0.96.93. Any version of Python above 1.6 is supported.
+To build NSIS \W{http://www.python.org/}{Python}, \W{http://www.scons.org/}{SCons} must be installed. Currently, the supported version of SCons is version 1.2.0 and above. Any version of Python above 1.6 is supported.
+
+NSIS uses the \W{http://zlib.net}{zlib} compression library. As a
+consequence the header and library files of zlib must be installed.
+
+In case these zlib development files aren't present then they could be
+installed via a package manager (apt-get, aptitude, rpm, yum) on POSIX
+platforms. Another option is to build zlib from scratch and install it.
+
+For Windows it is recommended to download \W{http://zlib.net}{zlib} from
+\W{http://prdownloads.sourceforge.net/libpng/zlib124-dll.zip?download}{http://prdownloads.sourceforge.net/libpng/zlib124-dll.zip?download}.
+Extract the contents of this zip archive to a folder of your choice, e.g.
+\c{C:\\dev\\zlib-1.2.4} and set an environment variable named \c{ZLIB_W32}
+containingt his path.
+
+\c C:\>set ZLIB_W32=C:\dev\zlib-1.2.4
+
+Alternatively the command line option ZLIB_W32 specifying the path
+could be passed with scons instead of the environment variable.
+
+\c C:\dev\nsis>scons ZLIB_W32=C:\dev\zlib-1.2.4
+
+The header and library files are assumed to be in %ZLIB_W32%. In addition
+scons checks for zlib header files in %ZLIB_W32%\\include, the
+import library zdll.lib in %ZLIB_W32%\\lib and the dynamic link library
+zlib1.dll in %ZLIB_W32% respectively %ZLIB_W32%\\lib.
To build, open a console, change the working directory to the root directory of NSIS and type \c{scons}. That's it. For example:
@@ -69,7 +94,7 @@
To build NSIS Menu, install \W{http://www.wxwidgets.org/}{wxWidgets 2.8}, create an environment variable named \c{WXWIN} containing the path to the installation directory of wxWidgets, run \c{Contrib\\NSIS Menu\\wx\\wxbuild.bat} and build NSIS as usual.
-\\Important notes for Microsoft Visual C++ 6.0 users:\\ The latest \W{http://www.microsoft.com/msdownload/platformsdk/sdkupdate/}{Platform SDK} must be installed before building. Because of flaws in the libraries distributed with Microsoft Visual C++ 6.0, not installing the Platform SDK will result in crashes when using the \R{copyfiles}{CopyFiles} command. See \W{http://forums.winamp.com/showthread.php?s=&threadid=131964}{this forum topic} for more information. Installing the \W{http://msdn.microsoft.com/vstudio/downloads/tools/ppack/download.aspx}{Processor Pack} is highly recommended to decrease the size of the installer overhead.
+\\Important notes for Microsoft Visual C++ 6.0 users:\\ The latest \W{http://www.microsoft.com/msdownload/platformsdk/sdkupdate/}{Platform SDK} must be installed before building. Because of flaws in the libraries distributed with Microsoft Visual C++ 6.0, not installing the Platform SDK will result in crashes when using the \R{copyfiles}{CopyFiles} command. See \W{http://forums.winamp.com/showthread.php?s=&threadid=131964}{this forum topic} for more information. Installing the \W{http://msdn.microsoft.com/vstudio/aa718349.aspx}{Processor Pack} is highly recommended xto decrease the size of the installer overhead.
\H{build_posix} Building on POSIX
Index: nsis-2.46/Examples/makensis.nsi
===================================================================
--- nsis-2.46/Examples/makensis.nsi (revision 6029)
+++ nsis-2.46/Examples/makensis.nsi (revision 6030)
@@ -115,12 +115,15 @@
RMDir /r $SMPROGRAMS\NSIS
SetOverwrite on
- File ..\makensis.exe
+ File /oname=makensis.exe ..\Bin\substart.exe
File ..\makensisw.exe
File ..\COPYING
File ..\NSIS.chm
File ..\NSIS.exe
File /nonfatal ..\NSIS.exe.manifest
+ SetOutPath $INSTDIR\Bin
+ File ..\Bin\makensis.exe
+ File ..\Bin\zlib1.dll
IfFileExists $INSTDIR\nsisconf.nsi "" +2
Rename $INSTDIR\nsisconf.nsi $INSTDIR\nsisconf.nsh
@@ -955,7 +958,7 @@
ExecWait '$R1 _?=$INSTDIR'
IfErrors no_remove_uninstaller
- IfFileExists "$INSTDIR\makensis.exe" no_remove_uninstaller
+ IfFileExists "$INSTDIR\Bin\makensis.exe" no_remove_uninstaller
Delete $R1
RMDir $INSTDIR
@@ -996,7 +999,7 @@
DetailPrint "Uninstalling NSI Development Shell Extensions..."
SetDetailsPrint listonly
- IfFileExists $INSTDIR\makensis.exe nsis_installed
+ IfFileExists $INSTDIR\Bin\makensis.exe nsis_installed
MessageBox MB_YESNO "It does not appear that NSIS is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES nsis_installed
Abort "Uninstall aborted by user"
nsis_installed:
@@ -1030,6 +1033,7 @@
Delete $INSTDIR\makensis.exe
Delete $INSTDIR\makensisw.exe
Delete $INSTDIR\NSIS.exe
+ Delete $INSTDIR\NSIS.exe.manifest
Delete $INSTDIR\license.txt
Delete $INSTDIR\COPYING
Delete $INSTDIR\uninst-nsis.exe
debian/patches/parallel_build.patch 0000644 0000000 0000000 00000001726 11640564720 014624 0 ustar Description: Avoid a clash when scons is run in parallel operation.
This patch skips the unnecessary configuring when cleaning targets and
as a result avoids a clash when scons is run in parallel operation.
Forwarded: http://sf.net/support/tracker.php?aid=3295528
Author: Thomas Gaugler
--- nsis-2.46.orig/SCons/utils.py
+++ nsis-2.46/SCons/utils.py
@@ -28,12 +28,15 @@
print 'Please specify folder of zlib for Win32 via ZLIB_W32'
Exit(1)
- conf = env.Configure()
- if not conf.CheckLibWithHeader(zlib, 'zlib.h', 'c'):
- print 'zlib (%s) is missing!' % (platform)
- Exit(1)
+ # Avoid unnecessary configuring when cleaning targets
+ # and a clash when scons is run in parallel operation.
+ if not env.GetOption('clean'):
+ conf = env.Configure()
+ if not conf.CheckLibWithHeader(zlib, 'zlib.h', 'c'):
+ print 'zlib (%s) is missing!' % (platform)
+ Exit(1)
- env = conf.Finish()
+ env = conf.Finish()
def GetAvailableLibs(env, libs):
debian/patches/series 0000644 0000000 0000000 00000000354 11700577017 012041 0 ustar # list of patch file names in the order they are applied
nsis_system_zlib.patch
makensis_native_64bit.patch
sconstruct_variant_dir.patch
nsi_scripts.patch
mingw_w64.patch
parallel_build.patch
zmemcpy.patch
static-libgcc-libstdc++.patch
debian/patches/nsi_scripts.patch 0000644 0000000 0000000 00000002277 11562742435 014217 0 ustar Description: Use relative paths in .nsi script examples
The patch replaces the absolute paths in the example scripts of System
and nsDialogs with relative paths.
Forwarded: http://sf.net/support/tracker.php?aid=3293899
Author: Thomas Gaugler
--- nsis-2.46.orig/Contrib/System/SysFunc.nsh.orig 2007-12-01 12:43:02.000000000 +0100
+++ nsis-2.46/Contrib/System/SysFunc.nsh 2011-04-27 09:35:22.000000000 +0200
@@ -7,7 +7,7 @@
!ifndef SysFunc.NSH.Included
!define SysFunc.NSH.Included
-!include "${NSISDIR}\Examples\System\System.nsh"
+!include "System.nsh"
!verbose 3 ; For WinMessages especially
!include "WinMessages.nsh"
--- nsis-2.46.orig/Contrib/nsDialogs/InstallOptions.nsi.orig 2007-12-01 12:43:02.000000000 +0100
+++ nsis-2.46/Contrib/nsDialogs/InstallOptions.nsi 2011-04-27 09:38:06.000000000 +0200
@@ -17,7 +17,7 @@
Function nsDialogsIO
InitPluginsDir
- File /oname=$PLUGINSDIR\io.ini "${NSISDIR}\Examples\InstallOptions\test.ini"
+ File /oname=$PLUGINSDIR\io.ini "..\InstallOptions\test.ini"
${If} ${Cmd} `MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Test the right-to-left version?" IDYES`
WriteINIStr $PLUGINSDIR\io.ini Settings RTL 1
debian/patches/mingw_w64.patch 0000644 0000000 0000000 00000002676 11562742435 013503 0 ustar Description: Allow building with mingw-w64
This patch enables building NSIS with the mingw-w64 compiler.
Author: Thomas Gaugler , Stephen Kitt
--- nsis-2.46.orig/SCons/Tools/crossmingw.py 2009-01-11 10:48:07.000000000 +0100
+++ nsis-2.46/SCons/Tools/crossmingw.py 2011-04-27 14:30:41.000000000 +0200
@@ -61,6 +61,11 @@
""")
def find(env):
+ # Explicitly specified toolchain to build Windows executables
+ # takes predominance.
+ prefix = SCons.Script.ARGUMENTS.get('XGCC_W32_PREFIX', None)
+ if prefix:
+ prefixes.insert(0, prefix)
for prefix in prefixes:
# First search in the SCons path and then the OS path:
if env.WhereIs(prefix + 'gcc') or SCons.Util.WhereIs(prefix + 'gcc'):
--- nsis-2.46.orig/Contrib/InstallOptions/InstallerOptions.cpp
+++ nsis-2.46/Contrib/InstallOptions/InstallerOptions.cpp
@@ -14,6 +14,8 @@
#include "resource.h"
#include "shellapi.h"
+#include
+
#include // nsis plugin
// Use for functions only called from one place to possibly reduce some code
@@ -759,7 +761,7 @@
DrawText(lpdis->hDC, pField->pszText, -1, &rc, DT_VCENTER | DT_WORDBREAK | DT_CALCRECT);
// Make some more room so the focus rect won't cut letters off
- rc.right = min(rc.right + 2, lpdis->rcItem.right);
+ rc.right = std::min(rc.right + 2, lpdis->rcItem.right);
// Move rect to right if in RTL mode
if (bRTL)
debian/README.Debian 0000644 0000000 0000000 00000002462 11562742435 011244 0 ustar The menu thing isn't included because it requires wxWidgets 2.8 to build.
To build nsis plugins you have to install the nsis-pluginapi package
and follow the given below instructions.
If your package manager did not install the recommended package(s) of
nsis-pluginapi then you would need to manually install a cross compiler
targeting the win32 platform.
Ideally you should install the recommended package(s) which you could
query with the following command:
dpkg-query -W -f'${Recommends}\n' nsis-pluginapi
Nevertheless you are free to take your favorite cross compiler targeting
the win32 platform as long as it can handle the application binary
interface (ABI) used by the nsis plugin api library. In that case you
need to explicitly specify the include and library path as mentioned
below.
You should include the header like so:
#include
By default the include and library files of the nsis plugin api are
installed in the standard search paths of the recommended win32 cross
compiler package.
If that is not the case then the include and library path need to be
explicitly specified for example in a Makefile such as:
CPPFLAGS += -I $(shell dpkg-query -L nsis-pluginapi \
| sed -n '/include$$/p')
LDFLAGS += -L $(shell dpkg-query -L nsis-pluginapi \
| sed -n '/lib\/nsis$$/p') -lpluginapi
debian/source/ 0000755 0000000 0000000 00000000000 11562742435 010477 5 ustar debian/source/format 0000644 0000000 0000000 00000000014 11562742435 011705 0 ustar 3.0 (quilt)
debian/NEWS 0000644 0000000 0000000 00000000707 11562742435 007702 0 ustar nsis (2.46-4) unstable; urgency=low
This version split the NSIS package into four packages:
- nsis: compiler and utilities
- nsis-common: plugins, stubs and resource files
- nsis-pluginapi: header and library files for developing NSIS plugins
- nsis-doc: examples and HTML documentation
The details for building nsis plugins are described in README.Debian.
-- Thomas Gaugler Tue, 19 Apr 2011 19:20:38 +0000
debian/LibraryLocal.xml 0000644 0000000 0000000 00000006376 11562742435 012314 0 ustar
Paul">
Wise">
July 28, 2007">
1">
pabs@debian.org">
NSIS">
]>
&package;&package; manual
&email;
&firstname;
&surname;
Created man page2007&username;
&date;
&ucpackage;
§ion;
&package;A program to get version numbers from DLL files for use with NSIS.&package;DESCRIPTIONThis manual page documents briefly the
&package; command.This manual page was written for the &debian; distribution
because the original program does not have a manual page.&package; is a part of NSIS, which is a system for creating installer programs for Windows.OPTIONSAll three arguments are required.'D' for DLLs or 'T' for TLBs (only supported on Windows).The DLL/TLB file to get the version number from.The name of the NSIS script file to output for use by the Library.nsh files.EXIT STATUS0Success1Incorrect number of argumentsAUTHORThis manual page was written by &username; &email; for
the &debian; system.
debian/copyright 0000644 0000000 0000000 00000053041 11562742435 011135 0 ustar This package was debianized by Paul Wise on
Tue, 8 Mar 2005 21:49:09 +0800.
It was downloaded from http://nsis.sourceforge.net
--------------------------------------------------------------------------------
Copyright:
Copyright 1999-2009 Contributors
Copyright breakdown:
--| Source
Copyright 1999-2009 Nullsoft and Contributors
Copyright 2002-2008 Amir Szekely
Copyright 2003 Ramon
--| Source/exehead
Copyright 1999-2009 Nullsoft, Jeff Doozan and Contributors
--| Source/zlib
http://www.zlib.net/
Copyright 1995-1998 Jean-loup Gailly and Mark Adler
Modifications Copyright (C) 1999-2009 Nullsoft and Contributors
--| Source/7zip
http://www.7-zip.org/sdk.html
Copyright 1999-2006 Igor Pavlov
Modifications Copyright 2003-2009 Amir Szekely
--| Source/boost
http://www.boost.org/libs/utility/checked_delete.html
Copyright (c) 1999, 2000, 2001, 2002 boost.org
Copyright (c) 2002, 2003 Peter Dimov
Copyright (c) 2003 Daniel Frey
Copyright (c) 2003 Howard Hinnant
http://www.boost.org/libs/smart_ptr/scoped_array.htm
http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
Copyright 1998, 1999 Greg Colvin and Beman Dawes
Copyright 2001, 2002 Peter Dimov
detail/workaround.hhp
Copyright 2002 David Abrahams
--| Source/bzip2
http://www.bzip.org/
Copyright 1996-2000 Julian R Seward
Modifications Copyright 1999-2009 Nullsoft and Contributors
--| Contrib/Modern UI
Copyright 2002-2009 Joost Verburg
--| Contrib/Modern UI 2
Copyright 2002-2009 Joost Verburg
--| Contrib/MultiUser
Copyright 2008-2009 Joost Verburg
--| Contrib/NSISdl
JNetLib Copyright 2000-2001 Nullsoft, Inc.
Copyright 2001-2002 Yaroslav Faybishenko and Justin Frankel
--| Contrib/VPatch
Copyright 2001-2005 Van de Sande Productions
Copyright 2001-2005 Koen van de Sande
--| Contrib/VPatch/Source/Plugin/md5.h & Contrib/VPatch/Source/GenPat/md5.h
Copyright 1999, 2002 Aladdin Enterprises
--| Contrib/VPatch/Source/Plugin/md5.c & Contrib/VPatch/Source/GenPat/md5.c
Copyright 1999, 2000, 2002 Aladdin Enterprises
--| Contrib/VPatch/Source/GenPat/adler32.cpp
Copyright 1995-2003 Mark Adler
--| Contrib/VPatch/Source/GUI/vdsp_crc.pas
Copyright 2002-2003 Van de Sande Productions
--| Contrib/nsExec
Copyright 2002 Robert Rainwater
--| Contrib/System
Copyright 2002 Nik Medved
Copyright 2008 Thomas Gaugler
--| Contrib/InstallOptions
Original version Copyright 2001 Michael Bishop
DLL version 1 Copyright 2001-2002 Nullsoft, Inc., ORTIM
DLL version 2 Copyright 2003-2009 Amir Szekely, Joost Verburg, Dave Laundon
--| Contrib/Math
Copyright 2003 Nik Medved
--| Contrib/zip2exe
Portions Copyright 1999-2001 Miguel Garrido
--| Contrib/zip2exe/zlib
Copyright 1995-2005 Jean-loup Gailly and Mark Adler
Copyright 1998-2005 Gilles Vollant
--| Contrib/Makensisw
Copyright 2002 Robert Rainwater
Copyright 2003 Sunil Kamath
--| Contrib/Makensisw/jnetlib
Copyright 2000-2001 Nullsoft, Inc.
--| Contrib/ExDLL
Portions Copyright 2001 Peter Windridge
Portions Copyright 2003 Bernhard Mayer
--| Contrib/NSIS Menu
Portions Copyright Julian Smart and Markus Holzem
Portions Copyright 1999 Vaclav Slavik
--| Docs/src/bin/halibut
Copyright 1999-2001 Simon Tatham and James Aylett
Note: This version is modified by Robert Rainwater and Amir Szekely
--| SCons/Tools/crossmingw.py
Copyright 2001-2004 The SCons Foundation
--| SCons/Tools/mstoolkit.py
Copyright 2004 John Connors
--| Include/LangFile.nsh
Copyright 2008-2009 Joost Verburg
--| Include/VB6RunTime.nsh
Copyright 2008-2009 Joost Verburg
--------------------------------------------------------------------------------
The zlib/libpng license applies to everything in the NSIS package, except
where otherwise noted.
License:
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Licence breakdown:
--| Source/7zip
Licensed under the Common Public License version 1.0 (the "License");
you may not use this file except in compliance with the License.
SPECIAL EXCEPTION FOR LZMA COMPRESSION MODULE
---------------------------------------------
Igor Pavlov and Amir Szekely, the authors of the LZMA compression module
for NSIS, expressly permit you to statically or dynamically link your code
(or bind by name) to the files from the LZMA compression module for NSIS
without subjecting your linked code to the terms of the Common Public
license version 1.0. Any modifications or additions to files from the
LZMA compression module for NSIS, however, are subject to the terms of
the Common Public License version 1.0.
This software is provided 'as-is', without any express or implied
warranty.
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial code and
documentation distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from
and are distributed by that particular Contributor. A Contribution
'originates' from a Contributor if it was added to the Program
by such Contributor itself or anyone acting on such Contributor's
behalf. Contributions do not include additions to the Program which:
(i) are separate modules of software distributed in conjunction
with the Program under their own license agreement, and (ii)
are not derivative works of the Program.
"Contributor" means any person or entity that distributes the Program.
"Licensed Patents " mean patent claims licensable by a Contributor which
are necessarily infringed by the use or sale of its Contribution alone
or when combined with the Program.
"Program" means the Contributions distributed in accordance with this
Agreement.
"Recipient" means anyone who receives the Program under this Agreement,
including all Contributors.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare derivative works of, publicly display,
publicly perform, distribute and sublicense the Contribution of
such Contributor, if any, and such derivative works, in source
code and object code form.
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor,
if any, in source code and object code form. This patent license
shall apply to the combination of the Contribution and the Program
if, at the time the Contribution is added by the Contributor,
such addition of the Contribution causes such combination to be
covered by the Licensed Patents. The patent license shall not
apply to any other combinations which include the Contribution. No
hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe
the patent or other intellectual property rights of any other
entity. Each Contributor disclaims any liability to Recipient
for claims brought by any other entity based on infringement
of intellectual property rights or otherwise. As a condition to
exercising the rights and licenses granted hereunder, each Recipient
hereby assumes sole responsibility to secure any other intellectual
property rights needed, if any. For example, if a third party patent
license is required to allow Recipient to distribute the Program,
it is Recipient's responsibility to acquire that license before
distributing the Program.
d) Each Contributor represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
3. REQUIREMENTS
A Contributor may choose to distribute the Program in object code form
under its own license agreement, provided that:
a) it complies with the terms and conditions of this Agreement; and
b) its license agreement:
i) effectively disclaims on behalf of all Contributors all
warranties and conditions, express and implied, including warranties
or conditions of title and non-infringement, and implied warranties
or conditions of merchantability and fitness for a particular
purpose;
ii) effectively excludes on behalf of all Contributors all liability
for damages, including direct, indirect, special, incidental and
consequential damages, such as lost profits;
iii) states that any provisions which differ from this Agreement are
offered by that Contributor alone and not by any other party; and
iv) states that source code for the Program is available from
such Contributor, and informs licensees how to obtain it in a
reasonable manner on or through a medium customarily used for
software exchange.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of
the Program.
Contributors may not remove or alter any copyright notices contained
within the Program.
Each Contributor must identify itself as the originator of its
Contribution, if any, in a manner that reasonably allows subsequent
Recipients to identify the originator of the Contribution.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities
with respect to end users, business partners and the like. While this
license is intended to facilitate the commercial use of the Program, the
Contributor who includes the Program in a commercial product offering
should do so in a manner which does not create potential liability for
other Contributors. Therefore, if a Contributor includes the Program in a
commercial product offering, such Contributor ("Commercial Contributor")
hereby agrees to defend and indemnify every other Contributor
("Indemnified Contributor") against any losses, damages and costs
(collectively "Losses") arising from claims, lawsuits and other legal
actions brought by a third party against the Indemnified Contributor to
the extent caused by the acts or omissions of such Commercial Contributor
in connection with its distribution of the Program in a commercial
product offering. The obligations in this section do not apply to any
claims or Losses relating to any actual or alleged intellectual property
infringement. In order to qualify, an Indemnified Contributor must: a)
promptly notify the Commercial Contributor in writing of such claim,
and b) allow the Commercial Contributor to control, and cooperate with
the Commercial Contributor in, the defense and any related settlement
negotiations. The Indemnified Contributor may participate in any such
claim at its own expense.
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance claims,
or offers warranties related to Product X, those performance claims and
warranties are such Commercial Contributor's responsibility alone. Under
this section, the Commercial Contributor would have to defend claims
against the other Contributors related to those performance claims and
warranties, and if a court requires any other Contributor to pay any
damages as a result, the Commercial Contributor must pay those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED
ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Each Recipient is solely responsible for determining
the appropriateness of using and distributing the Program and assumes
all risks associated with its exercise of rights under this Agreement,
including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs or
equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION
OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further action
by the parties hereto, such provision shall be reformed to the minimum
extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against a Contributor with
respect to a patent applicable to software (including a cross-claim or
counterclaim in a lawsuit), then any patent licenses granted by that
Contributor to such Recipient under this Agreement shall terminate
as of the date such litigation is filed. In addition, if Recipient
institutes patent litigation against any entity (including a cross-claim
or counterclaim in a lawsuit) alleging that the Program itself (excluding
combinations of the Program with other software or hardware) infringes
such Recipient's patent(s), then such Recipient's rights granted under
Section 2(b) shall terminate as of the date such litigation is filed.
All Recipient's rights under this Agreement shall terminate if it fails
to comply with any of the material terms or conditions of this Agreement
and does not cure such failure in a reasonable period of time after
becoming aware of such noncompliance. If all Recipient's rights under
this Agreement terminate, Recipient agrees to cease use and distribution
of the Program as soon as reasonably practicable. However, Recipient's
obligations under this Agreement and any licenses granted by Recipient
relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement,
but in order to avoid inconsistency the Agreement is copyrighted and may
only be modified in the following manner. The Agreement Steward reserves
the right to publish new versions (including revisions) of this Agreement
from time to time. No one other than the Agreement Steward has the right
to modify this Agreement. IBM is the initial Agreement Steward. IBM
may assign the responsibility to serve as the Agreement Steward to a
suitable separate entity. Each new version of the Agreement will be given
a distinguishing version number. The Program (including Contributions)
may always be distributed subject to the version of the Agreement under
which it was received. In addition, after a new version of the Agreement
is published, Contributor may elect to distribute the Program (including
its Contributions) under the new version. Except as expressly stated in
Sections 2(a) and 2(b) above, Recipient receives no rights or licenses
to the intellectual property of any Contributor under this Agreement,
whether expressly, by implication, estoppel or otherwise. All rights in
the Program not expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and the
intellectual property laws of the United States of America. No party to
this Agreement will bring a legal action under this Agreement more than
one year after the cause of action arose. Each party waives its rights
to a jury trial in any resulting litigation.
--| Source/boost
Permission to copy, use, modify, sell and distribute this software
is granted provided this copyright notice appears in all copies.
This software is provided "as is" without express or implied warranty,
and with no claim as to its suitability for any purpose.
--| Source/bzip2
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.
3. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software.
4. The name of the author may not be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--| Contrib/NSIS Menu
Portions are licenced under the wxWindows license:
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public Licence for more details. On Debian systems this can be found
at /usr/share/common-licenses/GPL-2.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licenced under the wxWindows Library Licence, applying
either version 3 of the Licence, or (at your option) any later version of
the Licence as published by the copyright holders of version 3 of the
Licence document.
2. The exception is that you may use, copy, link, modify and distribute
under the user's own terms, binary object code versions of works based
on the Library.
3. If you copy code from files distributed under the terms of the GNU
General Public Licence or the GNU Library General Public Licence into a
copy of this library, as this licence permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.
--| Docs/src/bin/halibut & SCons/Tools/crossmingw.py & SCons/Tools/mstoolkit.py
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
debian/changelog 0000644 0000000 0000000 00000055066 11701363267 011062 0 ustar nsis (2.46-7) unstable; urgency=low
* Make plugins not depend on libgcc_s_sjlj-1.dll nor libdtdc++-6.dll
by forcing static compilation of both libgcc and libstdc++. (Closes:
#654380)
-- Didier Raboud Thu, 05 Jan 2012 19:06:42 +0100
nsis (2.46-6) unstable; urgency=low
* Corrected command line options passed to scons for build/NEWS target.
* Use zmemcpy function of the same calling convention.
-- Thomas Gaugler Fri, 07 Oct 2011 10:28:21 +0200
nsis (2.46-5) unstable; urgency=low
* Add Replaces/Breaks against nsis to the new packages (Closes: #630620)
-- Thomas Gaugler Sat, 18 Jun 2011 16:41:54 +0000
nsis (2.46-4) unstable; urgency=low
[ Thomas Gaugler ]
* Run architecture independent build process only when demanded.
* Split NSIS package into four packages:
- compiler and utilities (architecture dependent)
- plugins, stubs and resource files (win32)
- header and library files for developing NSIS plugins (win32)
- examples and HTML documentation (architecture independent)
* Updated to Standards-Version 3.9.2
* Support building with mingw-w64 (Closes: #620099)
* Support parallel build
[ Didier Raboud ]
* Don't hide output from scons in clean.
* Move packaging from Subversion to Git, update Vcs-* fields.
* Add explicit libstdc++6-4.6-dev Build-Depend.
-- Thomas Gaugler Sat, 11 Jun 2011 15:24:40 +0000
nsis (2.46-3) experimental; urgency=low
* Fixed warnings of missing elements occuring in man page generation
* Use variant_dir instead of build_dir keyword in SConstruct file
* Run complete set of tests independent of architecture
* Removed the option to build with the orphaned gcc-mingw32
* Removed architecture restrictions
* Updated to Standards-Version 3.9.1
-- Thomas Gaugler Sun, 07 Nov 2010 17:30:30 +0000
nsis (2.46-2) unstable; urgency=low
* Updated zlib patch with changes from upstream subversion repository
* Made embedded inflate function compatible with zlib (Closes: #579407)
* Exclude unneeded win32-only utilities from building
* Build makensis and portable utilities natively for amd64
-- Thomas Gaugler Wed, 05 May 2010 20:39:58 +0000
nsis (2.46-1) unstable; urgency=low
[ Thomas Gaugler ]
* New upstream release
* Switch to 3.0 (quilt) source format
* Use the system provided compression library of zlib
* Switch to debhelper 7's minimal rules file mode
[ Paul Wise ]
* Link against the 32-bit zlib on amd64 to prevent FTBFS
-- Thomas Gaugler Tue, 22 Dec 2009 18:53:50 +0000
nsis (2.45-1) unstable; urgency=low
* New upstream release
* Adopted package from Paul Wise with his permission
* Allow building with either gcc-mingw32 (>= 4.4.0-3) or mingw32
* Fixed occurring access violation in Math plugin once the
installer window is closed.
-- Thomas Gaugler Mon, 17 Aug 2009 19:04:01 +0000
nsis (2.44-4) unstable; urgency=low
* Brown paper bag upload
* Actually give the option to dh_strip (closes: #519703)
-- Paul Wise Fri, 20 Mar 2009 12:07:00 +0900
nsis (2.44-3) unstable; urgency=low
* Don't let dh_strip work on (and break) the libpluginapi.a file
(Closes: #519703).
* Support new nocheck option in DEB_BUILD_OPTIONS
* Bump Standards-Version, nsis now complies
-- Paul Wise Mon, 16 Mar 2009 01:26:29 +0900
nsis (2.44-2) unstable; urgency=low
* Woops, actually upload to unstable
* Use dh_lintian instead of manually installing overrides
* Switch to debhelper compat level 7
* Switch from dh_clean -k to dh_prep
-- Paul Wise Wed, 25 Feb 2009 01:03:19 +0900
nsis (2.44-1) experimental; urgency=low
* New upstream bugfix release
- drop merged fix-Library.nsi-test.patch
* Move to unstable now that lenny is released
* Add missing System Call.S copyright info
-- Paul Wise Tue, 24 Feb 2009 17:51:13 +0900
nsis (2.43-1) experimental; urgency=low
* New upstream release (w00t)
- Finally makes the System plugin fully functional. Thanks a lot to
Thomas Gaugler for implementing this (Closes: #319999, LP: #157356)
- Compiles Resource.dll from an icon and a short .rc (Closes: #442192)
- Building nsis plugins changes with this release, add details to
README.Debian and a notification in NEWS.Debian.
* Add some more items to the TODO file.
* Apply upstream patch to fix the Library.nsi test
* Refer to the correct GPL version in the copyright file
-- Paul Wise Thu, 05 Feb 2009 17:52:53 +0900
nsis (2.39-1) experimental; urgency=low
* New upstream release
-- Paul Wise Wed, 27 Aug 2008 13:09:09 +0800
nsis (2.38-1) experimental; urgency=low
* New upstream release
- all patches included
* Put in experimental because it breaks win32-loader
-- Paul Wise Wed, 16 Jul 2008 16:16:58 +0800
nsis (2.37-2) unstable; urgency=medium
* Ensure the package will FTBFS when makensis is not built
* The rebuild should create makensis on amd64 (Closes: #484938)
* Don't run the patch, build and test process twice
* Run the tests as well as the test scripts on i386 only
* Fix FTBFS when converted to dpkg source format 3.0 (Closes: #485350)
* Bump Standards-Version (no changes needed)
-- Paul Wise Mon, 09 Jun 2008 15:42:38 +0800
nsis (2.37-1) unstable; urgency=low
* New upstream release
- all patches included
* Apply upstream patch to fix the HeaderBitmap test failure
-- Paul Wise Sun, 18 May 2008 18:32:18 +0800
nsis (2.36-1) unstable; urgency=low
* New upstream release
- all patches included
-- Paul Wise Mon, 07 Apr 2008 13:35:41 +0800
nsis (2.35-2) unstable; urgency=low
* Brown paper bag release
* Fix FTBFS on amd64: add an amd64 build-dep on g++-multilib
-- Paul Wise Tue, 11 Mar 2008 16:38:10 +0900
nsis (2.35-1) unstable; urgency=low
* New upstream release
- MUI2 is now declared stable and should be preferred
* Bump Standards-Version (no changes)
* Properly capitalise Debian in the short description
* Accept defeat; drop the amd64 patch since upstream says it a hack and
it is a hassle to update for new upstreams. For now, we only support
i386 and amd64 via upstream's use of -m32. The right way to fix this
is to rewrite some of the internal parts and get that upstreamed,
but this is a big and very complex task I have no time for yet.
- nsis has also been added to Packages-arch-specific
- This effectively closes: #451900 since we don't support s390/etc
- Apply patch to add some more -m32 since upstream doesn't use enough yet
* Apply upstream patch to ignore tests failing on Linux (Closes: #464311)
* Apply upstream patch to fix FTBFS with GCC 4.3 (Closes: #456082)
* Fix FTBFS with -j2 due to a race in build/patch target dependencies
* Generate a couple of new README files and link a new changelog file
* Update the doc-base section to the latest doc-base spec
-- Paul Wise Fri, 07 Mar 2008 00:34:11 +0900
nsis (2.33-1) unstable; urgency=low
* New upstream release
- Fixes showing the welcome page on Win95
- Includes 02_better_strip.patch, drop
-- Paul Wise Sun, 18 Nov 2007 20:03:57 +0930
nsis (2.32-1) unstable; urgency=low
* New upstream release
* Improve package metadata (thanks to enrico's debtags talk):
- Suggest mingw32 for cross-compiling Win32 apps
- add Win32 keyword to the description
- Move Homepage from description to new dpkg field
- wine is now available on amd64, suggest it there
-- Paul Wise Wed, 14 Nov 2007 15:43:53 +0930
nsis (2.31-1) unstable; urgency=low
* New upstream release
- Builds with new mingw32 (Closes: #444504)
-- Paul Wise Wed, 03 Oct 2007 17:44:54 +1000
nsis (2.30-1) unstable; urgency=low
* New upstream release
- MUI language changes, Catalan is back
- Includes the new Modern UI 2
- Drop manual IGNORETESTS, upstream uses it now
* Add a manual page for the LibraryLocal utility
* Don't strip executables with nostrip build option (Closes: #437654)
- Also let DEB_BUILD_OPTIONS=nostripfull prevent plugin/stub stripping
-- Paul Wise Tue, 28 Aug 2007 15:22:48 +1000
nsis (2.29-1) unstable; urgency=low
* New upstream release
- adds nsDialogs, a replacement for InstallOptions
- Drop Catalan hack, upstream fixed it
* System plugin patch was accepted upstream, fix README.Debian
-- Paul Wise Tue, 17 Jul 2007 18:28:57 +1000
nsis (2.28-1) unstable; urgency=low
* New upstream release
- Drop 02_build_system_plugin, applied upstream
- Use new IGNORETESTS option instead of SKIPTESTS
- Hack around a quilt bug and the Catalan translation being removed
See http://sourceforge.net/support/tracker.php?aid=1558822
- Again update 64-bit fixes patch for the new upstream,
also drop use of -m32 (Closes: #426381)
-- Paul Wise Thu, 14 Jun 2007 19:41:16 +0100
nsis (2.27-2) unstable; urgency=low
* Update 64-bit fixes patch for the new upstream, possibly closes: #423415
-- Paul Wise Sat, 26 May 2007 21:12:10 +1000
nsis (2.27-1) unstable; urgency=low
* New upstream release
- builds with newer scons (Closes: #422829)
* Disable some functions of System plugin, builds now
* Document the differing location of plugin header
-- Paul Wise Wed, 09 May 2007 20:15:51 +1000
nsis (2.25-1) experimental; urgency=low
* New upstream release
- requires scons 0.96.93, update build-depends
- 04_changelog: drop, upstream generates a ChangeLog now
- 02_debug_opt: drop, use APPEND_CCFLAGS/APPEND_LINKFLAGS
- Distributes the example plugin and header (Closes: #408646)
- 7-zip code is relicenced under the Common Public Licence 1.0
* XX_old_scons_compat: drop, new scons will soon be in stable
* Disable building the new menu item, needs wxWidgets 2.8 not in Debian
* Install the plugin header into the mingw32 include dir
* Bump debhelper compatability level
-- Paul Wise Mon, 02 Apr 2007 23:34:54 +0800
nsis (2.19-3) unstable; urgency=low
* Create and use DEBUG_SYMBOLS and OPT instead of DEBUG,
which has side effects and modifying CFLAGS, which does not work.
-- Paul Wise Thu, 8 Feb 2007 15:50:43 +1100
nsis (2.19-2) unstable; urgency=low
* Incorporate changes from NMUs (thanks everyone)
* Enable DEBUG=1 when building, to get the CFLAGS required by policy.
* Fix outstanding 64-bit issues in makensis. Closes: #398421.
* Change my email address now that I'm a Debian Developer
-- Paul Wise Tue, 30 Jan 2007 19:20:01 +1100
nsis (2.19-1.1) unstable; urgency=high
* Non-maintainer upload.
* apply patch to build correctly on 64bit-systems. Closes: #383336, #398421
-- Andreas Barth Tue, 28 Nov 2006 10:10:52 +0100
nsis (2.19-1) unstable; urgency=low
* New upstream release
- 04_changelog: update to v219 cvs tag
-- Paul Wise Wed, 9 Aug 2006 13:55:57 +0800
nsis (2.18-1) unstable; urgency=low
* New upstream release
- 04_changelog: update to v218 cvs tag
- 03_docs_fixes: drop (applied upstream)
* Only suggest wine on i386 and kfreebsd-i386
-- Paul Wise Sun, 2 Jul 2006 22:41:35 +0800
nsis (2.17-1) unstable; urgency=low
* New upstream release
- Update patches:
- 04_changelog: update to v217 cvs tag
* Use quilt instead of dpatch
* Use the new scons in unstable:
- Update scons build-dependency
- Move diff.gz stuff to XX_old_scons_compat (still useful for backports)
- Add an extra fix to XX_old_scons_compat for the NSIS Menu SConscript
* 03_docs_fixes:
- Replace most of 03_docs_fixes with commands to detect .gz files
- Fix nsis ViewCVS url - SF.net changed its CVS URLs
- Fix VPatch Readme.html example.nsi link
* Remove 01_menu_fixes, since it is not used and probably bitrotten
* Update README.Debian: add URL to System.dll work and fix download URL
* Fix 2.16-1 changelog: replace 64-bit with big-endian
* Bump Standards-Version (no changes)
-- Paul Wise Sun, 21 May 2006 22:18:35 +0800
nsis (2.16-1) unstable; urgency=low
* New upstream release
- Finally supports big-endian platforms
- Update patches:
- 04_changelog: update to v216 cvs tag
- Drop parts of the diff.gz integrated upstream
* Upload to unstable (works with old scons now)
- Add patch to allow the scons stuff to work with scons 0.96.1.
This is in the diff.gz so that debian/rules clean works.
Thanks to Amir Szekely from upstream for helping with this.
- Reduce scons build-dependency to >= 0.96
- Clean .sconsign files at the appropriate moments
* debian/rules: prevent the tests from being run twice
-- Paul Wise Sun, 9 Apr 2006 23:37:45 +0800
nsis (2.15-2) experimental; urgency=low
* Brown paper bag release
* Fix broken search path for stubs/etc due to upstream changes related
to the introduction of Source/exehead/sconf.h
-- Paul Wise Fri, 10 Mar 2006 23:24:35 +0800
nsis (2.15-1) experimental; urgency=low
* New upstream release
- Update patches:
- 04_changelog: update to v215 cvs tag
- Drop parts of the diff.gz integrated upstream
* debian/rules: Remove new generated files in clean target:
Source/exehead/sconf.h and Source/version.h
-- Paul Wise Sun, 5 Mar 2006 12:32:44 +0800
nsis (2.14-3) experimental; urgency=low
* Properly convert paths passed to !addincludedir. Closes: #352259
-- Paul Wise Thu, 23 Feb 2006 19:29:16 +0800
nsis (2.14-2) experimental; urgency=low
* Add a build-stamp target so that the tests only run once on buildds
* For the tests, install licence.txt, since one test needs it
* Use CPPDEFINES not CPPFLAGS to define __BIG_ENDIAN__ (Closes: #350112)
-- Paul Wise Sat, 28 Jan 2006 00:00:57 +0800
nsis (2.14-1) experimental; urgency=low
* New upstream release
- Fixes plugin breakage on Win9X and WinNT in 2.13
- Update patches:
- 04_changelog: update to v214 cvs tag
-- Paul Wise Wed, 25 Jan 2006 10:05:16 +0800
nsis (2.13-1) UNRELEASED; urgency=low
* New upstream release
- Update patches:
- 04_changelog: update to v213 cvs tag
- 03_docs_fixes: drop parts fixed by the POSIX install patch
- Drop patches:
- 02_config_dirs: upstream accepted my POSIX install patch for scons
- debian/rules: adapt install/etc to POSIX install patch
- debian/copyright: update copyright years
- debian/README.Debian: update upstream url
* debian/rules: in the clean target, only ignore missing scons
* debian/control: make the homepage comply to the developers reference
-- Paul Wise Sun, 22 Jan 2006 12:09:43 +0800
nsis (2.12-2) UNRELEASED; urgency=low
* 05_examples_fixes: replace with some sed calls
* debian/control: scons build-dependency doesn't need debian version
* debian/rules: tell scons to ignore tests that fail
-- Paul Wise Tue, 3 Jan 2006 17:50:11 +0800
nsis (2.12-1) experimental; urgency=low
* New upstream release
- Update patches:
- 04_changelog: update to v212 cvs tag
- 05_examples_fixes: Fix MultiLanguage.nsi from the MUI
-- Paul Wise Sun, 18 Dec 2005 13:47:11 +0800
nsis (2.11-1) experimental; urgency=low
* New upstream release
- Update patches:
- 04_changelog: update to v211 cvs tag
- Drop patches:
- 06_logiclib_fixes: fixed properly by upstream
* debian/rules: Use dpkg-parsechangelog to get the version
* debian/rules: Enable tests, but ignore the results
* debian/watch: use sf.net instead of the real url
* 01_menu_fixes: disable for now, not needed and a pain to update
-- Paul Wise Mon, 14 Nov 2005 10:41:26 +0800
nsis (2.10-1-1) experimental; urgency=low
* New upstream release
- VPatch 3 included upstream, we now have GenPat, so fix README.Debian
- Now requires scons 0.96.91 for building
- Update patches:
- 04_changelog: update to v210 cvs tag
* debian/rules: Ignore some failures in the clean target, motivated by
http://lists.debian.org/debian-mentors/2005/09/msg00009.html
* debian/README.Debian: Add note about System plugin plans to README.Debian
* debian/rules: Convert html files to README files using the pretty style
* debian/GenPat.xml: add manual page for GenPat
* debian/rules: Convert html to text README during build target instead
* debian/makensis.xml: Fix path to HTML docs and DTD version
-- Paul Wise Wed, 5 Oct 2005 18:39:53 +0800
nsis (2.09-1) experimental; urgency=low
* New upstream release
- Update patches:
- 04_changelog: update to v209 cvs tag
- Drop patches included upstream:
- 07_fix_ndata_rsrc_order
- 08_extern_c_c++_plugins
- parts of 05_examples_fixes
* debian/watch: use uupdate when new releases are found
* 03_docs_fixes: remove reference to NSIS dir in tutorial.but
-- Paul Wise Mon, 29 Aug 2005 08:48:23 +0800
nsis (2.08-4) experimental; urgency=low
* 08_extern_c_c++_plugins: Change the C++ plugins to use extern "C" for
their DllMain, so that it gets called. Fixes crash with the BgImage plugin
-- Paul Wise Wed, 10 Aug 2005 17:40:09 +0800
nsis (2.08-3) experimental; urgency=medium
* debian/watch: use sourceforge support from uscan in devscripts 2.9
* Don't ship *.def and *.lib files for plugins
* 05_examples_fixes: change Luxembourgish.nsh macro case (Closes: #320557)
* 07_fix_ndata_rsrc_order: New patch from upstream to fix installers broken
by the interaction between .ndata and .rsrc sections in mingw32
http://forums.winamp.com/showthread.php?threadid=212630
http://forums.winamp.com/showthread.php?threadid=222992
(Closes: #319929)
* debian/makensis.xml:
- workaround xmlto using non-utf8 trademark symbol
- update to latest docbook version since sarge fixed it
-- Paul Wise Sat, 6 Aug 2005 19:25:04 +0800
nsis (2.08-2) experimental; urgency=low
* New patches: (Closes: #319936)
- 05_examples_fixes: fix some minor problems with the examples
- 06_logiclib_fixes: fix non-portable !system commands
* Add a note about not-built stuff in the package description
-- Paul Wise Wed, 27 Jul 2005 14:11:13 +0800
nsis (2.08-1) experimental; urgency=low
* New upstream release
- Several files are now generated from proper source
* Update patches:
- 01_menu_fixes.dpatch: update case of some dirs
- 02_config_dirs.dpatch: parts replaced upstream
- 04_changelog.dpatch: update to v2.08 cvs tag
* Fix section in debian/doc-base
* Remove workaround for dh_strip bug from debian/rules
* Switch NEWS generation to AppendixF.html
* Update some years in debian/copyright
* Ship NEWS in the .deb (oops)
-- Paul Wise Sun, 24 Jul 2005 13:47:33 +0800
nsis (2.07-2) UNRELEASED; urgency=low
* Add README.Debian explaining about removed stuff
-- Paul Wise Sat, 9 Jul 2005 17:18:19 +0800
nsis (2.07-1) experimental; urgency=low
* New upstream release
- Update patches:
- Update my email address
- 02_config_dirs.dpatch: one function name changed
- 04_changelog.dpatch: update to v2.07 cvs tag
- Drop stuff (integrated/replaced upstream):
- 01_fix_makefiles.dpatch
- 03_compile_fixes.dpatch
- 05_amd64_fixes.dpatch
- 06_halibut_fixes.dpatch
- 07_fix_examples.dpatch
* Use lolando's sfdlr.php in debian/watch
* Remove debian/README.Debian-source
* New patches:
- 01_menu_fixes.dpatch fixes Menu files for use in normal browsers
- 03_docs_fixes.dpatch fixes paths in Docs files
-- Paul Wise Thu, 23 Jun 2005 20:56:42 +0800
nsis (2.06-6) unstable; urgency=low
* Bump version number for gcc4 transition and sparc rebuild
-- Paul Wise Thu, 7 Jul 2005 13:12:08 +0800
nsis (2.06-5) unstable; urgency=low
* Brown paper bag release
* Use $^ instead of $< in Contrib Makefiles (Closes: #312564)
* Update maintainer address (v3.com discontinued email forwards)
-- Paul Wise Mon, 13 Jun 2005 21:34:53 +0800
nsis (2.06-4) unstable; urgency=low
* 01_fix_makefiles.dpatch
- Include the exe files from Contrib/UIs/ since upstream considers them
to be source code (Closes: #304678):
http://forums.winamp.com/showthread.php?postid=1642451#post1642451
- Create some symlinks due to incorrect filename case in some examples
- Change the magic to use /bin/bash instead of /bin/sh
- Install some extra files needed by the VPatch example
* 01_fix_makefiles.dpatch, debian/rules, debian/lintian.overrides
- Include /usr/share/nsis/Contrib/Modern UI/Licence.txt because the
example files require it, and create lintian/linda overrides too
* 07_fix_examples.dpatch
New patch: fix some issues in the example .nsi scripts
* debian/patches/*
- Update authorship and descriptions
-- Paul Wise Sun, 17 Apr 2005 17:20:52 +0800
nsis (2.06-3) unstable; urgency=low
* 06_halibut_fixes.dpatch
- New patch: fix FTBFS caused by halibut segfaults,
thanks to Blars Blarson and finn/mentat (Closes: #303881)
* debian/control
- Merge the first two paragraphs of the Description,
and remove redundant information (Closes: #304102)
-- Paul Wise Tue, 12 Apr 2005 00:27:00 +0800
nsis (2.06-2) unstable; urgency=low
* Change the generated ChangeLog to a generated NEWS
* 04_changelog.dpatch
- New patch: Adds cvs logs from upstream (using cvs2cl) as ChangeLog
* debian/watch
- New file - use heanet.sf.net, because it allows direct downloads
* 05_amd64_fixes.dpatch
- New patch: Add amd64 FTBFS patch from Andreas Jochens (Closes: #303709)
-- Paul Wise Fri, 8 Apr 2005 19:00:18 +0800
nsis (2.06-1) unstable; urgency=low
* New upstream release
* Move patches to dpatch
* Fix spelling error in description
* Remove cruft from debian/rules
* Convert Appendix E from the docs to a changelog
-- Paul Wise Wed, 30 Mar 2005 19:53:45 +0800
nsis (2.05-1) unstable; urgency=low
* Initial Release. (Closes: #276148, #276153)
* Grab halibut (builds docs) from upstream CVS
-- Paul Wise Tue, 15 Feb 2005 21:49:09 +0800
debian/nsis-pluginapi.lintian-overrides 0000644 0000000 0000000 00000000217 11562742435 015521 0 ustar nsis-pluginapi: arch-independent-package-contains-binary-or-object
nsis-pluginapi: non-standard-dir-in-usr
nsis-pluginapi: file-in-unusual-dir
debian/nsis.manpages 0000644 0000000 0000000 00000000065 11562742435 011671 0 ustar build/makensis.1
build/GenPat.1
build/LibraryLocal.1
debian/makensis.xml 0000644 0000000 0000000 00000013407 11562742435 011540 0 ustar
Paul">
Wise">
October 5, 2005">
1">
pabs@debian.org">
NSIS">
]>
&package;&package; manual
&email;
&firstname;
&surname;
Created man page2005&username;
&date;
&ucpackage;
§ion;
&package;A program to create Windows installers.&package;DESCRIPTIONThis manual page documents briefly the
&package; command.This manual page was written for the &debian; distribution
because the original program does not have a manual page.
Instead, it has documentation in the HTML format; see below.&package; is a program that creates installer programs for Windows.OPTIONSParameters are processed by order (-Ddef ins.nsi != ins.nsi -Ddef)
for script file name, you can use - to read from the standard input.
For a complete description, see the HTML files.Verbosity where x is 4=all, 3=no script, 2=no info, 1=no warnings, 0=none.Specifies a text file to log compiler output (default is stdout).Pauses after execution.Disables inclusion of /etc/nsisconf.nsh.Disable changing the current directory to that of the .nsi file.Defines the symbol "define" for the script to [value].Executes scriptcmd in the script (i.e. "-XOutFile poop.exe")Prints out help for 'item', or lists all commands.Prints information about what options makensis was compiled with.Prints the makensis software license.Prints the makensis version and exits.FILES/etc/nsisconf.nshSystem wide configuration file.~/.nsisconf.nshPer-user configuration file.SEE ALSONSIS is documented more fully in the HTML files in
/usr/share/doc/nsis/Docs.AUTHORThis manual page was written by &username; &email; for
the &debian; system.
debian/rules 0000755 0000000 0000000 00000016223 11641307456 010261 0 ustar #!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# Exclude .svn directories from packages
export DH_ALWAYS_EXCLUDE=.svn
VERSION=${shell dpkg-parsechangelog | sed -n 's/^Version: *//p'}
PREFIX=/usr
# Variables for Win32 cross compiler
XGCC_W32 = $(shell which i686-w64-mingw32-gcc)
ifneq ($(strip $(XGCC_W32)),)
XGCC_W32_PATH = $(abspath $(shell $(XGCC_W32) -print-file-name=libkernel32.a)/../..)
XGCC_W32_PREFIX = $(subst -gcc,-,$(notdir $(XGCC_W32)))
endif
ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
TEST=
else
TEST=test
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
SCONSFLAGS = -j $(NUMJOBS)
endif
SCONSOPTS = $(SCONSFLAGS) VERSION=$(VERSION) \
PREFIX=$(PREFIX) PREFIX_CONF=/etc \
CHMDOCS=0 \
APPEND_CCFLAGS="-Wall -g -O$(if $(findstring noopt,$(DEB_BUILD_OPTIONS)),0,2)" \
APPEND_LINKFLAGS="-Wall -g -O$(if $(findstring noopt,$(DEB_BUILD_OPTIONS)),0,2)"\
STRIP_CP=no $(if $(findstring nostripfull,$(DEB_BUILD_OPTIONS)),STRIP_W32=no,)
ifdef XGCC_W32_PATH
SCONSOPTS := $(SCONSOPTS) \
PREFIX_PLUGINAPI_INC=$(XGCC_W32_PATH)/include/ \
PREFIX_PLUGINAPI_LIB=$(XGCC_W32_PATH)/lib/ \
XGCC_W32_PREFIX=$(XGCC_W32_PREFIX)
endif
COMMA := ,
UTILS_ALL = 'Library/LibraryLocal,Library/RegTool,MakeLangId,Makensisw,NSIS Menu,UIs,SubStart,VPatch/Source/GenPat,zip2exe'
IGNORE_UTILS_NSIS := $(subst Library/LibraryLocal$(COMMA),,$(UTILS_ALL))
IGNORE_UTILS_NSIS := $(subst $(COMMA)VPatch/Source/GenPat,,$(IGNORE_UTILS_NSIS))
IGNORE_UTILS_CLEAN := $(subst Library/LibraryLocal$(COMMA)Library/RegTool$(COMMA),,$(UTILS_ALL))
IGNORE_UTILS_CLEAN := $(subst $(COMMA)UIs,,$(IGNORE_UTILS_CLEAN))
IGNORE_UTILS_COMMON := $(IGNORE_UTILS_CLEAN)
IGNORE_UTILS_CLEAN := $(subst $(COMMA)SubStart,,$(IGNORE_UTILS_CLEAN))
IGNORE_UTILS_CLEAN := $(subst $(COMMA)VPatch/Source/GenPat,,$(IGNORE_UTILS_CLEAN))
SCONSOPTS_NSIS := $(SCONSOPTS) SKIPUTILS=$(IGNORE_UTILS_NSIS) SKIPDOC=COPYING
SCONSOPTS_COMMON := $(SCONSOPTS) SKIPUTILS=$(IGNORE_UTILS_COMMON) \
SKIPDOC=COPYING
SCONSOPTS_CLEAN := $(SCONSOPTS) SKIPUTILS=$(IGNORE_UTILS_CLEAN)
SCONSOPTS_TEST := $(SCONSOPTS) SKIPUTILS=$(IGNORE_UTILS_COMMON)
INSTALL_nsis = install-utils install-compiler install-conf
INSTALL_nsis-common = install-stubs install-plugins install-data install-utils
INSTALL_nsis-pluginapi = install-pluginapi
INSTALL_nsis-doc = install-examples install-doc
# Exclude test scripts not appropriate for POSIX platforms.
IGNORE_TESTS = makensis.nsi|gfx.nsi
# Path to .nsi scripts
SCRIPTS_PATH = $(PREFIX)/share/doc/nsis/Examples
# Release notes
NEWS = $(PREFIX)/share/doc/nsis/Docs/AppendixF.html
define DO_SCONS_INSTALL
scons $(1) PREFIX_DEST="$(CURDIR)/debian/$(2)" $(INSTALL_$(2)) || exit 1;
endef
clean build:
dh "$@"
build/NEWS:
if [ -e "$(CURDIR)/debian/nsis-doc$(NEWS)" ]; then \
news_file="$(CURDIR)/debian/nsis-doc$(NEWS)"; \
else \
scons $(SCONSOPTS_COMMON) Docs/src; \
news_file="build/*/Docs/html/AppendixF.html"; \
fi; \
html2text -nobs "$${news_file}" | sed -e '0,/^\*\*\*\*\*/c\NSIS Release Notes (automatically converted from AppendixF.html)' -e 's/F\.[.0-9]* //g' -e 's/^\*\*\*\** *\([^*]*\) *\**\*\*\*/\n\1\n/g' -e '/Changelog/d' -e '/^NSIS_1.x_version_history/,/^=/c\ http://nsis.sourceforge.net/download/nsis1/' -e 's/^\(Released.*\)/ \1\n/g' | cat -s > "$@"
override_dh_auto_clean:
scons -c $(SCONSOPTS_CLEAN) 2>&1
-rm -rf .sconf_temp .sconsign.dblite SCons/Tools/crossmingw.pyc build config.log .test
-rm -f Source/exehead/sconf.h Source/version.h Source/defines.h config.log
build-indep:
ifdef XGCC_W32_PATH
scons $(SCONSOPTS_COMMON) Docs/src stubs plugins utils
html2text -style pretty -nobs -o "build/README.Modern UI" "Contrib/Modern UI/Readme.html"
html2text -style pretty -nobs -o "build/README.Modern UI 2" "Contrib/Modern UI 2/Readme.html"
html2text -style pretty -nobs -o build/README.VPatch Contrib/VPatch/Readme.html
html2text -style pretty -nobs -o build/README.InstallOptions Contrib/InstallOptions/Readme.html
html2text -style pretty -nobs -o build/README.MultiUser Contrib/MultiUser/Readme.html
html2text -style pretty -nobs -o build/README.nsDialogs Contrib/nsDialogs/Readme.html
endif
build-arch:
scons $(SCONSOPTS_NSIS) utils makensis
xmlto -o build man debian/makensis.xml
xmlto -o build man debian/GenPat.xml
xmlto -o build man debian/LibraryLocal.xml
test:
if [ x$(TEST) != x ] ; then \
if [ -d "$(CURDIR)/debian/nsis-common$(PREFIX)/share/nsis" ] ; then \
scons $(SCONSOPTS_TEST) $(TEST); \
else \
scons $(SCONSOPTS_NSIS) PREFIX_DEST="$(CURDIR)/.test" $(INSTALL_nsis); \
for script_path in $(SCRIPTS_PATH)/*.nsi \
$(SCRIPTS_PATH)/*/*.nsi; do \
script=$${script_path#$(SCRIPTS_PATH)/}; \
if [ "$${script%/*}" != "$${script}" ]; then \
mkdir -p ".test/$${script%/*}"; \
fi; \
case $${script} in \
$(IGNORE_TESTS)) ;; \
*) \
if [ -f "$${script_path}" ]; then \
PATH=$(PATH):$(CURDIR)/.test$(PREFIX)/bin ".test$(PREFIX)/bin/makensis" \
"$${script_path}" \
-X"OutFile \"$(CURDIR)/.test/$${script%.nsi}.exe\"" || exit 1; \
fi;; \
esac; \
done; \
fi; \
fi
install-indep:
dh "install" --before dh_auto_install
ifdef XGCC_W32_PATH
$(foreach p,$(PKGS),$(call DO_SCONS_INSTALL,$(SCONSOPTS_COMMON),$(p)))
# Exclude any architecture dependent binaries from nsis-common
rm -rf "$(CURDIR)/debian/nsis-common/usr/bin"
# Fix permissions for plugin API
find "$(CURDIR)/debian/nsis-pluginapi$(MINGW32_PATH)" \
"$(CURDIR)/debian/nsis-common/usr/share/nsis" \
-type f -perm +111 -exec chmod a-x {} \;
# Clean up examples and documentation
# The docs file can't seem to have spaces within the file name(s)
dh_installdocs -pnsis-doc "build/README.Modern UI" \
"build/README.Modern UI 2"
rm "debian/nsis-doc/usr/share/doc/nsis/Docs/Modern UI/License.txt"
rm "debian/nsis-doc/usr/share/doc/nsis/Docs/Modern UI 2/License.txt"
rm "debian/nsis-doc/usr/share/doc/nsis/Docs/NSISdl/License.txt"
# Remove reference to License text file in Modern UI examples
# to enable their compilation with makensis
cd "$(CURDIR)/debian/nsis-doc/usr/share/doc/nsis/Examples/Modern UI"; \
ls *.nsi | xargs -i{} sed -i -e 's/$${NSISDIR}\\Docs\\Modern UI\\License.txt/{}/g' "{}"
endif
install-arch:
dh "install" --before dh_auto_install
$(foreach p,$(PKGS),$(call DO_SCONS_INSTALL,$(SCONSOPTS_NSIS),$(p)))
find "$(CURDIR)/debian/nsis/etc" \
-type f -perm +111 -exec chmod a-x {} \;
override_dh_compress:
dh_compress -X.nlf -X.nsh -X.nsi -X.dll
# Adapt links to documents with those of their compressed version
if [ -d debian/nsis-doc/usr/share/doc/nsis ]; then \
cd debian/nsis-doc/usr/share/doc/nsis ; \
find ./ -mindepth 2 -iname \*.gz | \
sed -e 's,.gz$$,,g' -e 's, ,%20,g' | \
xargs -i88 sh -c 'fgrep -rl "88\"" . | \
xargs -i{} sed -i -e "s|88\"|88.gz\"|g" "{}"'; \
fi
binary-indep: PKGS = $(shell dh_listpackages -i)
binary-indep: build-indep install-indep
dh "$@"
binary-arch: PKGS = $(shell dh_listpackages -a)
binary-arch: build-arch build/NEWS test install-arch
dh "$@"
binary: binary-indep binary-arch
.PHONY: binary binary-arch binary-indep build build-arch build-indep clean install-arch install-indep test
.NOTPARALLEL: binary
debian/watch 0000644 0000000 0000000 00000000106 11562742435 010225 0 ustar version=3
http://sf.net/nsis/nsis-([\d.]*)-src.tar.bz2 debian uupdate
debian/nsis.links 0000644 0000000 0000000 00000000132 11562742435 011211 0 ustar /usr/bin/GenPat /usr/bin/genpat
/usr/share/man/man1/GenPat.1 /usr/share/man/man1/genpat.1
debian/nsis.docs 0000644 0000000 0000000 00000000024 11562742435 011021 0 ustar TODO.txt
build/NEWS
debian/compat 0000644 0000000 0000000 00000000002 11562742435 010375 0 ustar 7
debian/nsis-common.docs 0000644 0000000 0000000 00000000136 11562742435 012313 0 ustar build/README.VPatch
build/README.InstallOptions
build/README.MultiUser
build/README.nsDialogs