From: Robert Yang <liezhi.yang@windriver.com>
To: Seebs <seebs@seebs.net>,
oe-core <openembedded-core@lists.openembedded.org>
Subject: Re: About pseudo's chmod
Date: Tue, 2 Aug 2016 14:44:36 +0800 [thread overview]
Message-ID: <57A04154.1050909@windriver.com> (raw)
In-Reply-To: <E145B74B-3968-45C3-A0B0-D557C76ADC38@seebs.net>
On 08/02/2016 02:30 PM, Seebs wrote:
> On 2 Aug 2016, at 1:07, Robert Yang wrote:
>
>> Currently, the problem in oe-core is:
>>
>> 1) bitbake gzip
>> 2) Edit rpm-native or package.bbclass to make do_package re-run.
>> 3) bitbake gzip
>> After the first build, build/version.c in gzip-dbg is 0444, but after
>> the second build, it will be 0644, this is because do_package does:
>> $ ln ${B}/version.c gzip-dbg/version.c,
>> $ chmod 0444 gzip-dbg/version.c (it runs chmod 0644 on the real filesystem)
>> And in the second build, the gzip-dbg/version.c will be removed and
>> created again, so that stat() can't get 0444 but 0644 since
>> ${B}/version.c is not tracked by pseudo.
>
> Hmm. I'm a bit confused by this. Wouldn't the second build also do a
> "chmod 0444" on gzip-dbg/version.c? Why is it doing that chmod the first
Because the stat() gets 0644 on ${B}/version.c in the second run, so it
would run chmod 0644 rather than 0444 on gzip-dbg/version.c. And why it
gets 0644 ? pseudo's chmod automatically adds "w" on the real file, so:
if -e gzip-dbg/version.c; then
${B}/version.c = 0444
else
${B}/version.c = 0644
fi
And in the second run, gzip-dbg/version.c is removed and will be recreated,
so that it got 0644.
> time and not the second? If it does it the second time, the fact that
> the underlying file's mode changed won't matter.
>
> But in this case... While I'm fine with modifying things to track the
Thanks, I will send a patch for it.
> file linked-to, it still feels like this is a usage error. Fundamentally,
> we're unpacking a file (${B}/version.c), then linking to it, changing
> the link in some way, deleting the link, and expecting the original file
> to be unchanged. That doesn't seem right to me.
But that is what the real filesystem works without pseudo:
$ touch file1
$ ln file1 file2
$ chmod 777 file2
$ rm -f file2
file1 will be 777 on the real filesystem.
// Robert
>
> -s
next prev parent reply other threads:[~2016-08-02 6:44 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-05 10:23 About pseudo's chmod Robert Yang
2016-07-05 13:10 ` Mark Hatle
2016-07-05 14:10 ` Robert Yang
2016-07-29 7:38 ` Robert Yang
2016-07-29 7:40 ` Robert Yang
2016-07-29 16:02 ` Seebs
2016-08-01 5:57 ` Robert Yang
2016-08-01 8:42 ` Seebs
2016-08-01 8:57 ` Robert Yang
2016-08-01 18:17 ` Seebs
2016-08-01 20:01 ` Richard Purdie
2016-08-01 20:17 ` Seebs
2016-08-01 22:55 ` Richard Purdie
2016-08-01 23:36 ` Mark Hatle
2016-08-02 3:39 ` Seebs
2016-08-02 1:52 ` Robert Yang
2016-08-02 3:43 ` Seebs
2016-08-02 6:07 ` Robert Yang
2016-08-02 6:08 ` Robert Yang
2016-08-02 6:30 ` Seebs
2016-08-02 6:44 ` Robert Yang [this message]
2016-08-02 6:50 ` Seebs
2016-08-02 8:32 ` Robert Yang
2016-08-02 19:16 ` Seebs
2016-08-02 19:18 ` Burton, Ross
2016-08-02 15:12 ` Mark Hatle
2016-08-02 19:19 ` Seebs
2016-08-02 19:39 ` Mark Hatle
2016-08-02 19:53 ` Seebs
2016-08-02 3:37 ` Seebs
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57A04154.1050909@windriver.com \
--to=liezhi.yang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=seebs@seebs.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.