Summary: | kfish-2.01 works on amd64 (with an ebuild tweak) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ryan Grange <ryangrange> |
Component: | New packages | Assignee: | AMD64 Project <amd64> |
Status: | RESOLVED WONTFIX | ||
Severity: | enhancement | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Ryan Grange
2006-03-20 21:11:54 UTC
I removed kfish from my system, edited the ebuild to only add ~amd64 support and reinstalled. I removed the PIC from IUSE and from the append-flags so as to follow the one fix at a time method of bug fixing. So I got my answer as to whether or not the use amd64 would work with an ~amd64 keyword. Sorry if this is old hat to so many. It's my first AMD64 conversion. I thought I'd start with something easy. My /usr/local/portage/kde-misc/kfish-2.01.ebuild now in its entirety... # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/kde-misc/kfish/kfish-2.01.ebuild,v 1.2 2004/12/31 05:43:53 weeve Exp $ inherit kde need-kde 3 DESCRIPTION="amusing panel applet animated with a fish, bubbles and extras" SRC_URI="mirror://sourceforge/kfish/${P}.tar.bz2" HOMEPAGE="http://sourceforge.net/projects/scofmb/" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 x86 ppc ~sparc" IUSE="" src_unpack() { unpack ${A} use amd64 && append-flags -fPIC } From what I read at http://www.gentoo.org/proj/en/hardened/pic-internals.xml the supposed ebuild tweak is rather unacceptable. I don't have any knowledge of autotools, so I can't help to fix this, maybe somebody else is willing to jump in here? From http://www.gentoo.org/proj/en/hardened/pic-internals.xml ... There is only one official method to add flags like "-fPIC" to ebuilds: using the flag-o-matic eclass and "append-flags". However, it is not a good idea to enable "-fPIC" in global CFLAGS or create ebuilds that automatically add the "-fPIC" flag independent of the situation and architecture it is applied. I remembered reading something about -fPIC, but thought it was in the AMD64 project's pages. Thank you for giving me the correct URL for fPIC related items. Unfortunately, kfish insists on having -fPIC to build, at least on AMD64's. AMD64 is apparently an architecture upon which -fPIC makes a lot of sense if I read the pic-internals page correctly. (I admit I may be mistaken.) The Gentoo page on fPIC says to use append-flags, so I don't see how my tweaks are unacceptable. Anyone from the AMD or PIC projects want to jump in? objects that are linked with the -shared flag in the end (read: libs) must have -fPIC. executables, however, should not. I guess at this point, I'll try to contact the author and ask them why kfish requires -fPIC. If they don't respond, is my only option to find and remove the -fPIC dependence in the code myself? yes. besides, the ebuild has also wrong dependencies. I can't build it with USE=-arts here: checking for mcopidl... not found configure: error: The important program mcopidl was not found! Please check whether you installed aRts correctly. !!! Please attach the following file when filing a report to bugs.gentoo.org: !!! /var/tmp/portage/kfish-2.01/work/kfish-2.01/config.log !!! ERROR: kde-misc/kfish-2.01 failed. Call stack: ebuild.sh, line 1527: Called dyn_compile ebuild.sh, line 930: Called src_compile ebuild.sh, line 1239: Called kde_src_compile kde.eclass, line 164: Called kde_src_compile 'all' kde.eclass, line 306: Called kde_src_compile 'myconf' 'configure' 'make' kde.eclass, line 288: Called econf '--with-x' '--enable-mitshm' '--without-xinerama' '--with-qt-dir=/usr/qt/3' '--enable-mt' '--with-qt-libraries=/usr/qt/3/lib64' '--disable-dependency-tracking' '--enable-debug=full' '--with-debug' '--without-arts' '--enable-libsuffix=64' '--with-extra-includes=/usr/kde/3.4/include' '--with-extra-libs=/usr/kde/3.4/lib64' ebuild.sh, line 532: Called die !!! econf failed !!! If you need support, post the topmost build error, and the call stack if relevant. Feel free to reopen this bug with an appropriate patch to the two issues, but until those are fixed I can't keyword this, even though it is a critical core-package ;) Well, here's hoping not all my AMD64 testing and attempted fixing end up as a polite "pound sand". Should I bother submitting a version with the arts requirement or is that pointless since apparently -fPIC is to Gentoo what Shared Source is to the FSF? Uh, you misunderstood one thing: -fPIC is perfectly fine and necessary on shared libraries. It is however bad for executables. Since kfish builds both libraries and executables the Makefile needs to be changed so that libraries (and only they) are built with -fPIC. Once that is done (either by patch or by upstream) we will be happy to include kfish on amd64. Sorry about my shortness. As you can see from the timestamp, it was a bit late in the evening and I wasn Sorry about my shortness. As you can see from the timestamp, it was a bit late in the evening and I wasn't at my best. Unfortunately, I don't feel my C++ coding would be up to snuff to even make a stab at that kind of change. I'll see about contacting the upstream. (Not sure if this is double posted. Firefox has a weird issue with textboxes and apostrophes that had me hitting submit by mistake a minute ago. Sorry if so.) |