From: Travis Tilley <lv@gentoo.org>
To: gentoo-dev@lists.gentoo.org, amd64@gentoo.org
Subject: [gentoo-dev] hardcoding lib in ebuilds, and using econf without einstall
Date: Thu, 19 Aug 2004 19:03:35 -0400 [thread overview]
Message-ID: <412531C7.901@gentoo.org> (raw)
supporting configurations where lib64 or lib32 is a directory will
probably require a change in policy and a change in the dev quiz
regarding the use of hardcoded lib directories in ebuilds and when
einstall should be used.
problem #1) with hardcoded references to lib, i have to go and fix each
ebuild that does this by hand so that it will work with lib64 or lib32.
there are a LOT more ebuilds that do this in the tree than i expected.
problem #2) after having fixed ncurses so that it's libdir agnostic and
can install into lib64, it was updated to have utf-8 support and that
update included some more hardcoded references to lib. this broke
ncurses for users with lib64, and there was one bug report where a user
was unable to run anything linked against ncurses. so if an ebuild is
CONF_LIBDIR aware, -all- references should use this variable (or another
one set based on whether or not CONF_LIBDIR is set).
problem #3) since econf might set libdir now, it's no longer sane to not
set libdir during make install, either by setting it in the ebuild or by
using einstall. ebuilds that use econf will have
--libdir=/usr/${CONF_LIBDIR} when [ -z "${CONF_LIBDIR}" ] (this change
is in the ebuild.sh in >= portage 2.0.51_pre18), so make install will
try to install the libraries to the live filesystem if einstall isnt
also used.
problem #4) since the stable portage doesnt support CONF_LIBDIR and this
variable will not be in all profiles even when it is supported, ebuilds
that use this variable must default to setting it to lib. note that not
all ebuilds will need to even touch this... anything that uses econf and
einstall without using hardcoded lib references in the ebuild is already
perfect.
none of these problems exist when using econf and einstall, and when
you're not messing with libs in the ebuild. all the problems can also be
avoided in ebuilds that mess with libs by simply using a variable. if
there are any instances where einstall cant be used, that needs to be
fixed in einstall so that it can be.
so... maybe something like this for an ebuild that needs to install to /lib:
pkg_setup() {
[ -z "${CONF_LIBDIR}" ] && export CONF_LIBDIR="lib"
}
src_compile(){
econf --libdir=/${CONF_LIBDIR} blah
emake
}
src_install(){
einstall
cd ${D}/${CONF_LIBDIR}
dodir /usr/${CONF_LIBDIR}
mv blah blahdiddly moo ${D}/usr/${CONF_LIBDIR}
more stuff here
}
...though, suggestions for a better way to do this would be appreciated.
especially for solving problem #3. i'm going to have to edit econf so
that it sees --prefix, sets a variable based on it, and then sets
--libdir=/${myprefix}/${CONF_LIBDIR}. that -looks- like the easiest way
to handle it to me, with myprefix=usr when --prefix isnt passed.
Travis Tilley <lv@gentoo.org>
--
gentoo-dev@gentoo.org mailing list
next reply other threads:[~2004-08-19 23:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-19 23:03 Travis Tilley [this message]
2004-08-19 23:14 ` [gentoo-dev] hardcoding lib in ebuilds, and using econf without einstall Mike Frysinger
2004-08-19 23:27 ` Michael Sterrett -Mr. Bones.-
2004-08-20 8:06 ` Paul de Vrieze
2004-08-20 8:11 ` Paul de Vrieze
[not found] ` <20040820081206.C35FC194BB@starwind.homelinux.com>
2004-08-21 10:04 ` Blackace
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=412531C7.901@gentoo.org \
--to=lv@gentoo.org \
--cc=amd64@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox