On Sun, 2026-05-10 at 16:37 +0100, Paul Barker wrote:
> On Sat, 2026-05-09 at 09:41 +0800, Changqing Li wrote:
> > On 5/8/26 22:58, Paul Barker via lists.openembedded.org wrote:
> > > CAUTION: This email comes from a non Wind River email account!
> > > Do not click links or open attachments unless you recognize the sender 
> > > and know the content is safe.
> > > 
> > > 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?
> > 
> > I use the latest master branch with pseudo 1.9.6. And this issue only 
> > can reproduce with ubuntu26.04 with uutils installed.
> > 
> > ubuntu24.04 with gnu-coreutils  works well.
> 
> Hi Changqing,
> 
> I looked into this as the chmod behaviour differences you described
> didn't sound like an issue to me.
> 
> I think the actual issue is that files moved (instead of copied) into
> ${D} are not tracked by pseudo. For postfix, when using GNU coreutils
> this issue is hidden because chmod always sets the permissions of the
> file, which pseudo observes. When using uutils on Ubuntu 26.04, chmod
> may not set the permissions if they are already correct, so pseudo
> doesn't observe anything it can add to its database.
> 
> A simple recipe can reproduce this issue on Debian 13 (where uutils is
> not used) as well as Ubuntu 26.04:
> 
>     LICENSE = "MIT"
>     LIC_FILES_CHKSUM = 
> "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> 
>     do_compile() {
>         echo hello > ${B}/hello.txt
>     }
> 
>     do_install() {
>         mv ${B}/hello.txt ${D}/hello.txt
>         ln ${D}/hello.txt ${D}/hello2.txt
>     }
> 
>     FILES:${PN} += "/hello2.txt /hello.txt"
> 
> Building this recipe fails with the same pseudo abort which you are
> seeing. If we use "cp" instead of "mv" in do_install then this works as
> expected.
> 
> I'll discuss this with Mark and see how we want to handle it.

The recipe above also causes a pseudo abort on the initial Scarthgap
release (tag yocto-5.0) so this isn't a new issue, recent changes in
pseudo are not responsible.

Best regards,

-- 
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 (#236783): 
https://lists.openembedded.org/g/openembedded-core/message/236783
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