Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 149409 - dev-libs/libtecla doesn't emerge on amd64
Summary: dev-libs/libtecla doesn't emerge on amd64
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-28 06:13 UTC by Stefaan De Roeck (RETIRED)
Modified: 2006-10-08 02:33 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch to the sources to add Makefile.am and change a section in configure.in (autotools.patch,7.16 KB, patch)
2006-09-28 06:14 UTC, Stefaan De Roeck (RETIRED)
Details | Diff
Patch to the ebuild (run eautoreconf, use emake and make DESTDIR="${D}" install) (patch,1.09 KB, patch)
2006-09-28 06:16 UTC, Stefaan De Roeck (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stefaan De Roeck (RETIRED) gentoo-dev 2006-09-28 06:13:26 UTC
Problem being that it tries to install libraries directly into /usr/lib64.  

The real reason is that this package has a large portion of self-written Makefile.in stuff.  I propose using automake to generate Makefile.in, thus automatically adding DESTDIR-support, fixing the reported error. 
Proposed patches follow...
Comment 1 Stefaan De Roeck (RETIRED) gentoo-dev 2006-09-28 06:14:49 UTC
Created attachment 98313 [details, diff]
Patch to the sources to add Makefile.am and change a section in configure.in
Comment 2 Stefaan De Roeck (RETIRED) gentoo-dev 2006-09-28 06:16:18 UTC
Created attachment 98314 [details, diff]
Patch to the ebuild (run eautoreconf, use emake and make DESTDIR="${D}" install)
Comment 3 Simon Stelling (RETIRED) gentoo-dev 2006-10-06 16:23:28 UTC
This is a rather intrusive change, I'd like to get the sci-team's approval before applying it.
Comment 4 Markus Dittrich (RETIRED) gentoo-dev 2006-10-07 08:08:48 UTC
Unfortunately I don't have an amd64 box and hence I can't test these.
Since the patches look fairly extensive and libtecla is currently not
keyworded for amd64 it might probably be better to send them upstream.

Finally, I don't 100% understand what the problem really is. I assume you mean
that the makefile installs the libraries into /usr/lib64 as opposed to ${D}/usr/lib64?
The makefile from the source installs everything into $(LIBDIR) where on my box

exec_prefix=${prefix}
LIBDIR=${exec_prefix}/lib

and hence the "make install prefix=${D}/usr" in the ebuild does the right
thing. Hence, I don't presently see why this shoudn't work on amd64 (possibly
with one or two additional sed's replacing "lib" with "$(get_libdir) ). 
Comment 5 George Shapovalov (RETIRED) gentoo-dev 2006-10-07 10:12:37 UTC
I can confirm the problem - this is indeed an access violation:

--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/var/log/sandbox/sandbox-dev-libs_-_libtecla-1.6.1-27708.log"

open_wr:   /usr/lib64/libtecla.a
open_wr:   /usr/lib64/libtecla_r.a
open_wr:   /usr/lib64/libtecla.so.1.6.1
symlink:   /usr/lib64/libtecla.so
symlink:   /usr/lib64/libtecla.so.1
open_wr:   /usr/lib64/libtecla_r.so.1.6.1
symlink:   /usr/lib64/libtecla_r.so
symlink:   /usr/lib64/libtecla_r.so.1

and that the patch works. However this patch does not quite make much sense to me - it basically introduces the whole mechanism dealing with the generated libtecla.la - that is the library itself. What is so special about amd64 that this is necessary and how did it work on x86 then?

I agree that the best course of action may be to send this issue and patches upstream. However if there is an urgent need to keyword this ~amd64 I think arch team can proceed with this fix too..
(Otherwise it can just stay in bugzilla while the upstream deals with the issue. It will be visible to those that need it on amd64.)

George
Comment 6 Simon Stelling (RETIRED) gentoo-dev 2006-10-07 10:45:01 UTC
I agree here.. please take the patches upstream (didn't see it wasn't even ~amd64 before)
Comment 7 Stefaan De Roeck (RETIRED) gentoo-dev 2006-10-07 16:11:09 UTC
(In reply to comment #4)
> Finally, I don't 100% understand what the problem really is. I assume you mean
> that the makefile installs the libraries into /usr/lib64 as opposed to
> ${D}/usr/lib64?
> The makefile from the source installs everything into $(LIBDIR) where on my box
> 
> exec_prefix=${prefix}
> LIBDIR=${exec_prefix}/lib

The variables you mention are filled in at configure-time.  On amd64, LIBDIR won't be ${exec_prefix}/lib (the default), but "/usr/lib64" as --libdir=/usr/lib64 is automatically given by calling econf.  

You do have the option of trying something like "make install LIBDIR=${prefix}/usr/$(get_libdir)", but to me this seems like another hack to force the makefiles into doing something they aren't meant to be capable of. 
I thought I'd handle bug #119477 + all the variable replacements given in the "make install" line in one go, and write a clean makefile. 

I agree this may seem an intrusive patch, and it is :) So feel free to add LIBDIR=${prefix}/usr/$(get_libdir), I've just tried it and it emerges fine as well...  I just had this strange urge, and felt like following the guideline in the devmanual that says patching a Makefile that doesn't support DESTDIR is a good idea.  
Comment 8 Simon Stelling (RETIRED) gentoo-dev 2006-10-08 02:33:52 UTC
> The variables you mention are filled in at configure-time.  On amd64, LIBDIR
> won't be ${exec_prefix}/lib (the default), but "/usr/lib64" as
> --libdir=/usr/lib64 is automatically given by calling econf.  

econf --libdir=\${exec_prefix}/$(get_libdir) would work it around then
 
> You do have the option of trying something like "make install
> LIBDIR=${prefix}/usr/$(get_libdir)", but to me this seems like another hack to
> force the makefiles into doing something they aren't meant to be capable of. 
> I thought I'd handle bug #119477 + all the variable replacements given in the
> "make install" line in one go, and write a clean makefile. 
> 
> I agree this may seem an intrusive patch, and it is :) So feel free to add
> LIBDIR=${prefix}/usr/$(get_libdir), I've just tried it and it emerges fine as
> well...  I just had this strange urge, and felt like following the guideline 

It is, but it's nothing amd64 specific, so not really of our business :)