Bug#620099: nsis: diff for NMU version 2.46-3.1
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
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
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
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
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