Revert "pseudo_fix_path: do not expand symlinks in /proc"
This reverts commit 300d7570720bc14d01f49d285498d71cce3ce44e.
This is causing faults for real world builds, e.g.:
Exception: subprocess.CalledProcessError: Command 'tar --exclude='.git' --exclude='__pycache__' --xattrs --xattrs-include='*' -chf - -C /home/pokybuild/yocto-worker/beaglebone/build/meta -p . | tar --xattrs --xattrs-include='*' -xf - -C /home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-minimal/1.0-r0/sdk-ext/image//usr/local/oe-sdk-hardcoded-buildpath/layers/build/meta' returned non-zero exit status 134.
Subprocess output:
abort()ing pseudo client by server request. See https://wiki.yoctoproject.org/wiki/Pseudo_Abort for more details on this.
Check logfile: /home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-minimal/1.0-r0/pseudo//pseudo.log
/bin/sh: line 1: 1732017 Broken pipe tar --exclude='.git' --exclude='__pycache__' --xattrs --xattrs-include='*' -chf - -C /home/pokybuild/yocto-worker/beaglebone/build/meta -p .
1732018 Aborted (core dumped) | tar --xattrs --xattrs-include='*' -xf - -C /home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-minimal/1.0-r0/sdk-ext/image//usr/local/oe-sdk-hardcoded-buildpath/layers/build/meta
ERROR: Logfile of failure stored in: /home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_populate_sdk_ext.1725807
NOTE: recipe core-image-minimal-1.0-r0: task do_populate_sdk_ext: Failed
ERROR: Task (/home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-core/images/core-image-minimal.bb:do_populate_sdk_ext) failed with exit code '1'
Pseudo log:
path mismatch [1 link]: ino 14050447 db '/home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-minimal/1.0-r0/sdk-ext/image/usr/local/oe-sdk-hardcoded-buildpath/layers/build/meta/COPYING.MIT' req '/proc/self/fd/3/./COPYING.MIT'.
Richard Purdie
2 years ago
27 | 27 | #include "pseudo.h" |
28 | 28 | #include "pseudo_ipc.h" |
29 | 29 | #include "pseudo_db.h" |
30 | ||
31 | /* O_PATH is defined in glibc 2.16 and later only */ | |
32 | #ifndef O_PATH | |
33 | #define O_PATH 010000000 | |
34 | #endif | |
35 | 30 | |
36 | 31 | struct pseudo_variables { |
37 | 32 | char *key; |
682 | 677 | */ |
683 | 678 | if (!leave_this && is_dir) { |
684 | 679 | int is_link = S_ISLNK(buf->st_mode); |
685 | ||
686 | /* do not expand symlinks in the proc filesystem, since they may not be real | |
687 | * check if newpath starts with "/proc/" | |
688 | * strlen of "/proc/" = 6 | |
689 | */ | |
690 | if (is_link && (strncmp("/proc/", newpath, 6) == 0)) { | |
691 | pseudo_debug(PDBGF_PATH | PDBGF_VERBOSE, | |
692 | "pae: '%s' is procfs symlink, not expanding\n", | |
693 | newpath); | |
694 | is_link = 0; | |
695 | } | |
696 | ||
697 | 680 | if (link_recursion >= PSEUDO_MAX_LINK_RECURSION && is_link) { |
698 | 681 | pseudo_diag("link recursion too deep, not expanding path '%s'.\n", newpath); |
699 | 682 | is_link = 0; |