gnome-vfs-httpcaptive fails to build with gnome-vfs 2.8.x due to some changes that were made in gnome-vfs relating to job cancellation. The offending file is modules/http-method.c Reproducible: Always Steps to Reproduce: 1.emerge gnome-vfs-httpcaptive 2. 3. Actual Results: gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DG_DISABLE_DEPRECATED -DDATADIR=\"/usr/share\" -DPREFIX=\"/usr\" -DLIBDIR=\"/usr/lib\" -DSYSCONFDIR=\"/etc\" -DG_LOG_DOMAIN=\"gnome-vfs-modules\" -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/gnome-vfs-2.0 -I/usr/include/gnome-vfs-module-2.0 -I/usr/lib/gnome-vfs-2.0/include -O3 -march=athlon-xp -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -mfpmath=sse,387 -mregparm=0 -c http-cache.c -MT libhttpcaptive_la-http-cache.lo -MD -MP -MF .deps/libhttpcaptive_la-http-cache.TPlo -o libhttpcaptive_la-http-cache.o >/dev/null 2>&1 http-method.c: In function `get_header': http-method.c:612: error: too few arguments to function `gnome_vfs_socket_buffer_read' http-method.c:628: error: too few arguments to function `gnome_vfs_socket_buffer_peekc' http-method.c: In function `https_proxy': http-method.c:1232: error: too few arguments to function `gnome_vfs_socket_write' http-method.c:1236: error: too few arguments to function `gnome_vfs_socket_close' http-method.c:1243: error: too few arguments to function `gnome_vfs_socket_write' http-method.c:1248: error: too few arguments to function `gnome_vfs_socket_close' http-method.c:1255: error: too few arguments to function `gnome_vfs_socket_read' http-method.c:1258: error: too few arguments to function `gnome_vfs_socket_close' http-method.c:1264: error: too few arguments to function `gnome_vfs_socket_close' http-method.c:1272: error: too few arguments to function `gnome_vfs_socket_close' http-method.c:1282: error: too few arguments to function `gnome_vfs_ssl_create_from_fd' http-method.c:1285: error: too few arguments to function `gnome_vfs_socket_close' http-method.c: In function `connect_to_uri': http-method.c:1381: error: too few arguments to function `gnome_vfs_ssl_create' http-method.c:1403: error: too few arguments to function `gnome_vfs_socket_close' http-method.c: In function `xmit_request': http-method.c:1484: error: too few arguments to function `gnome_vfs_socket_buffer_write' http-method.c:1495: error: too few arguments to function `gnome_vfs_socket_buffer_write' http-method.c:1502: error: too few arguments to function `gnome_vfs_socket_buffer_flush' http-method.c: In function `make_request': http-method.c:1638: error: too few arguments to function `gnome_vfs_socket_buffer_destroy' http-method.c: In function `http_handle_close': http-method.c:1653: error: too few arguments to function `gnome_vfs_socket_buffer_flush' http-method.c:1655: error: too few arguments to function `gnome_vfs_socket_buffer_destroy' http-method.c: In function `do_read': http-method.c:1916: error: too few arguments to function `gnome_vfs_socket_buffer_read' http-method.c:1946: error: too few arguments to function `gnome_vfs_socket_buffer_read' make[2]: *** [libhttpcaptive_la-http-method.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DG_DISABLE_DEPRECATED -DDATADIR=\"/usr/share\" -DPREFIX=\"/usr\" -DLIBDIR=\"/usr/lib\" -DSYSCONFDIR=\"/etc\" -DG_LOG_DOMAIN=\"gnome-vfs-modules\" -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/gnome-vfs-2.0 -I/usr/include/gnome-vfs-module-2.0 -I/usr/lib/gnome-vfs-2.0/include -O3 -march=athlon-xp -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -mfpmath=sse,387 -mregparm=0 -c http-authn.c -MT libhttpcaptive_la-http-authn.lo -MD -MP -MF .deps/libhttpcaptive_la-http-authn.TPlo -o libhttpcaptive_la-http-authn.o >/dev/null 2>&1 make[2]: Leaving directory `/var/tmp/portage/gnome-vfs-httpcaptive-2.3.8/work/gnome-vfs-httpcaptive-2.3.8captive2/modules' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/gnome-vfs-httpcaptive-2.3.8/work/gnome-vfs-httpcaptive-2.3.8captive2' make: *** [all] Error 2 Expected Results: One would expect it to work :) gnome-vfs-httpcaptive fails to build with gnome-vfs 2.8.x due to some changes that were made in gnome-vfs relating to job cancellation. More info here: http://developer.gnome.org/doc/API/gnome-vfs/gnome-vfs-gnome-vfs-cancellation.html This change required the addition of an extra argument in all gnome-vfs calls, all's I've done is add the argument to the calls as a NULL, therefore, job cancellation isn't supported, but it wasn't in the old code either, as the argument didn't exist. I'm posting my fix bellow.
Did you try to use captive-install-acquire with your fix? It did not work for me, so I think its not worth it.
Created attachment 48021 [details, diff] Patch to work with gnome-vfs-2.8 I've just made a hackish little patch against gnome-vfs-httpcaptive to at least get this thing running with gnome-vfs-2.8.x. It works fine for me.
Created attachment 48022 [details] New ebuild using the patch in the previous post. Ebuild for above patch.
Created attachment 48023 [details, diff] .diff against previous ebuild (requested)
Stefan, Yes, if captive-install-acquire, is the gui installer that it uses then yes it works as it was intended. The reasong it may seem not to work is because the highest versions of the files it looks for are XP servicepack 1, If I get time I'll take a propper look at the source and update it to check for all version upto current. I think the microsoft page holding the servicepack one has somehow changed as it didn't accept the file, but it worked fine if I downloaded the whole servicepack first. I tested on two machines, both with Windows XP on /dev/hda1, on one machine no files were detected but it was servicepack 2, the other machine had servicepack 1 on it and the files were detected fine, though older than it's latest recognised versions, after pointing it at the servicepack1 file it automatically updated all the files to the later version, from this I assume it's working. Certainly better than going splat on build, and forcing downgrade to gnome-vfs-2.6. :)
Thing is, you need to download the files in most cases (sp2), and that does not work with gnome-vfs-2.8 .. its not that your patch does not work, just gnome-vfs-httpcaptive does not work with gnome-vfs-2.8. Sorry, we need to find a solution here first.
No probs, at least for now the quick fix might be of use to some. In the meantime I'll have a good look at how all the pieces go together and see if I can figure something out (time permiting).
I added a new revision of captive with a static tarball, do you think that solves the problem?
I just removed httpcaptive from the tree in favour of the static install-acquire that is now used in captive, thanks for your work anyway.