summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-text')
-rw-r--r--app-text/ghostscript-gnu/ChangeLog9
-rw-r--r--app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r14
-rw-r--r--app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r312
-rw-r--r--app-text/ghostscript-gnu/files/ghostscript-fontconfig.patch269
-rw-r--r--app-text/ghostscript-gnu/ghostscript-gnu-8.16-r3.ebuild148
5 files changed, 440 insertions, 2 deletions
diff --git a/app-text/ghostscript-gnu/ChangeLog b/app-text/ghostscript-gnu/ChangeLog
index 946a34ced1ae..d5ea7dceb7aa 100644
--- a/app-text/ghostscript-gnu/ChangeLog
+++ b/app-text/ghostscript-gnu/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-text/ghostscript-gnu
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-gnu/ChangeLog,v 1.19 2006/04/23 23:35:59 weeve Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-gnu/ChangeLog,v 1.20 2006/04/27 22:59:37 flameeyes Exp $
+
+*ghostscript-gnu-8.16-r3 (27 Apr 2006)
+
+ 27 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/ghostscript-fontconfig.patch, +ghostscript-gnu-8.16-r3.ebuild:
+ Add patch for using fontconfig for fonts loading, based on the one in bug
+ #104512.
23 Apr 2006; Jason Wever <weeve@gentoo.org>
ghostscript-gnu-8.16-r2.ebuild:
diff --git a/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r1 b/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r1
index 07822dcc2e64..f60a70d86079 100644
--- a/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r1
+++ b/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r1
@@ -4,7 +4,9 @@ SHA256 80abec481fd4b5e59ac3d3f5790542dbfabe3c9269a6ac17064160d6dab38ee4 acro5-cm
MD5 a3bf430a7e21cd82401258a2ec3b8afb adobe-cmaps-200204.tar.gz 4360486
RMD160 14f436cb2869788f249c0eaf5dd6a31295c5ada7 adobe-cmaps-200204.tar.gz 4360486
SHA256 510f29086630db1a581ab77e46c3a6b9b4ee4bf8c7717c209e5125794a59480a adobe-cmaps-200204.tar.gz 4360486
-MD5 09d0be2bad1b0617bc0eba6eef81f6e9 cups-1.1.20-source.tar.bz2 3741510
+MD5 2a6b3aa522323751b1b65ab8ca13a01a cups-1.1.20-source.tar.bz2 363163
+RMD160 036bf9725a6a0ec06008c83545c17d132d7f070f cups-1.1.20-source.tar.bz2 363163
+SHA256 48e576ab2319fd6ad2d21f2240a720ff2f9ee4825e2a6c30f6903f3c00555590 cups-1.1.20-source.tar.bz2 363163
MD5 c42dfaebc37fe81eab0b5676b124ab63 gnu-ghostscript-8.16.tar.gz 6633085
RMD160 05b1b15c21640b709658a2e0c07d6424705fd9ff gnu-ghostscript-8.16.tar.gz 6633085
SHA256 417922d35e66ee90cf93cf3e93fdf281ec6b92de4f7436c9c1a97c0cc35b94a8 gnu-ghostscript-8.16.tar.gz 6633085
diff --git a/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r3 b/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r3
new file mode 100644
index 000000000000..844c0dae75ad
--- /dev/null
+++ b/app-text/ghostscript-gnu/files/digest-ghostscript-gnu-8.16-r3
@@ -0,0 +1,12 @@
+MD5 2fbae60417d42779f6488ab897dcaaf6 acro5-cmaps-2001.tar.gz 631653
+RMD160 c723afc2207157a434988b46bcf0a458281c29a4 acro5-cmaps-2001.tar.gz 631653
+SHA256 80abec481fd4b5e59ac3d3f5790542dbfabe3c9269a6ac17064160d6dab38ee4 acro5-cmaps-2001.tar.gz 631653
+MD5 a3bf430a7e21cd82401258a2ec3b8afb adobe-cmaps-200204.tar.gz 4360486
+RMD160 14f436cb2869788f249c0eaf5dd6a31295c5ada7 adobe-cmaps-200204.tar.gz 4360486
+SHA256 510f29086630db1a581ab77e46c3a6b9b4ee4bf8c7717c209e5125794a59480a adobe-cmaps-200204.tar.gz 4360486
+MD5 4ce09b1dce09b6b9398af0daae9adf63 cups-1.1.23-source.tar.bz2 8705521
+RMD160 255ec4c22422b14f2367d69f3ec7e590dc46bea5 cups-1.1.23-source.tar.bz2 8705521
+SHA256 87da0f7b1e03236e183045f1e787957132658ead56c4b0f80ac7f86c1574a85e cups-1.1.23-source.tar.bz2 8705521
+MD5 c42dfaebc37fe81eab0b5676b124ab63 gnu-ghostscript-8.16.tar.gz 6633085
+RMD160 05b1b15c21640b709658a2e0c07d6424705fd9ff gnu-ghostscript-8.16.tar.gz 6633085
+SHA256 417922d35e66ee90cf93cf3e93fdf281ec6b92de4f7436c9c1a97c0cc35b94a8 gnu-ghostscript-8.16.tar.gz 6633085
diff --git a/app-text/ghostscript-gnu/files/ghostscript-fontconfig.patch b/app-text/ghostscript-gnu/files/ghostscript-fontconfig.patch
new file mode 100644
index 000000000000..cb2c62888373
--- /dev/null
+++ b/app-text/ghostscript-gnu/files/ghostscript-fontconfig.patch
@@ -0,0 +1,269 @@
+? autom4te.cache
+? fontconfig-patch-0.diff
+? fontconfig-patch-1.diff
+? fontconfig-patch-2.diff
+? fontconfig-patch-3.diff
+? fontconfig-patch-4.diff
+? loadall.log
+? loadall.ps
+? native.ps
+? test.ps
+? src/gp_unix_fc.c
+? src/gp_unix_nofc.c
+Index: src/configure.ac
+===================================================================
+--- src/configure.ac.orig
++++ src/configure.ac
+@@ -27,11 +27,9 @@ dnl ------------------------------------
+ dnl Initialization and Versioning
+ dnl ------------------------------------------------
+
+-AC_INIT
+ AC_PREREQ(2.52)
+ AC_INIT(gnu-ghostscript, 8.16, didier.link@wanadoo.fr)
+ AC_CONFIG_SRCDIR(src/gs.c)
+-AM_INIT_AUTOMAKE
+
+ dnl TOPDIR=`pwd`
+
+@@ -345,6 +343,13 @@ AC_ARG_ENABLE(compile-inits, AC_HELP_STR
+ fi])
+ AC_SUBST(COMPILE_INITS)
+
++PKG_CHECK_MODULES([FONTCONFIG], [fontconfig], [have_fontconfig=yes], [have_fontconfig=no])
++if test "x$have_fontconfig" = "xyes"; then
++ AC_DEFINE_UNQUOTED(HAVE_FONTCONFIG, 1, [Defines if your system has the libfontconfig library])
++fi
++CFLAGS="$CFLAGS $FONTCONFIG_CFLAGS"
++AC_SUBST(FONTCONFIG_LIBS)
++
+ dnl --------------------------------------------------
+ dnl Check for library functions
+ dnl --------------------------------------------------
+Index: src/gp_unix.c
+===================================================================
+--- src/gp_unix.c.orig
++++ src/gp_unix.c
+@@ -30,6 +30,12 @@
+ #include "gsexit.h"
+ #include "gp.h"
+
++#define HAVE_FONTCONFIG
++
++#ifdef HAVE_FONTCONFIG
++#include <fontconfig/fontconfig.h>
++#endif
++
+ /*
+ * This is the only place in Ghostscript that calls 'exit'. Including
+ * <stdlib.h> is overkill, but that's where it's declared on ANSI systems.
+@@ -182,16 +188,193 @@ gp_close_printer(FILE * pfile, const cha
+ * building a custom fontmap file.
+ */
+
++
++/* Mangle the FontConfig family and style information into a
++ * PostScript font name */
++#ifdef HAVE_FONTCONFIG
++static void makePSFontName(char* family, int weight, int slant, char *buf, int bufsize)
++{
++ int bytesCopied, length, i;
++ const char *slantname, *weightname;
++
++ switch (slant) {
++ case FC_SLANT_ROMAN: slantname=""; break;;
++ case FC_SLANT_OBLIQUE: slantname="Oblique"; break;;
++ case FC_SLANT_ITALIC: slantname="Italic"; break;;
++ default: slantname="Unknown"; break;;
++ }
++
++ switch (weight) {
++ case FC_WEIGHT_MEDIUM: weightname=""; break;;
++ case FC_WEIGHT_LIGHT: weightname="Light"; break;;
++ case FC_WEIGHT_DEMIBOLD: weightname="Demi"; break;;
++ case FC_WEIGHT_BOLD: weightname="Bold"; break;;
++ case FC_WEIGHT_BLACK: weightname="Black"; break;;
++ default: weightname="Unknown"; break;;
++ }
++
++ length = strlen(family);
++ if (length >= bufsize)
++ length = bufsize;
++ /* Copy the family name, stripping spaces */
++ bytesCopied=0;
++ for (i = 0; i < length; i++)
++ if (family[i] != ' ')
++ buf[bytesCopied++] = family[i];
++
++ if ( ((slant != FC_SLANT_ROMAN) || (weight != FC_WEIGHT_MEDIUM)) \
++ && bytesCopied < bufsize )
++ {
++ buf[bytesCopied] = '-';
++ bytesCopied++;
++ if (weight != FC_WEIGHT_MEDIUM)
++ {
++ length = strlen(family);
++ if ((length + bytesCopied) >= bufsize)
++ length = bufsize - bytesCopied - 1;
++ strncpy(buf+bytesCopied, weightname, length);
++ bytesCopied += length;
++ }
++ if (slant != FC_SLANT_ROMAN)
++ {
++ length = strlen(family);
++ if ((length + bytesCopied) >= bufsize)
++ length = bufsize - bytesCopied - 1;
++ strncpy(buf+bytesCopied, slantname, length);
++ bytesCopied += length;
++ }
++ }
++ buf[bytesCopied] = '\0';
++}
++#endif
++
++/* State struct for font iteration - passed as an opaque 'void*' through the rest of gs */
++#ifdef HAVE_FONTCONFIG
++typedef struct {
++ int index; /* current index of iteration over font_list */
++ FcConfig* fc; /* FontConfig library handle */
++ FcFontSet* font_list; /* FontConfig font list */
++ char name[255]; /* name of last font */
++} unix_fontenum_t;
++#endif
++
+ void *gp_enumerate_fonts_init(gs_memory_t *mem)
+ {
++#ifdef HAVE_FONTCONFIG
++ unix_fontenum_t *state = (unix_fontenum_t *)malloc(sizeof(unix_fontenum_t));
++ if (state == NULL)
++ return NULL; /* Failed to allocate state */
++
++ state->index = 0;
++ state->fc = NULL;
++ state->font_list = NULL;
++
++ /* Load the fontconfig library */
++ state->fc = FcInitLoadConfigAndFonts();
++ if (state->fc == NULL) {
++ free(state);
++ state = NULL;
++ dlprintf("destroyed state - fontconfig init failed");
++ return NULL; /* Failed to open fontconfig library */
++ }
++
++ /* load the font set that we'll iterate over */
++ FcPattern *pat = FcPatternBuild(NULL,
++ FC_OUTLINE, FcTypeBool, 1,
++ FC_SCALABLE, FcTypeBool, 1,
++ NULL);
++ FcObjectSet* os = FcObjectSetBuild(FC_FILE, FC_OUTLINE, FC_FAMILY, FC_WEIGHT, FC_SLANT, 0);
++ state->font_list = FcFontList(0, pat, os);
++ FcPatternDestroy(pat);
++ FcObjectSetDestroy(os);
++ if (state->font_list == NULL) {
++ free(state);
++ state = NULL;
++ return NULL; /* Failed to generate font list */
++ }
++ return (void *)state;
++#else
+ return NULL;
++#endif
+ }
+-
++
+ int gp_enumerate_fonts_next(void *enum_state, char **fontname, char **path)
+ {
++#ifdef HAVE_FONTCONFIG
++ char* psname = NULL;
++
++ unix_fontenum_t* state = (unix_fontenum_t *)enum_state;
++ if (state == NULL) {
++ return 0; /* gp_enumerate_fonts_init failed for some reason */
++ }
++
++ /* Bits of the following were borrowed from Red Hat's GS 7 FontConfig patch */
++ FcChar8* file_fc = NULL;
++ FcChar8* family_fc = NULL;
++ int outline_fc, slant_fc, weight_fc;
++ FcResult result;
++
++ if (state->index == state->font_list->nfont) {
++ return 0; /* we've run out of fonts */
++ }
++
++ FcPattern* font = state->font_list->fonts[state->index];
++
++ result = FcPatternGetString (font, FC_FAMILY, 0, &family_fc);
++ if (result != FcResultMatch || family_fc == NULL) {
++ dlprintf ("DEBUG: FC_FAMILY mismatch\n");
++ return 0;
++ }
++
++ result = FcPatternGetString (font, FC_FILE, 0, &file_fc);
++ if (result != FcResultMatch || file_fc == NULL) {
++ dlprintf ("DEBUG: FC_FILE mismatch\n");
++ return 0;
++ }
++
++ result = FcPatternGetBool (font, FC_OUTLINE, 0, &outline_fc);
++ if (result != FcResultMatch) {
++ dlprintf1 ("DEBUG: FC_OUTLINE failed to match on %s\n", (char*)family_fc);
++ return 0;
++ }
++
++ result = FcPatternGetInteger (font, FC_SLANT, 0, &slant_fc);
++ if (result != FcResultMatch) {
++ dlprintf ("DEBUG: FC_SLANT didn't match\n");
++ return 0;
++ }
++
++ result = FcPatternGetInteger (font, FC_WEIGHT, 0, &weight_fc);
++ if (result != FcResultMatch) {
++ dlprintf ("DEBUG: FC_WEIGHT didn't match\n");
++ return 0;
++ }
++
++ /* Gross hack to work around Fontconfig's inability to tell
++ * us the font's PostScript name - generate it ourselves.
++ * We must free the memory allocated here next time around. */
++ makePSFontName((char *)family_fc, weight_fc, slant_fc, &state->name, sizeof(state->name));
++ *fontname = &state->name;
++
++ /* return the font path straight out of fontconfig */
++ *path = (char*)file_fc;
++
++ state->index ++;
++ return 1;
++#else
+ return 0;
++#endif
+ }
+-
++
+ void gp_enumerate_fonts_free(void *enum_state)
+ {
+-}
++#ifdef HAVE_FONTCONFIG
++ unix_fontenum_t* state = (unix_fontenum_t *)enum_state;
++ if (state != NULL) {
++ if (state->font_list != NULL)
++ FcFontSetDestroy(state->font_list);
++ free(state);
++ }
++#endif
++}
++
+Index: src/Makefile.in
+===================================================================
+--- src/Makefile.in.orig
++++ src/Makefile.in
+@@ -253,7 +253,7 @@ LDFLAGS=@LDFLAGS@ $(XLDFLAGS)
+ # Solaris may need -lnsl -lsocket -lposix4.
+ # (Libraries required by individual drivers are handled automatically.)
+
+-EXTRALIBS=
++EXTRALIBS=@FONTCONFIG_LIBS@
+
+ # Define the standard libraries to search at the end of linking.
+ # Most platforms require -lpthread for the POSIX threads library;
diff --git a/app-text/ghostscript-gnu/ghostscript-gnu-8.16-r3.ebuild b/app-text/ghostscript-gnu/ghostscript-gnu-8.16-r3.ebuild
new file mode 100644
index 000000000000..249765303559
--- /dev/null
+++ b/app-text/ghostscript-gnu/ghostscript-gnu-8.16-r3.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-gnu/ghostscript-gnu-8.16-r3.ebuild,v 1.1 2006/04/27 22:59:37 flameeyes Exp $
+
+inherit eutils libtool autotools
+
+DESCRIPTION="GNU Ghostscript"
+HOMEPAGE="http://www.gnu.org/software/ghostscript/"
+
+CUPS_PV=1.1.23
+MY_P=gnu-ghostscript-${PV}
+PVM=${PV%.[0-9]}
+SRC_URI="ftp://ftp.gnu.org/gnu/ghostscript/${MY_P}.tar.gz
+ cups? ( mirror://gentoo/cups-${CUPS_PV}-source.tar.bz2 )
+ cjk? ( http://www.matsusaka-u.ac.jp/mirror/gs-cjk/adobe-cmaps-200204.tar.gz
+ http://www.matsusaka-u.ac.jp/mirror/gs-cjk/acro5-cmaps-2001.tar.gz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="X cups cjk emacs gtk"
+
+
+DEP=">=media-libs/jpeg-6b
+ >=media-libs/libpng-1.2.5
+ >=sys-libs/zlib-1.1.4
+ >=media-libs/tiff-3.7
+ X? ( || ( x11-libs/libXt virtual/x11 ) )
+ gtk? ( >=x11-libs/gtk+-2.0 )
+ cups? ( >=net-print/cups-1.1.20 )
+ !app-text/ghostscript-afpl
+ !app-text/ghostscript-esp"
+
+RDEPEND="${DEP}
+ cjk? ( media-fonts/arphicfonts
+ media-fonts/kochi-substitute
+ media-fonts/baekmuk-fonts )
+ media-fonts/gnu-gs-fonts-std"
+
+DEPEND="${DEP}
+ gtk? ( dev-util/pkgconfig )"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+ unpack ${MY_P}.tar.gz
+
+ # cups support
+ if use cups; then
+ unpack cups-${CUPS_PV}-source.tar.bz2
+ cp -r cups-${CUPS_PV}/pstoraster ${S}
+ cd ${S}/pstoraster
+ sed -e 's:@prefix@:/usr:' -e 's:@exec_prefix@:${prefix}:' \
+ -e 's:@bindir@:${exec_prefix}/bin:' -e 's:@GS@:gs:' \
+ pstopxl.in > pstopxl || die "pstopxlsed failed"
+ sed -i -e 's:OUTPUTFILE="%stdout" $profile $6$:\0 -:' \
+ -e 's:/usr/local:/usr:' pstoraster || die "pstorastersed failed"
+ sed -i -e "s:pstopcl6:pstopxl:" cups.mak || die "cupssed failed"
+ cd ..
+ epatch pstoraster/gs811-lib.patch
+ fi
+
+ # enable cfax device (bug #56704)
+ sed -i -e 's:DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev:DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev $(DD)cfax.dev:' \
+ ${S}/src/Makefile.in || die "sed failed"
+ cd ${S}
+
+ #epatch ${FILESDIR}/gs-${PV}destdir.patch
+ #epatch ${FILESDIR}/ghostscript-build.patch
+ #epatch ${FILESDIR}/ghostscript-scripts.patch
+ #epatch ${FILESDIR}/ghostscript-ps2epsi.patch
+ epatch ${FILESDIR}/../../ghostscript-esp/files/ghostscript-badc.patch
+ epatch ${FILESDIR}/../../ghostscript-esp/files/ghostscript-pagesize.patch
+ epatch ${FILESDIR}/../../ghostscript-esp/files/ghostscript-noopt.patch
+ epatch ${FILESDIR}/../../ghostscript-esp/files/ghostscript-use-external-freetype.patch
+ #epatch ${FILESDIR}/ghostscript-split-font-configuration.patch
+
+ # not submitted
+ epatch ${FILESDIR}/../../ghostscript-esp/files/ijs-dirinstall.diff
+ epatch ${FILESDIR}/../../ghostscript-esp/files/ghostscript-gtk2.patch
+ if ! use gtk; then
+ sed -i "s:\$(GSSOX)::" src/*.mak || die "gsx sed failed"
+ sed -i "s:.*\$(GSSOX_XENAME)$::" src/*.mak || die "gsxso sed failed"
+ fi
+
+ # search path fix
+ sed -i -e "s:\$\(gsdatadir\)/lib:/usr/share/ghostscript/${PVM}/$(get_libdir):" \
+ src/Makefile.in || die "sed failed"
+ sed -i -e 's:$(gsdir)/fonts:/usr/share/fonts/default/ghostscript/:' \
+ src/Makefile.in || die "sed failed"
+
+ epatch "${FILESDIR}/ghostscript-fontconfig.patch"
+
+ sed -i -e '/^AC_INIT$/d; /AM_/d' "${S}/src/configure.ac"
+
+ cp /usr/share/automake-1.9/install-sh "${S}"
+ eautoreconf
+
+ elibtoolize
+}
+
+src_compile() {
+ local myconf
+ myconf="--with-ijs --with-jbig2dec"
+
+ econf $(use_with X x) \
+ ${myconf} || die "econf failed"
+
+ if use cups; then
+ echo 'include pstoraster/cups.mak' >> Makefile
+ sed -i -e 's:DEVICE_DEVS17=:DEVICE_DEVS17=$(DD)cups.dev:' Makefile || die "sed failed"
+ sed -i -e 's:EXTRALIBS=\(.*\):EXTRALIBS=\1 -lcups -lcupsimage:' Makefile || die "sed failed"
+ fi
+ emake -j1 || die "make failed"
+ emake so -j1 || die "make failed"
+
+ cd ijs
+ libtoolize --copy --force
+ econf || die "econf failed"
+ emake -j1 || die "make failed"
+ cd ..
+}
+
+src_install() {
+ einstall D=/ install_prefix=${D} soinstall
+
+ rm -fr ${D}/usr/share/ghostscript/${PVM}/doc || die
+ dodoc doc/README
+ dohtml doc/*.html doc/*.htm
+
+ if use emacs; then
+ insinto /usr/share/emacs/site-lisp
+ doins doc/gsdoc.el
+ fi
+
+ if use cjk; then
+ dodir /usr/share/ghostscript/Resource
+ dodir /usr/share/ghostscript/Resource/Font
+ dodir /usr/share/ghostscript/Resource/CIDFont
+ cd ${D}/usr/share/ghostscript/Resource
+ unpack adobe-cmaps-200204.tar.gz
+ unpack acro5-cmaps-2001.tar.gz
+ fi
+
+ # install ijs
+ cd ${S}/ijs
+ make DESTDIR="${D}" install || die "ijs install failed"
+}