Hi Robert,
On Wed, Jan 24, 2007 at 08:28:11AM +0100, Robert Millan wrote:
> I'm afraid your patch didn't work. With 2.19-1.1:
> $ makensis /dev/null
> [...]
> Processing plugin dlls: "/usr/share/nsis/Plugins/*.dll"
> ViolaciĆ³ de segment
> $ strace makensis /dev/null
> [...]
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x2b2e58091000
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x2b2e58091000
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x2b2e58092000
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x2b2e58093000
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x2b2e58093000
Does the attached patch fix all the problems for you? It fixes the
segfaults for me with makensis /dev/null, but I haven't tried it with a real
.nsi file.
Cheers,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
[EMAIL PROTECTED] http://www.debian.org/
diff -u nsis-2.19/debian/rules nsis-2.19/debian/rules
--- nsis-2.19/debian/rules
+++ nsis-2.19/debian/rules
@@ -20,7 +20,7 @@
# Anyway, it would be good to make the version indicate the debian revision.
VERSION=${shell dpkg-parsechangelog | sed -n 's/^Version: *//p'}
SCONSOPTS=VERSION=$(VERSION) PREFIX=/usr PREFIX_CONF=/etc SKIPPLUGINS=System
-SCONSOPTSALL=$(SCONSOPTS) SKIPDOC=license.txt
+SCONSOPTSALL=$(SCONSOPTS) SKIPDOC=license.txt DEBUG=1
build: patch build-stamp
build-stamp:
diff -u nsis-2.19/debian/changelog nsis-2.19/debian/changelog
--- nsis-2.19/debian/changelog
+++ nsis-2.19/debian/changelog
@@ -1,3 +1,11 @@
+nsis (2.19-1.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Enable DEBUG=1 when building, to get the CFLAGS required by policy.
+ * Fix outstanding 64-bit issues in makensis. Closes: #398421.
+
+ -- Steve Langasek <[EMAIL PROTECTED]> Thu, 25 Jan 2007 01:33:26 -0800
+
nsis (2.19-1.1) unstable; urgency=high
* Non-maintainer upload.
diff -u nsis-2.19/debian/patches/series nsis-2.19/debian/patches/series
--- nsis-2.19/debian/patches/series
+++ nsis-2.19/debian/patches/series
@@ -3,0 +4 @@
+64bitness.patch
only in patch2:
unchanged:
--- nsis-2.19.orig/debian/patches/64bitness.patch
+++ nsis-2.19/debian/patches/64bitness.patch
@@ -0,0 +1,23 @@
+diff -u nsis-2.19/Source/Platform.h nsis-2.19/Source/Platform.h
+--- nsis-2.19/Source/Platform.h
nsis-2.19/Source/Platform.h
+@@ -666,7 +666,7 @@
+ WORD e_oemid;
+ WORD e_oeminfo;
+ WORD e_res2[10];
+- LONG e_lfanew;
++ DWORD e_lfanew;
+ } IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;
+ # pragma pack()
+ # pragma pack(4)
+--- nsis-2.19.orig/Source/Plugins.cpp
nsis-2.19/Source/Plugins.cpp
+@@ -120,7 +120,7 @@
+ 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);
++unsigned int *names = (unsigned int*)((unsigned long) exports + (char *) na - ExportDirVA);
+ for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
+ {
+ const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA);