On Fri, Feb 13, 2009 at 01:52:11PM +0100, Farkas Levente wrote: > do you mean ExclusiveArch: i386?
Yes I did ... > anyway i rather add: > ExcludeArch: x86_64, ppc64 > it's build on ppc: > http://koji.fedoraproject.org/koji/taskinfo?taskID=1124536 > also build on i386: > http://koji.fedoraproject.org/koji/taskinfo?taskID=1124544 > the strange thing is koji try to build on x86_64 even if i add the above > ExcludeArch???: > http://koji.fedoraproject.org/koji/taskinfo?taskID=1124493 Strange ... Try ExclusiveArch? > anyway there is a newer nsis i updated the patches, remove > nsis-2.39-mingw32-search.patch as no longer needed. > so the result the needed source (all other can be removed): > nsis-2.43-src.tar.bz2 > nsis-2.43-debian-debug-opt.patch > nsis-2.42-debian-64bit-fixes.patch > and attached the spec diff to the hg. > would be useful to apply and i'll approve the rr. Cheers, I'll have a look. Rich. > diff -up ./SCons/Config/gnu.debug ./SCons/Config/gnu > --- ./SCons/Config/gnu.debug 2009-02-13 12:41:42.000000000 +0100 > +++ ./SCons/Config/gnu 2009-02-13 12:42:37.000000000 +0100 > @@ -68,13 +68,16 @@ cross_env(stub_env) > > stub_env.Append(CPPPATH = ['#$BUILD_CONFIG']) > > -if not defenv['DEBUG']: > - stub_env.Append(CCFLAGS = ['-Os']) # optimize for size > +if defenv['DEBUG_SYMBOLS']: > + stub_env.Append(LINKFLAGS = '-g') # debugging > + stub_env.Append(CCFLAGS = '-g') # debugging > +if not defenv['DEBUG'] and defenv['OPT']: > + stub_env.Append(CCFLAGS = ['-O2']) # optimize > stub_env.Append(CCFLAGS = ['-Wall']) # all warnings > stub_env.Append(CCFLAGS = ['-xc']) # force compile as c > stub_env.Append(CCFLAGS = ['-fno-strict-aliasing']) # not safe for strict > aliasing > > -if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_W32']: > +if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] > and defenv['STRIP_W32']: > stub_env.Append(LINKFLAGS = ['-s']) # strip > stub_env.Append(LINKFLAGS = ['-mwindows']) # build windows > executables > stub_env.Append(LINKFLAGS = ['$NODEFLIBS_FLAG']) # no standard libraries > @@ -88,15 +91,18 @@ makensis_env = defenv.Clone() > > makensis_env.Append(CPPPATH = ['#$BUILD_CONFIG']) > > -if not defenv['DEBUG']: > - makensis_env.Append(CCFLAGS = ['-O2']) # optimize > +if defenv['DEBUG_SYMBOLS']: > + makensis_env.Append(LINKFLAGS = '-g') # debugging > + makensis_env.Append(CCFLAGS = '-g') # debugging > +if not defenv['DEBUG'] and defenv['OPT']: > + makensis_env.Append(CCFLAGS = ['-O2']) # optimize > makensis_env.Append(CFLAGS = ['-Wall']) # all warnings > makensis_env.Append(CXXFLAGS = ['-Wno-non-virtual-dtor']) # ignore virtual > dtor warnings > makensis_env.Append(CXXFLAGS = ['-Wall']) # all warnings > > conf = FlagsConfigure(makensis_env) > conf.CheckLinkFlag('$MAP_FLAG') # generate map file > -if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_CP']: > +if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] > and defenv['STRIP_CP']: > TestStrip(conf) # strip > conf.Finish() > > @@ -105,12 +111,15 @@ conf.Finish() > plugin_env = defenv.Clone() > cross_env(plugin_env) > > -if not defenv['DEBUG']: > - plugin_env.Append(CCFLAGS = ['-Os']) # optimize for size > +if defenv['DEBUG_SYMBOLS']: > + plugin_env.Append(LINKFLAGS = '-g') # debugging > + plugin_env.Append(CCFLAGS = '-g') # debugging > +if not defenv['DEBUG'] and defenv['OPT']: > + plugin_env.Append(CCFLAGS = ['-O2']) # optimize > plugin_env.Append(CCFLAGS = ['-Wall']) # level 3 warnings > plugin_env.Append(CCFLAGS = ['-fno-strict-aliasing']) # not safe for strict > aliasing > > -if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_W32']: > +if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] > and defenv['STRIP_W32']: > plugin_env.Append(LINKFLAGS = ['-s']) # strip > plugin_env.Append(LINKFLAGS = ['-mwindows']) # build windows > executables > plugin_env.Append(LINKFLAGS = ['$ALIGN_FLAG']) # 512 bytes align > @@ -122,7 +131,10 @@ cp_util_env = defenv.Clone() > > cp_util_env.Append(CPPPATH = ['#$BUILD_CONFIG']) > > -if not defenv['DEBUG']: > +if defenv['DEBUG_SYMBOLS']: > + cp_util_env.Append(LINKFLAGS = '-g') # debugging > + cp_util_env.Append(CCFLAGS = '-g') # debugging > +if not defenv['DEBUG'] and defenv['OPT']: > cp_util_env.Append(CCFLAGS = ['-O2']) # optimize > cp_util_env.Append(CCFLAGS = ['-Wall']) # all warnings > cp_util_env.Append(CCFLAGS = ['-fno-strict-aliasing']) # not safe for strict > aliasing > @@ -140,7 +152,7 @@ util_env.Append(LINKFLAGS = ['-mwindows' > util_env.Append(LINKFLAGS = ['$ALIGN_FLAG']) # 512 bytes align > > conf = FlagsConfigure(util_env) > -if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_W32']: > +if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] > and defenv['STRIP_W32']: > util_env.Append(LINKFLAGS = ['-s']) # strip > conf.Finish() > > @@ -149,7 +161,7 @@ conf.Finish() > conf = FlagsConfigure(cp_util_env) > conf.CheckCompileFlag('-m32') > conf.CheckLinkFlag('-m32') > -if not defenv['DEBUG'] and defenv['STRIP'] and defenv['STRIP_CP']: > +if not defenv['DEBUG'] and not defenv['DEBUG_SYMBOLS'] and defenv['STRIP'] > and defenv['STRIP_CP']: > TestStrip(conf) # strip > conf.Finish() > > @@ -157,6 +169,9 @@ conf.Finish() > > test_env = defenv.Clone() > test_env.Append(CPPPATH = ['#$BUILD_CONFIG']) > +if defenv['DEBUG_SYMBOLS']: > + test_env.Append(LINKFLAGS = '-g') # debugging > + test_env.Append(CCFLAGS = '-g') # debugging > conf = FlagsConfigure(test_env) > conf.CheckCompileFlag('-m32') > conf.CheckLinkFlag('-m32') > diff -up ./SConstruct.debug ./SConstruct > --- ./SConstruct.debug 2009-02-04 15:05:48.000000000 +0100 > +++ ./SConstruct 2009-02-13 12:41:42.000000000 +0100 > @@ -157,6 +157,8 @@ opts.Add(('APPEND_CCFLAGS', 'Additional > opts.Add(('APPEND_LINKFLAGS', 'Additional linker flags')) > # build options > opts.Add(BoolVariable('DEBUG', 'Build executables with debugging > information', 'no')) > +opts.Add(BoolOption('DEBUG_SYMBOLS', 'Build with debugging information, but > none of the side effects of DEBUG', 'no')) > +opts.Add(BoolOption('OPT', 'Build with optimization', 'yes')) > opts.Add(PathVariable('CODESIGNER', 'A program used to sign executables', > None)) > opts.Add(BoolVariable('STRIP', 'Strips executables of any unrequired data > such as symbols', 'yes')) > opts.Add(BoolVariable('STRIP_CP', 'Strips cross-platform executables of any > unrequired data such as symbols', 'yes')) > --- ./Source/Plugins.cpp.lfarkas 2009-01-14 17:03:11.000000000 +0100 > +++ ./Source/Plugins.cpp 2009-01-14 17:03:58.000000000 +0100 > @@ -136,7 +136,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); > --- ./Source/ResourceEditor.cpp.lfarkas 2009-01-14 17:04:08.000000000 > +0100 > +++ ./Source/ResourceEditor.cpp 2009-01-14 17:07:47.000000000 +0100 > @@ -665,7 +665,7 @@ > rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries); > > CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY)); > - crd->m_dwWrittenAt = DWORD(seeker); > + crd->m_dwWrittenAt = long(seeker); > seeker += sizeof(IMAGE_RESOURCE_DIRECTORY); > > for (int i = 0; i < crd->CountEntries(); i++) { > @@ -686,7 +686,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_dwWrittenAt = long(seeker); > seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY); > } > qDirs.pop(); > @@ -702,7 +702,7 @@ > rDataE.Size = ConvertEndianness(cRDataE->GetSize()); > > CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY)); > - cRDataE->m_dwWrittenAt = DWORD(seeker); > + cRDataE->m_dwWrittenAt = long(seeker); > seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY); > > qDataEntries.pop(); > @@ -714,7 +714,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_dwWrittenAt)->UName.NameString.NameOffset > = ConvertEndianness(long(seeker) - long(pbRsrcSec)); > > WCHAR* szName = cRDirE->GetName(); > WORD iLen = winchar_strlen(szName) + 1; > @@ -745,7 +745,7 @@ > /* > * Set all of the directory entries offsets. > */ > - SetOffsets(m_cResDir, DWORD(pbRsrcSec)); > + SetOffsets(m_cResDir, long(pbRsrcSec)); > } > > // Sets the offsets in directory entries > @@ -868,7 +868,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) (long) szName); > else > if (szName[0] == '#') > return Find(WORD(winchar_stoi(szName + 1))); > @@ -946,7 +946,7 @@ > if (IS_INTRESOURCE(szName)) { > m_bHasName = false; > m_szName = 0; > - m_wId = (WORD) (DWORD) szName; > + m_wId = (WORD) (long) szName; > } > else { > m_bHasName = true; > @@ -960,7 +960,7 @@ > if (IS_INTRESOURCE(szName)) { > m_bHasName = false; > m_szName = 0; > - m_wId = (WORD) (DWORD) szName; > + m_wId = (WORD) (long) szName; > } > else { > m_bHasName = true; > --- ./Source/DialogTemplate.cpp.lfarkas 2009-01-14 16:56:31.000000000 > +0100 > +++ ./Source/DialogTemplate.cpp 2009-01-14 17:01:14.000000000 +0100 > @@ -74,7 +74,7 @@ > if (IS_INTRESOURCE(x)) { \ > *(WORD*)seeker = 0xFFFF; \ > seeker += sizeof(WORD); \ > - *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \ > + *(WORD*)seeker = ConvertEndianness(WORD(long(x))); \ > seeker += sizeof(WORD); \ > } \ > else { \ > @@ -622,7 +622,7 @@ > } > } > > - assert((DWORD) seeker - (DWORD) pbDlg == dwSize); > + assert((long) seeker - (long) pbDlg == dwSize); > > // DONE! > return pbDlg; > --- ./Source/mmap.cpp.lfarkas 2009-01-14 17:00:12.000000000 +0100 > +++ ./Source/mmap.cpp 2009-01-14 17:01:36.000000000 +0100 > @@ -322,7 +322,7 @@ > if (!pView) > return; > > - unsigned int alignment = ((unsigned int)pView) % m_iAllocationGranularity; > + unsigned int alignment = ((unsigned long)pView) % m_iAllocationGranularity; > pView = (char *)pView - alignment; > size += alignment; > #ifdef _WIN32 > --- ./Source/util.cpp.lfarkas 2009-01-14 17:07:59.000000000 +0100 > +++ ./Source/util.cpp 2009-01-14 17:09:25.000000000 +0100 > @@ -75,9 +75,9 @@ > } > > if (width != 0) { > - LONG biWidth; > + DWORD biWidth; > fseek(f, 18, SEEK_SET); // Seek to the width member of the header > - fread(&biWidth, sizeof(LONG), 1, f); > + fread(&biWidth, sizeof(DWORD), 1, f); > FIX_ENDIAN_INT32_INPLACE(biWidth); > if (width != biWidth) { > fclose(f); > @@ -86,12 +86,12 @@ > } > > if (height != 0) { > - LONG biHeight; > + DWORD biHeight; > fseek(f, 22, SEEK_SET); // Seek to the height member of the header > - fread(&biHeight, sizeof(LONG), 1, f); > + fread(&biHeight, sizeof(DWORD), 1, f); > FIX_ENDIAN_INT32_INPLACE(biHeight); > // Bitmap height can be negative too... > - if (height != abs(biHeight)) { > + if (height != abs((long int)biHeight)) { > fclose(f); > return -3; > } > --- ./Source/Platform.h.lfarkas 2009-01-14 17:01:43.000000000 +0100 > +++ ./Source/Platform.h 2009-01-14 17:03:03.000000000 +0100 > @@ -165,7 +165,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( (long) h + \ > FIELD_OFFSET(IMAGE_NT_HEADERS, > OptionalHeader) + \ > > FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) ) > # endif > @@ -197,7 +197,7 @@ > #endif > > #ifndef ULONG_PTR > -# define ULONG_PTR DWORD > +# define ULONG_PTR ULONG > #endif > > #ifndef IDC_HAND > @@ -702,7 +702,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) > --- ./SCons/Config/gnu.lfarkas 2009-01-14 16:55:33.000000000 +0100 > +++ ./SCons/Config/gnu 2009-01-14 16:56:21.000000000 +0100 > @@ -90,8 +90,6 @@ > makensis_env.Append(CXXFLAGS = ['-Wno-non-virtual-dtor']) # ignore virtual > dtor 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 > diff -r 1034c40f590b nsis/mingw32-nsis.spec > --- a/nsis/mingw32-nsis.spec Thu Feb 12 11:05:46 2009 +0000 > +++ b/nsis/mingw32-nsis.spec Fri Feb 13 13:43:22 2009 +0100 > @@ -2,8 +2,8 @@ > %define _default_patch_fuzz 2 > > Name: mingw32-nsis > -Version: 2.39 > -Release: 5%{?dist} > +Version: 2.43 > +Release: 1%{?dist} > Summary: Nullsoft Scriptable Install System > > License: zlib and CPL > @@ -13,30 +13,19 @@ > BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} > -n) > > # Patches from Debian (mainly by Paul Wise). > -Patch0: nsis-2.39-debian-64bit-fixes.patch > -Patch1: nsis-2.39-debian-debug-opt.patch > +Patch0: nsis-2.42-debian-64bit-fixes.patch > +Patch1: nsis-2.43-debian-debug-opt.patch > > -# This patch is required for NSIS to find the correct cross-compiler. > -Patch100: nsis-2.39-mingw32-search.patch > - > -BuildRequires: mingw32-filesystem >= 20 > +BuildRequires: mingw32-filesystem >= 40 > BuildRequires: mingw32-gcc > BuildRequires: mingw32-gcc-c++ > BuildRequires: mingw32-binutils > BuildRequires: python > -BuildRequires: scons >= 0.96.93 > +BuildRequires: scons > +BuildRequires: wxGTK-devel > > -# We build with 'gcc -m32' and that fails on 64 bit platforms when we > -# include <gnu/stubs.h>. On x86-64, this is provided by > -# glibc-devel.i386. Depend on the file explicitly, since only recent > -# versions of RPM let you require a package by architecture. > -BuildRequires: /usr/include/gnu/stubs-32.h > - > -# We really need the 32 bit version of this library. The 64 bit > -# version will definitely not work. XXX Need to do the right thing on > -# non-x86 architectures. > -BuildRequires: /usr/lib/libwx_baseu-2.8.so > - > +# since nsis a 32 bit only apps > +ExcludeArch: x86_64, ppc64 > > %description > NSIS, the Nullsoft Scriptable Install System, is a script-driven > @@ -51,10 +40,8 @@ > %prep > %setup -q -n nsis-%{version}-src > > -%patch0 -p1 > -%patch1 -p1 > - > -%patch100 -p1 > +%patch0 -p1 -b .64bit > +%patch1 -p1 -b .debug > > > %build > @@ -76,14 +63,21 @@ > > %files > %defattr(-,root,root) > +%doc %{_docdir}/%{name}-%{version} > +%config(noreplace) %{_sysconfdir}/nsisconf.nsh > %{_bindir}/* > -%config(noreplace) %{_sysconfdir}/nsisconf.nsh > -%{_includedir}/nsis > -%doc %{_docdir}/%{name}-%{version} > +#{_includedir}/nsis > %{_datadir}/nsis > > > %changelog > +* Fri Feb 13 2009 Levente Farkas <[email protected]> - 2.43-1 > +- update to the latest upstream > + > +* Wed Jan 14 2009 Levente Farkas <[email protected]> - 2.42-1 > +- update to the latest upstream > +- a few small changes > + > * Fri Oct 17 2008 Richard W.M. Jones <[email protected]> - 2.39-5 > - Fix the Summary line. > > _______________________________________________ > fedora-mingw mailing list > [email protected] > https://admin.fedoraproject.org/mailman/listinfo/fedora-mingw -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top _______________________________________________ fedora-mingw mailing list [email protected] https://admin.fedoraproject.org/mailman/listinfo/fedora-mingw
