On Fri, 2026-05-08 at 13:19 +0000, Changqing Li via
lists.openembedded.org wrote:
> Hi,
>
> I am trying to build project on ubuntu 26.04. "bitbake postfix" failed at
> do_package since pseudo abort, after doing some search, it is caused by
> ubtunu26.04's new change, Ubuntu has officially begun transitioning its core
> system utilities from the traditional GNU Coreutils (written in C) to uutils
> (a Rust-based rewrite). I would like to seek some help, could you give
> some advices about how we should handle this? Thanks.
>
> Here is how it happened:
> * In do_install stage:
> There are 2 files target to installed under ${D}: (there are other files
> following this pattern)
> ${D}/usr/libexec/postfix/smtp: which is mv from file under {S}, and then
> chmod
> ${D}/usr/libexec/postfix/lmtp: hardlink to ${D}/usr/libexec/postfix/smtp
>
> With the old gnu coreutils:
> when install smtp, mv will call renameat2, which will finally calling real
> syscall since the oldpath is under {S} which is not in PSEUDO_INCLUDE_PATHS.
> then chmod call fchmodat, then fchmodat wrapper will save an entry with uid
> 0 in files.db. install lmtp will also insert an entry with uid 0 in files.db
>
> With the new rust coreutils:
> when install smtp, the behavior of chmod is different, statx get current
> mode, rust chmod check the current mode is the same as the target mode, then
> fchmodat is never called, then smtp is not saved in files.db, and this will
> also make install lmtp insert an entry with real uid like 25610 in files.db
> since smtp is not found in files.db
>
> * in do_package stage:
>
> Exception: subprocess.CalledProcessError: Command 'tar
> --exclude=./sysroot-only -cf - -C
> /yocto/build/tmp/work/x86-64-v3-oe-linux/postfix/3.10.8/image -p -S . | tar
> -xf - -C /yocto/build/tmp/work/x86-64-v3-oe-linux/postfix/3.10.8/package'
> returned non-zero exit status 2.
>
> Subprocess output:
> abort()ing pseudo client by server request. See
> https://wiki.yoctoproject.org/wiki/Pseudo_Abort for more details on this.
> Check logfile:
> /buildarea1/cli10/yocto/build/tmp/work/x86-64-v3-oe-linux/postfix/3.10.8/pseudo//pseudo.log
>
> tar command may call stat for ${D}/usr/libexec/postfix/smtp, since the
> we have a same inode entry in files.db for lmtp, above error reported.
>
>
> The key issue is ${D}/usr/libexec/postfix/smtp is not inserted in files.db
> in do_install stage, which will cause wrong uid for lmtp and psedo abort in
> do_package stage.
> I think we cannot change behavior of rust coreutils. I am wondering even we
> patch postfix to not use hardlink, the pseudo abort issue may disappear, but
> since
> chmod not call fchmodat, we don't insert entries for these files, maybe
> the uid etc is wrong in final image.
>
> [1] https://github.com/uutils/coreutils/blob/main/src/uu/chmod/src/chmod.rs
> [2] https://github.com/coreutils/coreutils/blob/master/src/chmod.c
> [3] https://lists.openembedded.org/g/openembedded-devel/topic/119211397 //
> patch for build postfix with linux kernel 7.xHi Changqing, The tar command failing with exit status 2 should be resolved by recent changes in pseudo. Which Yocto Project version are you using? Thanks, -- Paul Barker
signature.asc
Description: This is a digitally signed message part
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#236725): https://lists.openembedded.org/g/openembedded-core/message/236725 Mute This Topic: https://lists.openembedded.org/mt/119214074/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
