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

Bug 100579

Summary: openldap with useflag perl set does not check if perl was built with useflag minimal set
Product: Gentoo Linux Reporter: Christian Schneider <chrizzly>
Component: Current packagesAssignee: Robin Johnson <robbat2>
Status: RESOLVED FIXED    
Severity: normal CC: mkay
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Christian Schneider 2005-07-28 04:23:34 UTC
When emerging openldap with useflags perl and minimal set an error is produced
during compiletime stating that EXTERN.h can not be found.

Reproducible: Always
Steps to Reproduce:
1. Build perl with minimal useflag set
2. Try to emerge openlddap
3.

Actual Results:  
Emerge of openldap fails with error:
../../../build/mkversion -v "2.1.30" back_perl > version.c
/bin/sh /var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/libtool 
--mode=compile cc -march=athlon-xp -O2 -pipe -fomit-frame-pointer
-I../../../include        -I../../../include -I.. -I./..      -c init.c
mkdir .libs
cc -march=athlon-xp -O2 -pipe -fomit-frame-pointer -I../../../include
-I../../../include -I.. -I./.. -c init.c  -fPIC -DPIC -o .libs/init.lo
init.c:22:20: EXTERN.h: No such file or directory
init.c:23:18: perl.h: No such file or directory
In file included from init.c:25:
perl_back.h:5:18: perl.h: No such file or directory
In file included from init.c:25:
perl_back.h:39: error: syntax error before '*' token
perl_back.h:39: warning: data definition has no type or storage class
perl_back.h:44: error: syntax error before "SV"
perl_back.h:44: warning: no semicolon at end of struct or union
perl_back.h:46: error: syntax error before '}' token
perl_back.h:46: warning: data definition has no type or storage class
init.c:29: error: syntax error before "void"
init.c:29: error: syntax error before '*' token
init.c:31: error: syntax error before '*' token
init.c:31: warning: data definition has no type or storage class
init.c: In function `perl_back_initialize':
init.c:72: warning: assignment makes pointer from integer without a cast
init.c: In function `perl_back_db_init':
init.c:124: error: syntax error before ')' token
init.c:127: error: syntax error before ')' token
init.c: In function `perl_back_db_open':
init.c:142: error: `perl_back' undeclared (first use in this function)
init.c:142: error: (Each undeclared identifier is reported only once
init.c:142: error: for each function it appears in.)
init.c:142: error: syntax error before ')' token
init.c:147: error: `dSP' undeclared (first use in this function)
init.c:147: error: `ENTER' undeclared (first use in this function)
init.c:147: error: `SAVETMPS' undeclared (first use in this function)
init.c:149: error: `sp' undeclared (first use in this function)
init.c:152: error: `PUTBACK' undeclared (first use in this function)
init.c:157: error: `G_SCALAR' undeclared (first use in this function)
init.c:160: error: `SPAGAIN' undeclared (first use in this function)
init.c:166: error: `POPi' undeclared (first use in this function)
init.c:168: error: `FREETMPS' undeclared (first use in this function)
init.c:168: error: `LEAVE' undeclared (first use in this function)
init.c: In function `perl_back_xs_init':
init.c:181: error: `dXSUB_SYS' undeclared (first use in this function)
make[3]: *** [init.lo] Error 1
make[3]: Leaving directory
`/var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/servers/slapd/back-perl'
make[2]: *** [.backend] Error 1
make[2]: Leaving directory
`/var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/servers/slapd'
make[1]: *** [all-common] Error 1
make[1]: Leaving directory
`/var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/servers'
make: *** [all-common] Error 1

!!! ERROR: net-nds/openldap-2.1.30-r5 failed.
!!! Function src_compile, Line 147, Exitcode 2
!!! make failed
!!! If you need support, post the topmost build error, NOT this status message.

Expected Results:  
Tell me that perl was built with minimal useflag which apparently removes
EXTERN.h (amongst other things).

Unsetting the minimal useflag and reemerging perl fixed the problem.

emerge info:
Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686)
=================================================================
System uname: 2.6.12-gentoo-r6 i686 AMD Athlon(tm) XP 2400+
Gentoo Base System version 1.6.13
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.11
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/
http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/
ftp://mir1.ovh.net/gentoo-distfiles/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow acpi apache2 bash-completion berkdb bzlib crypt curl curlwrappers ftp
gd gdbm gif imap jpeg kerberos libwww maildir mmx mysql pam pam-mysql pdflib
perl php png posix postgres python readline sasl shaper sockets softquota spl
ssl svg tcpd tidy tiff truetype unicode x86 xml xml2 xmlrpc zlib userland_GNU
kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2005-07-28 04:53:20 UTC
perl with USE="minimal" is not meant for general use on systems that need full
perl. Fixing all the ebuilds depending on perl to check for this flag would be
IMHO just a *lot* of not really useful work. 
Comment 2 Christian Schneider 2005-07-28 05:37:30 UTC
Well I did a *lot* of not really usefull work to find out what was going on. The
minimal flag has always been set on this server and for some reason openldap
used to emerge and run. I don't know if it's because of a new perl or
ldap-version, but it stopped working without warning. The least I would expect
is a warning when emerging perl with the minimal flag set.
Comment 3 Marcin Kryczek (RETIRED) gentoo-dev 2005-07-28 06:24:33 UTC
IMHO it is a bug. according to profiles/use.desc:
"minimal - Install a very minimal build (disables, for example, plugins, fonts, 
most drivers, non-critical features)"

there's nothing about that flag can couse any kind of problems during 
compilation other packages.

openldap and each package with known problems like this, should check if it's 
dependencies are compiled in satisfy way
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2005-08-03 13:17:49 UTC
fixed in cvs.
Comment 5 Christian Schneider 2005-08-04 01:17:37 UTC
Cool, Cheers!