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

Bug 246978

Summary: libwww-5.4.0-r8.ebuild
Product: Gentoo Linux Reporter: Matthew Gregory Sr. <skyleach>
Component: New packagesAssignee: Text-Markup Team (OBSOLETE) <text-markup+disabled>
Status: RESOLVED INVALID    
Severity: enhancement CC: 1i5t5.duncan, bircoph, flameeyes, kfm, rcorsaro
Priority: High Keywords: EBUILD
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: new ebuild revision to increase flexibility and remove example code
removes Library/Examples from subdirs in Library/Makefile.in
uses pkg-config instead of if elif elif elif ...
added -j1 to emake call to fix bug #213863
cleaned up some stuff after learning the right way to use use_enable/with

Description Matthew Gregory Sr. 2008-11-15 20:01:01 UTC
new ebuild revision intended to address many issues related to libwww
 * add socks/socks4/socks5 support
 * add posix support
 * add optional enable/disables (USE flags)
 * make mysql inclusion handled by configure script instead of ebuild (if possible)
 * add regex support
 * make zlib inclusion optional
 * enable expat support
 * make md5 inclusion optional (handle use flag)
 * fix compilation with ssl when using posix
 * add mux support
 * should take care of bugs:
  * #150198
  * #179977
  * #182074
  * #182081
  * #193717
  * #205797
  * #213863

Reproducible: Always

Steps to Reproduce:
Comment 1 Matthew Gregory Sr. 2008-11-15 20:22:07 UTC
--without-md5 breaks the default build.

bug in libwww - wontfix for now.  Requires a patch.  MD5 will be used by default (old ebuild behavior)
Comment 2 Matthew Gregory Sr. 2008-11-15 20:35:28 UTC
--enable-posix breaks against openssl-0.9.8h - wontfix for now - posix use flag disabled
Comment 3 Matthew Gregory Sr. 2008-11-15 20:52:24 UTC
--with-expat is safe
no mention of expat is safe
--without-expat breaks the build

must manually set the configure variable, can't $(use_with expat)
this also means that expat must be installed to build libwww by default.  adding constraint to ebuild.
Comment 4 Matthew Gregory Sr. 2008-11-15 21:11:38 UTC
ran into this all over the place: it is generally unsafe with libwww to use any of the portage use_with/enable methods.

it's libwww's fault, so we either have to compensate with even more patches or (easy method) just allow it to continue silently building and linking against tons of other stuff.

i'm running out of time to spend on this, so I'm just going to update PDEPEND with everything this library really depends on.
Comment 5 Matthew Gregory Sr. 2008-11-15 23:21:21 UTC
drilled the problems I've been having down to examples.

need a patch to modify configure.ac and Makefile.in to add an argument for --enable-examples that defaults to false.

This will fix all the other problems.

Unfortunately I know very very little about autoconf and this will take me a long time unless I get help.

For now, I'm doing this the same old ugly way.

Notes for someone else or me if/when I come back to this:

=== begin configure.ac changes ===

AC_MSG_CHECKING(whether to enable examples)
AC_ARG_ENABLE(examples, [  --enable-examples          enable examples. NOTE: this will break things if you use --disable or --without),
[ case "${enableval}" in
  no)
    AC_MSG_RESULT(no)
    ;;
  *) 
    AC_MSG_RESULT(yes)
    AC_DEFINE(HT_NO_NAGLE,, [Define to disable Nagle's algorithm])
    AC_DEFINE(LIBWWWEAMPLES,,[Define to enable examples])
    ;;
  esac ],
  AC_MSG_RESULT(no)
)

====== end configure.ac changes ======

?? 
Comment 6 Matthew Gregory Sr. 2008-11-16 00:56:31 UTC
ugh, I was trying to do this the hard way.
patchfile removes Library/Examples from subdirs in Library/Makefile.in to avoid it entirely
zlib is still a hard requirement for now
expat still gets enabled if configure finds it afaict
md5 is still used no matter what, the configure script does this on it's own afaict

need a patch to enable socks, socks4 and/or socks5 so those use flags must be left out for now (needs to build against dante)

webdav use flag now handled
mysql use flag now handled a little more nicely (EXPEREMENTAL)
ssl use flag stays the same
X use flag now handled
regex use flag now handled

