Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Aug 2003 12:44:17 -0700 (PDT)
From:      Geoffrey Mainland <mainland@apeiron.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/55399: [PATCH] add freetype2 support to graphics/py-imaging 
Message-ID:  <200308081944.h78JiHoZ073124@hamilton.apeiron.net>
Resent-Message-ID: <200308081950.h78JoQhg006830@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         55399
>Category:       ports
>Synopsis:       [PATCH] add freetype2 support to graphics/py-imaging
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Aug 08 12:50:25 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Geoffrey Mainland
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD hamilton.apeiron.net 5.1-CURRENT FreeBSD 5.1-CURRENT #0: Tue Aug 5 02:34:39 PDT 2003

>Description:

This patch adds support for the freetype functionality in version 1.1.4 of this
port. The new file patch-setup.py allows the port to be built with distutils
when using versions of python >2.0. I've also tweaked things so that when
building with python versions <2.0 files end up in the same place as when using
distutils so nobody has to much with the pkg-plist.

>How-To-Repeat:

>Fix:
diff -ruN py-imaging.orig/Makefile py-imaging/Makefile
--- py-imaging.orig/Makefile	Fri Aug  8 12:34:20 2003
+++ py-imaging/Makefile	Fri Aug  8 12:33:50 2003
@@ -16,7 +16,8 @@
 COMMENT=	The Python Imaging Library
 
 BUILD_DEPENDS=	${PYTHON_SITELIBDIR}/_tkinter.so:${PORTSDIR}/x11-toolkits/py-tkinter
-LIB_DEPENDS=	jpeg.9:${PORTSDIR}/graphics/jpeg
+LIB_DEPENDS=	jpeg.9:${PORTSDIR}/graphics/jpeg \
+		freetype.9:${PORTSDIR}/print/freetype2
 RUN_DEPENDS=	${PYTHON_SITELIBDIR}/_tkinter.so:${PORTSDIR}/x11-toolkits/py-tkinter
 
 DIST_SUBDIR=	python
@@ -25,13 +26,30 @@
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--with-jpeg=${PREFIX}/lib
 CONFIGURE_ENV=	PYTHON=${PYTHON_CMD}
+SETUP_ENV=	X11BASE=${X11BASE} PREFIX=${PREFIX}
 MAKE_FLAGS=	OPT="${CFLAGS}"
 
+.include <bsd.port.pre.mk>
+
 PILDIR=		${PYTHON_SITELIBDIR}/PIL
 PILDOCDIR=	${PREFIX}/share/doc/PIL
 PILEXDIR=	${PREFIX}/share/examples/PIL
 PILINCDIR=	${PREFIX}/include/${PYTHON_VERSION}
 
