Discussion:
[yocto] archiver.bbclass: do_dumpdata - shell format
Tomasz Dziendzielski
2018-10-16 12:44:21 UTC
Permalink
Hi,
when using archiver.bbclass the do_dumpdata task is using bb.data.emit_env
function, which should emit variables "in a format such that it can be
sourced by a shell.".
The problem is that the *-showdata.dump file can't be properly sourced,
because variables are not in a correct format.

There are many lines like:
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
The variables with slash are considered to be a directory and the ones with
dash are considered to be a command.
Also shell cannot properly set the variables like FOO_machine.

Should it be sourced with some specific shell or is that function wrong and
should be fixed?

Best regards,
Tomasz Dziendzielski
Burton, Ross
2018-10-16 13:00:47 UTC
Permalink
Do you actually want to source the data files, and if so why? As with
the bitbake -e output, it's shell-like but not actually shell.

Ross
On Tue, 16 Oct 2018 at 13:44, Tomasz Dziendzielski
Hi,
when using archiver.bbclass the do_dumpdata task is using bb.data.emit_env function, which should emit variables "in a format such that it can be sourced by a shell.".
The problem is that the *-showdata.dump file can't be properly sourced, because variables are not in a correct format.
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
The variables with slash are considered to be a directory and the ones with dash are considered to be a command.
Also shell cannot properly set the variables like FOO_machine.
Should it be sourced with some specific shell or is that function wrong and should be fixed?
Best regards,
Tomasz Dziendzielski
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
Tomasz Dziendzielski
2018-10-16 14:00:44 UTC
Permalink
Yes, I want to source the data files. I'm trying to adapt devtool the way
it's creating the workspace, then I'm sourcing a script with all the
necessary variables and then interactively run commands by hand.
I was thinking about the devshell but in devshell variables like ${S}, ${B}
are not set and developers would need to set it manually. Or maybe this is
where we should do the change and inject exporting that variables in
devshell?
Post by Burton, Ross
it's shell-like but not actually shell.
So we should not state that this can be sourced by a shell. It's stated in
bitbake/lib/bb/data.py few times.
Or fix it and make it possible to source.

Best regards,
Tomasz Dziendzielski
Post by Burton, Ross
Do you actually want to source the data files, and if so why? As with
the bitbake -e output, it's shell-like but not actually shell.
Ross
On Tue, 16 Oct 2018 at 13:44, Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Hi,
when using archiver.bbclass the do_dumpdata task is using
bb.data.emit_env function, which should emit variables "in a format such
that it can be sourced by a shell.".
Post by Tomasz Dziendzielski
The problem is that the *-showdata.dump file can't be properly sourced,
because variables are not in a correct format.
Post by Tomasz Dziendzielski
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
The variables with slash are considered to be a directory and the ones
with dash are considered to be a command.
Post by Tomasz Dziendzielski
Also shell cannot properly set the variables like FOO_machine.
Should it be sourced with some specific shell or is that function wrong
and should be fixed?
Post by Tomasz Dziendzielski
Best regards,
Tomasz Dziendzielski
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
Tomasz Dziendzielski
2018-10-18 08:56:22 UTC
Permalink
So what is the proper solution?

Best regards,
Tomasz Dziendzielski

wt., 16 paź 2018 o 16:00 Tomasz Dziendzielski <
Post by Tomasz Dziendzielski
Yes, I want to source the data files. I'm trying to adapt devtool the way
it's creating the workspace, then I'm sourcing a script with all the
necessary variables and then interactively run commands by hand.
I was thinking about the devshell but in devshell variables like ${S},
${B} are not set and developers would need to set it manually. Or maybe
this is where we should do the change and inject exporting that variables
in devshell?
Post by Burton, Ross
it's shell-like but not actually shell.
So we should not state that this can be sourced by a shell. It's stated in
bitbake/lib/bb/data.py few times.
Or fix it and make it possible to source.
Best regards,
Tomasz Dziendzielski
Post by Burton, Ross
Do you actually want to source the data files, and if so why? As with
the bitbake -e output, it's shell-like but not actually shell.
Ross
On Tue, 16 Oct 2018 at 13:44, Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Hi,
when using archiver.bbclass the do_dumpdata task is using
bb.data.emit_env function, which should emit variables "in a format such
that it can be sourced by a shell.".
Post by Tomasz Dziendzielski
The problem is that the *-showdata.dump file can't be properly sourced,
because variables are not in a correct format.
Post by Tomasz Dziendzielski
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
The variables with slash are considered to be a directory and the ones
with dash are considered to be a command.
Post by Tomasz Dziendzielski
Also shell cannot properly set the variables like FOO_machine.
Should it be sourced with some specific shell or is that function wrong
and should be fixed?
Post by Tomasz Dziendzielski
Best regards,
Tomasz Dziendzielski
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
Burton, Ross
2018-10-18 09:51:47 UTC
Permalink
Well, as you've discovered, bitbake variables can have names that are
invalid in shell. I suspect the proper solution is to treat the -e
output as shell-like, and parse it with a proper parser.

