From: Rasmus Villemoes <ravi@prevas.dk>
To: richard.purdie@linuxfoundation.org
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH 1/2] bitbake.conf/sstate: Introduce DEFAULT_SHARED_UMASK to standarise shared area umask
Date: Mon, 30 Jun 2025 11:02:16 +0200 [thread overview]
Message-ID: <87ecv1y547.fsf@prevas.dk> (raw)
In-Reply-To: <20250627212423.3315152-1-richard.purdie@linuxfoundation.org> (Richard Purdie via lists openembedded org's message of "Fri, 27 Jun 2025 22:24:22 +0100")
On Fri, Jun 27 2025, "Richard Purdie via lists.openembedded.org" <richard.purdie=linuxfoundation.org@lists.openembedded.org> wrote:
> Currently, the "shared" directory permissions of sstate are hardcoded. Since
> multiple areas of the code reference this, separate it out to a variable to
> allow the behaviour to be configurable. Initially this applies to SSTATE_DIR.
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
> meta/classes-global/sstate.bbclass | 12 +++++++-----
> meta/conf/bitbake.conf | 2 ++
> 2 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
> index 2968cc4c2e7..7578aad24ea 100644
> --- a/meta/classes-global/sstate.bbclass
> +++ b/meta/classes-global/sstate.bbclass
> @@ -745,7 +745,7 @@ def pstaging_fetch(sstatefetch, d):
> if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
> uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)]
>
> - with bb.utils.umask(0o002):
> + with bb.utils.umask(bb.utils.to_filemode(d.getVar("DEFAULT_SHARED_UMASK"))):
> bb.utils.mkdirhier(dldir)
>
> for srcuri in uris:
> @@ -776,9 +776,10 @@ sstate_task_prefunc[dirs] = "${WORKDIR}"
> python sstate_task_postfunc () {
> shared_state = sstate_state_fromvars(d)
>
> - omask = os.umask(0o002)
> - if omask != 0o002:
> - bb.note("Using umask 0o002 (not %0o) for sstate packaging" % omask)
> + shared_umask = bb.utils.to_filemode(d.getVar("DEFAULT_SHARED_UMASK"))
> + omask = os.umask(shared_umask)
> + if omask != shared_umask:
> + bb.note("Using umask %0o (not %0o) for sstate packaging" % (shared_umask, omask))
> sstate_package(shared_state, d)
> os.umask(omask)
>
> @@ -843,7 +844,8 @@ python sstate_create_and_sign_package () {
>
> # Create the required sstate directory if it is not present.
> if not sstate_pkg.parent.is_dir():
> - with bb.utils.umask(0o002):
> + shared_umask = bb.utils.to_filemode(d.getVar("DEFAULT_SHARED_UMASK"))
> + with bb.utils.umask(shared_umask):
> bb.utils.mkdirhier(str(sstate_pkg.parent))
>
> if sign_pkg:
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index a3300fc1727..22473bfe23a 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -944,6 +944,8 @@ TRANSLATED_TARGET_ARCH ??= "${@d.getVar('TARGET_ARCH').replace("_", "-")}"
>
> # Set a default umask to use for tasks for determinism
> BB_DEFAULT_UMASK ??= "022"
> +# The umask to use for shared files (e.g. DL_DIR and SSTATE_DIR)
> +DEFAULT_SHARED_UMASK ??= "002"
This is perhaps bikeshedding, but I think that naming is somewhat
off. For BB_DEFAULT_UMASK, the "default" refers to this being used if
the task doesn't have it's own [umask] flag.
For the new variable, yes, this setting is a default, but that's really
the ??= part of the line. If someone wants to change the umask used for
those 'shared' areas, they should just have to change
"SHARED_UMASK". Otherwise we should also have DEFAULT_PARALLEL_MAKE etc.
I think I'd prefer a BB_ prefix, just to keep it a little namespaced,
but I can see how this might not be a bitbake thing (unlike the variable
that applies to tasks in general).
Should the 0775 instances in the test code be updated to be computed
as 0777 minus [DEFAULT_]SHARED_UMASK or is it assumed that the tests
are always run with default settings?
Rasmus
next prev parent reply other threads:[~2025-06-30 9:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 21:24 [PATCH 1/2] bitbake.conf/sstate: Introduce DEFAULT_SHARED_UMASK to standarise shared area umask Richard Purdie
2025-06-27 21:24 ` [PATCH 2/2] base: Use DEFAULT_SHARED_UMASK for do_fetch Richard Purdie
2025-06-30 9:18 ` [OE-core] " Rasmus Villemoes
2025-06-30 11:23 ` Richard Purdie
2025-06-30 9:02 ` Rasmus Villemoes [this message]
2025-06-30 11:21 ` [OE-core] [PATCH 1/2] bitbake.conf/sstate: Introduce DEFAULT_SHARED_UMASK to standarise shared area umask Richard Purdie
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=87ecv1y547.fsf@prevas.dk \
--to=ravi@prevas.dk \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/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.