aboutsummaryrefslogtreecommitdiff
path: root/graphics/xcftools
diff options
context:
space:
mode:
authorJohn Marino <marino@FreeBSD.org>2014-09-17 20:33:22 +0000
committerJohn Marino <marino@FreeBSD.org>2014-09-17 20:33:22 +0000
commit673e42630c8e5f3a8f7782c4fe1f406887c75569 (patch)
tree22ca30d698be9a1a9087ff6792f85992065fdc93 /graphics/xcftools
parente85e54acf66a54a3f2e59bf5f8658fd05e29cb5b (diff)
downloadports-673e42630c8e5f3a8f7782c4fe1f406887c75569.tar.gz
ports-673e42630c8e5f3a8f7782c4fe1f406887c75569.zip
Add new port graphics/xcftools
PR: 179116 Submitted by: Kalten (gmx.at) Xcftools is a set of fast command-line tools for extracting information from the Gimp's native file format XCF. The tools are designed to allow efficient use of layered XCF files as sources in a build system that use 'make' and similar tools to manage automatic processing of the graphics. These tools work independently of the Gimp engine and do not require the Gimp to even be installed.
Notes
Notes: svn path=/head/; revision=368415
Diffstat (limited to 'graphics/xcftools')
-rw-r--r--graphics/xcftools/Makefile84
-rw-r--r--graphics/xcftools/distinfo2
-rw-r--r--graphics/xcftools/files/patch-src_io-unix.c11
-rw-r--r--graphics/xcftools/files/patch-src_xcf2png.c16
-rw-r--r--graphics/xcftools/files/patch-test_dottest53
-rw-r--r--graphics/xcftools/pkg-descr8
6 files changed, 174 insertions, 0 deletions
diff --git a/graphics/xcftools/Makefile b/graphics/xcftools/Makefile
new file mode 100644
index 000000000000..5907035f3087
--- /dev/null
+++ b/graphics/xcftools/Makefile
@@ -0,0 +1,84 @@
+# $FreeBSD$
+
+PORTNAME= xcftools
+PORTVERSION= 1.0.8.20130212
+CATEGORIES= graphics
+MASTER_SITES= GH \
+ http://freeheimdall.spdns.org/files/
+
+MAINTAINER= kalten@gmx.at
+COMMENT= Command-line tools for extracting from XCF format (graphics/gimp)
+
+LIB_DEPENDS= libpng15.so:${PORTSDIR}/graphics/png
+
+# xcftools is under a public domain licence
+
+USE_GITHUB= yes
+GH_ACCOUNT= j-jorge
+GH_TAGNAME= ${GH_COMMIT}
+GH_COMMIT= d72ba82
+
+DIST_SUBDIR= ${PORTNAME}
+
+# option NLS (for gettext) is wrong as this port allways needs NLS:
+USES= libtool cmake gmake iconv pkgconfig perl5 gettext
+USE_PERL5= build run
+GNU_CONFIGURE= yes
+USE_LDCONFIG= yes
+INSTALL_TARGET= preinstall
+
+# manual pages not built but there is -h for each program.
+# regression tests (TESTS option) fail
+
+PORTDOCS= ChangeLog README TRANSLATION
+PLIST_FILES= bin/xcf2png \
+ bin/xcf2pnm \
+ bin/xcfinfo \
+ bin/xcfview
+
+CFLAGS+= -I${LOCALBASE}/include -I${LOCALBASE}/include/libpng15
+LDFLAGS+= -L${LOCALBASE}/lib -lintl
+
+MAKE_JOBS_UNSAFE= yes
+
+OPTIONS_DEFINE= DOCS TESTS
+TESTS_DESC= Run self-tests (faulty) (pulls in graphics/netpbm shells/bash)
+
+TEST_BUILD_DEPENDS= pngtopnm:${PORTSDIR}/graphics/netpbm \
+ bash:${PORTSDIR}/shells/bash
+
+.include <bsd.port.options.mk>
+
+post-patch:
+ @${REINPLACE_CMD} -e "s|^#! \(/bin/bash\)|#!${PREFIX}\1|" \
+ ${WRKSRC}/test/dotest
+ @${REINPLACE_CMD} -e "s|perl|${PERL}|" \
+ ${WRKSRC}/test/dotest
+ @${REINPLACE_CMD} -e "s|^#! /usr/bin/perl|#!${PERL}|" \
+ ${WRKSRC}/xcfview \
+ ${WRKSRC}/mancombine.pl \
+ ${WRKSRC}/manpo/mantranslate.pl \
+ ${WRKSRC}/manpo/optipot.pl \
+ ${WRKSRC}/mkenumsc.pl \
+ ${WRKSRC}/mkenumsh.pl \
+ ${WRKSRC}/mkopti.pl \
+ ${WRKSRC}/mktablec.pl
+
+test:
+.if ${PORT_OPTIONS:MTESTS}
+ cd ${WRKSRC}/test && \
+ ${SETENV} ${MAKE_ENV} limits -m 20m ${GMAKE} check
+.endif
+
+post-build: test
+
+post-install:
+ ${STRIP_CMD} ${WRKSRC}/bin/xcf2png ${WRKSRC}/bin/xcf2pnm \
+ ${WRKSRC}/bin/xcfinfo
+ ${INSTALL_SCRIPT} ${WRKSRC}/bin/xcf2png ${WRKSRC}/bin/xcf2pnm \
+ ${WRKSRC}/bin/xcfinfo ${WRKSRC}/xcfview \
+ ${STAGEDIR}${PREFIX}/bin
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR})
+
+.include <bsd.port.mk>
diff --git a/graphics/xcftools/distinfo b/graphics/xcftools/distinfo
new file mode 100644
index 000000000000..534ac6555ea0
--- /dev/null
+++ b/graphics/xcftools/distinfo
@@ -0,0 +1,2 @@
+SHA256 (xcftools/xcftools-1.0.8.20130212.tar.gz) = 3b00aa9ace6e4c46674fbaee03a8ba0111bd4a2c980b42c9a82f1ff42cd8f6cd
+SIZE (xcftools/xcftools-1.0.8.20130212.tar.gz) = 197954
diff --git a/graphics/xcftools/files/patch-src_io-unix.c b/graphics/xcftools/files/patch-src_io-unix.c
new file mode 100644
index 000000000000..21b8159d9ebf
--- /dev/null
+++ b/graphics/xcftools/files/patch-src_io-unix.c
@@ -0,0 +1,11 @@
+--- src/io-unix.c.orig 2013-02-12 19:30:10.000000000 +0100
++++ src/io-unix.c 2014-09-11 01:34:41.000000000 +0200
+@@ -96,7 +96,7 @@
+ if( status > 0 ) {
+ fclose(xcfstream) ;
+ xcfstream = 0 ;
+- FatalGeneric(status,NULL);
++ FatalGeneric(status,"status=%d",status);
+ }
+ } else {
+ fclose(xcfstream) ;
diff --git a/graphics/xcftools/files/patch-src_xcf2png.c b/graphics/xcftools/files/patch-src_xcf2png.c
new file mode 100644
index 000000000000..c9426bb76080
--- /dev/null
+++ b/graphics/xcftools/files/patch-src_xcf2png.c
@@ -0,0 +1,16 @@
+--- src/xcf2png.c.orig 2013-02-12 19:30:10.000000000 +0100
++++ src/xcf2png.c 2014-09-11 01:38:20.000000000 +0200
+@@ -23,6 +23,13 @@
+ #include "palette.h"
+
+ #include <png.h>
++#ifndef png_voidp_NULL
++#define png_voidp_NULL (png_voidp)NULL
++#endif
++#ifndef png_error_ptr_NULL
++#define png_error_ptr_NULL (png_error_ptr)NULL
++#endif
++
+ #include <stdlib.h>
+ #include <string.h>
+ #include <locale.h>
diff --git a/graphics/xcftools/files/patch-test_dottest b/graphics/xcftools/files/patch-test_dottest
new file mode 100644
index 000000000000..525a1649a6da
--- /dev/null
+++ b/graphics/xcftools/files/patch-test_dottest
@@ -0,0 +1,53 @@
+--- test/dotest.orig 2013-02-12 19:30:10.000000000 +0100
++++ test/dotest 2014-09-11 05:58:19.000000000 +0200
+@@ -31,6 +31,17 @@
+ keepgoing=1
+ fi
+
++
++compare() {
++ answer=`pamarith -compare "$1" "$2" 2>&1`
++ result=$?
++ if [ ! $result -eq 0 ]; then
++ echo "$answer"
++ fi
++ return $result
++}
++
++
+ failed() {
+ if (( lastfailed != totaltests ))
+ then
+@@ -126,9 +137,9 @@
+ source="$1"
+ shift
+ testrun ${XCFTOOLS_PREFIX}xcf2pnm \
+- -@ -oo.$oext $aopt source/$source.xcf.gz "$@"
+- [ -z "$oanswer" ] || cmp o.want o.$oext || failed
+- [ -z "$aanswer" ] || cmp a.want a.pnm || failed
++ -oo.$oext $aopt source/$source.xcf.gz "$@"
++ [ -z "$oanswer" ] || compare o.want o.$oext || failed
++ [ -z "$aanswer" ] || compare a.want a.pnm || failed
+ }
+
+ testpng() {
+@@ -162,10 +173,10 @@
+ perl pngtype.pl < o.png > pngtype
+ diff -u pngtype.want pngtype || failed
+ pngtopnm $oargs o.png > o.pnm
+- cmp o.want o.pnm || failed
++ compare o.want o.pnm || failed
+ if [ "$afilter" != : ] ; then
+ pngtopnm -alpha o.png > a.pnm
+- cmp a.want a.pnm || failed
++ compare a.want a.pnm || failed
+ fi
+ rm pngtype.want
+ }
+@@ -732,4 +743,4 @@
+ exit 0
+ fi
+
+-# End
+\ No newline at end of file
++# End
diff --git a/graphics/xcftools/pkg-descr b/graphics/xcftools/pkg-descr
new file mode 100644
index 000000000000..b780c29d7033
--- /dev/null
+++ b/graphics/xcftools/pkg-descr
@@ -0,0 +1,8 @@
+Xcftools is a set of fast command-line tools for extracting information
+from the Gimp's native file format XCF. The tools are designed to allow
+efficient use of layered XCF files as sources in a build system that use
+'make' and similar tools to manage automatic processing of the graphics.
+These tools work independently of the Gimp engine and do not require the
+Gimp to even be installed.
+
+WWW: http://henning.makholm.net/software