ports/104564: compile failure at ports/graphic/py-cairo on FreeBSD4
Akihiko HAYASHI
hayashi at totalware.gifu.gifu.jp
Thu Oct 19 12:20:41 UTC 2006
>Number: 104564
>Category: ports
>Synopsis: compile failure at ports/graphic/py-cairo on FreeBSD4
>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: Thu Oct 19 12:20:19 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Akihiko HAYASHI
>Release: 4-stable
>Organization:
>Environment:
FreeBSD vega.totalware.gifu.gifu.jp 4.11-STABLE FreeBSD 4.11-STABLE #32: Fri Sep 29 12:37:20 JST 2006 root at vega.totalware.gifu.gifu.jp:/usr/src/sys/compile/VEGA i386
>Description:
compile failure at ports/graphic/py-cairo on FreeBSD4.
This is py-cairo problem, not port script.
py-cairo sources use C99 style, not ANSI-C.
and py-cairo's configure checks stdint.h, but source 'cairo/pycairo-surface.c' #include stdint.h unconditionaly.
then, py-cairo can be builded on gcc3/FreeBSD6, but cannot on gcc2.9/FreeBSD4.
at previos version of ports/graphic/py-cairo,
files/patch-cairo_pycairo-font.c(removed) patches ANSI-C style.
>How-To-Repeat:
port build at FreeBSD4
>Fix:
patch is following.
Patch attached with submission follows:
--- cairo/pycairo-font.c.orig Sat Apr 29 19:04:31 2006
+++ cairo/pycairo-font.c Thu Oct 19 15:11:29 2006
@@ -197,6 +197,7 @@
PycairoFontFace *ff;
PycairoFontOptions *fo;
PycairoMatrix *mx1, *mx2;
+ PyObject *o;
if (!PyArg_ParseTuple(args, "O!O!O!O!:ScaledFont.__new__",
&PycairoFontFace_Type, &ff,
@@ -205,7 +206,7 @@
&PycairoFontOptions_Type, &fo))
return NULL;
- PyObject *o = type->tp_alloc(type, 0);
+ o = type->tp_alloc(type, 0);
if (o != NULL) {
cairo_scaled_font_t *scaled_font = cairo_scaled_font_create
(ff->font_face, &mx1->matrix, &mx2->matrix, fo->font_options);
--- cairo/pycairo-surface.c.orig Mon Jul 3 11:58:14 2006
+++ cairo/pycairo-surface.c Thu Oct 19 20:35:09 2006
@@ -34,7 +34,11 @@
# include <config.h>
#endif
-#include <stdint.h>
+#if defined(HAVE_STDINT_H)
+# include <stdint.h>
+#elsif defined(HAVE_INTTYPES_H)
+# include <inttypes.h>
+#endif
#include "pycairo-private.h"
@@ -519,6 +523,7 @@
static PyObject *
image_surface_create_from_png (PyTypeObject *type, PyObject *file)
{
+ PyObject* reader;
if (PyObject_TypeCheck (file, &PyBaseString_Type)) {
return PycairoSurface_FromSurface (
cairo_image_surface_create_from_png (PyString_AsString(file)),
@@ -526,7 +531,7 @@
}
/* file or file-like object argument */
- PyObject* reader = PyObject_GetAttrString (file, "read");
+ reader = PyObject_GetAttrString (file, "read");
if (reader == NULL || !PyCallable_Check (reader)) {
Py_XDECREF(reader);
PyErr_SetString(PyExc_TypeError,
@@ -700,6 +705,7 @@
{
double width_in_points, height_in_points;
PyObject *file;
+ PyObject* writer;
if (!PyArg_ParseTuple(args, "Odd:PDFSurface.__new__",
&file, &width_in_points, &height_in_points))
@@ -713,7 +719,7 @@
NULL);
}
/* file or file-like object argument */
- PyObject* writer = PyObject_GetAttrString (file, "write");
+ writer = PyObject_GetAttrString (file, "write");
if (writer == NULL || !PyCallable_Check (writer)) {
Py_XDECREF(writer);
PyErr_SetString(PyExc_TypeError,
@@ -803,6 +809,7 @@
{
double width_in_points, height_in_points;
PyObject *file;
+ PyObject* writer;
if (!PyArg_ParseTuple(args, "Odd:PSSurface.__new__",
&file, &width_in_points, &height_in_points))
@@ -817,7 +824,7 @@
}
/* else: file or file-like object argument */
- PyObject* writer = PyObject_GetAttrString (file, "write");
+ writer = PyObject_GetAttrString (file, "write");
if (writer == NULL || !PyCallable_Check (writer)) {
Py_XDECREF(writer);
PyErr_SetString(PyExc_TypeError,
@@ -942,6 +949,7 @@
{
double width_in_points, height_in_points;
PyObject *file;
+ PyObject* writer;
if (!PyArg_ParseTuple(args, "Odd:SVGSurface.__new__",
&file, &width_in_points, &height_in_points))
@@ -955,7 +963,7 @@
NULL);
}
/* else: file or file-like object argument */
- PyObject* writer = PyObject_GetAttrString (file, "write");
+ writer = PyObject_GetAttrString (file, "write");
if (writer == NULL || !PyCallable_Check (writer)) {
Py_XDECREF(writer);
PyErr_SetString(PyExc_TypeError,
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list