Functionally, this should be the same on all systems unless you enable webdav, X or regex in make.conf with the exception of mysql being found by configure instead of specifically linked in the ebuild.  That *may* have effects on non-linux systems, I simply do not know.

Obviously, testing required and I'll keep up with this bug.

For future reference placing a comment in an ebuild costs almost nothing and I would actually have some clue as to why the mysql libraries are specifically pointed to.  I have looked at the patchfiles and I know that there *may* be issues here, but the solution of hard-linking against the .so in the ebuild will almost certainly cause portability issues.  Please let me know if there is some reason this was done.
Comment 7 Matthew Gregory Sr. 2008-11-16 00:59:10 UTC
Created attachment 171932 [details]
new ebuild revision to increase flexibility and remove example code
Comment 8 Matthew Gregory Sr. 2008-11-16 01:01:39 UTC
Created attachment 171934 [details, diff]
removes Library/Examples from subdirs in Library/Makefile.in

this just bypasses the Examples completely.  They weren't installed anyhow and they do not check which configure options were set/unset so the make blows up on almost anything.  No option in libwww to bypass this without patching the file.
Comment 9 Matthew Gregory Sr. 2008-11-16 01:04:11 UTC
my gregory-gentoo test system emerge --info:
============ emerge --info =============
gregory-gentoo src # emerge --info
WARNING: repository at /usr/local/portage is missing a repo_name entry
Portage 2.2_rc14 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r8ttvn-matt i686)
=================================================================
System uname: Linux-2.6.25-gentoo-r8ttvn-matt-i686-Intel-R-_Xeon-TM-_CPU_3.20GHz-with-glibc2.0
Timestamp of tree: Fri, 14 Nov 2008 21:31:01 +0000
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.4.4-r14, 2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -Os -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /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/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=pentium4 -Os -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg ccache distcc distlocks notitles parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://gentoo.mirrors.tds.net/gentoo ftp://gentoo.mirrors.tds.net/gentoo http://gentoo.mirrors.easynews.com/linux/gentoo/ "
LDFLAGS="-Wl,-O1"
LINGUAS="en en_US"
PKGDIR="/usr/portage/packages"
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="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="R X a52 aac aalib acl acpi activefilter ads alsa amr ao apache2 arts artworkextra async asyncns atm automount bash-completion bashlogger bcmath berkdb blender-game bluetooth branding bsf bzip2 cairo calendar caps cdda cddb cdio cdparanoia cdr cgraph chicken cli cpudetection cracklib crypt cscope cups curl curlwrappers daap dbus dell device-mapper dhcp disk-partition djvu dmx dri dtaus dv dvb dvd dvdr dvi eap-tls elf encode epiphany escreen esd etwin examples extra extras fam fastbuild fat ffmpeg fftw firebird firefox flac flatfile fltk fluxbox fontconfig fortran fpx freetds ftp fuse gadu gcj gcrypt gd gdbm gedit geldkarte ggi gif glib glitz gmp gnome gnome-keyring gnutls gphoto2 gpm graphviz gstreamer gtk gtk2 gtkhtml guile hal hash hbci hddtemp hdri hfs iconv icu ieee1394 imagemagick imap imlib immqt ipod ipv6 isdnlog ithreds jack java javamail jbig jfs jms jmx jpeg jpeg2k justify kde kerberos ladspa lapack lcms ldap libcaca libffi libnotify libsamplerate libssh2 libwww lm_sensors logitech-mouse logrotate lua mad mailwrapper mbox md5sum mhash midi mikmod mime mmap mmx mmxext mng mod_python modperl modplug mono motif mp2 mp3 mp4 mpeg mplayer mppe-mppc mssql mudflap musepack musicbrainz mysql mzscheme nas nautilus ncurses netbeans network network-cron networking nextaw nls nntp nodrm nptl nptlonly nsplugin ntfs ntlm_unsupported_patch nvtv objc objc++ objc-gc ocaml octave odbc offensive ofx ogg openal openexr opengl openmp pam pch pcre pdf perl pgsql php pic pike plotutils plugins png portaudio postgres povray ppds pppd proxy_http pulseaudio python q32 qt3 qt4 quicktime quotas quotes radius rar readline redland reflection reiser4 reiserfs remote rle samba scanner script sdl sendmail sensord session slang slp smi smp smux sndfile sni snmp soap socks5 speex spell spl srp sse sse2 ssl suid svg swat sysfs syslog t1lib tcl tcpd tga theora threads tiff timidity tk tls toolbar tools tordns tracker truetype unicode urandom usb utempter vcd vhosts vidix vim vim-pager vim-sintax vim-syntax vim-with-x visualization vorbis wavpack webdav webdav-serf win32codecs winbind wma wmf wxwindows x264 x86 xattr xcb xcomposite xfce xfs xft xine xinetd xml xmldoclet xmlreader xmlrpc xmlwriter xorg xpm xsl xulrunner xvid xvmc yaz yellownet ziffy zip zlib" ALSA_CARDS="intel8x0 intel8x0m" 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="cern_meta imagemap log_forensic proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http substitute version mime mime_magic mem_cache log_config status speling setenvif rewrite include headers filter file_cache ext_filter expires env disk_cache dir deflate dav_lock dav_fs dav cache autoindex authz_user authz_owner authz_host alias actions auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile info logio negotiation unique_id userdir usertrack vhost_alias" CAMERAS="canon" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="nv nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 10 Matthew Gregory Sr. 2008-11-16 01:45:29 UTC
successfully added Kerin Millar's proposed patch to my test
(from bug #205797)
Comment 11 Matthew Gregory Sr. 2008-11-16 01:47:14 UTC
Created attachment 171937 [details, diff]
uses pkg-config instead of if elif elif elif ...
Comment 12 Matthew Gregory Sr. 2008-11-16 02:06:42 UTC
added -j1 to the ebuild to fix bug #213863
Comment 13 Matthew Gregory Sr. 2008-11-16 02:09:25 UTC
Created attachment 171939 [details]
added -j1 to emake call to fix bug #213863
Comment 14 Duncan 2008-11-16 06:08:30 UTC
(In reply to comment #13)
> Created an attachment (id=171939) [edit]
> added -j1 to emake call to fix bug #213863

That's a workaround, not a fix.  Still it's better than nothing, on a bug that has sat for six months without so much as a comment, so thanks.  Further discussion on that bug.
Comment 15 Matthew Gregory Sr. 2008-11-16 06:24:45 UTC
Created attachment 171943 [details]
cleaned up some stuff after learning the right way to use use_enable/with
Comment 16 kfm 2008-11-17 04:25:33 UTC
*** Bug 205797 has been marked as a duplicate of this bug. ***
Comment 17 Matthew Gregory Sr. 2008-11-17 13:36:19 UTC
I'm adding flameeyes in on this as he started running into the same issues as I have but failed to see this bug before submitting his.

Flameyes: I am going to check r8 against your bug 213863.

I have spent all weekend working in w3c code and if there can be any universal truths in this lifetime then at the top of the list should be 'the w3c developers write horrible autotools code' ;-)
Comment 18 Matthew Gregory Sr. 2008-11-17 13:42:36 UTC
wups, flameeyes submitted his bug before this one so I was wrong in ^^ comment.

I tried all kinds of searches related to libwww and flameeyes's bug #213863 never shows up in the results.  I have no idea why.
Comment 19 Samuli Suominen (RETIRED) gentoo-dev 2010-07-18 21:55:03 UTC
Comment on attachment 171934 [details, diff]
removes Library/Examples from subdirs in Library/Makefile.in

Is editing wrong file, should be for Makefile.am instead
Comment 20 Samuli Suominen (RETIRED) gentoo-dev 2010-07-18 21:56:01 UTC
Comment on attachment 171943 [details]
cleaned up some stuff after learning the right way to use use_enable/with

A lot of commented cruft, can't find anything usable here. Also it's outdated wrt what is in tree now.

Post patch's against current ebuild instead.
Comment 21 Samuli Suominen (RETIRED) gentoo-dev 2010-07-18 21:56:22 UTC
Comment on attachment 171937 [details, diff]
uses pkg-config instead of if elif elif elif ...

Already handled by bug 205797.
Comment 22 Samuli Suominen (RETIRED) gentoo-dev 2010-07-18 21:57:06 UTC
closing