Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 225831 - update to glibc ebuiild files leaves glibc-2.6.1 without idn support (symptom -- bad value for ai_flags)
Summary: update to glibc ebuiild files leaves glibc-2.6.1 without idn support (symptom...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High critical (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-11 03:33 UTC by Gerard Neil
Modified: 2008-06-11 19:40 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gerard Neil 2008-06-11 03:33:02 UTC
Changes of Jun 8 to /sys-libs/files/eblits/src_unpack.eblit mean that the var LIB_IDNVER must be set in the glibc ebuild in order for libidn to be unpacked (here's a diff excerpt):

$ diff ~/glibc/files/eblits/src_unpack.eblit src_unpack.eblit 
3c3
< # $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.4 2007/11/11 20:12:38 vapier Exp $
---
> # $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.5 2008/06/08 00:49:09 vapier Exp $
  :
60,62c63,65
< 	[[ -n ${LT_VER} ]] && unpack glibc-linuxthreads-${LT_VER}.tar.bz2
< 	[[ -n ${PORTS_VER} ]] && unpack_addon ports ${PORTS_VER}
< 	unpack_addon libidn
---
> 	[[ -n ${LT_VER}     ]] && unpack_pkg linuxthreads ${LT_VER}
> 	[[ -n ${PORTS_VER}  ]] && unpack_pkg ports ${PORTS_VER}
> 	[[ -n ${LIBIDN_VER} ]] && unpack_pkg libidn
:

Unfortunately, the corresponding change to glib-2.6.1 is missing, meaning that glibc gets build without the libidn addon.

Without the libidn addon, applications that use internationalised domain names fail. For example:

 $ traceroute www.google.com.au
 www.google.com.au: Bad value for ai_flags
 Cannot handle "host" cmdline arg `www.google.com.au' on position 1 (argc 1)

Here's a patch to fix the problem:

$diff -N /usr/portage/sys-libs/glibc/glibc-2.6.1.ebuild  glibc-2.6.1.ebuild 
23a24
> LIBIDN_VER="2.6.1"      # version of libidn addon

I've marked this critical as it's the stable glibc that's affected.

Reproducible: Always

Steps to Reproduce:
1.Emerge glibc stable 2.6.1
2.Notice in emerge output that glibc-libidn-2.6.1.tar.bz2 isn't unpacked
3.Notice that libcidn.so isn't built as part of glibc
4.traceroute fails with "bad ai_flags"




I'm not sure how glibc gets tested, but it would be good to have something in the test suite that picks up missing add-ons... it's an easy sort of mistake to make.
Comment 1 Gerard Neil 2008-06-11 04:55:59 UTC
Correction, patch should probably read:

LIBIDN_VER=${RELEASE_VER}      # version of libidn addon
 
Comment 2 Andrei Ivanov 2008-06-11 11:20:06 UTC
After upgrading to gcc 4.3.1, I've reemerged `system` and now I have this problem, using glibc-2.7-r2

Portage 2.1.5.4 (default-linux/x86/2007.0, gcc-4.3.1, glibc-2.7-r2, 2.6.24-gentoo-r8 i686)
=================================================================
System uname: 2.6.24-gentoo-r8 i686 AMD Athlon(tm) XP 2600+
Timestamp of tree: Wed, 11 Jun 2008 06:45:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.3.6-r2, 2.4.4-r4, 2.5.2-r4
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.2.5
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.62
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.25-r4
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /var/qmail/alias /var/qmail/control"
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/udev/rules.d"
CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FEATURES="candy distlocks fixpackages parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="ftp://ftp.roedu.net/pub/mirrors/gentoo.org"
LDFLAGS=""
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.europe.gentoo.org/gentoo-portage"
USE="3dnow aalib acl acpi adns alsa apache2 bzip2 cairo caps cli cracklib crypt cups curl curlwrappers dio exif expat flac fortran ftp gd gif gmp gpm iconv idn imagemagick imap imlib isdnlog jpeg mad maildir mailwrapper memlimit mhash midi mmap mmx mudflap ncurses network-cron nocxx nptl nptlonly offensive oggvorbis openmp pam pcntl pcre png posix pppd readline reflection samba session shared sharedmem slang soap sockets speex spl sse ssl svg sysvipc tcpd theora tiff truetype unicode urandom usb vhosts vim-syntax wmf x86 xml xmlrpc 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 mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Andrei Ivanov 2008-06-11 14:21:54 UTC
I've reemerged glibc-2.7-r2 again, and idn support still isn't compiled in...
I've saved the output of the emerge and searched for `idn`, and there are only 2 lines containing the string:

 * glibc-libidn-2.7.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                             [ ok ]
 * checking glibc-libidn-2.7.tar.bz2 ;-) ...                                                                            [ ok ]