Bug#620099: nsis: diff for NMU version 2.46-3.1

2011-04-27 Thread Thomas Gaugler
Hi Stephen,

I combined the best of your patch and the input from
http://sourceforge.net/support/tracker.php?aid=2949102.

The result is now visible in the collab-maint subversion repository.
http://svn.debian.org/wsvn/collab-maint/ext-maint/nsis/trunk/?op=log

The preference is given to mingw-w64. However in case mingw-w64 is not
available then the build process would fall back to mingw32.

So building nsis with mingw-w64 should be officially possible once
nsis-2.46-4 is released.

Your work for mingw-w64 is very much appreciated. Thanks a lot for that.

Best regards,
Thomas



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#620099: nsis: diff for NMU version 2.46-3.1

2011-04-27 Thread Stephen Kitt
Hi Thomas,

On Wed, Apr 27, 2011 at 08:44:04PM +0200, Thomas Gaugler wrote:
 I combined the best of your patch and the input from
 http://sourceforge.net/support/tracker.php?aid=2949102.
 
 The result is now visible in the collab-maint subversion repository.
 http://svn.debian.org/wsvn/collab-maint/ext-maint/nsis/trunk/?op=log
 
 The preference is given to mingw-w64. However in case mingw-w64 is not
 available then the build process would fall back to mingw32.

That's great! I've taken a look at the result, and noticed a few
things:
* README.Debian still refers to the old i586-mingw32msvc paths only;
* nsis-pluginapi recommends mingw-w64 but nsis suggests gcc-mingw32;
* headers and libraries are only installed in /usr/i686-w64-mingw32
  (when built with mingw-w64, since I take it it's
  /usr/i586-mingw32msvc when building with mingw32).

As a result even though nsis itself can still be built with either
mingw-w64 or mingw32 (which is very nice indeed), the resulting
package only allows building with whichever compiler was used to build
nsis... mingw32 and mingw-w64 produce ABI-compatible binaries, so
building using the output of either works with both compilers;
shipping the same library in /usr/i586-mingw32msvc/lib/nsis and
/usr/i686-w64-mingw32/lib/nsis works fine.

I'm wondering about this since you asked about it previously, in order
to avoid making win32-loader FTBFS once nsis switches to mingw-w64!

 So building nsis with mingw-w64 should be officially possible once
 nsis-2.46-4 is released.

Excellent.

 Your work for mingw-w64 is very much appreciated. Thanks a lot for that.

You're very welcome, yours on nsis is too!

Regards,

Stephen



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#620099: nsis: diff for NMU version 2.46-3.1

2011-04-21 Thread Stephen Kitt
Package: nsis
Version: 2.46-3
Severity: normal
Tags: patch

Hi again,

The previous patch ommitted a necessary change in
debian/nsis.install. The attached patch fixes this...

Regards,

Stephen
diff -Nru nsis-2.46/debian/changelog nsis-2.46/debian/changelog
--- nsis-2.46/debian/changelog	2010-09-21 03:45:53.0 +0200
+++ nsis-2.46/debian/changelog	2011-04-21 21:43:38.0 +0200
@@ -1,3 +1,10 @@
+nsis (2.46-3.1) experimental; urgency=low
+
+  * Non-maintainer upload.
+  * Build with mingw-w64.
+
+ -- Stephen Kitt st...@sk2.org  Wed, 30 Mar 2011 02:20:09 +0200
+
 nsis (2.46-3) experimental; urgency=low
 
   * Removed architecture restrictions
diff -Nru nsis-2.46/debian/control nsis-2.46/debian/control
--- nsis-2.46/debian/control	2010-09-21 03:45:53.0 +0200
+++ nsis-2.46/debian/control	2011-04-21 21:43:38.0 +0200
@@ -2,7 +2,7 @@
 Section: devel
 Priority: optional
 Maintainer: Thomas Gaugler tho...@dadie.net
-Build-Depends: debhelper (= 7.0.50~), scons (= 1.2.0), gcc-mingw32 (= 4.4.0-3) | mingw32, mingw32-runtime, mingw32-binutils, xmlto, html2text, libcppunit-dev, zlib1g-dev
+Build-Depends: debhelper (= 7.0.50~), scons (= 1.2.0), mingw-w64 (= 1.0), xmlto, html2text, libcppunit-dev, zlib1g-dev
 Standards-Version: 3.9.1
 Homepage: http://nsis.sourceforge.net/
 Vcs-Svn: svn://svn.debian.org/collab-maint/ext-maint/nsis/trunk
@@ -11,7 +11,7 @@
 Package: nsis
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Suggests: wine, gcc-mingw32
+Suggests: wine, mingw-w64
 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.
diff -Nru nsis-2.46/debian/nsis.install nsis-2.46/debian/nsis.install
--- nsis-2.46/debian/nsis.install	2009-07-24 12:31:20.0 +0200
+++ nsis-2.46/debian/nsis.install	2011-04-21 22:11:55.0 +0200
@@ -5,5 +5,5 @@
 usr/share/nsis/Plugins
 usr/share/nsis
 etc/nsisconf.nsh
-usr/i586-mingw32msvc
+usr/i686-w64-mingw32
 usr/share/doc/nsis
diff -Nru nsis-2.46/debian/patches/mingw-w64.patch nsis-2.46/debian/patches/mingw-w64.patch
--- nsis-2.46/debian/patches/mingw-w64.patch	1970-01-01 01:00:00.0 +0100
+++ nsis-2.46/debian/patches/mingw-w64.patch	2011-04-21 21:43:38.0 +0200
@@ -0,0 +1,33 @@
+--- 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 algorithm
++
+ #include nsis/pluginapi.h // 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)
+--- nsis-2.46.orig/SCons/Tools/crossmingw.py
 nsis-2.46/SCons/Tools/crossmingw.py
+@@ -58,6 +58,10 @@
+ i486-pc-mingw32-
+ i586-pc-mingw32-
+ i686-pc-mingw32-
++i386-w64-mingw32-
++i486-w64-mingw32-
++i586-w64-mingw32-
++i686-w64-mingw32-
+ )
+ 
+ def find(env):
diff -Nru nsis-2.46/debian/patches/series nsis-2.46/debian/patches/series
--- nsis-2.46/debian/patches/series	2010-05-06 04:15:31.0 +0200
+++ nsis-2.46/debian/patches/series	2011-04-21 21:43:38.0 +0200
@@ -1,3 +1,4 @@
 # list of patch file names in the order they are applied
 nsis_system_zlib.patch
 makensis_native_64bit.patch
+mingw-w64.patch
diff -Nru nsis-2.46/debian/README.Debian nsis-2.46/debian/README.Debian
--- nsis-2.46/debian/README.Debian	2009-07-24 12:31:20.0 +0200
+++ nsis-2.46/debian/README.Debian	2011-04-21 21:43:38.0 +0200
@@ -9,12 +9,12 @@
 The mingw32 include dir should be in the include path and it
 usually is there by default, if not, add this to CPPFLAGS:
 
- -I /usr/i586-mingw32msvc/include
+ -I /usr/i686-w64-mingw32/include
 
 The nsis subdir of the mingw32 library dir should be in the
 linker path, you'll need the following in LDFLAGS:
 
- -L /usr/i586-mingw32msvc/lib/nsis
+ -L /usr/i686-w64-mingw32/lib/nsis
 
 The nsis pluginapi static library needs to be linked against,
 you'll need the following in LDFLAGS:
diff -Nru nsis-2.46/debian/rules nsis-2.46/debian/rules
--- nsis-2.46/debian/rules	2010-05-06 04:15:32.0 +0200
+++ nsis-2.46/debian/rules	2011-04-21 21:43:38.0 +0200
@@ -4,7 +4,7 @@
 #export DH_VERBOSE=1
 
 VERSION=${shell dpkg-parsechangelog | sed -n 's/^Version: *//p'}
-MINGW32_PATH=/usr/i586-mingw32msvc
+MINGW32_PATH=/usr/i686-w64-mingw32
 
 SCONSOPTS = VERSION=$(VERSION) \
   PREFIX=/usr PREFIX_CONF=/etc \


Bug#620099: nsis: diff for NMU version 2.46-3.1

2011-04-21 Thread Thomas Gaugler
Hi Stephen,

Thanks for the patch. I am unsure if I could completely drop support
for mingw32 as your patch suggests.
The win32-loader package uses mingw32 as a compiller and requires the
NSIS plugin api header and
library files for mingw32.

Best regards,
Thomas



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#620099: nsis: diff for NMU version 2.46-3.1

2011-04-21 Thread Stephen Kitt
Hi Thomas,

On Thu, Apr 21, 2011 at 11:22:29PM +0200, Thomas Gaugler wrote:
 Thanks for the patch. I am unsure if I could completely drop support
 for mingw32 as your patch suggests.
 The win32-loader package uses mingw32 as a compiller and requires the
 NSIS plugin api header and
 library files for mingw32.

How about the revised version attached to this message? It allows
win32-loader to build using either mingw-w64 or mingw32.

See also http://bugs.debian.org/623621

Regards,

Stephen
diff -Nru nsis-2.46/debian/changelog nsis-2.46/debian/changelog
--- nsis-2.46/debian/changelog	2010-09-21 03:45:53.0 +0200
+++ nsis-2.46/debian/changelog	2011-04-21 21:43:38.0 +0200
@@ -1,3 +1,10 @@
+nsis (2.46-3.1) experimental; urgency=low
+
+  * Non-maintainer upload.
+  * Build with mingw-w64.
+
+ -- Stephen Kitt st...@sk2.org  Wed, 30 Mar 2011 02:20:09 +0200
+
 nsis (2.46-3) experimental; urgency=low
 
   * Removed architecture restrictions
