Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 122260 - eselect ebuilds cannot find /usr/bin/sed with sed-4.1.4-r1
Summary: eselect ebuilds cannot find /usr/bin/sed with sed-4.1.4-r1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: eselect (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo eselect Team
URL:
Whiteboard:
Keywords: InVCS
: 122641 123887 128062 132805 134092 165495 168631 246523 (view as bug list)
Depends on: 122082
Blocks:
  Show dependency tree
 
Reported: 2006-02-09 08:15 UTC by Martins Steinbergs
Modified: 2023-05-10 20:55 UTC (History)
12 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martins Steinbergs 2006-02-09 08:15:32 UTC
without that simlink at least eselect opengl fails


Switching to xorg-x11 OpenGL interface.../usr/share/eselect//libs/core.bash: line 115: /usr/bin/sed: No such file or directory
!!! Error: Failed to create //usr/lib64/libGL.la
exiting.
>>> original instance of package unmerged safely.
Switching to ati OpenGL interface.../usr/share/eselect//libs/core.bash: line 115: /usr/bin/sed: No such file or directory
!!! Error: Failed to create //usr/lib32/libGL.la
exiting.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-02-09 08:19:58 UTC
See Bug 122082...
Comment 2 Martins Steinbergs 2006-02-09 09:36:00 UTC
so there is need to add line to sed-4.1.4-r1 emerge output to re-emerge app-admin/eselect
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2006-02-09 10:19:49 UTC
(In reply to comment #2)
> so there is need to add line to sed-4.1.4-r1 emerge output to re-emerge
> app-admin/eselect

No, that's completely wrong solution. :)

Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-02-09 11:38:45 UTC
This is general eselect breakage, eselect-mysql is broken as well. *plop*

# grep sed /usr/share/eselect/libs/core.bash
# GNU sed wrapper (real path to GNU sed determined by configure)
sed() {
    /usr/bin/sed "$@"
Comment 5 Martins Steinbergs 2006-02-09 12:05:05 UTC
to complete eselect opengl i made manualy /etc/bin/sed -> /bin/sed
then removed simlink and re-emerged eselect and it determined correct /bin/sed :

# grep sed /usr/share/eselect/libs/core.bash
# GNU sed wrapper (real path to GNU sed determined by configure)
sed() {
    /bin/sed "$@"
Comment 6 Harm Geerts 2006-02-09 12:58:53 UTC
workaround: emerge --oneshot eselect

It will find the correct location, there is no need to make a symlink.
Comment 7 Ciaran McCreesh 2006-02-09 14:39:59 UTC
Yeah, what happens is that eselect's ./configure looks for sed in $PATH and hard codes the location in a source file. If your sed moves, you'll need to rebuild eselect. No clean solution for this one really.
Comment 8 Jakub Moc (RETIRED) gentoo-dev 2006-02-12 23:55:30 UTC
*** Bug 122641 has been marked as a duplicate of this bug. ***
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2006-02-23 20:44:25 UTC
*** Bug 123887 has been marked as a duplicate of this bug. ***
Comment 10 Jakub Moc (RETIRED) gentoo-dev 2006-03-30 00:22:52 UTC
*** Bug 128062 has been marked as a duplicate of this bug. ***
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2006-05-09 10:51:08 UTC
*** Bug 132805 has been marked as a duplicate of this bug. ***
Comment 12 Jakub Moc (RETIRED) gentoo-dev 2006-05-23 02:54:16 UTC
*** Bug 134092 has been marked as a duplicate of this bug. ***
Comment 13 Jakub Moc (RETIRED) gentoo-dev 2007-02-05 21:59:18 UTC
*** Bug 165495 has been marked as a duplicate of this bug. ***
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2007-02-27 20:42:48 UTC
*** Bug 168631 has been marked as a duplicate of this bug. ***
Comment 15 Davide Cendron (RETIRED) gentoo-dev 2007-02-27 21:03:59 UTC
And adding a

dosym /bin/${PN} /usr/bin/${PN}

to sed ebuilds would be a right solution?
Comment 16 Jakub Moc (RETIRED) gentoo-dev 2007-02-27 22:39:23 UTC
(In reply to comment #15)
> And adding a
> dosym /bin/${PN} /usr/bin/${PN}
> to sed ebuilds would be a right solution?

As said in Comment #7, re-emerge eselect.
Comment 17 Jeroen Roovers (RETIRED) gentoo-dev 2008-11-13 21:05:22 UTC
*** Bug 246523 has been marked as a duplicate of this bug. ***
Comment 18 Ian Stakenvicius (RETIRED) gentoo-dev 2016-02-19 16:33:09 UTC
...why does eselect need to call sed via an absolute path?  Shouldn't PATH suffice for this even in tricky cases like prefixs installs??
Comment 19 Ulrich Müller gentoo-dev 2016-02-19 18:42:18 UTC
(In reply to Ian Stakenvicius from comment #18)
> ...why does eselect need to call sed via an absolute path?  Shouldn't PATH
> suffice for this even in tricky cases like prefixs installs??

The location is determined at configure time, because the GNU sed binary can be installed under a different name (e.g. /usr/bin/gsed on BSD). See the snippet from configure.ac below.


# AC_PROG_SED doesn't work here, because on Gentoo FreeBSD systems it
# is confused by a wrapper script that is in the PATH at build time.
AC_PATH_PROGS(SED, [gsed sed])
if test x$SED = x; then
    AC_MSG_ERROR([sed is required])
fi
AC_MSG_CHECKING([whether $SED is GNU sed])
if $SED 'v4.0' </dev/null >/dev/null 2>&1; then
    AC_MSG_RESULT(yes)
else
    AC_MSG_RESULT(no)
    AC_MSG_ERROR([GNU sed is required])
fi
Comment 20 SpanKY gentoo-dev 2016-02-19 19:05:09 UTC
(In reply to Ulrich Müller from comment #19)

that doesn't answer Ian's stated question :).  let me be more specific:
why does eselect use AC_PATH_PROGS instead of AC_CHECK_PROGS ?
Comment 21 Ulrich Müller gentoo-dev 2016-02-19 20:32:59 UTC
(In reply to SpanKY from comment #20)

The whole purpose of the wrapper functions is to get well defined versions of programs at run time, therefore fixed paths are used. PATH could be different at configure time and run time.
Comment 22 SpanKY gentoo-dev 2016-02-19 20:58:19 UTC
(In reply to Ulrich Müller from comment #21)

that's an argument for relying on `gsed` instead of `sed`, but the aspect about $PATH changing doesn't muster much imo.  that same argument could be applied to just about every package in the tree and thus far, we've explicitly taken the approach that compiling in absolute paths is wrong and people should be using $PATH.  we've been going as far as fixing packages that attempt to compile in absolute paths because they then break if those packages move binaries around (like /sbin -> /bin or /bin -> /usr/bin).
Comment 23 Ulrich Müller gentoo-dev 2016-02-19 21:13:02 UTC
(In reply to SpanKY from comment #22)
> [...] thus far, we've explicitly taken the approach that compiling in
> absolute paths is wrong and people should be using $PATH.

Where is that policy defined?
Comment 24 Ulrich Müller gentoo-dev 2016-06-01 19:44:38 UTC
(In reply to SpanKY from comment #20)

In git now:
https://gitweb.gentoo.org/proj/eselect.git/commit/?id=da9a451824ccd5e4e2b9be405fecad82599ba702
Comment 25 Ulrich Müller gentoo-dev 2016-06-17 18:44:50 UTC
Fixed in eselect-1.4.6.