(cross-posting from the Gentoo forum)
I try editing the .eclass file in order to correct the error, but it seems my edits are being defeated by a cache somewhere. The initial error occurs when I run the command emerge --config =dev-db/mysql-5.7.12, which I must do in order to finish installing my build of MySQL. The command fails and /var/log/mysql/mysqld.err says:
[ERROR] Too many arguments (first extra is ''--init-file=/var/tmp/portage/dev-db/mysql-5.7.12/temp/tmp.COaXRiJpf9''). I traced it to a file named mysql-multilib-r1.eclass. I found two versions of this file on my system; one in the main Gentoo repository (priority -1000) under /usr/portage/eclass/, and the other in the overlay repository (+50). The overlay repository is maintained by Layman and the name of the overlay is ‘mysql’. — I’m using it to gain access to MySQL 5.7, which hasn’t arrived in the main repository yet. — Specifically I traced the error to line 953 in the overlay version of the file, or 945 in the main version:
initialize_options="--initialize-insecure '--init-file=${sqltmp}'" Probably the single quotes are causing the --init-file option to be interpreted as a proper argument. I just need to remove them. But when I do, it has no effect. My edits to this file — no matter which version I edit — are ignored. I’ve been careful to delete the contents of /var/tmp/portage in case it’s caching there. I also tried synchronizing the repositories:
layman --sync ALL emerge --sync I tried synchronizing them before editing the two versions of the file, and also after editing — in this case clobbering my edits to the main version but (oddly) not the overlay version. Neither helped.
The Gentoo developer manual suggests that I might need to ‘manually touch all relevant overlay files after updating overlay eclasses’. I tried doing that, too; touching all files under these directories:
/usr/portage/dev-db /usr/portage/eclass /usr/portage/virtual/mysql /var/lib/layman/mysql/dev-db /var/lib/layman/mysql/eclass /var/lib/layman/mysql/metadata /var/lib/layman/mysql/profiles /var/lib/layman/mysql/virtual When I next ran the emerge command, it began by outputting:
Performing Global Updates (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' #='/var/db update' @='/var/db move' s='/var/db SLOT move' %='binary move' S='binary SLOT move' p='update /etc/portage/package.*' /var/lib/layman/mysql/profiles/updates/3Q-2014. But still my edits were ignored. — How can I edit this .eclass file so that my edits actually take effect? Or how else can I work around an error like this?