+.if ${PYTHON_REL} > 200
+post-build:
+	@(cd ${WRKSRC}/..; ${SETENV} ${SETUP_ENV} ${PYTHON_CMD} setup.py build)
+
+do-install:
+	@(cd ${WRKSRC}/..; ${SETENV} ${SETUP_ENV} ${PYTHON_CMD} setup.py install -O1)
+	@${MKDIR} ${PILDOCDIR}
+	${INSTALL_DATA} ${WRKSRC}/../README ${PILDOCDIR}
+	@${MKDIR} ${PILEXDIR}
+	${INSTALL_DATA} ${WRKSRC}/../Scripts/* ${PILEXDIR}
+.for file in ImConfig.h ImPlatform.h Imaging.h
+	${INSTALL_DATA} ${WRKSRC}/${file} ${PILINCDIR}
+.endfor
+.else
 post-extract:
 	@${CP} ${FILESDIR}/Setup ${WRKSRC}/..
 
@@ -55,5 +73,5 @@
 .for file in ImConfig.h ImPlatform.h Imaging.h
 	${INSTALL_DATA} ${WRKSRC}/${file} ${PILINCDIR}
 .endfor
-
-.include <bsd.port.mk>
+.endif
+.include <bsd.port.post.mk>
diff -ruN py-imaging.orig/files/Setup py-imaging/files/Setup
--- py-imaging.orig/files/Setup	Fri Aug  8 12:34:20 2003
+++ py-imaging/files/Setup	Fri Aug  8 12:33:50 2003
@@ -1,4 +1,5 @@
 *shared*
 
 _imaging _imaging.c decode.c encode.c map.c display.c outline.c path.c -IlibImaging libImaging/libImaging.a -I${PREFIX}/include -L${PREFIX}/lib -ljpeg -lz
+_imagingft _imagingft.c -IlibImaging -I${PREFIX}/include -I${PREFIX}/include/freetype2 -L${PREFIX}/lib -lfreetype
 _imagingtk _imagingtk.c Tk/tkImaging.c -IlibImaging -I${X11BASE}/include -I${PREFIX}/include/tcl8.4 -I${PREFIX}/include/tk8.4 -L${PREFIX}/lib -ltk84 -ltcl84 -L${X11BASE}/lib -lX11
diff -ruN py-imaging.orig/files/patch-Makefile.pre.in py-imaging/files/patch-Makefile.pre.in
--- py-imaging.orig/files/patch-Makefile.pre.in	Fri Aug  8 12:34:20 2003
+++ py-imaging/files/patch-Makefile.pre.in	Fri Aug  8 12:33:50 2003
@@ -1,5 +1,5 @@
---- ../Makefile.pre.in.orig	Wed Apr 23 00:11:24 2003
-+++ ../Makefile.pre.in	Sat Aug  2 13:56:42 2003
+--- ../Makefile.pre.in.orig	Tue Apr 22 09:11:24 2003
++++ ../Makefile.pre.in	Fri Aug  8 12:08:07 2003
 @@ -92,7 +92,7 @@
  TARGET=		python
  
@@ -18,3 +18,12 @@
  LIBS=		@LIBS@
  LIBM=		@LIBM@
  LIBC=		@LIBC@
+@@ -153,7 +153,7 @@
+ INCLUDEPY=	$(INCLUDEDIR)/python$(VERSION)
+ EXECINCLUDEPY=	$(exec_installdir)/include/python$(VERSION)
+ LIBP=		$(exec_installdir)/lib/python$(VERSION)
+-DESTSHARED=	$(BINLIBDEST)/site-packages
++DESTSHARED=	$(BINLIBDEST)/site-packages/PIL
+ 
+ LIBPL=		$(LIBP)/config
+ 
diff -ruN py-imaging.orig/files/patch-setup.py py-imaging/files/patch-setup.py
--- py-imaging.orig/files/patch-setup.py	Wed Dec 31 16:00:00 1969
+++ py-imaging/files/patch-setup.py	Fri Aug  8 12:33:50 2003
@@ -0,0 +1,51 @@
+--- ../setup.py.orig	Fri May  9 05:00:56 2003
++++ ../setup.py	Wed Aug  6 10:40:45 2003
+@@ -51,6 +51,9 @@
+ if os.path.exists('/sw/lib'):
+     LIBRARY_DIRS.append('/sw/lib')
+ 
++INCLUDE_DIRS.append(os.path.join(os.getenv("PREFIX"), "include"))
++LIBRARY_DIRS.append(os.path.join(os.getenv("PREFIX"), "lib"))
++
+ HAVE_LIBJPEG = 0
+ HAVE_LIBTIFF = 0
+ HAVE_LIBZ = 0
+@@ -126,7 +129,13 @@
+     pass
+ else:
+     INCLUDE_DIRS = ["libImaging"]
++    INCLUDE_DIRS.append(os.path.join(os.getenv("X11BASE"), "include"))
++    INCLUDE_DIRS.append(os.path.join(os.getenv("PREFIX"),
++									 "include/tcl%s" % TCL_VERSION))
++    INCLUDE_DIRS.append(os.path.join(os.getenv("PREFIX"),
++									 "include/tk%s" % TCL_VERSION))
+     LIBRARY_DIRS = ["libImaging"]
++    LIBRARY_DIRS.append(os.path.join(os.getenv("PREFIX"), "lib"))
+     LIBRARIES = ["Imaging"]
+     EXTRA_COMPILE_ARGS = None
+     EXTRA_LINK_ARGS = None
+@@ -206,7 +215,8 @@
+ 
+         if not tk_framework_found:
+             # assume the libraries are installed in the default location
+-            LIBRARIES.extend(["tk" + TCL_VERSION, "tcl" + TCL_VERSION])
++            version = TCL_VERSION[0] + TCL_VERSION[2]
++            LIBRARIES.extend(["tk" + version, "tcl" + version])
+             HAVE_TCLTK = 1
+ 
+     if HAVE_TCLTK:
+@@ -266,6 +276,14 @@
+         # FIXME: search for libraries
+         LIBRARIES.append("freetype")
+         INCLUDE_DIRS.append("/usr/include/freetype2")
++    elif os.path.isdir("/usr/local/include/freetype2"):
++        # assume that the freetype library is installed in a
++        # standard location
++        # FIXME: search for libraries
++        LIBRARIES.append("freetype")
++        INCLUDE_DIRS.append("/usr/local/include")
++        INCLUDE_DIRS.append("/usr/local/include/freetype2")
++        LIBRARY_DIRS.append("/usr/local/lib")
+     elif os.path.isdir("/sw/include/freetype2"):
+         # assume that the freetype library is installed in a
+         # standard location
diff -ruN py-imaging.orig/pkg-plist py-imaging/pkg-plist
--- py-imaging.orig/pkg-plist	Fri Aug  8 12:34:20 2003
+++ py-imaging/pkg-plist	Fri Aug  8 12:33:50 2003
@@ -199,12 +199,13 @@
 lib/%%PYTHON_VERSION%%/site-packages/PIL/XpmImagePlugin.py
 lib/%%PYTHON_VERSION%%/site-packages/PIL/XpmImagePlugin.pyc
 lib/%%PYTHON_VERSION%%/site-packages/PIL/XpmImagePlugin.pyo
+lib/%%PYTHON_VERSION%%/site-packages/PIL/_imaging.so
+lib/%%PYTHON_VERSION%%/site-packages/PIL/_imagingft.so
+lib/%%PYTHON_VERSION%%/site-packages/PIL/_imagingtk.so
 lib/%%PYTHON_VERSION%%/site-packages/PIL/__init__.py
 lib/%%PYTHON_VERSION%%/site-packages/PIL/__init__.pyc
 lib/%%PYTHON_VERSION%%/site-packages/PIL/__init__.pyo
 lib/%%PYTHON_VERSION%%/site-packages/PIL.pth
-lib/%%PYTHON_VERSION%%/site-packages/_imaging.so
-lib/%%PYTHON_VERSION%%/site-packages/_imagingtk.so
 share/doc/PIL/README
 share/examples/PIL/README
 share/examples/PIL/bdf2pil.py
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200308081944.h78JiHoZ073124>