To recap:
[post=8819997]flysideways[/post] wrote:Both of the failures are, "no such file or directory", when they get to the first patch in the ebuild. I've searched and looked about a bit, but am not finding anything conclusive.
Both of the failing packages complete successfully when built with the package.accept.keywords method. It is when I try to build them with ~arm64 added to the ebuild that I get the failures.
Code: Select all
* Package: dev-tcltk/tktable-2.10.8:0
* Repository: local
/var/tmp/portage/dev-tcltk/tktable-2.10.8/temp/environment: line 290: /var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch: No such file or directory
[post=8819999]flysideways[/post] wrote:Code: Select all
build ~ # ls -l /var/tmp/portage/dev-tcltk/tktable-2.10.8/files
lrwxrwxrwx 1 root root 43 Mar 17 20:18 /var/tmp/portage/dev-tcltk/tktable-2.10.8/files -> /var/db/repos/local/dev-tcltk/tktable/files
[post=8820004]flysideways[/post] wrote:Code: Select all
build ~ # namei -l /var/db/repos/local/dev-tcltk/tktable/files
f: /var/db/repos/local/dev-tcltk/tktable/files
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root db
drwxr-xr-x root root repos
drwxr-xr-x portage portage local
drwxr-xr-x portage portage dev-tcltk
drwxr-xr-x portage portage tktable
files - No such file or directory
You get "No such file or directory" when trying to read a file in
/var/tmp/portage/dev-tcltk/tktable-2.10.8/files/. That path is a symlink to
/var/db/repos/local/dev-tcltk/tktable/files. In turn, that path does not exist, so no files can exist in it. Thus, your result is expected. You cannot use a patch file in a directory that does not exist. The distinction between success and failure is not the difference between
package.accept_keywords and adding the
~arm64 KEYWORD. The difference is that in the
package.accept_keywords case, you use the Gentoo ebuild, which has a working
files directory. In the
~arm64 case, you use an ebuild in your
::local overlay, which has no
files directory.
In conclusion: if you want to set up a local overlay, you need to set up the files in it properly. For an ebuild which uses a
files directory, you need either to copy the relevant parts of the
files directory from
::gentoo or you need to symlink to the
::gentoo copy of the
files directory. The latter is expedient, but may break if the Gentoo maintainers subsequently remove a file as unnecessary, but you still rely on it.