From f2d44a2097ebb260a382101f84033ea8540bfbd7 Mon Sep 17 00:00:00 2001 From: Giancarlo Dessì Date: Fri, 24 Jun 2022 10:59:06 +0100 Subject: gis/libecwj2: Added (translator library for raster geospatial data) Signed-off-by: Dave Woodfall Signed-off-by: Willy Sudiarto Raharjo --- gis/libecwj2/README | 33 +++ .../libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch | 16 ++ gis/libecwj2/libecwj2-3.3-msvc90-fixes.patch | 239 +++++++++++++++++++++ gis/libecwj2/libecwj2-3.3-wcharfix.patch | 15 ++ gis/libecwj2/libecwj2.SlackBuild | 126 +++++++++++ gis/libecwj2/libecwj2.info | 10 + gis/libecwj2/slack-desc | 19 ++ 7 files changed, 458 insertions(+) create mode 100644 gis/libecwj2/README create mode 100644 gis/libecwj2/libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch create mode 100644 gis/libecwj2/libecwj2-3.3-msvc90-fixes.patch create mode 100644 gis/libecwj2/libecwj2-3.3-wcharfix.patch create mode 100644 gis/libecwj2/libecwj2.SlackBuild create mode 100644 gis/libecwj2/libecwj2.info create mode 100644 gis/libecwj2/slack-desc (limited to 'gis') diff --git a/gis/libecwj2/README b/gis/libecwj2/README new file mode 100644 index 0000000000..83bb4f895c --- /dev/null +++ b/gis/libecwj2/README @@ -0,0 +1,33 @@ +libecwj2 is a library that gives support to GDAL for reading, import, +and convert raster geospatial data in non-free ECW and JPEG 2000 +formats. This library was released as free and open source in 2006 by +Earth Resource Mapping, formerly owner of ECW patents. + +ECW (Enhanced Compression Wavelet) is a full proprietary standard of +compression image format. +JPEG 2000 (or JP2) is a similar standard under free concession but +protected by patents in some parts. + +Both the formats are more powerful than other formats in lossy +compression of large image data without significant losses of quality, +but are mainly accessible through proprietary software, specially to +manage geospatial data. + +libecwj2 is the only one free and open source library that includes +the support to these formats in GDAL and indirectly in platforms that +require it as dependency (i.e. QGIS and Orfeo Toolbox). GDAL can be +also used to convert ECW or JP2 files in other graphic formats. + +After the installation, to apply the support to ECW/JP2 formats, GDAL +must be rebuilt without any other setting: libecwjp2 is an optional +dependency autodetected. + +To verify if the plugin is enabled, you can launch the following +command: + + $ gdalinfo --formats | grep ECW + +If the plugin is successfully enabled, the command return + + ECW -raster- (rw): ERDAS Compressed Wavelets (SDK 3.x) + JP2ECW -raster,vector- (rw+v): ERDAS JPEG2000 (SDK 3.x) diff --git a/gis/libecwj2/libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch b/gis/libecwj2/libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch new file mode 100644 index 0000000000..5489030839 --- /dev/null +++ b/gis/libecwj2/libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch @@ -0,0 +1,16 @@ +--- Source/C/NCSUtil/malloc.c.ori 2010-02-02 00:09:24.000000000 +0100 ++++ Source/C/NCSUtil/malloc.c 2010-02-02 00:17:13.000000000 +0100 +@@ -390,7 +390,12 @@ + #else /* SOLARIS */ + + #ifdef LINUX +- return(sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE)); ++ long nPages = sysconf(_SC_PHYS_PAGES); ++ long nPageSize = sysconf(_SC_PAGESIZE); ++ if (nPages > INT_MAX / nPageSize) ++ return INT_MAX; ++ else ++ return (INT32)(nPages * nPageSize); + #elif defined MACOSX + return(128*1024*1024); + diff --git a/gis/libecwj2/libecwj2-3.3-msvc90-fixes.patch b/gis/libecwj2/libecwj2-3.3-msvc90-fixes.patch new file mode 100644 index 0000000000..b58cab10d6 --- /dev/null +++ b/gis/libecwj2/libecwj2-3.3-msvc90-fixes.patch @@ -0,0 +1,239 @@ +diff -r 486075d14769 -r d53918598fbf libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJP2File.cpp +--- libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJP2File.cpp Wed Sep 30 11:55:26 2009 +0100 ++++ libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJP2File.cpp Wed Sep 30 12:20:09 2009 +0100 +@@ -137,7 +137,7 @@ + m_bCodestreamOnly = false; + + m_eCompressionOrder = CNCSJPCProgressionOrderType::RPCL; +- m_nDecompressionLayers = CNCSJPCBuffer::MAXUINT16; ++ m_nDecompressionLayers = CNCSJPCBuffer::NCS_MAXUINT16; + + m_nNextLine = 0; + //Default geodata usage - was JP2_GEODATA_USE_WLD_GML_PCS +diff -r 486075d14769 -r d53918598fbf libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCBuffer.cpp +--- libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCBuffer.cpp Wed Sep 30 11:55:26 2009 +0100 ++++ libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCBuffer.cpp Wed Sep 30 12:20:09 2009 +0100 +@@ -26,19 +26,19 @@ + + //void * memcpy_amd(void *dest, const void *src, size_t n); + +-const UINT32 CNCSJPCBuffer::MAXUINT8 = (unsigned)0xff; +-const UINT32 CNCSJPCBuffer::MAXUINT16 = (unsigned)0xffff; +-const UINT32 CNCSJPCBuffer::MAXUINT32 = (unsigned)0xffffffff; +-const UINT32 CNCSJPCBuffer::MINUINT8 = 0; +-const UINT32 CNCSJPCBuffer::MINUINT16 = 0; +-const UINT32 CNCSJPCBuffer::MINUINT32 = 0; ++const UINT32 CNCSJPCBuffer::NCS_MAXUINT8 = (unsigned)0xff; ++const UINT32 CNCSJPCBuffer::NCS_MAXUINT16 = (unsigned)0xffff; ++const UINT32 CNCSJPCBuffer::NCS_MAXUINT32 = (unsigned)0xffffffff; ++const UINT32 CNCSJPCBuffer::NCS_MINUINT8 = 0; ++const UINT32 CNCSJPCBuffer::NCS_MINUINT16 = 0; ++const UINT32 CNCSJPCBuffer::NCS_MINUINT32 = 0; + +-const UINT32 CNCSJPCBuffer::MAXINT8 = 0x7f; +-const UINT32 CNCSJPCBuffer::MAXINT16 = 0x7fff; +-const UINT32 CNCSJPCBuffer::MAXINT32 = 0x7fffffff; +-const INT32 CNCSJPCBuffer::MININT8 = (-1 * (signed)CNCSJPCBuffer::MAXINT8 - 1); +-const INT32 CNCSJPCBuffer::MININT16 = (-1 * (signed)CNCSJPCBuffer::MAXINT16 - 1); +-const INT32 CNCSJPCBuffer::MININT32 = (-1 * (signed)CNCSJPCBuffer::MAXINT32 - 1); ++const UINT32 CNCSJPCBuffer::NCS_MAXINT8 = 0x7f; ++const UINT32 CNCSJPCBuffer::NCS_MAXINT16 = 0x7fff; ++const UINT32 CNCSJPCBuffer::NCS_MAXINT32 = 0x7fffffff; ++const INT32 CNCSJPCBuffer::NCS_MININT8 = (-1 * (signed)CNCSJPCBuffer::NCS_MAXINT8 - 1); ++const INT32 CNCSJPCBuffer::NCS_MININT16 = (-1 * (signed)CNCSJPCBuffer::NCS_MAXINT16 - 1); ++const INT32 CNCSJPCBuffer::NCS_MININT32 = (-1 * (signed)CNCSJPCBuffer::NCS_MAXINT32 - 1); + + const UINT32 CNCSJPCBuffer::AT_OWNER = (1 << 0); + const UINT32 CNCSJPCBuffer::AT_CHILD = (1 << 1); +@@ -308,27 +308,27 @@ + switch(m_eType) { + case CNCSJPCBuffer::BT_INT16: + // Optimise some common cases +- if(nMin == MINUINT8 && nMax == MAXUINT8) { ++ if(nMin == NCS_MINUINT8 && nMax == NCS_MAXUINT8) { + // UINT8 range + for(x = 0; x < nWidth; x++) { + INT16 v = ((INT16*)m_pBuffer)[x]; + if(v & 0xff00) { // Top bit is sign bit, so this tests for both >nMax & (INT16)MAXUINT8) { +- ((INT16*)m_pBuffer)[x] = MAXUINT8; +- } else if(v < (INT16)MINUINT8) { +- ((INT16*)m_pBuffer)[x] = MINUINT8; ++ if(v > (INT16)NCS_MAXUINT8) { ++ ((INT16*)m_pBuffer)[x] = NCS_MAXUINT8; ++ } else if(v < (INT16)NCS_MINUINT8) { ++ ((INT16*)m_pBuffer)[x] = NCS_MINUINT8; + } + } + } +- } else if(nMin == MININT8 && nMax == MAXINT8) { ++ } else if(nMin == NCS_MININT8 && nMax == NCS_MAXINT8) { + // INT8 range + for(x = 0; x < nWidth; x++) { + INT16 v = ((INT16*)m_pBuffer)[x]; + if(v & 0xff80) { // Top bit is sign bit, so this tests for both >nMax & (INT16)MAXINT8) { +- ((INT16*)m_pBuffer)[x] = MAXINT8; +- } else if(v < (INT16)MININT8) { +- ((INT16*)m_pBuffer)[x] = MININT8; ++ if(v > (INT16)NCS_MAXINT8) { ++ ((INT16*)m_pBuffer)[x] = NCS_MAXINT8; ++ } else if(v < (INT16)NCS_MININT8) { ++ ((INT16*)m_pBuffer)[x] = NCS_MININT8; + } + } + } +@@ -345,27 +345,27 @@ + break; + case CNCSJPCBuffer::BT_INT32: + // Optimise some common cases +- if(nMin == MINUINT16 && nMax == MAXUINT16) { ++ if(nMin == NCS_MINUINT16 && nMax == NCS_MAXUINT16) { + // UINT16 range + for(x = 0; x < nWidth; x++) { + INT32 v = ((INT32*)m_pBuffer)[x]; + if(v & 0xffff0000) { // Top bit is sign bit, so this tests for both >nMax & (INT32)MAXUINT16) { +- ((INT32*)m_pBuffer)[x] = MAXUINT16; +- } else if(v < (INT32)MINUINT16) { +- ((INT32*)m_pBuffer)[x] = MINUINT16; ++ if(v > (INT32)NCS_MAXUINT16) { ++ ((INT32*)m_pBuffer)[x] = NCS_MAXUINT16; ++ } else if(v < (INT32)NCS_MINUINT16) { ++ ((INT32*)m_pBuffer)[x] = NCS_MINUINT16; + } + } + } +- } else if(nMin == MININT16 && nMax == MAXINT16) { ++ } else if(nMin == NCS_MININT16 && nMax == NCS_MAXINT16) { + // INT16 range + for(x = 0; x < nWidth; x++) { + INT32 v = ((INT32*)m_pBuffer)[x]; + if(v & 0xffff8000) { // Top bit is sign bit, so this tests for both >nMax & (INT32)MAXINT16) { +- ((INT32*)m_pBuffer)[x] = MAXINT16; +- } else if(v < (INT32)MININT16) { +- ((INT32*)m_pBuffer)[x] = MININT16; ++ if(v > (INT32)NCS_MAXINT16) { ++ ((INT32*)m_pBuffer)[x] = NCS_MAXINT16; ++ } else if(v < (INT32)NCS_MININT16) { ++ ((INT32*)m_pBuffer)[x] = NCS_MININT16; + } + } + } +@@ -403,13 +403,13 @@ + return(Clip(NCSCeil(fMin), NCSFloor(fMax))); + break; + case CNCSJPCBuffer::BT_IEEE4: +- if(fMin == MINUINT8 && fMax == MAXUINT8) { ++ if(fMin == NCS_MINUINT8 && fMax == NCS_MAXUINT8) { + for(x = 0; x < nWidth; x++) { + IEEE4 v = ((IEEE4*)m_pBuffer)[x]; +- if(v > MAXUINT8) { +- ((IEEE4*)m_pBuffer)[x] = MAXUINT8; +- } else if(v < MINUINT8) { +- ((IEEE4*)m_pBuffer)[x] = MINUINT8; ++ if(v > NCS_MAXUINT8) { ++ ((IEEE4*)m_pBuffer)[x] = NCS_MAXUINT8; ++ } else if(v < NCS_MINUINT8) { ++ ((IEEE4*)m_pBuffer)[x] = NCS_MINUINT8; + } + } + } else { +diff -r 486075d14769 -r d53918598fbf libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCPLTMarker.cpp +--- libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCPLTMarker.cpp Wed Sep 30 11:55:26 2009 +0100 ++++ libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCPLTMarker.cpp Wed Sep 30 12:20:09 2009 +0100 +@@ -173,7 +173,7 @@ + nPrevHeaderLength = TMP.m_nHeaderLength; + TMP.m_nHeaderLength += (UINT32)nTotalHeaderLength; + } +- if(nTotalHeaderLength > CNCSJPCBuffer::MAXUINT32) { ++ if(nTotalHeaderLength > CNCSJPCBuffer::NCS_MAXUINT32) { + // Too big to store cumulated length in the PacketLength struct, so + // set it back to false and reparse the entire PLT + m_bCumulativeLengths = false; +@@ -202,7 +202,7 @@ + nPrevHeaderLength = TMP.m_nHeaderLength; + TMP.m_nHeaderLength += nTotalHeaderLength; + } +- if(nTotalHeaderLength > CNCSJPCBuffer::MAXUINT32) { ++ if(nTotalHeaderLength > CNCSJPCBuffer::NCS_MAXUINT32) { + // Too big to store cumulated length in the PacketLength struct, so + // set it back to false and reparse the entire PLT + m_bCumulativeLengths = false; +diff -r 486075d14769 -r d53918598fbf libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCT1Coder.cpp +--- libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCT1Coder.cpp Wed Sep 30 11:55:26 2009 +0100 ++++ libecwj2-3.3/Source/C/NCSEcw/NCSJP2/NCSJPCT1Coder.cpp Wed Sep 30 12:20:09 2009 +0100 +@@ -917,7 +917,7 @@ + + int passno=0; + int passtype; +- INT32 nMax = CNCSJPCBuffer::MININT32; ++ INT32 nMax = CNCSJPCBuffer::NCS_MININT32; + + UINT32 nWidth = pDecBuf->GetWidth(); + UINT32 nHeight = pDecBuf->GetHeight(); +@@ -956,7 +956,7 @@ + UINT32 nSubWidth = nWidth / 8; + + __m128 mm7 = _mm_set1_ps(fRatio); +- __m128i mm4 = _mm_set1_epi16((short)CNCSJPCBuffer::MININT16); ++ __m128i mm4 = _mm_set1_epi16((short)CNCSJPCBuffer::NCS_MININT16); + + for(UINT32 y = 0; y < nHeight; y++) { + INT16 *pSrc = (INT16*)pDecBuf->GetPtr() + y * nDecStep; +@@ -1008,7 +1008,7 @@ + UINT32 nSubWidth = nWidth / 4; + + __m128 mm7 = _mm_set1_ps(fRatio); +- __m64 mm4 = _mm_set1_pi16((short)CNCSJPCBuffer::MININT16); ++ __m64 mm4 = _mm_set1_pi16((short)CNCSJPCBuffer::NCS_MININT16); + + for(UINT32 y = 0; y < nHeight; y++) { + INT16 *pSrc = (INT16*)pDecBuf->GetPtr() + y * nDecStep; +diff -r 486075d14769 -r d53918598fbf libecwj2-3.3/Source/include/NCSJPCBuffer.h +--- libecwj2-3.3/Source/include/NCSJPCBuffer.h Wed Sep 30 11:55:26 2009 +0100 ++++ libecwj2-3.3/Source/include/NCSJPCBuffer.h Wed Sep 30 12:20:09 2009 +0100 +@@ -48,30 +48,30 @@ + class NCSJPC_EXPORT_ALL CNCSJPCBuffer: public CNCSJPCRect { + public: + /** Maximum UINT8 value */ +- static const UINT32 MAXUINT8; ++ static const UINT32 NCS_MAXUINT8; + /** Maximum UINT16 value */ +- static const UINT32 MAXUINT16; ++ static const UINT32 NCS_MAXUINT16; + /** Maximum UINT32 value */ +- static const UINT32 MAXUINT32; ++ static const UINT32 NCS_MAXUINT32; + /** Minimum UINT8 value */ +- static const UINT32 MINUINT8; ++ static const UINT32 NCS_MINUINT8; + /** Minimum UINT16 value */ +- static const UINT32 MINUINT16; ++ static const UINT32 NCS_MINUINT16; + /** Minimum UINT32 value */ +- static const UINT32 MINUINT32; ++ static const UINT32 NCS_MINUINT32; + + /** Maximum INT8 value */ +- static const UINT32 MAXINT8; ++ static const UINT32 NCS_MAXINT8; + /** Maximum INT16 value */ +- static const UINT32 MAXINT16; ++ static const UINT32 NCS_MAXINT16; + /** Maximum INT32 value */ +- static const UINT32 MAXINT32; ++ static const UINT32 NCS_MAXINT32; + /** Minimum INT8 value */ +- static const INT32 MININT8; ++ static const INT32 NCS_MININT8; + /** Minimum INT16 value */ +- static const INT32 MININT16; ++ static const INT32 NCS_MININT16; + /** Minimum INT32 value */ +- static const INT32 MININT32; ++ static const INT32 NCS_MININT32; + + /** + * SystemInfo class - Some basic system capabilities we care about. diff --git a/gis/libecwj2/libecwj2-3.3-wcharfix.patch b/gis/libecwj2/libecwj2-3.3-wcharfix.patch new file mode 100644 index 0000000000..b00729c47c --- /dev/null +++ b/gis/libecwj2/libecwj2-3.3-wcharfix.patch @@ -0,0 +1,15 @@ +diff -Nur libecwj2-3.3-orig/Source/C/NCSUtil/NCSPrefsXML.cpp libecwj2-3.3-wcharfix/Source/C/NCSUtil/NCSPrefsXML.cpp +--- libecwj2-3.3-orig/Source/C/NCSUtil/NCSPrefsXML.cpp 2006-07-03 03:15:12.000000000 +0200 ++++ libecwj2-3.3-wcharfix/Source/C/NCSUtil/NCSPrefsXML.cpp 2012-09-12 21:51:19.477487746 +0200 +@@ -32,7 +32,11 @@ + } else { + char *pHomeDir = getenv("HOME"); + if( pHomeDir ) { ++#ifdef NCS_BUILD_UNICODE ++ sUserPrefsFile.Format( NCS_T("%s%ls"), pHomeDir, NCS_T("/.erm/ncsuserprefs.xml") ); ++#else + sUserPrefsFile.Format( NCS_T("%s%s"), pHomeDir, NCS_T("/.erm/ncsuserprefs.xml") ); ++#endif + } else { + sUserPrefsFile = NCS_T("/etc/erm/ncsuserprefs.xml"); + } diff --git a/gis/libecwj2/libecwj2.SlackBuild b/gis/libecwj2/libecwj2.SlackBuild new file mode 100644 index 0000000000..7a6cfd26c4 --- /dev/null +++ b/gis/libecwj2/libecwj2.SlackBuild @@ -0,0 +1,126 @@ +#!/bin/bash + +# Slackware build script for libecwj2 + +# Copyright 2014-2022 Giancarlo Dessì, Cagliari IT +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=libecwj2 +VERSION=${VERSION:-3.3} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} +SRCVER=2006-09-06 + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION + +# Create $PKG/usr/include because make install does not do it +mkdir $PKG/usr +mkdir $PKG/usr/include + +unzip $CWD/$PRGNAM-$VERSION-$SRCVER.zip +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Apply some patches to the original source code +# thanks to Authors +# see http://osgeo-org.1560.x6.nabble.com/ECW-support-on-Fedora-Linux-error-td4991388.html +# and http://wiki.openstreetmap.org/wiki/ECW#Howto_install_gdal_with_ECW_support + +# Patch downloaded from http://trac.osgeo.org/gdal/raw-attachment/ticket/3162/libecwj2-3.3-msvc90-fixes.patch +patch -p1 <$CWD/libecwj2-3.3-msvc90-fixes.patch + +# Patch downloaded from http://osgeo-org.1560.x6.nabble.com/attachment/5001530/0/libecwj2-3.3-wcharfix.patch +patch -p0 <$CWD/libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch + +# Patch downloaded from http://trac.osgeo.org/gdal/raw-attachment/ticket/3366/libecwj2-3.3-NCSPhysicalMemorySize-Linux.patch +patch -p1 <$CWD/libecwj2-3.3-wcharfix.patch + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make +make install DESTDIR=$PKG + +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a License.txt Build.txt SDK.pdf $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/gis/libecwj2/libecwj2.info b/gis/libecwj2/libecwj2.info new file mode 100644 index 0000000000..259b0f701e --- /dev/null +++ b/gis/libecwj2/libecwj2.info @@ -0,0 +1,10 @@ +PRGNAM="libecwj2" +VERSION="3.3" +HOMEPAGE="https://sourceforge.net/projects/libecw-legacy/" +DOWNLOAD="https://sourceforge.net/projects/libecw-legacy/files/libecwj2-3.3-2006-09-06.zip/download" +MD5SUM="acc04e07153c2a2a6595b3e2ebf34432" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Giancarlo Dessì" +EMAIL="slack@giand.it" diff --git a/gis/libecwj2/slack-desc b/gis/libecwj2/slack-desc new file mode 100644 index 0000000000..eb8dd0fafa --- /dev/null +++ b/gis/libecwj2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +libecwj2: libecwj2 (translator library for raster geospatial data) +libecwj2: +libecwj2: libecwj2 is an old library and the only one that extends the support +libecwj2: of GDAL to non-free graphic formats ECW and JPEG 2000. +libecwj2: +libecwj2: +libecwj2: +libecwj2: +libecwj2: Repository: https://sourceforge.net/projects/libecw-legacy/ +libecwj2: +libecwj2: -- cgit v1.2.3-79-gdb01