diff options
author | Volker Grabsch <vog@notjusthosting.com> | 2009-12-26 13:31:42 (GMT) |
---|---|---|
committer | Volker Grabsch <vog@notjusthosting.com> | 2009-12-26 13:31:42 (GMT) |
commit | 82969d11524c155684d4c7cf9be20121def397ab (patch) | |
tree | 0a65164196943249eb178d34fcb8cfde0dfc113f /src | |
parent | d370b373a1f10aea202ff9ee87b0c383ab65ab28 (diff) | |
parent | 85bb7f52360b261bc163f6f8673faab9f98a7e68 (diff) | |
download | mxe-82969d11524c155684d4c7cf9be20121def397ab.zip mxe-82969d11524c155684d4c7cf9be20121def397ab.tar.gz mxe-82969d11524c155684d4c7cf9be20121def397ab.tar.bz2 |
merge
Diffstat (limited to 'src')
-rw-r--r-- | src/atk.mk | 4 | ||||
-rw-r--r-- | src/devil.mk | 63 | ||||
-rw-r--r-- | src/exiv2-improvements.patch | 446 | ||||
-rw-r--r-- | src/exiv2.mk | 54 | ||||
-rw-r--r-- | src/glib.mk | 4 | ||||
-rw-r--r-- | src/gtk.mk | 4 | ||||
-rw-r--r-- | src/jpeg.mk | 2 | ||||
-rw-r--r-- | src/libpano13.mk | 55 | ||||
-rw-r--r-- | src/pdflib_lite.mk | 2 |
9 files changed, 627 insertions, 7 deletions
@@ -22,8 +22,8 @@ # ATK PKG := atk $(PKG)_IGNORE := -$(PKG)_VERSION := 1.29.3 -$(PKG)_CHECKSUM := 18ca04e04063f0c99460941cf34d896801746d05 +$(PKG)_VERSION := 1.29.4 +$(PKG)_CHECKSUM := 819a768a931fa149497c80cededadcc2c1bf0b17 $(PKG)_SUBDIR := atk-$($(PKG)_VERSION) $(PKG)_FILE := atk-$($(PKG)_VERSION).tar.bz2 $(PKG)_WEBSITE := http://www.gtk.org/ diff --git a/src/devil.mk b/src/devil.mk new file mode 100644 index 0000000..f91098c --- /dev/null +++ b/src/devil.mk @@ -0,0 +1,63 @@ +# Copyright (C) 2009 Volker Grabsch +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject +# to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# DevIL +PKG := devil +$(PKG)_IGNORE := +$(PKG)_VERSION := 1.7.8 +$(PKG)_CHECKSUM := bc27e3e830ba666a3af03548789700d10561fcb1 +$(PKG)_SUBDIR := devil-$($(PKG)_VERSION) +$(PKG)_FILE := DevIL-$($(PKG)_VERSION).tar.gz +$(PKG)_WEBSITE := http://openil.sourceforge.net/ +$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/openil/DevIL/$($(PKG)_VERSION)/$($(PKG)_FILE) +$(PKG)_DEPS := gcc zlib openexr jpeg jasper lcms libmng libpng tiff sdl + +define $(PKG)_UPDATE + wget -q -O- 'http://openil.svn.sourceforge.net/viewvc/openil/tags/?sortby=date' | \ + grep '<a name="' | \ + $(SED) -n 's,.*<a name="release-\([0-9][^"]*\)".*,\1,p' | \ + head -1 +endef + +define $(PKG)_BUILD + $(SED) 's,__declspec(dllimport),,' -i '$(1)/include/IL/il.h' + # wine confuses the cross-compiling detection, so set it explicitly + $(SED) 's,cross_compiling=no,cross_compiling=yes,' -i '$(1)/configure' + cd '$(1)' && ./configure \ + --host='$(TARGET)' \ + --disable-shared \ + --prefix='$(PREFIX)/$(TARGET)' \ + --enable-ILU \ + --enable-ILUT \ + --disable-allegro \ + --enable-directx8 \ + --enable-directx9 \ + --enable-opengl \ + --enable-sdl \ + --disable-sdltest \ + --disable-wdp \ + --with-zlib \ + --without-squish \ + --without-nvtt \ + --without-x \ + --without-examples + $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= INFO_DEPS= +endef diff --git a/src/exiv2-improvements.patch b/src/exiv2-improvements.patch new file mode 100644 index 0000000..354b7d6 --- /dev/null +++ b/src/exiv2-improvements.patch @@ -0,0 +1,446 @@ +Copyright (C) 2009 Volker Grabsch + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject +to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Fri Jul 3 11:44:14 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * avoid_extended_Photoshop_IRB_warnings +Fri Jun 19 17:57:06 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * handle_extended_Photoshop_IRBs +Thu Jun 4 20:12:36 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * recognize_small_corrupt_IRBs +Thu Jun 4 15:48:36 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * new_function_Photoshop_valid +Thu Jun 4 13:05:49 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * skip_writing_redundant_IPTC_IRBs +Tue May 19 16:03:52 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * read_and_modify_only_the_first_XMP_segment +Tue May 19 14:05:38 CEST 2009 Volker Grabsch <vog@notjusthosting.com> + * handle_empty_IRB +diff -rN -u old-trunk-1/src/jpgimage.cpp new-trunk-1/src/jpgimage.cpp +--- old-trunk-1/src/jpgimage.cpp 2009-06-25 17:10:32.000000000 +0200 ++++ new-trunk-1/src/jpgimage.cpp 2009-06-25 17:10:32.000000000 +0200 +@@ -87,6 +87,23 @@ + const char Photoshop::bimId_[] = "8BIM"; + const uint16_t Photoshop::iptc_ = 0x0404; + ++ bool Photoshop::valid(const byte* pPsData, ++ long sizePsData) ++ { ++ const byte *record = 0; ++ uint32_t sizeIptc = 0; ++ uint32_t sizeHdr = 0; ++ const byte* pCur = pPsData; ++ const byte* pEnd = pPsData + sizePsData; ++ int ret = 0; ++ while (pCur < pEnd ++ && 0 == (ret = Photoshop::locateIptcIrb(pCur, static_cast<long>(pEnd - pCur), ++ &record, &sizeHdr, &sizeIptc))) { ++ pCur = record + sizeHdr + sizeIptc + (sizeIptc & 1); ++ } ++ return ret >= 0; ++ } ++ + // Todo: Generalised from JpegBase::locateIptcData without really understanding + // the format (in particular the header). So it remains to be confirmed + // if this also makes sense for psTag != Photoshop::iptc +@@ -106,7 +123,7 @@ + std::cerr << "Photoshop::locateIrb: "; + #endif + // Data should follow Photoshop format, if not exit +- while ( position <= sizePsData - 14 ++ while ( position <= sizePsData - 12 + && memcmp(pPsData + position, Photoshop::bimId_, 4) == 0) { + const byte *hrd = pPsData + position; + position += 4; +@@ -121,8 +138,8 @@ + position += psSize; + if (position + 4 > sizePsData) { + #ifndef SUPPRESS_WARNINGS +- std::cerr << "Error: " +- << "Invalid Photoshop IRB\n"; ++ std::cerr << "Warning: " ++ << "Invalid or extended Photoshop IRB\n"; + #endif + return -2; + } +@@ -130,9 +147,9 @@ + position += 4; + if (dataSize > static_cast<uint32_t>(sizePsData - position)) { + #ifndef SUPPRESS_WARNINGS +- std::cerr << "Error: " ++ std::cerr << "Warning: " + << "Invalid Photoshop IRB data size " +- << dataSize << "\n"; ++ << dataSize << " or extended Photoshop IRB\n"; + #endif + return -2; + } +@@ -158,6 +175,13 @@ + #ifdef DEBUG + std::cerr << "pPsData doesn't start with '8BIM'\n"; + #endif ++ if (position < sizePsData) { ++#ifndef SUPPRESS_WARNINGS ++ std::cerr << "Warning: " ++ << "Invalid or extended Photoshop IRB\n"; ++#endif ++ return -2; ++ } + return 3; + } // Photoshop::locateIrb + +@@ -210,15 +234,23 @@ + // Data is padded to be even (but not included in size) + if (rawIptc.size_ & 1) psBlob.push_back(0x00); + } +- // Write existing stuff after record, data is rounded to be even. +- const uint32_t sizeOldData = sizeHdr + sizeIptc + (sizeIptc & 1); +- // Note: Because of the rounding, sizeFront + sizeOldData can be +- // _greater_ than sizePsData by 1 (not just equal), if the original +- // data was not padded. +- if (static_cast<uint32_t>(sizePsData) > sizeFront + sizeOldData) { +- append(psBlob, record + sizeOldData, +- sizePsData - sizeFront - sizeOldData); ++ // Write existing stuff after record, ++ // skip the current and all remaining IPTC blocks ++ long pos = sizeFront; ++ while (0 == Photoshop::locateIptcIrb(pPsData + pos, sizePsData - pos, ++ &record, &sizeHdr, &sizeIptc)) { ++ const long newPos = static_cast<long>(record - pPsData); ++ // Copy data up to the IPTC IRB ++ if (newPos > pos) { ++ append(psBlob, pPsData + pos, newPos - pos); ++ } ++ // Skip the IPTC IRB ++ pos = newPos + sizeHdr + sizeIptc + (sizeIptc & 1); ++ } ++ if (pos < sizePsData) { ++ append(psBlob, pPsData + pos, sizePsData - pos); + } ++ // Data is rounded to be even + if (psBlob.size() > 0) rc = DataBuf(&psBlob[0], static_cast<long>(psBlob.size())); + #ifdef DEBUG + std::cerr << "IRB block at the end of Photoshop::setIptcIrb\n"; +@@ -281,9 +313,10 @@ + const long bufMinSize = 36; + long bufRead = 0; + DataBuf buf(bufMinSize); +- Blob iptcBlob; +- bool foundPsData = false; ++ Blob psBlob; ++ bool foundCompletePsData = false; + bool foundExifData = false; ++ bool foundXmpData = false; + + // Read section marker + int marker = advanceToMarker(); +@@ -297,15 +330,6 @@ + if (bufRead < 2) throw Error(15); + uint16_t size = getUShort(buf.pData_, bigEndian); + +- if (foundPsData && marker != app13_) { +- // For IPTC, decrement search only after all app13 segments are +- // loaded, assuming they all appear in sequence. But decode IPTC +- // data after the loop, in case an app13 is the last segment +- // before sos or eoi. +- foundPsData = false; +- if (--search == 0) break; +- } +- + if ( !foundExifData + && marker == app1_ && memcmp(buf.pData_ + 2, exifId_, 6) == 0) { + if (size < 8) { +@@ -328,7 +352,8 @@ + --search; + foundExifData = true; + } +- else if (marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) { ++ else if ( !foundXmpData ++ && marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) { + if (size < 31) { + rc = 6; + break; +@@ -345,9 +370,10 @@ + #endif + } + --search; ++ foundXmpData = true; + } +- else if ( marker == app13_ +- && memcmp(buf.pData_ + 2, Photoshop::ps3Id_, 14) == 0) { ++ else if ( !foundCompletePsData ++ && marker == app13_ && memcmp(buf.pData_ + 2, Photoshop::ps3Id_, 14) == 0) { + if (size < 16) { + rc = 2; + break; +@@ -357,32 +383,17 @@ + DataBuf psData(size - 16); + io_->read(psData.pData_, psData.size_); + if (io_->error() || io_->eof()) throw Error(14); +- const byte *record = 0; +- uint32_t sizeIptc = 0; +- uint32_t sizeHdr = 0; + #ifdef DEBUG + std::cerr << "Found app13 segment, size = " << size << "\n"; + //hexdump(std::cerr, psData.pData_, psData.size_); + #endif +- // Find actual IPTC data within the APP13 segment +- const byte* pEnd = psData.pData_ + psData.size_; +- const byte* pCur = psData.pData_; +- while ( pCur < pEnd +- && 0 == Photoshop::locateIptcIrb(pCur, +- static_cast<long>(pEnd - pCur), +- &record, +- &sizeHdr, +- &sizeIptc)) { +- if (sizeIptc) { +-#ifdef DEBUG +- std::cerr << "Found IPTC IRB, size = " << sizeIptc << "\n"; +-#endif +- append(iptcBlob, record + sizeHdr, sizeIptc); +- } +- pCur = record + sizeHdr + sizeIptc; +- pCur += (sizeIptc & 1); ++ // Append to psBlob ++ append(psBlob, psData.pData_, psData.size_); ++ // Check whether psBlob is complete ++ if (Photoshop::valid(&psBlob[0], psBlob.size())) { ++ --search; ++ foundCompletePsData = true; + } +- foundPsData = true; + } + else if (marker == com_ && comment_.empty()) + { +@@ -437,6 +448,24 @@ + } + } // while there are segments to process + ++ // Find actual IPTC data within the psBlob ++ Blob iptcBlob; ++ const byte *record = 0; ++ uint32_t sizeIptc = 0; ++ uint32_t sizeHdr = 0; ++ const byte* pCur = &psBlob[0]; ++ const byte* pEnd = pCur + psBlob.size(); ++ while ( pCur < pEnd ++ && 0 == Photoshop::locateIptcIrb(pCur, static_cast<long>(pEnd - pCur), ++ &record, &sizeHdr, &sizeIptc)) { ++#ifdef DEBUG ++ std::cerr << "Found IPTC IRB, size = " << sizeIptc << "\n"; ++#endif ++ if (sizeIptc) { ++ append(iptcBlob, record + sizeHdr, sizeIptc); ++ } ++ pCur = record + sizeHdr + sizeIptc + (sizeIptc & 1); ++ } + if ( iptcBlob.size() > 0 + && IptcParser::decode(iptcData_, + &iptcBlob[0], +@@ -489,9 +518,10 @@ + int comPos = 0; + int skipApp1Exif = -1; + int skipApp1Xmp = -1; +- int skipApp13Ps3 = -1; ++ bool foundCompletePsData = false; ++ std::vector<int> skipApp13Ps3; + int skipCom = -1; +- DataBuf psData; ++ Blob psBlob; + DataBuf rawExif; + + // Write image header +@@ -526,24 +556,31 @@ + io_->read(rawExif.pData_, rawExif.size_); + if (io_->error() || io_->eof()) throw Error(22); + } +- else if (marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) { ++ else if ( skipApp1Xmp == -1 ++ && marker == app1_ && memcmp(buf.pData_ + 2, xmpId_, 29) == 0) { + if (size < 31) throw Error(22); + skipApp1Xmp = count; + ++search; + if (io_->seek(size-bufRead, BasicIo::cur)) throw Error(22); + } +- else if (marker == app13_ && memcmp(buf.pData_ + 2, Photoshop::ps3Id_, 14) == 0) { ++ else if ( !foundCompletePsData ++ && marker == app13_ && memcmp(buf.pData_ + 2, Photoshop::ps3Id_, 14) == 0) { + #ifdef DEBUG + std::cerr << "Found APP13 Photoshop PS3 segment\n"; + #endif + if (size < 16) throw Error(22); +- skipApp13Ps3 = count; +- ++search; ++ skipApp13Ps3.push_back(count); + io_->seek(16 - bufRead, BasicIo::cur); +- psData.alloc(size - 16); + // Load PS data now to allow reinsertion at any point ++ DataBuf psData(size - 16); + io_->read(psData.pData_, size - 16); + if (io_->error() || io_->eof()) throw Error(20); ++ // Append to psBlob ++ append(psBlob, psData.pData_, psData.size_); ++ // Check whether psBlob is complete ++ if (Photoshop::valid(&psBlob[0], psBlob.size())) { ++ foundCompletePsData = true; ++ } + } + else if (marker == com_ && skipCom == -1) { + if (size < 2) throw Error(22); +@@ -583,6 +620,10 @@ + if (marker < 0) throw Error(22); + ++count; + } ++ ++ if (!foundCompletePsData && skipApp13Ps3.size() > 0) throw Error(22); ++ search += skipApp13Ps3.size(); ++ + if (comPos == 0) { + if (marker == eoi_) comPos = count; + else comPos = insertPos; +@@ -591,7 +632,7 @@ + if (exifData_.count() > 0) ++search; + if (writeXmpFromPacket() == false && xmpData_.count() > 0) ++search; + if (writeXmpFromPacket() == true && xmpPacket_.size() > 0) ++search; +- if (iptcData_.count() > 0) ++search; ++ if (foundCompletePsData || iptcData_.count() > 0) ++search; + if (!comment_.empty()) ++search; + + io_->seek(seek, BasicIo::beg); +@@ -673,31 +714,44 @@ + if (outIo.error()) throw Error(21); + --search; + } +- if (psData.size_ > 0 || iptcData_.count() > 0) { ++ if (foundCompletePsData || iptcData_.count() > 0) { + // Set the new IPTC IRB, keeps existing IRBs but removes the + // IPTC block if there is no new IPTC data to write +- DataBuf newPsData = Photoshop::setIptcIrb(psData.pData_, +- psData.size_, ++ DataBuf newPsData = Photoshop::setIptcIrb(&psBlob[0], ++ psBlob.size(), + iptcData_); +- if (newPsData.size_ > 0) { +- // Write APP13 marker, new size, and ps3Id ++ const long maxChunkSize = 0xffff - 16; ++ const byte* chunkStart = newPsData.pData_; ++ const byte* chunkEnd = chunkStart + newPsData.size_; ++ while (chunkStart < chunkEnd) { ++ // Determine size of next chunk ++ long chunkSize = static_cast<long>(chunkEnd - chunkStart); ++ if (chunkSize > maxChunkSize) { ++ chunkSize = maxChunkSize; ++ // Don't break at a valid IRB boundary ++ const long writtenSize = static_cast<long>(chunkStart - newPsData.pData_); ++ if (Photoshop::valid(newPsData.pData_, writtenSize + chunkSize)) { ++ // Since an IRB has minimum size 12, ++ // (chunkSize - 8) can't be also a IRB boundary ++ chunkSize -= 8; ++ } ++ } ++ ++ // Write APP13 marker, chunk size, and ps3Id + tmpBuf[0] = 0xff; + tmpBuf[1] = app13_; +- +- if (newPsData.size_ + 16 > 0xffff) throw Error(37, "IPTC"); +- us2Data(tmpBuf + 2, static_cast<uint16_t>(newPsData.size_ + 16), bigEndian); ++ us2Data(tmpBuf + 2, static_cast<uint16_t>(chunkSize + 16), bigEndian); + std::memcpy(tmpBuf + 4, Photoshop::ps3Id_, 14); + if (outIo.write(tmpBuf, 18) != 18) throw Error(21); + if (outIo.error()) throw Error(21); + +- // Write new Photoshop IRB data buffer +- if ( outIo.write(newPsData.pData_, newPsData.size_) +- != newPsData.size_) throw Error(21); ++ // Write next chunk of the Photoshop IRB data buffer ++ if (outIo.write(chunkStart, chunkSize) != chunkSize) throw Error(21); + if (outIo.error()) throw Error(21); ++ ++ chunkStart += chunkSize; + } +- if (iptcData_.count() > 0) { +- --search; +- } ++ --search; + } + } + if (comPos == count) { +@@ -724,7 +778,7 @@ + } + else if ( skipApp1Exif == count + || skipApp1Xmp == count +- || skipApp13Ps3 == count ++ || find(skipApp13Ps3.begin(), skipApp13Ps3.end(), count) != skipApp13Ps3.end() + || skipCom == count) { + --search; + io_->seek(size-bufRead, BasicIo::cur); +diff -rN -u old-trunk-1/src/jpgimage.hpp new-trunk-1/src/jpgimage.hpp +--- old-trunk-1/src/jpgimage.hpp 2009-06-25 17:10:32.000000000 +0200 ++++ new-trunk-1/src/jpgimage.hpp 2009-06-25 17:10:32.000000000 +0200 +@@ -64,6 +64,16 @@ + static const uint16_t iptc_; //!< %Photoshop IPTC marker + + /*! ++ @brief Validates all IRBs ++ ++ @param pPsData Existing IRB buffer ++ @param sizePsData Size of the IRB buffer, may be 0 ++ @return true if all IRBs are valid;<BR> ++ false otherwise ++ */ ++ static bool valid(const byte* pPsData, ++ long sizePsData); ++ /*! + @brief Locates the data for a %Photoshop tag in a %Photoshop formated memory + buffer. Operates on raw data to simplify reuse. + @param pPsData Pointer to buffer containing entire payload of + +diff -rN -u old-trunk-1/src/jpgimage.cpp new-trunk-1/src/jpgimage.cpp +--- old-trunk-1/src/jpgimage.cpp 2009-07-03 12:02:48.000000000 +0200 ++++ new-trunk-1/src/jpgimage.cpp 2009-07-03 12:02:48.000000000 +0200 +@@ -137,7 +137,7 @@ + psSize += (psSize & 1); + position += psSize; + if (position + 4 > sizePsData) { +-#ifndef SUPPRESS_WARNINGS ++#ifdef DEBUG + std::cerr << "Warning: " + << "Invalid or extended Photoshop IRB\n"; + #endif +@@ -146,7 +146,7 @@ + uint32_t dataSize = getULong(pPsData + position, bigEndian); + position += 4; + if (dataSize > static_cast<uint32_t>(sizePsData - position)) { +-#ifndef SUPPRESS_WARNINGS ++#ifdef DEBUG + std::cerr << "Warning: " + << "Invalid Photoshop IRB data size " + << dataSize << " or extended Photoshop IRB\n"; +@@ -176,7 +176,7 @@ + std::cerr << "pPsData doesn't start with '8BIM'\n"; + #endif + if (position < sizePsData) { +-#ifndef SUPPRESS_WARNINGS ++#ifdef DEBUG + std::cerr << "Warning: " + << "Invalid or extended Photoshop IRB\n"; + #endif + diff --git a/src/exiv2.mk b/src/exiv2.mk new file mode 100644 index 0000000..acddd92 --- /dev/null +++ b/src/exiv2.mk @@ -0,0 +1,54 @@ +# Copyright (C) 2009 Volker Grabsch +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject +# to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Exiv2 +PKG := exiv2 +$(PKG)_IGNORE := +$(PKG)_VERSION := 0.18.2 +$(PKG)_CHECKSUM := 452c824a780843a568eeef68f30785ee4141b0a8 +$(PKG)_SUBDIR := exiv2-$($(PKG)_VERSION) +$(PKG)_FILE := exiv2-$($(PKG)_VERSION).tar.gz +$(PKG)_WEBSITE := http://www.exiv2.org/ +$(PKG)_URL := http://www.exiv2.org/$($(PKG)_FILE) +$(PKG)_DEPS := gcc libiconv zlib expat + +define $(PKG)_UPDATE + wget -q -O- 'http://www.exiv2.org/download.html' | \ + grep 'href="exiv2-' | \ + $(SED) -n 's,.*exiv2-\([0-9][^>]*\)\.tar.*,\1,p' | \ + head -1 +endef + +define $(PKG)_BUILD + # workaround for the missing snprintf() in the <cstdio> of GCC-4.4.0 + $(SED) 's,#include <cstdio>,#include <stdio.h>,' -i '$(1)/xmpsdk/src/XMPMeta.cpp' + # wine confuses the cross-compiling detection, so set it explicitly + $(SED) 's,cross_compiling=no,cross_compiling=yes,' -i '$(1)/configure' + cd '$(1)' && ./configure \ + --host='$(TARGET)' \ + --disable-shared \ + --prefix='$(PREFIX)/$(TARGET)' \ + --disable-visibility \ + --disable-nls \ + --with-expat + $(MAKE) -C '$(1)/xmpsdk/src' -j '$(JOBS)' + $(MAKE) -C '$(1)/src' -j '$(JOBS)' install-lib +endef diff --git a/src/glib.mk b/src/glib.mk index 1f6072f..2c557cb 100644 --- a/src/glib.mk +++ b/src/glib.mk @@ -22,8 +22,8 @@ # GLib PKG := glib $(PKG)_IGNORE := -$(PKG)_VERSION := 2.22.3 -$(PKG)_CHECKSUM := 185d5b80adef96019daf7402cc6762cc4d37470d +$(PKG)_VERSION := 2.23.1 +$(PKG)_CHECKSUM := 2cf7af4f0a4ac9b4f2b9e95661d94985e64c7c5e $(PKG)_SUBDIR := glib-$($(PKG)_VERSION) $(PKG)_FILE := glib-$($(PKG)_VERSION).tar.bz2 $(PKG)_WEBSITE := http://www.gtk.org/ @@ -22,8 +22,8 @@ # GTK+ PKG := gtk $(PKG)_IGNORE := -$(PKG)_VERSION := 2.19.1 -$(PKG)_CHECKSUM := daf7252027555212091896d96244fdc141ebbfa8 +$(PKG)_VERSION := 2.19.2 +$(PKG)_CHECKSUM := c4e04159f105215314933f6b9bebf4b987c51b28 $(PKG)_SUBDIR := gtk+-$($(PKG)_VERSION) $(PKG)_FILE := gtk+-$($(PKG)_VERSION).tar.bz2 $(PKG)_WEBSITE := http://www.gtk.org/ diff --git a/src/jpeg.mk b/src/jpeg.mk index 503a899..798fc05 100644 --- a/src/jpeg.mk +++ b/src/jpeg.mk @@ -37,6 +37,8 @@ define $(PKG)_UPDATE endef define $(PKG)_BUILD + # avoid redefinition of INT32 + $(SED) 's,typedef long INT32;,#include <basetsd.h>,' -i '$(1)/jmorecfg.h' cd '$(1)' && ./configure \ CC='$(TARGET)-gcc' RANLIB='$(TARGET)-ranlib' \ --disable-shared \ diff --git a/src/libpano13.mk b/src/libpano13.mk new file mode 100644 index 0000000..59447f9 --- /dev/null +++ b/src/libpano13.mk @@ -0,0 +1,55 @@ +# Copyright (C) 2009 Volker Grabsch +# Bart van Andel +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject +# to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# libpano13 +PKG := libpano13 +$(PKG)_IGNORE := +$(PKG)_VERSION := 2.9.15_beta3 +$(PKG)_CHECKSUM := 963a7c18b57144b174df063031ed376133a6e522 +$(PKG)_SUBDIR := libpano13-$(word 1,$(subst _, ,$($(PKG)_VERSION))) +$(PKG)_FILE := libpano13-$($(PKG)_VERSION).tar.gz +$(PKG)_WEBSITE := http://panotools.sourceforge.net/ +$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/panotools/libpano13/libpano13-$($(PKG)_VERSION)/$($(PKG)_FILE) +$(PKG)_DEPS := gcc jpeg tiff libpng zlib + +define $(PKG)_UPDATE + wget -q -O- 'http://sourceforge.net/api/file/index/project-id/96188/rss?path=/libpano13' | \ + grep '/download</link>' | \ + $(SED) -n 's,.*libpano13-\([0-9].*\)\.tar.*,\1,p' | \ + tail -1 +endef + +define $(PKG)_BUILD + $(SED) 's,WINDOWSX\.H,windowsx.h,' -i '$(1)/sys_win.h' + $(SED) 's,\$${WINDRES-windres},$(TARGET)-windres,' -i '$(1)/build/win32/compile-resource' + $(SED) 's,m4 -DBUILDNUMBER=\$$buildnumber,$(SED) "s/BUILDNUMBER/\$$buildnumber/g",' -i '$(1)/build/win32/compile-resource' + $(SED) 's,mv.*libpano13\.dll.*,,' -i '$(1)/Makefile.in' + cd '$(1)' && ./configure \ + --prefix='$(PREFIX)/$(TARGET)' \ + --host='$(TARGET)' \ + --disable-shared \ + --with-jpeg='$(PREFIX)/$(TARGET)'/lib \ + --with-tiff='$(PREFIX)/$(TARGET)'/lib \ + --with-png='$(PREFIX)/$(TARGET)'/lib \ + --with-zlib='$(PREFIX)/$(TARGET)'/lib + $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= man_MANS= +endef diff --git a/src/pdflib_lite.mk b/src/pdflib_lite.mk index fcf5948..09fb16d 100644 --- a/src/pdflib_lite.mk +++ b/src/pdflib_lite.mk @@ -32,7 +32,7 @@ $(PKG)_URL := http://www.pdflib.com/binaries/PDFlib/$(subst .,,$(word 1,$(s $(PKG)_DEPS := gcc define $(PKG)_UPDATE - wget -q -O- 'http://www.pdflib.com/download/free-software/pdflib-lite/' | \ + wget -q -O- 'http://www.pdflib.com/products/pdflib-lite-7/' | \ $(SED) -n 's,.*PDFlib-Lite-\([0-9][^>]*\)\.tar.*,\1,p' | \ head -1 endef |