Ross
On Thu, 18 Oct 2018 at 09:56, Tomasz Dziendzielski
Post by Tomasz Dziendzielski
So what is the proper solution?
Best regards,
Tomasz Dziendzielski
Yes, I want to source the data files. I'm trying to adapt devtool the way it's creating the workspace, then I'm sourcing a script with all the necessary variables and then interactively run commands by hand.
I was thinking about the devshell but in devshell variables like ${S}, ${B} are not set and developers would need to set it manually. Or maybe this is where we should do the change and inject exporting that variables in devshell?
Post by Burton, Ross
it's shell-like but not actually shell.
So we should not state that this can be sourced by a shell. It's stated in bitbake/lib/bb/data.py few times.
Or fix it and make it possible to source.
Best regards,
Tomasz Dziendzielski
Post by Burton, Ross
Do you actually want to source the data files, and if so why? As with
the bitbake -e output, it's shell-like but not actually shell.
Ross
On Tue, 16 Oct 2018 at 13:44, Tomasz Dziendzielski
Hi,
when using archiver.bbclass the do_dumpdata task is using bb.data.emit_env function, which should emit variables "in a format such that it can be sourced by a shell.".
The problem is that the *-showdata.dump file can't be properly sourced, because variables are not in a correct format.
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
The variables with slash are considered to be a directory and the ones with dash are considered to be a command.
Also shell cannot properly set the variables like FOO_machine.
Should it be sourced with some specific shell or is that function wrong and should be fixed?
Best regards,
Tomasz Dziendzielski
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
Tomasz Dziendzielski
2018-10-18 10:05:05 UTC
Permalink
I suspect the proper solution is to treat the -e output as shell-like
From the bitbake/lib/bb/data.py:
"""Emits all items in the data store in a format such that it can be
sourced by a shell."""
so if you say it's shell-like, not shell, shouldn't we replace that to
"""Emits all items in the data store in a shell-like format"""?
If it cannot be sourced the statement "can be sourced by a shell" should be
removed.
parse it with a proper parser.
So is there any proper parser to source this?

Best regards,
Tomasz Dziendzielski
Well, as you've discovered, bitbake variables can have names that are
invalid in shell. I suspect the proper solution is to treat the -e
output as shell-like, and parse it with a proper parser.
Ross
On Thu, 18 Oct 2018 at 09:56, Tomasz Dziendzielski
Post by Tomasz Dziendzielski
So what is the proper solution?
Best regards,
Tomasz Dziendzielski
wt., 16 paź 2018 o 16:00 Tomasz Dziendzielski <
Post by Tomasz Dziendzielski
Yes, I want to source the data files. I'm trying to adapt devtool the
way it's creating the workspace, then I'm sourcing a script with all the
necessary variables and then interactively run commands by hand.
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
I was thinking about the devshell but in devshell variables like ${S},
${B} are not set and developers would need to set it manually. Or maybe
this is where we should do the change and inject exporting that variables
in devshell?
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Post by Burton, Ross
it's shell-like but not actually shell.
So we should not state that this can be sourced by a shell. It's stated
in bitbake/lib/bb/data.py few times.
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Or fix it and make it possible to source.
Best regards,
Tomasz Dziendzielski
Post by Burton, Ross
Do you actually want to source the data files, and if so why? As with
the bitbake -e output, it's shell-like but not actually shell.
Ross
On Tue, 16 Oct 2018 at 13:44, Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Hi,
when using archiver.bbclass the do_dumpdata task is using
bb.data.emit_env function, which should emit variables "in a format such
that it can be sourced by a shell.".
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Post by Burton, Ross
Post by Tomasz Dziendzielski
The problem is that the *-showdata.dump file can't be properly
sourced, because variables are not in a correct format.
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Post by Burton, Ross
Post by Tomasz Dziendzielski
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
The variables with slash are considered to be a directory and the
ones with dash are considered to be a command.
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Post by Burton, Ross
Post by Tomasz Dziendzielski
Also shell cannot properly set the variables like FOO_machine.
Should it be sourced with some specific shell or is that function
wrong and should be fixed?
Post by Tomasz Dziendzielski
Post by Tomasz Dziendzielski
Post by Burton, Ross
Post by Tomasz Dziendzielski
Best regards,
Tomasz Dziendzielski
--
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
Loading...