Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 146780
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Gentoo Dialup Developers <net-dialup@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Michael S Costello <fraterm@ideologies.org>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 146780 depends on: Show dependency tree
Bug 146780 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2006-09-07 19:38 0000
After a fresh 'emerge --sync' set about to an 'emerge -u world' and stumbled
across a ppp build failure.

The tail end of the build failure for net-dialup/ppp-2.4.4-r1: 

x86_64-pc-linux-gnu-gcc -O2 -pipe -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP
-I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW
-DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN
-DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS   -c -o chap-md5.o chap-md5.c
eap.c: In function `eap_request':
eap.c:1552: error: `MD5_CTX' undeclared (first use in this function)
eap.c:1552: error: (Each undeclared identifier is reported only once
eap.c:1552: error: for each function it appears in.)
eap.c:1552: error: syntax error before "mdContext"
eap.c:1681: error: `mdContext' undeclared (first use in this function)
eap.c: In function `eap_response':
eap.c:2043: error: `MD5_CTX' undeclared (first use in this function)
eap.c:2043: error: syntax error before "mdContext"
eap.c:2248: error: `mdContext' undeclared (first use in this function)
make[1]: *** [eap.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/var/tmp/portage/ppp-2.4.4-r1/work/ppp-2.4.4/pppd'
make: *** [all] Error 2

!!! ERROR: net-dialup/ppp-2.4.4-r1 failed.
Call stack:
  ebuild.sh, line 1546:   Called dyn_compile
  ebuild.sh, line 937:   Called src_compile
  ppp-2.4.4-r1.ebuild, line 114:   Called die

!!! compile failed
!!! If you need support, post the topmost build error, and the call stack if
relevant.

emerge --info here:
byron ~ # emerge --info
Portage 2.1.1_rc1-r7 (default-linux/amd64/2006.0, gcc-3.4.6/amd64-vanilla,
glibc-2.4-r3, 2.6.16-gentoo-r8 x86_64)
=================================================================
System uname: 2.6.16-gentoo-r8 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor
4200+
Gentoo Base System version 1.12.4
Last Sync: Thu, 07 Sep 2006 23:00:01 +0000
app-admin/eselect-compiler: 2.0.0_rc2-r1
dev-lang/python:     2.4.3-r3
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.16
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler
/etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks fixpackages metadata-transfer sandbox sfperms
strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LINGUAS="en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --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="amd64 3ds X a52 aac aalib acpi activefilter ada aim alsa apache2 asf async
avi berkdb bidi binary-drivers bitmap-fonts bl blender-game bonjour buttons
bzip2 cairo cdr cjk cli cpudetection crypt css cups dhcp dlloader dpms dri dv
dvd dvdr dvdread eap-tls edl eds effects elibc_glibc emboss encode esd exif
fame fat ffmpeg flac font-server foomaticdb fortran gdbm gif gimp gimpprint
gnome gphoto2 gpm gs gstreamer gtk gtk2 guile hal hbci imlib immqt-bc infopipe
inkjar input_devices_evdev input_devices_keyboard input_devices_mouse
input_devices_wacom ipv6 isdnlog java joystick jpeg kde kernel_linux krb4
ladspa ldap ldapsam linguas_en lm_sensors lzw lzw-tiff mbrola mng mozcalendar
mozdevelop mp3 mpeg ncurses nls nptl nptlonly nsplugin nvidia offensive ofx ogg
opengl pam pcntl pcre pdf pdflib perl png posix postgres ppds pppd python qt3
qt4 quicktime quotes radius readline reflection samba scanner sdk sdl session
smp snmp spell spl ssl subversion svg symlink sysfs tcltk tcpd tga theora
threads tidy tiff transcode truetype truetype-fonts type1-fonts unicode usb
userland_GNU video_cards_nv video_cards_nvidia video_cards_vesa video_cards_vga
vorbis wmf xml xmms xorg xpm xprint xrandr xscreensaver xv xvid yahoo yv12
zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS,
PORTAGE_RSYNC_EXTRA_OPTS

------- Comment #1 From Ruslan N. Marchenko 2006-09-07 23:22:25 0000 -------
(In reply to comment #0)

The same thing, temporary workaround by disabling eap-tls

------- Comment #2 From Alin Năstac 2006-09-08 01:35:25 0000 -------
Works for me. The MD5_CTX type is defined in md5.h .
Maybe on your system __MD5_INCLUDE__ is defined through other included header
file?

------- Comment #3 From Michael S Costello 2006-09-08 06:24:32 0000 -------
(In reply to comment #2)
> Works for me. The MD5_CTX type is defined in md5.h .
> Maybe on your system __MD5_INCLUDE__ is defined through other included header
> file?
> 

Well, there are many instances of md5.h on my system.

Several in each /usr/src/<linux-kernel-version>/
Several in /usr/include for varying programs, athena widgets, php, would it
help to get a list of these?

If it is dependent on the kernel, I suppose it'd be because I have the eap-tls
use flag enabled, and it might require that to be supported in my
gentoo-sources massaged config, except that I don't see that declared anywhere
in any of these headers.

Running: 
for file in `locate /md5.h`; do grep '__MD5_INCLUDE__' $file; done
came up with nothing after an updatedb.

------- Comment #4 From Alin Năstac 2006-09-09 01:54:09 0000 -------
Please look for the cause of your problem. I can't fix it if I don't know what
caused it, can I?

Hints: 
1) make sure the local md5.h file is the one used by the compiler. Place an 
  #error "Local file used" 
at the beggining of the /var/tmp/portage/ppp-2.4.4/work/ppp-2.4.4/pppd/md5.h
file and run make
2) search for __MD5_INCLUDE__ in *all* include files
   grep -r __MD5_INCLUDE__ /usr/include 

------- Comment #5 From Michael S Costello 2006-09-09 15:27:12 0000 -------
(In reply to comment #4)
> Please look for the cause of your problem. I can't fix it if I don't know what
> caused it, can I?
Don't imagine you could, unless part of the gentoo dev/bugfix qualification is
a psychic power test.  Going with what you suggest for the hints.

> 
> Hints: 
> 1) make sure the local md5.h file is the one used by the compiler. Place an 
>   #error "Local file used" 
> at the beggining of the /var/tmp/portage/ppp-2.4.4/work/ppp-2.4.4/pppd/md5.h
> file and run make

Here's this:


byron pppd # vi md5.h
byron pppd # make
cc -Wall -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include
'-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1
-DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DPPP_FILTER
-DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS   -c -o eap.o eap.c
eap.c: In function `eap_request':
eap.c:1552: error: `MD5_CTX' undeclared (first use in this function)
eap.c:1552: error: (Each undeclared identifier is reported only once
eap.c:1552: error: for each function it appears in.)
eap.c:1552: error: syntax error before "mdContext"
eap.c:1681: warning: implicit declaration of function `MD5_Init'
eap.c:1681: error: `mdContext' undeclared (first use in this function)
eap.c:1683: warning: implicit declaration of function `MD5_Update'
eap.c:1687: warning: implicit declaration of function `MD5_Final'
eap.c: In function `eap_response':
eap.c:2043: error: `MD5_CTX' undeclared (first use in this function)
eap.c:2043: error: syntax error before "mdContext"
eap.c:2248: error: `mdContext' undeclared (first use in this function)
make: *** [eap.o] Error 1

> 2) search for __MD5_INCLUDE__ in *all* include files
>    grep -r __MD5_INCLUDE__ /usr/include 
> 

byron ~ # grep -r __MD5_INCLUDE__ /usr/include
grep: warning: /usr/include/gnome-xml/libxml: recursive directory loop

No Result was returned by that.  Except for the recursion warning by grep.

Oddly enough I'm finding that one program now reports missing headers, alut.h
from the openal project is called out by the flightgear flight sim, new and old
profile.  Not appropriate to go into here in depth, unless you think this is a
sign of a broad misconfiguration on my part.

Currently I'm just masking out any greater version of ppp than the current one,
so as not to break my ability to tunnel if I need to.

Appreciate the suggestions with this, hope the information helps narrow
something down.

------- Comment #6 From Sven 2006-09-09 17:17:47 0000 -------
in eap.c, the line 
  #include "md5.h"
is commented!? why!? after uncommenting it, it compiles fine!

(BTW: md5.h is included in pppd's sources)

------- Comment #7 From Michael S Costello 2006-09-09 18:23:31 0000 -------
(In reply to comment #6)
> in eap.c, the line 
>   #include "md5.h"
> is commented!? why!? after uncommenting it, it compiles fine!
> 
> (BTW: md5.h is included in pppd's sources)
> 

I did this and had the same result.  Freaky.  Guessing upstream went nutto.

------- Comment #8 From emerald 2006-09-10 01:29:05 0000 -------
i guess it has been introduced with openssl 0.9.8 since the error first occured
for me when recompiling ppp after upgrade to openssl 0.9.8b/c

------- Comment #9 From Alin Năstac 2006-09-10 01:46:17 0000 -------
the first comment was about chap-md5.c, not eap.c!

Please test the following:
 1) ebuild ppp-2.4.4-r1.ebuild unpack
 2) uncomment #include "md5.h" from eap.c
 3) ebuild ppp-2.4.4-r1.ebuild compile

For me, it builds just fine if I don't uncomment the include and fails if I
uncomment it:
i686-pc-linux-gnu-gcc -march=athlon-xp -O3 -pipe -DHAVE_PATHS_H -DIPX_CHANGE
-DHAVE_MMAP -I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW
-DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN
-DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS   -c -o eap.o eap.c
In file included from /usr/include/openssl/evp.h:84,
                 from /usr/include/openssl/x509.h:67,
                 from /usr/include/openssl/ssl.h:177,
                 from eap-tls.h:37,
                 from eap.c:72:
/usr/include/openssl/md5.h:105: error: conflicting types for 

------- Comment #10 From Alin Năstac 2006-09-10 01:46:17 0000 -------
the first comment was about chap-md5.c, not eap.c!

Please test the following:
 1) ebuild ppp-2.4.4-r1.ebuild unpack
 2) uncomment #include "md5.h" from eap.c
 3) ebuild ppp-2.4.4-r1.ebuild compile

For me, it builds just fine if I don't uncomment the include and fails if I
uncomment it:
i686-pc-linux-gnu-gcc -march=athlon-xp -O3 -pipe -DHAVE_PATHS_H -DIPX_CHANGE
-DHAVE_MMAP -I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW
-DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN
-DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS   -c -o eap.o eap.c
In file included from /usr/include/openssl/evp.h:84,
                 from /usr/include/openssl/x509.h:67,
                 from /usr/include/openssl/ssl.h:177,
                 from eap-tls.h:37,
                 from eap.c:72:
/usr/include/openssl/md5.h:105: error: conflicting types for ‘MD5_CTX’
md5.h:58: error: previous declaration of ‘MD5_CTX’ was here
/usr/include/openssl/md5.h:110: error: conflicting types for ‘MD5_Init’
md5.h:60: error: previous declaration of ‘MD5_Init’ was here
/usr/include/openssl/md5.h:111: error: conflicting types for ‘MD5_Update’
md5.h:61: error: previous declaration of ‘MD5_Update’ was here
/usr/include/openssl/md5.h:112: error: conflicting types for ‘MD5_Final’
md5.h:62: error: previous declaration of ‘MD5_Final’ was here

I guess the latest openssl renamed the MD5_CTX type.

------- Comment #11 From Alin Năstac 2006-09-10 03:42:54 0000 -------
I've discovered what was the problem. The new openssl (0.9.8.c) no longer
includes <openssl/md5.h> in openssl/ssl.h.

Fixed (without revision bump) in ppp-2.4.3-r16 and ppp-2.4.4-r1, by including
<openssl/md5.h> in eap.c. I've tested both ebuilds against
dev-libs/openssl-0.9.7j and dev-libs/openssl-0.9.8c.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug