Package: evas Severity: important Tags: patch Justification: fails to build from source
Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Manuel Menal <mme...@hurdfr.org> To: Debian Bug Tracking System <sub...@bugs.debian.org> Subject: evas: FTBFS on hurd-i386 (and probably k*BSD) Message-ID: <20090704202119.94208.70277.report...@earendil.duckcorp.org> X-Mailer: reportbug 4.4 Date: Sat, 04 Jul 2009 22:21:19 +0200 Package: evas Severity: important Tags: patch Justification: fails to build from source Hi, evas uses the PATH_MAX constant, which is optional on POSIX and undefined on GNU/Hurd. It also uses a linux-dependent FB interface (depending on linux/fb.h), which is unavailable on GNU/Hurd, and probably on GNU/k*BSD. Here is a patch that fixes these problems: diff -urp evas-0.9.9.060/debian/libevas-engines-extras.install ../evas-0.9.9.060/debian/libevas-engines-extras.install --- evas-0.9.9.060/debian/libevas-engines-extras.install 2009-07-04 21:39:24.000000000 +0200 +++ ../evas-0.9.9.060/debian/libevas-engines-extras.install 2009-07-04 21:52:34.000000000 +0200 @@ -1,2 +1 @@ -debian/tmp/usr/lib/evas/modules/engines/fb/*/module.so debian/tmp/usr/lib/evas/modules/engines/gl_x11/*/module.so diff -Nurp evas-0.9.9.060/debian/libevas-engines-extras.install.linux ../evas-0.9.9.060/debian/libevas-engines-extras.install.linux --- evas-0.9.9.060/debian/libevas-engines-extras.install.linux 1970-01-01 01:00:00.000000000 +0100 +++ ../evas-0.9.9.060/debian/libevas-engines-extras.install.linux 2009-07-04 21:51:46.000000000 +0200 @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/evas/modules/engines/fb/*/module.so +debian/tmp/usr/lib/evas/modules/engines/gl_x11/*/module.so diff -urp evas-0.9.9.060/debian/rules ../evas-0.9.9.060/debian/rules --- evas-0.9.9.060/debian/rules 2009-07-04 21:39:24.000000000 +0200 +++ ../evas-0.9.9.060/debian/rules 2009-07-04 21:49:40.000000000 +0200 @@ -21,10 +21,13 @@ else arch_flags += --enable-pthreads endif +ifeq (linux,$(DEB_HOST_ARCH_OS)) + arch_flags += --enable-fb +endif + DEB_CONFIGURE_EXTRA_FLAGS := --enable-strict \ --enable-fontconfig \ --enable-software-x11 \ - --enable-fb \ --enable-buffer \ --enable-gl-x11 \ --enable-xrender-x11 \ diff -urp evas-0.9.9.060/src/modules/loaders/svg/evas_image_load_svg.c ../evas-0.9.9.060/src/modules/loaders/svg/evas_image_load_svg.c --- evas-0.9.9.060/src/modules/loaders/svg/evas_image_load_svg.c 2009-03-01 09:43:20.000000000 +0100 +++ ../evas-0.9.9.060/src/modules/loaders/svg/evas_image_load_svg.c 2009-06-22 10:33:04.000000000 +0200 @@ -38,7 +38,11 @@ svg_loader_unpremul_data(DATA32 *data, u int evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key __UNUSED__) { +#if !defined(PATH_MAX) && defined(__GLIBC__) + char *cwd, *pcwd, *p; +#else char cwd[PATH_MAX], pcwd[PATH_MAX], *p; +#endif RsvgHandle *rsvg; RsvgDimensionData dim; @@ -68,9 +72,14 @@ evas_image_load_file_head_svg(Image_Entr } else if (strcasecmp(ext, ".svg")) return 0; +#if !defined(PATH_MAX) && defined(__GLIBC__) + pcwd = getcwd(NULL, 0); + cwd = strdup(pcwd); +#else getcwd(pcwd, sizeof(pcwd)); strncpy(cwd, file, sizeof(cwd) - 1); cwd[sizeof(cwd) - 1] = 0; +#endif p = strrchr(cwd, '/'); if (p) *p = 0; chdir(cwd); @@ -127,6 +136,10 @@ evas_image_load_file_head_svg(Image_Entr g_object_unref(rsvg); // rsvg_handle_free(rsvg); chdir(pcwd); +#if !defined(PATH_MAX) && defined(__GLIBC__) + free(cwd); + free(pcwd); +#endif return 1; } @@ -135,7 +148,11 @@ int evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key __UNUSED__) { DATA32 *pixels; +#if !defined(PATH_MAX) && defined(__GLIBC__) + char *cwd, *pcwd, *p; +#else char cwd[PATH_MAX], pcwd[PATH_MAX], *p; +#endif RsvgHandle *rsvg; RsvgDimensionData dim; int w, h; @@ -166,9 +183,14 @@ evas_image_load_file_data_svg(Image_Entr } else if (strcasecmp(ext, ".svg")) return 0; +#if !defined(PATH_MAX) && defined(__GLIBC__) + pcwd = getcwd(NULL, 0); + cwd = strdup(pcwd); +#else getcwd(pcwd, sizeof(pcwd)); strncpy(cwd, file, sizeof(cwd) - 1); cwd[sizeof(cwd) - 1] = 0; +#endif p = strrchr(cwd, '/'); if (p) *p = 0; chdir(cwd); @@ -265,5 +287,9 @@ evas_image_load_file_data_svg(Image_Entr // rsvg_handle_free(rsvg); chdir(pcwd); evas_common_image_set_alpha_sparse(ie); +#if !defined(PATH_MAX) && defined(__GLIBC__) + free(cwd); + free(pcwd); +#endif return 1; } -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: hurd-i386 (i686-AT386) Kernel: GNU-Mach 1.3.99/Hurd-0.3 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: hurd-i386 (i686-AT386) Kernel: GNU-Mach 1.3.99/Hurd-0.3 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org