Assembla home | Assembla project page
 

PortLog: net-misc/neon

http://www.webdav.org/neon/

0.25 branch

R5unstable
BONEuntested
Haikuunstable

dependencies:

work-in-progress (andreasf) - [R5, Haiku]

On Haiku, test/common/tests.c fails to compile due to lack of sys/signal.h. Patch

If commented out, the socket single_peek test hangs badly... Haiku ticket

make install fails, not finding its man pages; seems I can ignore this since the rest appears to be there.

revision 1 (bonefish) - [Haiku]

Changes (patch)

src/ne_openssl.c:

  • OpenSSL's ASN1_TIME_print() does not null-terminate the printed buffer, hence the caller has to do that when wanting to use the result as a C string.

src/ne_socket.c:

  • Avoid BeOS work-around on Haiku (as in previous patch version).

test/common/child.c:

  • Fixes a race condition between client and server.

test/common/tests.c:

  • Don't include non-standard <sys/signal.h> (as in previous patch version).

test/run.sh:

  • Haiku's bash doesn't support ulimit "-c" and "-v" ATM. Non-upstreamable change.

Configuring/Building

libtoolize --force
aclocal
#autoreconf
CPPFLAGS="-I/boot/home/config/include -I/boot/home/config/include/apr-0" CFLAGS="-O2" LDFLAGS="-L/boot/home/config/lib -lnetwork" ./configure --prefix=/boot/home/config --with-ssl --enable-shared
make
  • neon 0.25.4 is unfortunately so old, that running a current auto[re]conf will break the build system. Not running it means the old configure is used, which doesn't recognize that Haiku supports shared libraries, even with --enable-shared. Since this version of neon is only used by subversion that doesn't matter much, though.

Tests

-> running `request':
[...]
24. persist_timeout....... bind failed: Address already in use
server child failed: 
FAIL (0 of 2, request failed: Could not connect to server: Connection refused)

-> running `socket-ssl':
[...]
28. ssl_closure...........
  • Several tests fail from time to time with an "Address already in use" when bind()ing the server socket. That is very likely a race condition that is completely legal according to the standards. A socket can exist and keep the address it is bound to a while after close(), until the TCP close procedure is fully through. For local connections close() could theoretically wait, but this is not implemented in Haiku r25537.
  • persist_timeout fails reproducibly. This might have the same cause as the occasionally failing tests, or it could be a bug in Haiku's TCP implementation.
  • ssl_closure hangs. It is waiting in a write() on a closed TCP socket. This is very likely a TCP implementation bug.