Hello, attached debdiffs explain 2 uploads I'd like to do to get haxe back in testing/wheezy which has been removed one year ago due to FTBFS on kfreebsd-* [0]. haxe FTBFSs because it launches neko binary which can't recognize itself via kernel nor via /proc/self/exe due to buildd limitations [1]. Outside schroots haxe builds fine on kfreebsd-*. neko and haxe patches fix FTBFS on both kfreebsd and hurd.
Any problem unblocking them once uploaded? If ok, I also prepared hardening changes to both, could I add them as well? [0] http://bugs.debian.org/621890 [1] http://bugs.debian.org/681594 Thanks for your time. -- Gabriele
diff -Nru neko-1.8.1/debian/changelog neko-1.8.1/debian/changelog --- neko-1.8.1/debian/changelog 2011-05-15 17:17:05.000000000 +0000 +++ neko-1.8.1/debian/changelog 2012-07-16 00:40:09.000000000 +0000 @@ -1,3 +1,10 @@ +neko (1.8.1-7) unstable; urgency=low + + * Adopting package, replace maintainer (Closes: #628939). + * Add patch to fix haxe FTBFS on kfreebsd-* and hurd-i386 (Closes: #621890). + + -- Gabriele Giacone <1o5g4...@gmail.com> Sun, 15 Jul 2012 16:17:11 +0200 + neko (1.8.1-6) unstable; urgency=low * Include patch to fix compile errors on hurd-i386, thanks to Pino diff -Nru neko-1.8.1/debian/control neko-1.8.1/debian/control --- neko-1.8.1/debian/control 2011-05-15 17:17:05.000000000 +0000 +++ neko-1.8.1/debian/control 2012-07-16 00:40:09.000000000 +0000 @@ -1,7 +1,7 @@ Source: neko Section: interpreters Priority: optional -Maintainer: Jens Peter Secher <j...@debian.org> +Maintainer: Gabriele Giacone <1o5g4...@gmail.com> Standards-Version: 3.8.4 Build-Depends: debhelper (>= 7), quilt, pkg-config, libgc-dev, apache2-threaded-dev, libmysqlclient-dev, libsqlite3-dev, libpcre3-dev, libapr1-dev, libgtk2.0-dev Vcs-Hg: http://hg.debian.org/hg/collab-maint/neko diff -Nru neko-1.8.1/debian/patches/executable-path-on-kfbsd-schroots-and-hurd.diff neko-1.8.1/debian/patches/executable-path-on-kfbsd-schroots-and-hurd.diff --- neko-1.8.1/debian/patches/executable-path-on-kfbsd-schroots-and-hurd.diff 1970-01-01 00:00:00.000000000 +0000 +++ neko-1.8.1/debian/patches/executable-path-on-kfbsd-schroots-and-hurd.diff 2012-07-16 00:40:09.000000000 +0000 @@ -0,0 +1,88 @@ +Description: Fix haxe FTBFS on kfreebsd-* and hurd-i386 + On kfreebsd-*, inside schroot it can't get executable name neither from kernel + nor from /proc/self/exe due to schroot limits (see #681594). hurd-i386 doesn't + support both yet. + This patch makes them use 'argv[0]' and 'which' command to get full pathname + if needed. +Bug-Debian: http://bugs.debian.org/621890 +Author: Gabriele Giacone <1o5g4...@gmail.com> + +--- a/vm/main.c ++++ b/vm/main.c +@@ -48,7 +48,29 @@ + extern value neko_stats_build( neko_vm *vm ); + + ++#if defined(__FreeBSD_kernel__) || defined (__FreeBSD__) || defined (__GNU__) ++static char *getfullpath(const char *pname) { ++ static char path[4096]; ++ char win[256]="which "; ++ FILE *pipe; ++ ++ if (strlen(pname)>(sizeof(win)-strlen(win)-1)) { ++ // no buffer overflows ++ return NULL; ++ } else { ++ strcat(win,pname); ++ } ++ pipe=popen(win, "r"); ++ fgets(path, sizeof(path)-1, pipe); ++ path[strcspn(path,"\n")]='\0'; ++ pclose(pipe); ++ return path; ++} ++ ++static char *executable_path(const char *pname) { ++#else + static char *executable_path() { ++#endif + #if defined(NEKO_WINDOWS) + static char path[MAX_PATH]; + if( GetModuleFileName(NULL,path,MAX_PATH) == 0 ) +@@ -68,12 +90,19 @@ + mib[3] = -1; + static char path[1024]; + size_t length = sizeof(path); +- sysctl(mib, 4, path, &length, NULL, 0); ++ if ((sysctl(mib, 4, path, &length, NULL, 0) == -1) && getenv("SCHROOT_UID")) { ++ return getfullpath(pname); ++ } + if( length < 0 || length >= 1024 ) { + return NULL; + } + path[length] = '\0'; + return path; ++#elif defined(__GNU__) ++ if (strchr(pname,"/") != NULL) { ++ return pname; ++ } ++ return getfullpath(pname); + #elif defined(NEKO_LINUX) + static char path[1024]; + int length = readlink("/proc/self/exe", path, sizeof(path)); +@@ -90,8 +119,13 @@ + #endif + } + ++#if defined(__FreeBSD_kernel__) || defined (__FreeBSD__) || defined (__GNU__) ++int neko_has_embedded_module( neko_vm *vm, const char *pname ) { ++ char *exe = executable_path(pname); ++#else + int neko_has_embedded_module( neko_vm *vm ) { + char *exe = executable_path(); ++#endif + unsigned char id[8]; + int pos; + if( exe == NULL ) +@@ -223,7 +257,11 @@ + # ifdef NEKO_STANDALONE + neko_standalone_init(); + # endif ++#if defined(__FreeBSD_kernel__) || defined (__FreeBSD__) || defined (__GNU__) ++ if( !neko_has_embedded_module(vm, argv[0]) ) { ++#else + if( !neko_has_embedded_module(vm) ) { ++#endif + int jit = 1; + int stats = 0; + while( argc > 1 ) { diff -Nru neko-1.8.1/debian/patches/series neko-1.8.1/debian/patches/series --- neko-1.8.1/debian/patches/series 2011-05-15 17:17:05.000000000 +0000 +++ neko-1.8.1/debian/patches/series 2012-07-16 00:40:09.000000000 +0000 @@ -5,3 +5,4 @@ kfreebsd-compile-fix.diff kfreebsd-executable-path.diff hurd.diff +executable-path-on-kfbsd-schroots-and-hurd.diff
diff -Nru haxe-2.7+20110131/debian/changelog haxe-2.7+20110131/debian/changelog --- haxe-2.7+20110131/debian/changelog 2011-04-16 14:27:04.000000000 +0000 +++ haxe-2.7+20110131/debian/changelog 2012-07-16 01:34:05.000000000 +0000 @@ -1,3 +1,10 @@ +haxe (1:2.7+20110131-4) unstable; urgency=low + + * Adopting package, replace maintainer (Closes: #628948). + * Add patch to fix FTBFS on hurd. + + -- Gabriele Giacone <1o5g4...@gmail.com> Sun, 15 Jul 2012 16:50:59 +0000 + haxe (1:2.7+20110131-3) unstable; urgency=low * Fix linking so that it works with multiarch-enabled zlib by simply diff -Nru haxe-2.7+20110131/debian/control haxe-2.7+20110131/debian/control --- haxe-2.7+20110131/debian/control 2011-04-16 13:06:09.000000000 +0000 +++ haxe-2.7+20110131/debian/control 2012-07-16 01:34:05.000000000 +0000 @@ -1,7 +1,7 @@ Source: haxe Section: devel Priority: optional -Maintainer: Jens Peter Secher <j...@debian.org> +Maintainer: Gabriele Giacone <1o5g4...@gmail.com> Standards-Version: 3.9.1 Build-Depends: debhelper (>= 7), ocaml, ocaml-best-compilers | ocaml-native-compilers, ocaml-findlib, libxml-light-ocaml-dev, camlp4 (>= 3.11), zlib1g-dev, neko (>= 1.8.1~) Vcs-Hg: http://hg.debian.org/hg/collab-maint/haxe diff -Nru haxe-2.7+20110131/debian/patches/hurd.diff haxe-2.7+20110131/debian/patches/hurd.diff --- haxe-2.7+20110131/debian/patches/hurd.diff 1970-01-01 00:00:00.000000000 +0000 +++ haxe-2.7+20110131/debian/patches/hurd.diff 2012-07-16 01:34:05.000000000 +0000 @@ -0,0 +1,22 @@ +Description: Fix FTBFS on hurd + Code backported from upstream. +Author: Nicolas Cannasse <ncanna...@motion-twin.com> + +--- a/ocaml/extc/extc_stubs.c ++++ b/ocaml/extc/extc_stubs.c +@@ -177,9 +177,12 @@ + failwith("get_full_path"); + return caml_copy_string(path); + #else +- char path[PATH_MAX]; +- if( realpath(String_val(f),path) == NULL ) ++ value cpath; ++ char *path = realpath(String_val(f),NULL); ++ if( path == NULL ) + failwith("get_full_path"); +- return caml_copy_string(path); ++ cpath = caml_copy_string(path); ++ free(path); ++ return cpath; + #endif + } diff -Nru haxe-2.7+20110131/debian/patches/series haxe-2.7+20110131/debian/patches/series --- haxe-2.7+20110131/debian/patches/series 2011-04-16 13:06:09.000000000 +0000 +++ haxe-2.7+20110131/debian/patches/series 2012-07-16 01:34:05.000000000 +0000 @@ -1 +1,2 @@ debian-file-locations.diff +hurd.diff
signature.asc
Description: OpenPGP digital signature