Summary: | dev-lang/ghc-7.6.3-r1 - make: invalid option -- '>' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Heinrich Götzger <goetzger> |
Component: | [OLD] Development | Assignee: | Gentoo's Haskell Language team <haskell> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Heinrich Götzger
2014-11-18 15:13:55 UTC
Integesting, somehow ewarn managed to pipe stderr to stdout. It certainly does not happen here, which is odd. MAKEOPTS=-j4 ahould be a stop-gap workaround for you, but do you happen to do something with manually overriding portage's ewarn via /etc/portage/bashrc or something like that? I'll remove ewarn from limit_jobs if we won't find real cause. (In reply to Sergei Trofimovich from comment #1) > Interesting, somehow ewarn managed to pipe stderr to stdout. Interesting, that's what I thought as well ... > It certainly does not happen here, which is odd. > MAKEOPTS=-j4 ahould be a stop-gap workaround for you, but > do you happen to do something with manually > overriding portage's ewarn via /etc/portage/bashrc or something like that? Yes, with MAKEOPTS=-j4 it is working as expected. After successful emerge with j4, I tried again with j9 and it failed again as described earlier. I have no /etc/portage/bashrc and I'm not aware that I do something like ewarn manipulation. The only occurrence besides lots of usage in /etc/.... is in /etc/portage/profile/profile.bashrc ewarn() { enotice warn "${*}" } > I'll remove ewarn from limit_jobs if we won't find real cause. Is there a way how I can debug this? (In reply to Heinrich Götzger from comment #2) > (In reply to Sergei Trofimovich from comment #1) > > Interesting, somehow ewarn managed to pipe stderr to stdout. > Interesting, that's what I thought as well ... > > > It certainly does not happen here, which is odd. > > > MAKEOPTS=-j4 ahould be a stop-gap workaround for you, but > > do you happen to do something with manually > > overriding portage's ewarn via /etc/portage/bashrc or something like that? > Yes, with MAKEOPTS=-j4 it is working as expected. > > After successful emerge with j4, I tried again with j9 and it failed again > as described earlier. > > I have no /etc/portage/bashrc and I'm not aware that I do something like > ewarn manipulation. > The only occurrence besides lots of usage in /etc/.... is in > /etc/portage/profile/profile.bashrc > > ewarn() { > enotice warn "${*}" > } > > > I'll remove ewarn from limit_jobs if we won't find real cause. > Is there a way how I can debug this? Interesting! Where did you get that file from? Must be a remnant of ancient portage install (or a manual tweak?). Right now 'ewarn()' lives in /usr/lib/portage/python*/isolated-functions.sh which carefully pipes text into stderr: ewarn() { __elog_base WARN "$*" [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo echo -e "$@" | while read -r ; do echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" >&2 done LAST_E_CMD="ewarn" return 0 } Can you post your complete /etc/portage/profile/profile.bashrc ? Would ease tracking of it's origin. (In reply to Sergei Trofimovich from comment #3) > (In reply to Heinrich Götzger from comment #2) > > (In reply to Sergei Trofimovich from comment #1) > > > Interesting, somehow ewarn managed to pipe stderr to stdout. > > Interesting, that's what I thought as well ... [...[ > > I have no /etc/portage/bashrc and I'm not aware that I do something like > > ewarn manipulation. > > The only occurrence besides lots of usage in /etc/.... is in > > /etc/portage/profile/profile.bashrc > > > > ewarn() { > > enotice warn "${*}" > > } > > > Interesting! Where did you get that file from? Must be a remnant of > ancient portage install (or a manual tweak?). Ancient hits it pretty good, I think. Manual? I can't remember. > Right now 'ewarn()' lives in > /usr/lib/portage/python*/isolated-functions.sh > which carefully pipes text into stderr: > ewarn() { > __elog_base WARN "$*" > [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo > echo -e "$@" | while read -r ; do > echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" >&2 > done > LAST_E_CMD="ewarn" > return 0 > } > > Can you post your complete /etc/portage/profile/profile.bashrc ? > Would ease tracking of it's origin. Sure, here it is: root@io:~ # cat /etc/portage/profile/profile.bashrc if [ "$EBUILD_PHASE" != "depend" ]; then if [ ! -z "${PORT_ENOTICE_DIR}" ]; then export SANDBOX_WRITE="$SANDBOX_WRITE:${PORT_ENOTICE_DIR}" install -d "${PORT_ENOTICE_DIR}" &>/dev/null chown root:portage "${PORT_ENOTICE_DIR}" &>/dev/null chmod g+rwxs "${PORT_ENOTICE_DIR}" &>/dev/null if [ "$EBUILD_PHASE" == "unpack" ]; then rm -f ${PORT_ENOTICE_DIR}/${PF} fi fi fi einfo() { enotice info "${*}" } ewarn() { enotice warn "${*}" } eerror() { enotice error "${*}" } enotice() { local color local type type="${1}" case "${type}" in "info") color="${GOOD}" ;; "warn") color="${WARN}" ;; "error") color="${BAD}" ;; esac shift if [ ! -z "${PORT_ENOTICE_DIR}" ]; then echo "${type}:${*}" >> ${PORT_ENOTICE_DIR}/${PF} fi echo " ${color}*${NORMAL} ${*}" } root@io:~ # equery b /etc/portage/profile/profile.bashrc * Searching for /etc/portage/profile/profile.bashrc ... No result at all, I checked this on four other gentoo-boxes amd64 and x86, young and old ones, it's all the same, the age as well. root@io:~ # ll /etc/portage/profile/profile.bashrc -rw-r--r-- 1 root root 811 Nov 10 2004 /etc/portage/profile/profile.bashrc This looks then not as a dev-lang/ghc Problem any more. Thanks for your efforts. Yeah, I'd suggest inspecting contents of /etc/portage/profile/ and remove crufty bits completely. > > Interesting! Where did you get that file from? Must be a remnant of > > ancient portage install (or a manual tweak?). > Ancient hits it pretty good, I think. Manual? I can't remember. robbat2 helped me to track down origin [1] of enotice script. It had had a install-enotice.sh that installed needed files. At that time I didn't even know that gentoo exists :) I've put a backup copy of scripts here: https://dev.gentoo.org/~slyfox/historical/eldad-enotice.tar.gz (~7KB) [1]: line 483+ http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/xml/htdocs/news/en/gwn/20050801-newsletter.xml?view=markup (In reply to Sergei Trofimovich from comment #5) > Yeah, I'd suggest inspecting contents of > /etc/portage/profile/ > and remove crufty bits completely. Or altrnatively you can port enotice bit to redirect text to stderr to match portage's behaviour (changed in 2008): https://github.com/gentoo/portage/commit/b36c8955cedf9e01869efe8400c1ed98ab21ec98 |