Line 415 of python-updater contains an incorrect bash construction. Line 415: broken_libs="$(scanelf -qBN ${OLD_SONAME} < <(grep -e '^obj' ${content} | cut -d' ' -f2))" In this line, a string formed by a command substitution is being redirected as input to the scanelf command. However, the construction is incorrect. It should be this: broken_libs="$(scanelf -qBN ${OLD_SONAME} <<< $(grep -e '^obj' ${content} | cut -d' ' -f2))" Using the original uncorrected line 415 produces an error message. This incorrect code has been present in all releases of python-updater (0.7, 0.6, 0.5). Reproducible: Always Actual Results:
Post the output of `emerge --info`.
Created attachment 200029 [details] Output of emerge --info
Is POSIXLY_CORRECT set in the environment? That would cause both this and your eselect issue.
The output of "printenv | sort" shows no variable named POSIXLY_CORRECT.
Your suggestion set me on the right track. In my ~/.bashrc I do have the following line: set -o posix This line is the culprit. If I comment out this line, then both the unmodified python-updater and eselect behave normally. So, the problem is solved. But, the question that remains is why don't these programs just follow the posix standard more closely? Although I've just moved to Gentoo a few months ago, my .bashrc file has been unmodified for many years and has caused no problems in the past. Anyway, thanks for the suggestion.
*** Bug 280191 has been marked as a duplicate of this bug. ***
The removal of the line set -o posix from ~/.bashrc resolves this problem. This action turns off the strict posix compliance feature of bash and allows the python-updater code to execute without producing an error.