During emerge it gives following error message: mkdir .libs i686-pc-linux-gnu-gcc -Wall -W -O3 -march=pentium-m -pipe -fomit-frame-pointer -Wl,-O1 -o .libs/dbconverter-2 dbconverter-2.o ../sasldb/.libs/libsasldb.a ../lib/.libs/libsasl2.so -ldl /usr/lib/libgdbm.so -lresolv ../lib/.libs/libsasl2.so: undefined reference to `crypt' collect2: ld returned 1 exit status make[2]: *** [dbconverter-2] Error 1 make[2]: Leaving directory `/var/tmp/portage/cyrus-sasl-2.1.22/work/cyrus-sasl-2.1.22/utils' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/cyrus-sasl-2.1.22/work/cyrus-sasl-2.1.22' make: *** [all] Error 2 !!! ERROR: dev-libs/cyrus-sasl-2.1.22 failed. Call stack: ebuild.sh, line 1546: Called dyn_compile ebuild.sh, line 937: Called src_compile cyrus-sasl-2.1.22.ebuild, line 166: Called die !!! compile problem !!! If you need support, post the topmost build error, and the call stack if relevant. obelix piotr # emerge --info Portage 2.1.1 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.4-r3, 2.6.18 i686) ================================================================= System uname: 2.6.18 i686 Intel(R) Pentium(R) M processor 2.13GHz Gentoo Base System version 1.12.5 Last Sync: Mon, 23 Oct 2006 10:50:01 +0000 app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 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.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -march=pentium-m -pipe -fomit-frame-pointer" CHOST="i686-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/gconf /etc/init.d/shutdown /etc/java-config/vms/ /etc/nanorc /etc/revdep-rebuild /etc/terminfo /usr/lib/X11/xkb/xkbcomp" CXXFLAGS="-O3 -march=pentium-m -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms strict" GENTOO_MIRRORS="http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ " LDFLAGS="-Wl,-O1" LINGUAS="en pl" MAKEOPTS="-j2" 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" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 X acl alsa arts automont bash-completion berkdb bitmap-fonts cairo cdr cli cracklib crypt cups dbus dri dvd dvdr eds elibc_glibc emboss encode esd fam firefox fortran gdbm gif gnome gpm gstreamer gtk hal input_devices_keyboard input_devices_mouse input_devices_synaptics ipv6 isdnlog jpeg kde kerberos kernel_linux ldap libg++ linguas_en linguas_pl mad mikmod mp3 mpeg ncurses nls nptl nptlonly ogg opengl oss pam pcre perl pic png ppds pppd python qt3 qt4 quicktime readline reflection sdl session spell spl ssl symlink tcpd truetype truetype-fonts type1-fonts udev unicode userland_GNU video_cards_fglrx vorbis win32codecs xml xorg xv zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Making a patch - it wasn't including the CRYPT_LIBS flag right into LIBS in the makefiles.
*** Bug 152665 has been marked as a duplicate of this bug. ***
Created attachment 100395 [details, diff] Adds $(LIB_CRYPT) and -fPIC into Makefile.am which needs them I suggest the following patch...
The patch works for me on amd64 :)
Great patch. Thank you. Works on X86, too.
Just a novice question : I don't know how to patch an ebuild and I 'd like to know if this kind of patch is fast 'accepted' in general so I'll be able soon to compile it for having konqueror compilation finished... thank for the time spent for a noob.
(In reply to comment #6) > I don't know how to patch an ebuild For a zillion examples, run: find /usr/portage/ -name \*.ebuild | xargs grep "epatch \"\${FILESDIR}"
(In reply to comment #6) > Just a novice question : I don't know how to patch an ebuild and I 'd like to > know if this kind of patch is fast 'accepted' in general so I'll be able soon > to compile it for having konqueror compilation finished... > thank for the time spent for a noob. > To get you working, put the patch into the directory /usr/portage/dev-libs/cyrus-sasl/files, add the line epatch "${FILESDIR}/${P}-build.patch" to the src_unpack() function in /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.epatch after the as-needed patch, run ebuild /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.epatch digest and emerge cyrus-sasl. It should work then. Please note that the changes made by you will be overwritten with the next emerge --sync. Hopefully at that time a solution will be added to the ebuild by the upstream maintainer.
Thx for your replies, I'm going to try this and thx for the zillion examples :)
Thanx!
Hi! Could someone add this fix to the portage. I just helped one friend through this patching process and it wasn't really fun. :( Moreover, the instructions in the comment 8 talk about .epatch when it should read .ebuild. Probably just mistake.
(In reply to comment #11) > Could someone add this fix to the portage. I just helped one friend through > this patching process and it wasn't really fun. :( I've just tried it to fix a similar-looking error on an amd64 system. The error message wasn't quite as shown above. I've lost it now but I remember that it included a recommendation to add '-fPIC to Makefile.am'. This came before before the line 'collect2: ld returned 1 exit status'. I wasn't sure that this was the same bug but the line numbers in the "Call stack:" bit of the error message were the same. (I'm saying this because, as a complete newbie to Gentoo until less than 24 hours ago, I hope this may help other newcomers.) > Moreover, the instructions in the comment 8 talk about .epatch when it should > read .ebuild. Probably just mistake. Yes. For the benefit of other newcomers what worked for me was: create the patch file (from the link above) as: /usr/portage/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-build.patch then edit (e.g. nano -w) /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.ebuild find (about line 90): # --as-needed. epatch "${FILESDIR}/${P}-as-needed.patch" add this: # bug 152544 patch epatch "${FILESDIR}/${P}-build.patch" then do: ebuild /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.ebuild digest then: emerge cyrus-sasl (FWIW I got cyrus-sasl to emerge OK, but hit another bug trying to emerge kdebase :-()
(In reply to comment #12) I got what is probably the same error message as John Stumbles. The patch fixed it, but I thought I'd post the output in case it's useful to someone: x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../lib -I../sasldb -I../include -I/usr/include/mysql -I/usr/lib64 -I/usr/include -Wall -W -march=k8 -O2 -pipe -MT plugin_common.lo -MD -MP -MF .deps/plugin_common.Tpo -c plugin_common.c -fPIC -DPIC -o .libs/plugin_common.o plugin_common.c: In function '_plug_free_secret': plugin_common.c:293: warning: pointer targets in passing argument 1 of 'utils->erasebuffer' differ in signedness /bin/sh ../libtool --tag=CC --mode=link x86_64-pc-linux-gnu-gcc -Wall -W -march=k8 -O2 -pipe -module -export-dynamic -rpath /usr/lib64/sasl2 -o libsasldb.la -version-info 2:22:0 sasldb.lo sasldb_init.lo plugin_common.lo ../sasldb/libsasldb.la -lgdbm -lresolv x86_64-pc-linux-gnu-gcc -shared .libs/sasldb.o .libs/sasldb_init.o .libs/plugin_common.o -Wl,--whole-archive ../sasldb/.libs/libsasldb.a -Wl,--no-whole-archive /usr/lib64/libgdbm.so -lresolv -march=k8 -Wl,-soname -Wl,libsasldb.so.2 -o .libs/libsasldb.so.2.0.22 /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../x86_64-pc-linux-gnu/bin/ld: ../sasldb/.libs/libsasldb.a(allockey.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC ../sasldb/.libs/libsasldb.a(allockey.o): could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [libsasldb.la] Error 1 make[2]: Leaving directory `/var/tmp/portage/dev-libs/cyrus-sasl-2.1.22/work/cyrus-sasl-2.1.22/plugins' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/dev-libs/cyrus-sasl-2.1.22/work/cyrus-sasl-2.1.22' make: *** [all] Error 2 !!! ERROR: dev-libs/cyrus-sasl-2.1.22 failed. Call stack: ebuild.sh, line 1568: Called dyn_compile ebuild.sh, line 937: Called src_compile cyrus-sasl-2.1.22.ebuild, line 166: Called die !!! compile problem !!! If you need support, post the topmost build error, and the call stack if relevant.
That's right, in fact there are two bugs which my patch aids to solve. First, the shared libraries aren't built as position independent code and second, linking with the crypt library is missing. A warning from me though, I have not checked the functionality after applying the patch. I was only interested to get the compilation clean. Anyway, I doubt that I have introduced any problems. Quite the contrary, seeing that there are so simple errors like a missing -fPIC for the shared library targets, I am a little bit nervous what more subtle failures are buried in the library. And furthermore, I am wondering how this ebuild got unmasked with such basic build bugs.
(In reply to comment #14) > I am wondering how this ebuild got unmasked with such basic build bugs. Not only unmasked, but also stable! Think of all the users dumping Gentoo on their first install... The patch works here also (amd64).
True - the patch works. I had the same problem and this patch helped. Why not closing the this bug ? Michal
Great patch, works flawlessly.
*** Bug 152852 has been marked as a duplicate of this bug. ***
(In reply to comment #16) > True - the patch works. > I had the same problem and this patch helped. > Why not closing the this bug ? This is Gentoo. Not a brushwood. The bug should not closed before the patch is integrated in the portage tree! Peter
I'm trying to update an old 2005.1 installation to 2006.1, i've changed the profile. I applied the patches as instructed above but still get this error: bugz files # emerge cyrus-sasl Calculating dependencies... done! >>> Emerging (1 of 1) dev-libs/cyrus-sasl-2.1.22 to / * cyrus-sasl-2.1.22.tar.gz MD5 ;-) ... [ ok ] * cyrus-sasl-2.1.22.tar.gz RMD160 ;-) ... [ ok ] * cyrus-sasl-2.1.22.tar.gz SHA1 ;-) ... [ ok ] * cyrus-sasl-2.1.22.tar.gz SHA256 ;-) ... [ ok ] * cyrus-sasl-2.1.22.tar.gz size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking cyrus-sasl-2.1.22.tar.gz ;-) ... [ ok ] * You have both "gdbm" and "berkdb" in your USE flags. * Will default to GNU DB as your SASLdb database backend. * If you want to build with Berkeley DB support; hit Control-C now. * Change your USE flag -gdbm and emerge again. * It would be best practice to add the set of USE flags that you use for this * package to the file: /etc/portage/package.use. Example: * `echo "dev-libs/cyrus-sasl -gdbm berkdb" >> /etc/portage/package.use` * to build cyrus-sasl with Berkeley database as your SASLdb backend. * Waiting 10 seconds before starting... * (Control-C to abort)... >>> Unpacking source... >>> Unpacking cyrus-sasl-2.1.22.tar.gz to /var/tmp/portage/cyrus-sasl-2.1.22/work * Applying cyrus-sasl-2.1.17-pgsql-include.patch ... [ ok ] * Applying cyrus-sasl-2.1.22-as-needed.patch ... [ ok ] * Applying cyrus-sasl-2.1.22-build.patch ... * Failed Patch: cyrus-sasl-2.1.22-build.patch ! * ( /usr/portage/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-build.patch ) * * Include in your bugreport the contents of: * * /var/tmp/portage/cyrus-sasl-2.1.22/temp/cyrus-sasl-2.1.22-build.patch-16149.out !!! ERROR: dev-libs/cyrus-sasl-2.1.22 failed. Call stack: ebuild.sh, line 1546: Called dyn_unpack ebuild.sh, line 708: Called src_unpack cyrus-sasl-2.1.22.ebuild, line 93: Called epatch '/usr/portage/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-build.patch' eutils.eclass, line 341: Called die !!! Failed Patch: cyrus-sasl-2.1.22-build.patch! !!! If you need support, post the topmost build error, and the call stack if relevant.
(In reply to comment #20) > * Include in your bugreport the contents of: > * > * > /var/tmp/portage/cyrus-sasl-2.1.22/temp/cyrus-sasl-2.1.22-build.patch-16149.out The patch failed for you for whatever reason, please show us the contents of the file above, then we might see where's the problem.
I solved it myself by running dos2unix on the patch, sry.
You guys might want to move your modified ebuild to your portage overlay so emerge sync doesn't possibly override it.
When will this patch included int he portage tree? (I cannot do an emerge -e world without this in my servers and workstations..)
Hmm, in the patch there is a line: + AM_CLFAGS = -fPIC i guess this had a little typo in no?
Same error here (amd64).. compiler complained about the -fpic thing... patched like suggested, recompiled, gone ok. Proceding with kdebase now.
(In reply to comment #12) > (In reply to comment #11) > > Could someone add this fix to the portage. I just helped one friend through > > this patching process and it wasn't really fun. :( > I've just tried it to fix a similar-looking error on an amd64 system. The error > message wasn't quite as shown above. I've lost it now but I remember that it > included a recommendation to add '-fPIC to Makefile.am'. This came before > before the line 'collect2: ld returned 1 exit status'. I wasn't sure that this > was the same bug but the line numbers in the "Call stack:" bit of the error > message were the same. (I'm saying this because, as a complete newbie to Gentoo > until less than 24 hours ago, I hope this may help other newcomers.) > > Moreover, the instructions in the comment 8 talk about .epatch when it should > > read .ebuild. Probably just mistake. > Yes. For the benefit of other newcomers what worked for me was: > create the patch file (from the link above) as: > /usr/portage/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-build.patch > then edit (e.g. nano -w) > /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.ebuild > find (about line 90): > # --as-needed. > epatch "${FILESDIR}/${P}-as-needed.patch" > add this: > # bug 152544 patch > epatch "${FILESDIR}/${P}-build.patch" > then do: > ebuild /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.ebuild digest > then: > emerge cyrus-sasl > (FWIW I got cyrus-sasl to emerge OK, but hit another bug trying to emerge > kdebase :-() I followed these instructions, but when I emerge cyrus-sasl I get this; Calculating dependencies... done! >>> Emerging (1 of 1) dev-libs/cyrus-sasl-2.1.22 to / >>> checking ebuild checksums ;-) >>> checking auxfile checksums ;-) >>> checking miscfile checksums ;-) >>> checking cyrus-sasl-2.1.22.tar.gz ;-) >>> Unpacking source... >>> Unpacking cyrus-sasl-2.1.22.tar.gz to /var/tmp/portage/cyrus-sasl-2.1.22/work * Applying cyrus-sasl-2.1.17-pgsql-include.patch ... [ ok ] * Applying cyrus-sasl-2.1.22-as-needed.patch ... [ ok ] * Cannot find $EPATCH_SOURCE! Value for $EPATCH_SOURCE is: * * /usr/portage/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-build.patch * ( cyrus-sasl-2.1.22-build.patch ) !!! ERROR: dev-libs/cyrus-sasl-2.1.22 failed. Call stack: ebuild.sh, line 1539: Called dyn_unpack ebuild.sh, line 711: Called src_unpack cyrus-sasl-2.1.22.ebuild, line 94: Called epatch '/usr/portage/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-build.patch' eutils.eclass, line 198: Called die !!! Cannot find $EPATCH_SOURCE! !!! If you need support, post the topmost build error, and the call stack if relevant. I don't know squat about how to get past this, if anyone could help, it would be greatly appreciated.
*** Bug 152959 has been marked as a duplicate of this bug. ***
This patch works in my case (x86). It should urgently be added in portage as this ebuild blocks any update.
Created attachment 100575 [details] cyrus-sasl-2.1.22.ebuild This ebuild uses the above patch. You must put the ebuild in ${PORTDIR_OVERLAY}/dev-libs/cyrus-sasl/ and you must name the patch ${PORTDIR_OVERLAY}/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch if you want it to work as-is. Note: I assumed that the bug, and therefore the patch, only apply if USE=crypt. If that's not true, this ebuild still needs to be tweaked. My machine is pretty slow, so I didn't build cyrus-sasl three times to test it. I'll report back if I encounter a problem.
OK, I tested it with USE="-crypt", and it still builds fine.
I tested it with -crypt and without the patch. It builds fine too. This is an easy workarround until the patch is put in portage.
I tested it too. Just correct the small type in the patch!
I mean mistype, see the comment #25
Was snagged by this also during a "emerge -e system" on x86 stable. USE -crypt workaround does allow to build, but I saw a TEXTREL notice during merge.
Created attachment 100596 [details, diff] cyrus-sasl-2.1.22-crypt.patch Guys, come on, if you find a li'l typo, fix it and resubmit, don't just mention it in your comments :) Fixed the CLFAGS typo, but haven't re-tested.
*** Bug 153130 has been marked as a duplicate of this bug. ***
builds fine with the patch from #36
(In reply to comment #36) > Guys, come on, if you find a li'l typo, fix it and resubmit, don't just mention > it in your comments :) Ah i dont know if i have right to submit patches or not, so i didnt tryed. But u have right! Ty for doing it.
(In reply to comment #39) > (In reply to comment #36) > > Guys, come on, if you find a li'l typo, fix it and resubmit, don't just mention > > it in your comments :) > > Ah i dont know if i have right to submit patches or not, so i didnt tryed. But > u have right! Ty for doing it. > thanx for taking the time to do up this patch. worked perfectly!
(In reply to comment #3) > Created an attachment (id=100395) [edit] > Adds $(LIB_CRYPT) and -fPIC into Makefile.am which needs them > I suggest the following patch... Hi, thanks for the patch. It worked for me on amd64 :)
Stable ebuild and no one cares for a week.
Hi arch fellows, Please mark dev-libs/cyrus-sasl-2.1.22-r1 stable. See this bug for info about why it is needed. The only difference is the patch from comment #36 - ferdy
Alpha done.
For the record I built -r1 successfully on PPC and x86 with the aforementioned patches.
when this patch will go on portage?
SPARC attack
Stable on x86
Here's another happy user :) #36's patch works fine for me on x86
x86: it works for me
(In reply to comment #43) > Please mark dev-libs/cyrus-sasl-2.1.22-r1 stable. See this bug for info about > why it is needed. The only difference is the patch from comment #36 I'm seeing this on two different mirrors: 13:35:51 (1.09 MB/s) - `/usr/portage/distfiles/cyrus-sasl-2.1.22.tar.gz' saved [1609278/1609278] * checking ebuild checksums ;-) ... [ !! ] !!! Digest verification failed: !!! /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22-r1.ebuild !!! Reason: Filesize does not match recorded size !!! Got: 9206 !!! Expected: 9190
Bill, a new emerge --sync should fix it.
(In reply to comment #52) > Bill, a new emerge --sync should fix it. > My bad, I thought it was complaining about the tar ball, missed that it was the ebuild itself. I just synced an hour before this emerge, I must have gotten caught. For those reading at home, an alternate to resycing would be to mask in /etc/portage/package.mask, which is the path I took.
*** Bug 153511 has been marked as a duplicate of this bug. ***
> Stable on x86 Please, mark it as stable also on amd64
*** Bug 153541 has been marked as a duplicate of this bug. ***
*** Bug 153571 has been marked as a duplicate of this bug. ***
amd64 stable.
I just ran emerge --sync and keep getting the same error. I've tried masking every ebuild, as well. I'm running x86. I've also tried running USE="-ldap" emerge cyrus-sasl per the advice on this thread: http://forums.gentoo.org/viewtopic-t-510538-highlight-cyrussasl.html I've done everything in comment #8 while substituting "ebuild" for the "epatch" typo, and now I get the following error: !!!Cannot find $EPATCH_SOURCE! What else should I try?
Nevermind - I fixed it. I commented out the USE line in my make.conf after patching again, and it compiled fine.
I just emerged cyrus-sasl-2.1.22-r1 without any problems. Thanks to the maintaners for the quick respone :)
ppc stable
Stable for HPPA.
ppc64 stable
Please see new patch on bug #134437, which fixes authdaemond support).
emerged cyrus-sasl-2.1.22-r1 without any problems on MIPS (SGi IP30)
@MIPS: please mark stable 2.1.22-r2, not -r1, stabling of -r2 is handled in bug 169512. Closing this one. Best regards, CHTEKK.