Fix building on big endian archs.
Index: Makefile =================================================================== RCS file: /cvs/ports/games/wargus/Makefile,v retrieving revision 1.3 diff -u -p -u -p -r1.3 Makefile --- Makefile 4 Mar 2026 10:21:05 -0000 1.3 +++ Makefile 3 Sep 2026 06:30:49 -0000 @@ -3,6 +3,7 @@ COMMENT= Warcraft 2 Mod GH_ACCOUNT= Wargus GH_PROJECT= wargus GH_TAGNAME= v3.3.2 +REVISION= 0 CATEGORIES= games HOMEPAGE= http://stratagus.com/ @@ -33,7 +34,11 @@ MODCMAKE_POLICY_VERSION_OVERRIDE = Yes MODCMAKE_LDFLAGS+= -L${LOCALBASE}/lib -FIX_CRLF_FILES= StormLib/src/FileStream.cpp +FIX_CRLF_FILES= StormLib/src/SBaseCommon.cpp \ + StormLib/src/SFileAttributes.cpp \ + StormLib/src/SFilePatchArchives.cpp \ + StormLib/src/StormLib.h \ + StormLib/src/StormPort.h \ pre-configure: find ${WRKSRC}/ -name "CMakeLists.txt" -type f -exec sed -i \ Index: patches/patch-StormLib_src_FileStream_cpp =================================================================== RCS file: patches/patch-StormLib_src_FileStream_cpp diff -N patches/patch-StormLib_src_FileStream_cpp --- patches/patch-StormLib_src_FileStream_cpp 13 Feb 2025 20:49:41 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,81 +0,0 @@ -Index: StormLib/src/FileStream.cpp ---- StormLib/src/FileStream.cpp.orig -+++ StormLib/src/FileStream.cpp -@@ -109,7 +109,7 @@ static bool BaseFile_Create(TFileStream * pStream) - { - intptr_t handle; - -- handle = open(pStream->szFileName, O_RDWR | O_CREAT | O_TRUNC | O_LARGEFILE, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); -+ handle = open(pStream->szFileName, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - if(handle == -1) - { - pStream->Base.File.hFile = INVALID_HANDLE_VALUE; -@@ -157,12 +157,12 @@ static bool BaseFile_Open(TFileStream * pStream, const - - #if defined(STORMLIB_MAC) || defined(STORMLIB_LINUX) - { -- struct stat64 fileinfo; -+ struct stat fileinfo; - int oflag = (dwStreamFlags & STREAM_FLAG_READ_ONLY) ? O_RDONLY : O_RDWR; - intptr_t handle; - - // Open the file -- handle = open(szFileName, oflag | O_LARGEFILE); -+ handle = open(szFileName, oflag); - if(handle == -1) - { - pStream->Base.File.hFile = INVALID_HANDLE_VALUE; -@@ -171,7 +171,7 @@ static bool BaseFile_Open(TFileStream * pStream, const - } - - // Get the file size -- if(fstat64(handle, &fileinfo) == -1) -+ if(fstat(handle, &fileinfo) == -1) - { - pStream->Base.File.hFile = INVALID_HANDLE_VALUE; - dwLastError = errno; -@@ -234,7 +234,7 @@ static bool BaseFile_Read( - // we have to update the file position xxx - if(ByteOffset != pStream->Base.File.FilePos) - { -- lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET); -+ lseek((intptr_t)pStream->Base.File.hFile, (off_t)(ByteOffset), SEEK_SET); - pStream->Base.File.FilePos = ByteOffset; - } - -@@ -305,7 +305,7 @@ static bool BaseFile_Write(TFileStream * pStream, ULON - // we have to update the file position - if(ByteOffset != pStream->Base.File.FilePos) - { -- lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET); -+ lseek((intptr_t)pStream->Base.File.hFile, (off_t)(ByteOffset), SEEK_SET); - pStream->Base.File.FilePos = ByteOffset; - } - -@@ -366,7 +366,7 @@ static bool BaseFile_Resize(TFileStream * pStream, ULO - - #if defined(STORMLIB_MAC) || defined(STORMLIB_LINUX) - { -- if(ftruncate64((intptr_t)pStream->Base.File.hFile, (off64_t)NewFileSize) == -1) -+ if(ftruncate((intptr_t)pStream->Base.File.hFile, (off_t)NewFileSize) == -1) - { - dwLastError = errno; - return false; -@@ -566,7 +566,7 @@ static bool BaseMap_Open(TFileStream * pStream, LPCTST - - #elif defined(STORMLIB_HAS_MMAP) - -- struct stat64 fileinfo; -+ struct stat fileinfo; - intptr_t handle; - bool bResult = false; - -@@ -575,7 +575,7 @@ static bool BaseMap_Open(TFileStream * pStream, LPCTST - if(handle != -1) - { - // Get the file size -- if(fstat64(handle, &fileinfo) != -1) -+ if(fstat(handle, &fileinfo) != -1) - { - pStream->Base.Map.pbFile = (LPBYTE)mmap(NULL, (size_t)fileinfo.st_size, PROT_READ, MAP_PRIVATE, handle, 0); - if(pStream->Base.Map.pbFile != NULL) Index: patches/patch-StormLib_src_SBaseCommon_cpp =================================================================== RCS file: patches/patch-StormLib_src_SBaseCommon_cpp diff -N patches/patch-StormLib_src_SBaseCommon_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-StormLib_src_SBaseCommon_cpp 3 Sep 2026 06:30:49 -0000 @@ -0,0 +1,40 @@ +- Apply StormLib big-endian build fixes to the vendored copy + cde1a0718a0058cc651ecd56ff8149fc39f624e9 + +Index: StormLib/src/SBaseCommon.cpp +--- StormLib/src/SBaseCommon.cpp.orig ++++ StormLib/src/SBaseCommon.cpp +@@ -1915,7 +1915,7 @@ void ConvertTMPQHeader(void *header, uint16_t version) + TMPQHeader * theHeader = (TMPQHeader *)header; + + // Swap header part version 1 +- if(version == MPQ_FORMAT_VERSION_1) ++ if(version >= MPQ_FORMAT_VERSION_1) + { + theHeader->dwID = SwapUInt32(theHeader->dwID); + theHeader->dwHeaderSize = SwapUInt32(theHeader->dwHeaderSize); +@@ -1928,21 +1928,21 @@ void ConvertTMPQHeader(void *header, uint16_t version) + theHeader->dwBlockTableSize = SwapUInt32(theHeader->dwBlockTableSize); + } + +- if(version == MPQ_FORMAT_VERSION_2) ++ if(version >= MPQ_FORMAT_VERSION_2) + { + theHeader->HiBlockTablePos64 = SwapUInt64(theHeader->HiBlockTablePos64); + theHeader->wHashTablePosHi = SwapUInt16(theHeader->wHashTablePosHi); + theHeader->wBlockTablePosHi = SwapUInt16(theHeader->wBlockTablePosHi); + } + +- if(version == MPQ_FORMAT_VERSION_3) ++ if(version >= MPQ_FORMAT_VERSION_3) + { + theHeader->ArchiveSize64 = SwapUInt64(theHeader->ArchiveSize64); + theHeader->BetTablePos64 = SwapUInt64(theHeader->BetTablePos64); + theHeader->HetTablePos64 = SwapUInt64(theHeader->HetTablePos64); + } + +- if(version == MPQ_FORMAT_VERSION_4) ++ if(version >= MPQ_FORMAT_VERSION_4) + { + theHeader->HashTableSize64 = SwapUInt64(theHeader->HashTableSize64); + theHeader->BlockTableSize64 = SwapUInt64(theHeader->BlockTableSize64); Index: patches/patch-StormLib_src_SFileAttributes_cpp =================================================================== RCS file: patches/patch-StormLib_src_SFileAttributes_cpp diff -N patches/patch-StormLib_src_SFileAttributes_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-StormLib_src_SFileAttributes_cpp 3 Sep 2026 06:30:49 -0000 @@ -0,0 +1,24 @@ +- Apply StormLib big-endian build fixes to the vendored copy + cde1a0718a0058cc651ecd56ff8149fc39f624e9 + +Index: StormLib/src/SFileAttributes.cpp +--- StormLib/src/SFileAttributes.cpp.orig ++++ StormLib/src/SFileAttributes.cpp +@@ -180,7 +180,7 @@ static DWORD LoadAttributesFile(TMPQArchive * ha, LPBY + if((pbAttrPtr + cbArraySize) > pbAttrFileEnd) + return ERROR_FILE_CORRUPT; + +- BSWAP_ARRAY32_UNSIGNED(ArrayCRC32, cbCRC32Size); ++ BSWAP_ARRAY32_UNSIGNED(ArrayCRC32, cbArraySize); + for(i = 0; i < dwAttributesEntries; i++) + ha->pFileTable[i].dwCrc32 = ArrayCRC32[i]; + pbAttrPtr += cbArraySize; +@@ -196,7 +196,7 @@ static DWORD LoadAttributesFile(TMPQArchive * ha, LPBY + if((pbAttrPtr + cbArraySize) > pbAttrFileEnd) + return ERROR_FILE_CORRUPT; + +- BSWAP_ARRAY64_UNSIGNED(ArrayFileTime, cbFileTimeSize); ++ BSWAP_ARRAY64_UNSIGNED(ArrayFileTime, cbArraySize); + for(i = 0; i < dwAttributesEntries; i++) + ha->pFileTable[i].FileTime = ArrayFileTime[i]; + pbAttrPtr += cbArraySize; Index: patches/patch-StormLib_src_SFilePatchArchives_cpp =================================================================== RCS file: patches/patch-StormLib_src_SFilePatchArchives_cpp diff -N patches/patch-StormLib_src_SFilePatchArchives_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-StormLib_src_SFilePatchArchives_cpp 3 Sep 2026 06:30:49 -0000 @@ -0,0 +1,15 @@ +- Apply StormLib big-endian build fixes to the vendored copy + cde1a0718a0058cc651ecd56ff8149fc39f624e9 + +Index: StormLib/src/SFilePatchArchives.cpp +--- StormLib/src/SFilePatchArchives.cpp.orig ++++ StormLib/src/SFilePatchArchives.cpp +@@ -480,7 +480,7 @@ static bool IsMatchingPatchFile( + { + // Load the patch header + SFileReadFile(hFile, &PatchHeader, sizeof(MPQ_PATCH_HEADER), &dwTransferred, NULL); +- BSWAP_ARRAY32_UNSIGNED(pPatchHeader, sizeof(DWORD) * 6); ++ BSWAP_ARRAY32_UNSIGNED(&PatchHeader, sizeof(DWORD) * 6); + + // If the file contains an incremental patch, + // compare the "MD5 before patching" with the base file MD5 Index: patches/patch-StormLib_src_StormLib_h =================================================================== RCS file: patches/patch-StormLib_src_StormLib_h diff -N patches/patch-StormLib_src_StormLib_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-StormLib_src_StormLib_h 3 Sep 2026 06:30:49 -0000 @@ -0,0 +1,16 @@ +- Apply StormLib big-endian build fixes to the vendored copy + cde1a0718a0058cc651ecd56ff8149fc39f624e9 + +Index: StormLib/src/StormLib.h +--- StormLib/src/StormLib.h.orig ++++ StormLib/src/StormLib.h +@@ -631,8 +631,8 @@ typedef struct _TMPQHash + + #else + +- BYTE Platform; + BYTE Reserved; ++ BYTE Platform; + USHORT lcLocale; + + #endif Index: patches/patch-StormLib_src_StormPort_h =================================================================== RCS file: patches/patch-StormLib_src_StormPort_h diff -N patches/patch-StormLib_src_StormPort_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-StormLib_src_StormPort_h 3 Sep 2026 06:30:49 -0000 @@ -0,0 +1,12 @@ +Index: StormLib/src/StormPort.h +--- StormLib/src/StormPort.h.orig ++++ StormLib/src/StormPort.h +@@ -359,7 +359,7 @@ + #endif // !STORMLIB_WINDOWS + + // 64-bit calls are supplied by "normal" calls on Mac +-#if defined(STORMLIB_MAC) ++#if defined(STORMLIB_MAC) || defined(__OpenBSD__) + #define stat64 stat + #define fstat64 fstat + #define lseek64 lseek
