summaryrefslogtreecommitdiff
path: root/community/ted
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-02-06 23:14:50 +0000
committerroot <root@rshg054.dnsready.net>2012-02-06 23:14:50 +0000
commit1fa6edfba8d1e31ca1c0d59e8202cd3c62ccf393 (patch)
tree8d7ccc2dc9d08a4c3cde26aa01c887e9a0fc2fa1 /community/ted
parentbdb5b3e66f6afa586ea147f69af5e4ba388f7615 (diff)
Mon Feb 6 23:14:50 UTC 2012
Diffstat (limited to 'community/ted')
-rw-r--r--community/ted/PKGBUILD39
-rw-r--r--community/ted/ted-2.21-libpng15.patch423
2 files changed, 445 insertions, 17 deletions
diff --git a/community/ted/PKGBUILD b/community/ted/PKGBUILD
index 0a62bc597..3695c15dc 100644
--- a/community/ted/PKGBUILD
+++ b/community/ted/PKGBUILD
@@ -1,31 +1,36 @@
-# $Id: PKGBUILD 9087 2010-01-23 13:12:23Z foutrelis $
+# $Id: PKGBUILD 63752 2012-02-05 12:11:51Z ibiru $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=ted
pkgver=2.21
-pkgrel=2
+pkgrel=4
pkgdesc="An easy rich text processor (with footnote support)"
arch=('i686' 'x86_64')
url="http://www.nllgg.nl/Ted/"
depends=('bash' 'libtiff' 'libxmu' 'libxpm' 'libpng' 'gtk2')
license=('GPL')
-source=(ftp://ftp.nluug.nl/pub/editors/$pkgname/$pkgname-$pkgver.src.tar.gz)
-md5sums=('34ae855938a3b364eb587cca504ba356')
+source=(ftp://ftp.nluug.nl/pub/editors/$pkgname/$pkgname-$pkgver.src.tar.gz
+ ted-2.21-libpng15.patch)
+md5sums=('34ae855938a3b364eb587cca504ba356'
+ '0c339b0fa7aec6b150e07e9027cd360c')
build() {
- cd $srcdir/Ted-$pkgver
- sed -i "s|--with-GTK|--with-GTK --prefix=/usr/share|g" Makefile || return 1
- # libpng 1.4
- sed -i "s|png_info_init|png_create_info_struct|g" bitmap/bmpng.c || return 1
- make compile.shared || return 1
- make package.shared || return 1
- mkdir -p $pkgdir/usr/share/
- cd $pkgdir/usr/share/
- tar -zxvf $srcdir/Ted-$pkgver/tedPackage/ted-$pkgver-linux-$CARCH.tar.gz || return 1
+ cd "$srcdir/Ted-$pkgver"
+ sed -i "s|--with-GTK|--with-GTK --prefix=/usr/share|g" Makefile
+ patch -p0 -i ../ted-2.21-libpng15.patch
+ make compile.shared
+ make package.shared
+}
+
+package() {
+ cd "$srcdir/Ted-$pkgver"
+ mkdir -p "$pkgdir/usr/share/"
+ cd "$pkgdir/usr/share/"
+ tar -zxvf "$srcdir/Ted-$pkgver/tedPackage/ted-$pkgver-linux-$CARCH.tar.gz"
mv bin ../
- mkdir -p $pkgdir/usr/share/man/man1
- cd $pkgdir/usr/share/Ted/
- mv Ted.1 rtf2pdf.1 rtf2ps.1 ../../share/man/man1/ || return 1
+ mkdir -p "$pkgdir/usr/share/man/man1"
+ cd "$pkgdir/usr/share/Ted/"
+ mv Ted.1 rtf2pdf.1 rtf2ps.1 ../../share/man/man1/
sed -i "s|usr/local/afm|usr/share/Ted/afm|g" gsafm.sh
- mv *.sh $pkgdir/usr/bin/ || return 1
+ mv *.sh "$pkgdir/usr/bin/"
}
diff --git a/community/ted/ted-2.21-libpng15.patch b/community/ted/ted-2.21-libpng15.patch
new file mode 100644
index 000000000..afd30f9a4
--- /dev/null
+++ b/community/ted/ted-2.21-libpng15.patch
@@ -0,0 +1,423 @@
+This patch is from netbsd pkgsrc
+
+ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/editors/ted/patches/
+
+--- bitmap/bmpng.c
++++ bitmap/bmpng.c
+@@ -20,23 +20,32 @@
+ /* */
+ /************************************************************************/
+
+-static int bpPngiToBitmap( const png_info * pngi,
++static int bpPngiToBitmap( const png_structp pngp,
++ png_info * pngi,
+ BitmapDescription * bd )
+ {
+ unsigned int col;
++ png_uint_32 res_x, res_y;
++ int unit_type= 0;
+
+- bd->bdPixelsWide= pngi->width;
+- bd->bdPixelsHigh= pngi->height;
++ bd->bdPixelsWide= png_get_image_width( pngp, pngi );
++ bd->bdPixelsHigh= png_get_image_height( pngp, pngi );
+ bd->bdHasAlpha= 0;
+
+- switch( pngi->color_type )
++ switch( png_get_color_type( pngp, pngi ) )
+ {
+ case PNG_COLOR_TYPE_PALETTE:
++ {
++ int num_palette;
++ png_colorp palette;
++
++ png_get_PLTE( pngp, pngi, &palette, &num_palette );
++
+ bd->bdColorEncoding= BMcoRGB8PALETTE;
+- bd->bdColorCount= pngi->num_palette;
++ bd->bdColorCount= num_palette;
+ bd->bdBitsPerSample= 8;
+ bd->bdSamplesPerPixel= 3;
+- bd->bdBitsPerPixel= pngi->bit_depth;
++ bd->bdBitsPerPixel= png_get_bit_depth( pngp, pngi );
+
+ bd->bdRGB8Palette= (RGB8Color *)
+ malloc( bd->bdColorCount* sizeof(RGB8Color) );
+@@ -46,47 +55,51 @@ static int bpPngiToBitmap( const png_inf
+
+ for ( col= 0; col < bd->bdColorCount; col++ )
+ {
+- bd->bdRGB8Palette[col].rgb8Red= pngi->palette[col].red;
+- bd->bdRGB8Palette[col].rgb8Green= pngi->palette[col].green;
+- bd->bdRGB8Palette[col].rgb8Blue= pngi->palette[col].blue;
++ bd->bdRGB8Palette[col].rgb8Red= palette[col].red;
++ bd->bdRGB8Palette[col].rgb8Green= palette[col].green;
++ bd->bdRGB8Palette[col].rgb8Blue= palette[col].blue;
+ bd->bdRGB8Palette[col].rgb8Alpha= 0;
+ }
++ }
+ break;
+
+ case PNG_COLOR_TYPE_RGB:
+ bd->bdColorEncoding= BMcoRGB;
+- bd->bdBitsPerSample= pngi->bit_depth;
+- bd->bdSamplesPerPixel= pngi->channels;
+- bd->bdBitsPerPixel= pngi->pixel_depth;
++ bd->bdBitsPerSample= png_get_bit_depth( pngp, pngi );
++ bd->bdSamplesPerPixel= png_get_channels( pngp, pngi );
++ bd->bdBitsPerPixel= bd->bdSamplesPerPixel* bd->bdBitsPerSample;
+ break;
+
+ case PNG_COLOR_TYPE_GRAY:
+ bd->bdColorEncoding= BMcoWHITEBLACK;
+- bd->bdBitsPerSample= pngi->bit_depth;
+- bd->bdSamplesPerPixel= pngi->channels;
+- bd->bdBitsPerPixel= pngi->pixel_depth;
++ bd->bdBitsPerSample= png_get_bit_depth( pngp, pngi );
++ bd->bdSamplesPerPixel= png_get_channels( pngp, pngi );
++ bd->bdBitsPerPixel= bd->bdSamplesPerPixel* bd->bdBitsPerSample;
+ break;
+
+ case PNG_COLOR_TYPE_RGB_ALPHA:
+ bd->bdHasAlpha= 1;
+ bd->bdColorEncoding= BMcoRGB;
+- bd->bdBitsPerSample= pngi->bit_depth;
+- bd->bdSamplesPerPixel= pngi->channels;
+- bd->bdBitsPerPixel= pngi->pixel_depth;
++ bd->bdBitsPerSample= png_get_bit_depth( pngp, pngi );
++ bd->bdSamplesPerPixel= png_get_channels( pngp, pngi );
++ bd->bdBitsPerPixel= bd->bdSamplesPerPixel* bd->bdBitsPerSample;
+ break;
+
+ case PNG_COLOR_TYPE_GRAY_ALPHA:
+ bd->bdHasAlpha= 1;
+- LDEB(pngi->color_type); return -1;
++ LDEB(png_get_color_type( pngp, pngi )); return -1;
+
+ default:
+- LDEB(pngi->color_type); return -1;
++ LDEB(png_get_color_type( pngp, pngi )); return -1;
+ }
+
+- bd->bdBytesPerRow= pngi->rowbytes;
++ bd->bdBytesPerRow= png_get_rowbytes( pngp, pngi );
+ bd->bdBufferLength= bd->bdBytesPerRow* bd->bdPixelsHigh;
+
+- switch( pngi->phys_unit_type )
++ if ( ! png_get_pHYs( pngp, pngi, &res_x, &res_y, &unit_type ) )
++ { unit_type= PNG_RESOLUTION_UNKNOWN; }
++
++ switch( unit_type )
+ {
+ case PNG_RESOLUTION_UNKNOWN:
+ bd->bdUnit= BMunPIXEL;
+@@ -96,12 +109,12 @@ static int bpPngiToBitmap( const png_inf
+
+ case PNG_RESOLUTION_METER:
+ bd->bdUnit= BMunM;
+- bd->bdXResolution= pngi->x_pixels_per_unit;
+- bd->bdYResolution= pngi->y_pixels_per_unit;
++ bd->bdXResolution= res_x;
++ bd->bdYResolution= res_y;
+ break;
+
+ default:
+- LDEB(pngi->phys_unit_type);
++ LDEB(unit_type);
+ return -1;
+ }
+
+@@ -119,11 +132,11 @@ static int bmPngReadContents( png_info *
+ unsigned char * buffer;
+
+ numberOfPasses= 1;
+- if ( pngi->interlace_type )
++ if ( png_get_interlace_type( png, pngi ) )
+ { numberOfPasses= png_set_interlace_handling( png ); }
+
+- if ( pngi->color_type == PNG_COLOR_TYPE_RGB &&
+- pngi->bit_depth == 16 )
++ if ( png_get_color_type( png, pngi ) == PNG_COLOR_TYPE_RGB &&
++ png_get_bit_depth( png, pngi ) == 16 )
+ {
+ const unsigned short one= 1;
+ const unsigned char * testEndian= (const unsigned char *)&one;
+@@ -133,9 +146,6 @@ static int bmPngReadContents( png_info *
+ }
+
+ png_start_read_image( png );
+- /*
+- png_read_update_info( png, pngi );
+- */
+
+ buffer= (unsigned char *)malloc( bd->bdBufferLength );
+ if ( ! buffer )
+@@ -236,9 +246,9 @@ int bmPngReadPng( BitmapDescription * bd
+
+ png_read_info( pngp, pngip );
+
+- if ( bpPngiToBitmap( pngip, bd ) )
++ if ( bpPngiToBitmap( pngp, pngip, bd ) )
+ {
+- LLLDEB(pngip->color_type,bd->bdColorCount,bd->bdRGB8Palette);
++ LLDEB(bd->bdColorCount,bd->bdRGB8Palette);
+ png_destroy_read_struct( &pngp, &pngip, (png_infop *)0 );
+ return -1;
+ }
+@@ -282,44 +292,43 @@ int bmCanWritePngFile( const BitmapDescr
+
+ static int bpPngiFromBitmap( png_structp png,
+ png_info * pngi,
++ png_colorp * pPalette,
+ const BitmapDescription * bd )
+ {
+- png_info_init( pngi );
+- pngi->width= bd->bdPixelsWide;
+- pngi->height= bd->bdPixelsHigh;
++ int bit_depth;
++ int color_type;
++ png_color_8 sig_bit;
+
+ switch( bd->bdUnit )
+ {
+ case BMunM:
+- pngi->phys_unit_type= PNG_RESOLUTION_METER;
+- pngi->x_pixels_per_unit= bd->bdXResolution;
+- pngi->y_pixels_per_unit= bd->bdYResolution;
+- pngi->valid |= PNG_INFO_pHYs;
++ png_set_pHYs( png, pngi,
++ bd->bdXResolution,
++ bd->bdYResolution,
++ PNG_RESOLUTION_METER);
+ break;
+
+ case BMunINCH:
+- pngi->phys_unit_type= PNG_RESOLUTION_METER;
+- pngi->x_pixels_per_unit= (int)( 39.37* bd->bdXResolution );
+- pngi->y_pixels_per_unit= (int)( 39.37* bd->bdYResolution );
+- pngi->valid |= PNG_INFO_pHYs;
++ png_set_pHYs( png, pngi,
++ (int)( 39.37* bd->bdXResolution ),
++ (int)( 39.37* bd->bdYResolution ),
++ PNG_RESOLUTION_METER);
+ break;
+
+ case BMunPOINT:
+- pngi->phys_unit_type= PNG_RESOLUTION_METER;
+- pngi->x_pixels_per_unit= POINTS_PER_M* bd->bdXResolution;
+- pngi->y_pixels_per_unit= POINTS_PER_M* bd->bdYResolution;
+- pngi->valid |= PNG_INFO_pHYs;
++ png_set_pHYs( png, pngi,
++ POINTS_PER_M* bd->bdXResolution,
++ POINTS_PER_M* bd->bdYResolution,
++ PNG_RESOLUTION_METER);
+ break;
+
+ case BMunPIXEL:
+- pngi->phys_unit_type= PNG_RESOLUTION_UNKNOWN;
+- pngi->x_pixels_per_unit= 1;
+- pngi->y_pixels_per_unit= 1;
++ png_set_pHYs(png, pngi, 1, 1, PNG_RESOLUTION_UNKNOWN);
+ break;
+
+ default:
+ LDEB(bd->bdUnit);
+- pngi->phys_unit_type= PNG_RESOLUTION_UNKNOWN;
++ png_set_pHYs(png, pngi, 1, 1, PNG_RESOLUTION_UNKNOWN);
+ break;
+ }
+
+@@ -329,41 +338,48 @@ static int bpPngiFromBitmap( png_structp
+
+ case BMcoBLACKWHITE:
+ case BMcoWHITEBLACK:
+- pngi->bit_depth= bd->bdBitsPerPixel;
++ bit_depth= bd->bdBitsPerPixel;
+ if ( bd->bdHasAlpha )
+- { pngi->color_type= PNG_COLOR_TYPE_GRAY_ALPHA; }
+- else{ pngi->color_type= PNG_COLOR_TYPE_GRAY; }
+- pngi->sig_bit.gray= bd->bdBitsPerSample;
++ { color_type= PNG_COLOR_TYPE_GRAY_ALPHA; }
++ else{ color_type= PNG_COLOR_TYPE_GRAY; }
++ sig_bit.gray= bd->bdBitsPerSample;
+ break;
+
+ case BMcoRGB:
+- pngi->bit_depth= bd->bdBitsPerSample;
++ bit_depth= bd->bdBitsPerSample;
+ if ( bd->bdHasAlpha )
+- { pngi->color_type= PNG_COLOR_TYPE_RGB_ALPHA; }
+- else{ pngi->color_type= PNG_COLOR_TYPE_RGB; }
+- pngi->sig_bit.red= bd->bdBitsPerSample;
+- pngi->sig_bit.green= bd->bdBitsPerSample;
+- pngi->sig_bit.blue= bd->bdBitsPerSample;
++ { color_type= PNG_COLOR_TYPE_RGB_ALPHA; }
++ else{ color_type= PNG_COLOR_TYPE_RGB; }
++ sig_bit.red= bd->bdBitsPerSample;
++ sig_bit.green= bd->bdBitsPerSample;
++ sig_bit.blue= bd->bdBitsPerSample;
+ break;
+
+ case BMcoRGB8PALETTE:
+- pngi->bit_depth= bd->bdBitsPerPixel;
+- pngi->color_type= PNG_COLOR_TYPE_PALETTE;
++ bit_depth= bd->bdBitsPerPixel;
++ color_type= PNG_COLOR_TYPE_PALETTE;
+
+- pngi->valid |= PNG_INFO_PLTE;
+- pngi->palette= (png_color *)malloc( 256* sizeof( png_color ) );
+- if ( ! pngi->palette )
+- { XDEB(pngi->palette); return -1; }
+- pngi->num_palette= bd->bdColorCount;
+- pngi->sig_bit.red= bd->bdBitsPerSample;
+- pngi->sig_bit.green= bd->bdBitsPerSample;
+- pngi->sig_bit.blue= bd->bdBitsPerSample;
+- for ( i= 0; i < pngi->num_palette; i++ )
++ if ( bd->bdColorCount > PNG_MAX_PALETTE_LENGTH )
+ {
+- pngi->palette[i].red= bd->bdRGB8Palette[i].rgb8Red;
+- pngi->palette[i].green= bd->bdRGB8Palette[i].rgb8Green;
+- pngi->palette[i].blue= bd->bdRGB8Palette[i].rgb8Blue;
++ LLDEB(bd->bdColorCount,PNG_MAX_PALETTE_LENGTH);
++ return -1;
+ }
++
++ *pPalette= (png_color *)malloc( PNG_MAX_PALETTE_LENGTH*
++ sizeof( png_color ) );
++ if ( ! *pPalette )
++ { XDEB(*pPalette); return -1; }
++ sig_bit.red= bd->bdBitsPerSample;
++ sig_bit.green= bd->bdBitsPerSample;
++ sig_bit.blue= bd->bdBitsPerSample;
++ for ( i= 0; i < bd->bdColorCount; i++ )
++ {
++ (*pPalette)[i].red= bd->bdRGB8Palette[i].rgb8Red;
++ (*pPalette)[i].green= bd->bdRGB8Palette[i].rgb8Green;
++ (*pPalette)[i].blue= bd->bdRGB8Palette[i].rgb8Blue;
++ }
++
++ png_set_PLTE( png, pngi, (*pPalette), bd->bdColorCount );
+ break;
+
+ default:
+@@ -371,7 +387,13 @@ static int bpPngiFromBitmap( png_structp
+ return -1;
+ }
+
+- pngi->interlace_type= 0;
++ png_set_sBIT( png, pngi, &sig_bit );
++ png_set_IHDR( png, pngi,
++ bd->bdPixelsWide, bd->bdPixelsHigh,
++ bit_depth, color_type,
++ PNG_INTERLACE_NONE,
++ PNG_COMPRESSION_TYPE_BASE,
++ PNG_FILTER_TYPE_BASE );
+
+ return 0;
+ }
+@@ -395,8 +417,8 @@ static void bmPngWriteContents( png_stru
+ }
+ }
+
+- if ( pngi->color_type == PNG_COLOR_TYPE_RGB &&
+- bd->bdBitsPerSample == 16 )
++ if ( png_get_color_type( png, pngi ) == PNG_COLOR_TYPE_RGB &&
++ bd->bdBitsPerSample == 16 )
+ {
+ const unsigned short one= 1;
+ const unsigned char * testEndian= (const unsigned char *)&one;
+@@ -431,9 +453,9 @@ static void bmPngWriteContents( png_stru
+ from= scratch;
+ }
+
+- if ( pngi->color_type == PNG_COLOR_TYPE_RGB &&
+- bd->bdBitsPerSample == 16 &&
+- scratch )
++ if ( png_get_color_type( png, pngi ) == PNG_COLOR_TYPE_RGB &&
++ bd->bdBitsPerSample == 16 &&
++ scratch )
+ {
+ int col;
+ const BmUint16 * fr= (const BmUint16 *)from;
+@@ -453,10 +475,6 @@ static void bmPngWriteContents( png_stru
+
+ png_write_end( png, pngi );
+
+- if ( bd->bdColorEncoding == BMcoRGB8PALETTE &&
+- pngi->palette )
+- { free( pngi->palette ); }
+-
+ if ( scratch )
+ { free( scratch ); }
+
+@@ -510,50 +528,43 @@ int bmPngWritePng( const BitmapDescript
+ const unsigned char * buffer,
+ SimpleOutputStream * sos )
+ {
++ int rval= 0;
+ png_structp pngp= (png_structp)0;
+ png_infop pngip= (png_infop)0;
++ png_colorp palette= (png_colorp)0;
+
+ pngp = png_create_write_struct( PNG_LIBPNG_VER_STRING, (void *)0,
+ (png_error_ptr)0, (png_error_ptr)0 );
+ if ( ! pngp )
+- { LDEB(1); return -1; }
++ { XDEB(pngp); rval= -1; goto ready; }
+
+ pngip = png_create_info_struct( pngp );
+ if ( ! pngip )
+- {
+- LDEB(1);
+- png_destroy_write_struct( &pngp, (png_infop *)0 );
+- return -1;
+- }
++ { XDEB(pngip); rval= -1; goto ready; }
++
++ /*
++ As the info struct is built by libpng this is not needed:
++ (The call will disappear from libpng in version 1.4)
++ png_info_init( pngi );
++ */
+
+ if ( setjmp( png_jmpbuf( pngp ) ) )
+- {
+- LDEB(1);
+- png_destroy_write_struct( &pngp, &pngip );
+- /* Crashes:
+- if ( bd->bdColorEncoding == BMcoRGB8PALETTE &&
+- pngip->palette )
+- { free( pngip->palette ); }
+- */
+- return -1;
+- }
++ { LDEB(1); rval= -1; goto ready; }
+
+ png_init_io( pngp, (FILE *)0 );
+ png_set_write_fn( pngp, (void *)sos, bmPngWriteBytes, bmPngFlushBytes );
+
+- if ( bpPngiFromBitmap( pngp, pngip, bd ) )
+- {
+- LDEB(bd->bdColorEncoding);
+- png_destroy_write_struct( &pngp, &pngip );
+- return -1;
+- }
+-
+- /*
+- png_write_info( pngp, pngip );
+- */
++ if ( bpPngiFromBitmap( pngp, pngip, &palette, bd ) )
++ { LDEB(bd->bdColorEncoding); rval= -1; goto ready; }
+
+ bmPngWriteContents( pngp, pngip, buffer, bd );
+
++ ready:
++
++ if ( palette )
++ { free( palette ); }
++
+ png_destroy_write_struct( &pngp, &pngip );
+- return 0;
++
++ return rval;
+ }