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.x

Hi 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

Attachment: 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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to