Bug 106970 - gdbm-1.8.3-r1 (rev. 1.16) breaks ebuilds that need gdbm
Bug#: 106970 Product:  Gentoo Linux Version: unspecified Platform: x86
OS/Version: Linux Status: RESOLVED Severity: blocker Priority: P2
Resolution: FIXED Assigned To: base-system@gentoo.org Reported By: lzap@seznam.cz
Component: Ebuilds
URL: 
Summary: gdbm-1.8.3-r1 (rev. 1.16) breaks ebuilds that need gdbm
Keywords:  
Status Whiteboard: 
Opened: 2005-09-23 02:11 0000
Description:   Opened: 2005-09-23 02:11 0000
GDBM_File.c:470: error: syntax error before "db"
GDBM_File.c:474: error: `db' undeclared (first use in this function)
GDBM_File.c:474: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_EXISTS':
GDBM_File.c:492: error: syntax error before "db"
GDBM_File.c:499: error: `db' undeclared (first use in this function)
GDBM_File.c:499: error: called object is not a function
GDBM_File.c:505: error: `key' undeclared (first use in this function)
GDBM_File.c:514:1: warning: "gdbm_setopt" redefined
GDBM_File.xs:57:1: warning: this is the location of the previous definition
GDBM_File.c: In function `XS_GDBM_File_setopt':
GDBM_File.c:522: error: syntax error before "db"
GDBM_File.c:531: error: `db' undeclared (first use in this function)
GDBM_File.c:531: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_fetch_key':
GDBM_File.c:549: error: syntax error before "db"
GDBM_File.c:555: error: `db' undeclared (first use in this function)
GDBM_File.c:555: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_store_key':
GDBM_File.c:573: error: syntax error before "db"
GDBM_File.c:579: error: `db' undeclared (first use in this function)
GDBM_File.c:579: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_fetch_value':
GDBM_File.c:597: error: syntax error before "db"
GDBM_File.c:603: error: `db' undeclared (first use in this function)
GDBM_File.c:603: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_store_value':
GDBM_File.c:621: error: syntax error before "db"
GDBM_File.c:627: error: `db' undeclared (first use in this function)
GDBM_File.c:627: error: called object is not a function
make[1]: *** [GDBM_File.o] Error 1
make[1]: Leaving directory
`/var/tmp/portage/perl-5.8.6-r6/work/perl-5.8.6/ext/GDBM_File'
make: *** [lib/auto/GDBM_File/GDBM_File.so] Error 2

!!! ERROR: dev-lang/perl-5.8.6-r6 failed.
!!! Function src_compile, Line 262, Exitcode 2
!!! Unable to make
!!! If you need support, post the topmost build error, NOT this status message.


Reproducible: Always
Steps to Reproduce:
1.
2.
3.

Actual Results:  
Nothing :-)

Expected Results:  
Portage upgrade...

zapletalovi ~ # emerge info
Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.6, glibc-2.3.5-r1,
2.6.5-gentoo-r1 i686)
=================================================================
System uname: 2.6.5-gentoo-r1 i686 Pentium III (Katmai)
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.3-r1 [2.3.3 (#2, Aug 22 2004, 00:52:41)]
dev-lang/python:     2.3.3-r1
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.4.3-r4, 1.5.16
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium3 -O3 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/alias /var/qmail/control /var/vpopmail/domains
/var/vpopmail/etc"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium3 -O3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.math.bme.hu
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo
http://212.219.247.21/sites/www.ibiblio.org/gentoo"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 apache2 apm bash-completion berkdb cdb clamd crypt cups curl cyrus
foomaticdb gd gdbm gif gzip imagemagick imap imlib innodb java jikes jpeg junit
jython libg++ libwww maildir mmx mysql ncurses nls oav pam perl png python
readline samba sasl sqlite sse ssl tcpd tiff xml2 zlib userland_GNU kernel_linux
elibc_glibc"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY

------- Comment #1 From Paul Taylor 2005-09-23 10:42:11 0000 -------
I have the same error compiling perl-5.8.7-r1 on x86 and amd64; re-emerging
gdbm
didn't help:

[snip]
        Making GDBM_File (dynamic)
Writing Makefile for GDBM_File
make[1]: Entering directory
`/var/tmp/portage/perl-5.8.7-r1/work/perl-5.8.7/ext/GDBM_File'
make[1]: Leaving directory
`/var/tmp/portage/perl-5.8.7-r1/work/perl-5.8.7/ext/GDBM_File'
make[1]: Entering directory
`/var/tmp/portage/perl-5.8.7-r1/work/perl-5.8.7/ext/GDBM_File'
cp GDBM_File.pm ../../lib/GDBM_File.pm
../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp
-noprototypes -typemap ../../lib/ExtUtils/typemap -typemap typemap 
GDBM_File.xs
> GDBM_File.xsc && mv GDBM_File.xsc GDBM_File.c
i686-pc-linux-gnu-gcc -c   -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -march=athlon-xp -O3 -pipe -ftracer   -DVERSION=\"1.07\"
-DXS_VERSION=\"1.07\" -fPIC "-I../.."   GDBM_File.c
GDBM_File.xs:5:18: gdbm.h: No such file or directory
GDBM_File.xs:9: error: parse error before "GDBM_FILE"
GDBM_File.xs:9: warning: no semicolon at end of struct or union
GDBM_File.xs:15: error: parse error before '}' token
GDBM_File.xs:15: warning: data definition has no type or storage class
GDBM_File.xs:17: error: parse error before '*' token
GDBM_File.xs:17: warning: data definition has no type or storage class
GDBM_File.xs:18: error: parse error before "datum_key"
GDBM_File.xs:18: warning: data definition has no type or storage class
GDBM_File.xs:19: error: parse error before "datum_value"
GDBM_File.xs:19: warning: data definition has no type or storage class
GDBM_File.xs:20: error: parse error before "datum_key_copy"
GDBM_File.xs:20: warning: data definition has no type or storage class
GDBM_File.c: In function `XS_GDBM_File_TIEHASH':
GDBM_File.c:190: error: parse error before "RETVAL"
GDBM_File.xs:75: error: `GDBM_FILE' undeclared (first use in this function)
GDBM_File.xs:75: error: (Each undeclared identifier is reported only once
GDBM_File.xs:75: error: for each function it appears in.)
GDBM_File.xs:75: error: parse error before "dbp"
GDBM_File.xs:77: error: `RETVAL' undeclared (first use in this function)
GDBM_File.xs:78: error: `dbp' undeclared (first use in this function)
GDBM_File.xs:79: error: parse error before "Perl_safesysmalloc"
GDBM_File.c: In function `XS_GDBM_File_close':
GDBM_File.c:224: error: parse error before "db"
GDBM_File.c:228: error: `db' undeclared (first use in this function)
GDBM_File.c:228: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_DESTROY':
GDBM_File.c:247: error: parse error before "db"
GDBM_File.c:251: error: `db' undeclared (first use in this function)
GDBM_File.c:251: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_FETCH':
GDBM_File.c:271: error: parse error before "db"
GDBM_File.c:277: error: `db' undeclared (first use in this function)
GDBM_File.c:277: error: called object is not a function
GDBM_File.c:283: error: `key' undeclared (first use in this function)
GDBM_File.c:286: error: `RETVAL' undeclared (first use in this function)
GDBM_File.c: In function `XS_GDBM_File_STORE':
GDBM_File.c:302: error: parse error before "db"
GDBM_File.c:311: error: `db' undeclared (first use in this function)
GDBM_File.c:311: error: called object is not a function
GDBM_File.c:317: error: `key' undeclared (first use in this function)
GDBM_File.c:322: error: `value' undeclared (first use in this function)
GDBM_File.c:331: error: `GDBM_REPLACE' undeclared (first use in this function)
GDBM_File.c: In function `XS_GDBM_File_DELETE':
GDBM_File.c:358: error: parse error before "db"
GDBM_File.c:365: error: `db' undeclared (first use in this function)
GDBM_File.c:365: error: called object is not a function
GDBM_File.c:371: error: `key' undeclared (first use in this function)
GDBM_File.c: In function `XS_GDBM_File_FIRSTKEY':
GDBM_File.c:388: error: parse error before "db"
GDBM_File.c:393: error: `db' undeclared (first use in this function)
GDBM_File.c:393: error: called object is not a function
GDBM_File.c:398: error: `RETVAL' undeclared (first use in this function)
GDBM_File.c: In function `XS_GDBM_File_NEXTKEY':
GDBM_File.c:414: error: parse error before "db"
GDBM_File.c:420: error: `db' undeclared (first use in this function)
GDBM_File.c:420: error: called object is not a function
GDBM_File.c:426: error: `key' undeclared (first use in this function)
GDBM_File.c:429: error: `RETVAL' undeclared (first use in this function)
GDBM_File.c: In function `XS_GDBM_File_reorganize':
GDBM_File.c:445: error: parse error before "db"
GDBM_File.c:451: error: `db' undeclared (first use in this function)
GDBM_File.c:451: error: called object is not a function
GDBM_File.c:462:1: warning: "gdbm_sync" redefined
GDBM_File.xs:56:1: warning: this is the location of the previous definition
GDBM_File.c: In function `XS_GDBM_File_sync':
GDBM_File.c:470: error: parse error before "db"
GDBM_File.c:474: error: `db' undeclared (first use in this function)
GDBM_File.c:474: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_EXISTS':
GDBM_File.c:492: error: parse error before "db"
GDBM_File.c:499: error: `db' undeclared (first use in this function)
GDBM_File.c:499: error: called object is not a function
GDBM_File.c:505: error: `key' undeclared (first use in this function)
GDBM_File.c:514:1: warning: "gdbm_setopt" redefined
GDBM_File.xs:57:1: warning: this is the location of the previous definition
GDBM_File.c: In function `XS_GDBM_File_setopt':
GDBM_File.c:522: error: parse error before "db"
GDBM_File.c:531: error: `db' undeclared (first use in this function)
GDBM_File.c:531: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_fetch_key':
GDBM_File.c:549: error: parse error before "db"
GDBM_File.c:555: error: `db' undeclared (first use in this function)
GDBM_File.c:555: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_store_key':
GDBM_File.c:573: error: parse error before "db"
GDBM_File.c:579: error: `db' undeclared (first use in this function)
GDBM_File.c:579: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_fetch_value':
GDBM_File.c:597: error: parse error before "db"
GDBM_File.c:603: error: `db' undeclared (first use in this function)
GDBM_File.c:603: error: called object is not a function
GDBM_File.c: In function `XS_GDBM_File_filter_store_value':
GDBM_File.c:621: error: parse error before "db"
GDBM_File.c:627: error: `db' undeclared (first use in this function)
GDBM_File.c:627: error: called object is not a function
make[1]: *** [GDBM_File.o] Error 1
make[1]: Leaving directory
`/var/tmp/portage/perl-5.8.7-r1/work/perl-5.8.7/ext/GDBM_File'
make: *** [lib/auto/GDBM_File/GDBM_File.so] Error 2

!!! ERROR: dev-lang/perl-5.8.7-r1 failed.
!!! Function src_compile, Line 263, Exitcode 2
!!! Unable to make
!!! If you need support, post the topmost build error, NOT this status message.

------- Comment #2 From Marien Zwart (RETIRED) 2005-09-23 13:00:49 0000 -------
Although I didn't run into this myself, someone else did. I noticed that while
his system didn't have /usr/include/gdbm.h, my system did have it. Also,
http://www.gentoo.org/cgi-bin/viewcvs.cgi/sys-libs/gdbm/gdbm-1.8.3-r1.ebuild?r1=1.15&r2=1.16
reports a change to the gdbm ebuild that's roughly at the same time as this bug
showed up, and remerging gdbm using this new ebuild made my /usr/include/gdbm.h
disappear as well.

------- Comment #3 From Chris Torske 2005-09-23 14:04:42 0000 -------
Ok, I have been testing with the help from the gentoo-bugs irc channel, and I
have identified the most current patch (GDBM v1.16) is causing this issue. 
patch 1.15 on the same package comnpiles correctly on both gdbm and perl.

------- Comment #4 From Arndt Wills 2005-09-24 02:33:12 0000 -------
I got exactly the same problem. It also seems to make php fail to compile  
(an probably most of the other packages with gdbm useflag).  
 
To be precise, not the patch introduced with gdbm 1.16 did cause this, but  
the cleanup that was done to the ebuild at the same time. The basic problem  
is that gdbm.h is now installed to /usr/include/gdbm/gdbm.h instead of 
/usr/include/gdbm.h. 
 
I just reverted some of the cleanup in gdbm-1.8.3-r1.ebuild  
(see includefix.diff) and now everything works as expected. 

------- Comment #5 From Arndt Wills 2005-09-24 02:34:57 0000 -------
Created an attachment (id=69150) [details]
revert some changes to make gdbm.h install in /usr/include again

------- Comment #6 From Arndt Wills 2005-09-24 02:36:29 0000 -------
(From update of attachment 69150 [details])
revert some changes to make gdbm.h install in /usr/include again

------- Comment #7 From lzap 2005-09-24 03:00:50 0000 -------
gdbmobj.c:166: error: syntax error before "dkey"
gdbmobj.c:168: error: dereferencing pointer to incomplete type
gdbmobj.c:170: error: `dkey' undeclared (first use in this function)
gdbmobj.c:173: error: `val' undeclared (first use in this function)
gdbmobj.c:173: error: dereferencing pointer to incomplete type
make[3]: *** [gdbmobj.lo] Error 1
make[3]: Leaving directory
`/var/tmp/portage/courier-authlib-0.57-r1/work/courier-authlib-0.57/gdbmobj'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/var/tmp/portage/courier-authlib-0.57-r1/work/courier-authlib-0.57/gdbmobj'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/courier-authlib-0.57-r1/work/courier-authlib-0.57'
make: *** [all] Error 2

!!! ERROR: net-libs/courier-authlib-0.57-r1 failed.
!!! Function src_compile, Line 101, Exitcode 2
!!! Compile problem
!!! If you need support, post the topmost build error, NOT this status message.

Courier-IMAP not installable too! this is CRITICAL ERROR!

------- Comment #8 From lzap 2005-09-24 03:08:25 0000 -------
This needs to be reasigned... Its a major issue.

------- Comment #9 From Jakub Moc (RETIRED) 2005-09-24 03:17:39 0000 -------
dev-tcltk/thread b0rked as well. I'd really say anything w/ gdbm USE flag is
b0rked. *sigh*

------- Comment #10 From Jakub Moc (RETIRED) 2005-09-24 03:18:48 0000 -------
*** Bug 107038 has been marked as a duplicate of this bug. ***

------- Comment #11 From Bryan Østergaard (RETIRED) 2005-09-24 04:08:42 0000 -------
Bumped to -r2 with Arndt Wills changes as this hits a lot of packages / users.

------- Comment #12 From Jakub Moc (RETIRED) 2005-09-25 03:41:26 0000 -------
*** Bug 107152 has been marked as a duplicate of this bug. ***

------- Comment #13 From Jakub Moc (RETIRED) 2005-09-25 07:58:55 0000 -------
*** Bug 107180 has been marked as a duplicate of this bug. ***