Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 326957

Summary: net-libs/libsoup tests require apache with some mods enabled
Product: Gentoo Linux Reporter: Diego Elio Pettenò (RETIRED) <flameeyes>
Component: New packagesAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Status: CONFIRMED ---    
Severity: normal CC: binki, lilwyrm
Priority: High Keywords: NeedPatch, TESTFAILURE
Version: unspecified   
Hardware: All   
OS: Linux   
URL: https://bugzilla.gnome.org/show_bug.cgi?id=623675
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 313037    
Attachments: Build log
libsoup-2.30.2-configure-test.patch

Description Diego Elio Pettenò (RETIRED) gentoo-dev 2010-07-05 08:36:34 UTC
Portage 2.1.8.3 (default/linux/x86/10.0, gcc-4.5.0-asneeded, glibc-2.11.2-r0, 2.6.34 i686)
=================================================================
System uname: Linux-2.6.34-i686-Quad-Core_AMD_Opteron-tm-_Processor_2350-with-gentoo-2.0.1
Timestamp of tree: Thu, 01 Jul 2010 15:30:01 +0000
app-shells/bash:     4.1_p7
dev-java/java-config: 2.1.11
dev-lang/python:     2.6.5-r2, 3.1.2-r3
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.65-r1
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.5.0
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
virtual/os-headers:  2.6.34
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /usr/share/X11/xkb /usr/share/bufrtables /usr/share/config /usr/share/qpsmtpd/plugins /var/bind /var/lib/hsqldb /var/phxd /var/spool/torque /var/vpopmail/etc /var/yp/Makefile"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/games/angband/edit/ /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms split-log strict test test-fail-continue unmerge-orphans userfetch userpriv usersandbox"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.wheel.sk/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j14"
PKGDIR="/var/spool/portage/packages"
PORTAGE_COMPRESS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/cache/portage/tree-tinderbox"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 java5 java6 modules mudflap ncurses nls nostatic nptl nptlonly openmp pam pcre perl pppd python qt3support readline reflection ruby session spl ssl sysfs tcpd unicode vhosts x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias auth_digest" ELIBC="glibc" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18 jruby ruby19 ree18" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Diego Elio Pettenò (RETIRED) gentoo-dev 2010-07-05 08:37:03 UTC
Created attachment 237537 [details]
Build log
Comment 2 Pacho Ramos gentoo-dev 2010-07-05 09:53:34 UTC
They don't require it on my system :-/ (my apache doesn't have proxy support and mod_proxy.so is not present), Do you have php installed?
Comment 3 Diego Elio Pettenò (RETIRED) gentoo-dev 2010-07-05 09:55:51 UTC
I do.
Comment 4 Pacho Ramos gentoo-dev 2010-07-05 10:49:02 UTC
In my case, they still doesn't fail (are skipped instead, even if I have apache installed, but without proxy module):

Making check in tests
make[1]: Entering directory `/var/tmp/portage/net-libs/libsoup-2.30.2-r1/work/libsoup-2.30.2/tests'
make  check-TESTS check-local
make[2]: Entering directory `/var/tmp/portage/net-libs/libsoup-2.30.2-r1/work/libsoup-2.30.2/tests'
  ignoring bug in test case... FIXME!
  ignoring bug in test case... FIXME!
  ignoring bug in test case... FIXME!
chunk-test: OK
PASS: chunk-test
coding-test: OK
PASS: coding-test
context-test: OK
PASS: context-test
continue-test: OK
PASS: continue-test
cookies-test: OK
PASS: cookies-test
date: OK
PASS: date
header-parsing: OK
PASS: header-parsing
misc-test: OK
PASS: misc-test
ntlm-test: OK
PASS: ntlm-test
redirect-test: OK
PASS: redirect-test
sniffing-test: OK
PASS: sniffing-test
streaming-test: OK
PASS: streaming-test
timeout-test: OK
PASS: timeout-test
uri-parsing: OK
PASS: uri-parsing
forms-test: OK
PASS: forms-test
server-auth-test: OK
PASS: server-auth-test
SYNCHRONOUS SSL TEST PASSED
ASYNCHRONOUS SSL TEST PASSED
PASS: ssl-test
===================
All 17 tests passed
===================

NOTE: some tests were not run due to missing packages: apache
Comment 5 Pacho Ramos gentoo-dev 2010-07-06 12:17:10 UTC
Umm, seems that in my case configure detects I have no apache:

checking Apache version... 2.2.15 (Unix) (ok)
checking for Apache module directory... 
checking for curl... /usr/bin/curl
configure: Some regression tests will not be run due to missing packages: apache


It's because it doesn't detect any apache module directory, that is wrong, I have it in /usr/lib64/apache2/modules
Comment 6 Diego Elio Pettenò (RETIRED) gentoo-dev 2010-07-06 12:57:54 UTC
Of course the tinderbox has /usr/lib not /usr/lib64 being x86 so here it detects it ;)

Mystery partly solved.
Comment 7 Pacho Ramos gentoo-dev 2010-07-06 13:13:10 UTC
As seen in configure.ac:
http://git.gnome.org/browse/libsoup/tree/configure.ac?h=gnome-2-30
if test "$APACHE_HTTPD" != "no"; then
    AC_MSG_CHECKING([for Apache module directory])
    AC_ARG_WITH(apache-module-dir,
		AS_HELP_STRING([--with-apache-module-dir], [Apache modules dirs (for tests)]),
		apache_module_dirs="$withval",
		[apache_prefix=`dirname \`dirname $APACHE_HTTPD\``
		mpm=`$APACHE_HTTPD -V | sed -ne 's/^Server MPM: */-/p' | tr 'A-Z' 'a-z'`
		# This only works with bash, but should fail harmlessly in sh
		apache_module_dirs=`echo $apache_prefix/lib{64,}/{apache,apache2,http,http2,httpd}{$mpm,}{/modules,}`])
    for dir in $apache_module_dirs; do
        if test -f $dir/mod_auth_digest.so; then
	    APACHE_MODULE_DIR="$dir"
        fi
        if test -f $dir/mod_ssl.so; then
	    APACHE_SSL_MODULE_DIR="$dir"
	    IF_HAVE_APACHE_SSL=""
        fi
        if test -f $dir/mod_php5.so; then
	    APACHE_PHP_MODULE_DIR="$dir"
	    APACHE_PHP_MODULE=mod_php5.so
        fi
        if test -f $dir/libphp5.so; then
	    APACHE_PHP_MODULE_DIR="$dir"
	    APACHE_PHP_MODULE=libphp5.so
        fi
    done
    AC_MSG_RESULT($APACHE_MODULE_DIR)
    AC_SUBST(APACHE_MODULE_DIR)
    AC_SUBST(APACHE_SSL_MODULE_DIR)
    AC_SUBST(APACHE_PHP_MODULE_DIR)
    AC_SUBST(APACHE_PHP_MODULE)
fi

Looks that I get apache tests skipped simply because some needed modules are missing and, then, I think that the same check should be used for the rest of needed modules (including mod_proxy) to skip apache tests in these situations:
http://git.gnome.org/browse/libsoup/tree/tests/httpd.conf.in?h=gnome-2-30

The problem is that I don't have enough knowledge  of shell scripting to test for all that files without using a lot of "&&" :-(
Comment 8 Pacho Ramos gentoo-dev 2010-07-15 12:40:14 UTC
Created attachment 238879 [details, diff]
libsoup-2.30.2-configure-test.patch

This is the patch that fixes this (thanks to Samuli Suominen for his help)
Comment 9 Pacho Ramos gentoo-dev 2010-10-24 13:45:16 UTC
Other option could be to require apache to be built with that needed mods when running tests instead of relying on upstream way of skipping (unsuccessfully) apache tests when not present. 

I will probably take this way in the near future if nobody disagrees
Comment 10 Pacho Ramos gentoo-dev 2010-12-04 13:26:26 UTC
But, even with all apache mods present, auth-test stalls with:

PASS: uri-parsing

(auth-test:5935): libsoup-CRITICAL **: soup_auth_authenticate: assertion `SOUP_IS_AUTH (auth)' failed

(auth-test:5935): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(auth-test:5935): libsoup-CRITICAL **: soup_message_io_unpause: assertion `io != NULL' failed

even when tests run fail outside portage :-/
Comment 11 Pacho Ramos gentoo-dev 2010-12-04 13:42:34 UTC
And skipping it ends with:

httpd (pid 10961?) not running
proxy-test: 71 error(s). Run with '-d' for details
FAIL: proxy-test
Could not fetch http://127.0.0.1:47524/: 7 Connection terminated unexpectedly
FAIL: pull-api
httpd (pid 11009?) not running
range-test: 8 error(s). Run with '-d' for details
FAIL: range-test
forms-test: OK
PASS: forms-test
server-auth-test: OK
PASS: server-auth-test
SYNCHRONOUS SSL TEST PASSED
ASYNCHRONOUS SSL TEST PASSED
PASS: ssl-test
========================================================================
3 of 20 tests failed
Please report to http://bugzilla.gnome.org/enter_bug.cgi?product=libsoup
========================================================================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/var/tmp/portage/net-libs/libsoup-2.32.2/work/libsoup-2.32.2/tests'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/var/tmp/portage/net-libs/libsoup-2.32.2/work/libsoup-2.32.2/tests'
make: *** [check-recursive] Error 1

:-S