--- nsis-2.46/debian/control	2010-09-21 03:45:53.0 +0200
+++ nsis-2.46/debian/control	2011-04-21 21:43:38.0 +0200
@@ -2,7 +2,7 @@
 Section: devel
 Priority: optional
 Maintainer: Thomas Gaugler tho...@dadie.net
-Build-Depends: debhelper (= 7.0.50~), scons (= 1.2.0), gcc-mingw32 (= 4.4.0-3) | mingw32, mingw32-runtime, mingw32-binutils, xmlto, html2text, libcppunit-dev, zlib1g-dev
+Build-Depends: debhelper (= 7.0.50~), scons (= 1.2.0), mingw-w64 (= 1.0), xmlto, html2text, libcppunit-dev, zlib1g-dev
 Standards-Version: 3.9.1
 Homepage: http://nsis.sourceforge.net/
 Vcs-Svn: svn://svn.debian.org/collab-maint/ext-maint/nsis/trunk
@@ -11,7 +11,7 @@
 Package: nsis
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Suggests: wine, gcc-mingw32
+Suggests: wine, gcc-mingw32 | mingw-w64
 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.
diff -Nru nsis-2.46/debian/links nsis-2.46/debian/links
--- nsis-2.46/debian/links	2010-05-06 04:15:31.0 +0200
+++ nsis-2.46/debian/links	2011-04-22 06:57:00.0 +0200
@@ -12,3 +12,5 @@
 /usr/share/doc/nsis/Docs/StrFunc/StrFunc.txt /usr/share/doc/nsis/README.StrFunc
 /usr/share/doc/nsis/Docs/InstallOptions/Changelog.txt /usr/share/doc/nsis/changelog.InstallOptions
 /usr/share/doc/nsis/Docs/System/WhatsNew.txt /usr/share/doc/nsis/changelog.System
+/usr/i686-w64-mingw32/include/nsis /usr/i586-mingw32msvc/include/nsis
+/usr/i686-w64-mingw32/lib/nsis /usr/i586-mingw32msvc/lib/nsis
--- nsis-2.46/debian/nsis.install	2009-07-24 12:31:20.0 +0200
+++ nsis-2.46/debian/nsis.install	2011-04-22 06:55:25.0 +0200
@@ -5,5 +5,5 @@
 usr/share/nsis/Plugins
 usr/share/nsis
 etc/nsisconf.nsh
-usr/i586-mingw32msvc
+usr/i686-w64-mingw32
 usr/share/doc/nsis
--- nsis-2.46/debian/patches/mingw-w64.patch	1970-01-01 01:00:00.0 +0100
+++ nsis-2.46/debian/patches/mingw-w64.patch	2011-04-21 21:43:38.0 +0200
@@ -0,0 +1,33 @@
+--- 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 algorithm
++
+ #include nsis/pluginapi.h // 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)
+--- nsis-2.46.orig/SCons/Tools/crossmingw.py
 nsis-2.46/SCons/Tools/crossmingw.py
+@@ -58,6 +58,10 @@
+ i486-pc-mingw32-
+ i586-pc-mingw32-
+ i686-pc-mingw32-
++i386-w64-mingw32-
++i486-w64-mingw32-
++i586-w64-mingw32-
++i686-w64-mingw32-
+ )
+ 
+ def find(env):
--- nsis-2.46/debian/patches/series	2010-05-06 04:15:31.0 +0200
+++ nsis-2.46/debian/patches/series	2011-04-21 21:43:38.0 +0200
@@ -1,3 +1,4 @@
 # list of patch file names in the order they are applied
 nsis_system_zlib.patch
 makensis_native_64bit.patch
+mingw-w64.patch
--- nsis-2.46/debian/README.Debian	2009-07-24 12:31:20.0 +0200
+++ nsis-2.46/debian/README.Debian	2011-04-21 21:43:38.0 +0200
@@ -9,12 +9,12 @@
 The mingw32 include dir should be in the include path and it
 usually is there by default, if not, add this to CPPFLAGS:
 
- -I /usr/i586-mingw32msvc/include
+ -I /usr/i686-w64-mingw32/include
 
 The nsis subdir of the mingw32 library dir should be in the
 linker path, you'll need the following in LDFLAGS:
 
- -L /usr/i586-mingw32msvc/lib/nsis
+ -L /usr/i686-w64-mingw32/lib/nsis
 
 The nsis pluginapi static library needs to be linked against,
 you'll need the following in LDFLAGS:
--- nsis-2.46/debian/rules