On Fri, Jan 16 2026, "Rasmus Villemoes via lists.openembedded.org"
<[email protected]> wrote:
> Hi
>
> When some task uses mktemp(1) or similar functionality (e.g. the
> python tempfile module) to create a temporary file or dir, those end up
> being created in the global /tmp directory. That's obviously not ideal,
> as those might be left behind in case of an unclean shutdown or if the
> script is not properly written, and won't be cleaned by do_clean or
> RM_WORK. Also, /tmp is often a tmpfs instance, while some tasks might
> want to create rather large temporary files.
>
> Most such utilities/interfaces respect the TMPDIR environment variable,
> if set. However, since that name is used by bitbake for a rather central
> concept, one cannot simply 'export TMPDIR', as one doesn't want that
> top-level build dir polluted by random build files, and it still
> wouldn't be removed by do_clean or RM_WORK. Ideally, all tasks would
> have a TMPDIR _environment_ variable set to something below ${WORKDIR},
> maybe even something unique per task (say ${T}/${taskname}.d). But
> there's no simple way to do that that doesn't conflict with bitbake's
> use of the TMPDIR name.
>
> Can we do anything about this?
>
> (1) Do nothing, live with this limitation.
>
> (2) Special-case TMPDIR, so that all tasks are created with a proper
> value of TMPDIR in the environment, not derived from the bitbake
> variable of the same name. Could be settable with some new TASK_TMPDIR
> or do_foo[tmpdir] flag. Somewhat hacky, though.
>
> (3) Bite the bullet and plan for renaming TMPDIR -> BBTMPDIR, so that
> the TMPDIR name becomes available for use with its standard POSIX
> meaning. Obviously a huge thing to do, but hopefully most direct TMPDIR
> references are in core or bitbake and used for deriving other standard
> variables.
I tried doing TMPDIR -> BB_TMPDIR in bitbake and most places in core
(there are some places which use TMPDIR in the posix sense), and it
seems to build a core-image-minimal without problems.
So it's not impossible, and one could prepare for the transition by
eliminating quite a few direct TMPDIR references using already existing
or new derived variables (e.g. BASE_SHAREDWORKDIR =
${TMPDIR}/work-shared), making the number of places that would need
the rename rather small.
I'd be happy to send such preparatory patches, but it would be pointless
if the community doesn't deem this to be a problem worth fixing.
Rasmus
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#233220):
https://lists.openembedded.org/g/openembedded-core/message/233220
Mute This Topic: https://lists.openembedded.org/mt/118341869/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-