Patchwork scripts/bitbake: Allow to override path to pseudodone, make BUILDDIR optional

login
register
mail settings
Submitter Andreas Oberritter
Date March 26, 2012, 2:38 p.m.
Message ID <4F707F4E.1060908@opendreambox.org>
Download mbox | patch
Permalink /patch/24565/
State New
Headers show

Comments

Andreas Oberritter - March 26, 2012, 2:38 p.m.
On 26.03.2012 12:29, Andreas Oberritter wrote:
> On 26.03.2012 12:07, Paul Eggleton wrote:
>> On Friday 23 March 2012 21:20:28 Andreas Oberritter wrote:
>>> how do you propose to go on solving this problem?
>>
>> My original patch solved a problem for many newer users who forget to cd back 
>> to their build directories before running bitbake. At least now they get a 
>> reasonable error message they can understand. I'm not going to support 
>> reverting it unless we have a practical alternative and so far I don't see 
>> one.
>>
>> Your original reason for using the configuration you use was that pseudo was 
>> being rebuilt for every new configuration. I have a fix here locally which will 
>> skip doing this - it just needs to call bitbake -e in order to find out 
>> STAGING_BINDIR_NATIVE if pseudodone hasn't been created.
> 
> Yes, this was my original reason (or better: the first one I mentioned).
> 
> However, I still don't want to export BUILDDIR just to run bitbake. It's
> much more convenient to just have to call bitbake directly from every
> machine's build directory than having to set up the environment every
> single time the machine changes. How are me and my distro's users
> supposed to do this in the future?
> 
> Can't bitbake just print a useful error message on its own if it doesn't
> find a usable configuration?

OK, I managed to find a way that's ok for me. I added a wrapper script that
wraps the bitbake wrapper script and sets BUILDDIR automatically. This way
I can als get rid of oe-core/scripts from PATH.

Can you please ack this patch below, though? This keeps your change intact
and surely causes no trouble for you.

Regards,
Andreas

From 92fd89c65a52e68bb0014e3798dabeeedda52c1c Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Tue, 20 Mar 2012 14:28:41 +0100
Subject: [PATCH] scripts/bitbake: Allow to override path to pseudodone

* Allows to workaround breakage caused by commit
  b4df1c7c79b5c801658bcf890ba3a8eab3d83189.

* Related thread on OE-core mailing list:
  http://lists.linuxtogo.org/pipermail/openembedded-core/2012-March/019136.html

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
---
 scripts/bitbake |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
Paul Eggleton - March 26, 2012, 2:48 p.m.
On Monday 26 March 2012 16:38:06 Andreas Oberritter wrote:
> OK, I managed to find a way that's ok for me. I added a wrapper script that
> wraps the bitbake wrapper script and sets BUILDDIR automatically.

I'm actually working on a couple of fixes that should work for your setup right 
now. If you can wait a little the patches will get posted soon. No additional 
wrapper scripts necessary.

> This way I can als get rid of oe-core/scripts from PATH.

I don't think this is a good idea. If it doesn't cause breakage now I'd be 
surprised if it didn't in the future.

> Can you please ack this patch below, though? This keeps your change intact
> and surely causes no trouble for you.

This won't be necessary with the fixes I have. The directory where the 
"pseudodone" file is located is supposed to be your build directory, there's no 
need to configure it.

Paul
Andreas Oberritter - March 26, 2012, 2:57 p.m.
On 26.03.2012 16:48, Paul Eggleton wrote:
> On Monday 26 March 2012 16:38:06 Andreas Oberritter wrote:
>> OK, I managed to find a way that's ok for me. I added a wrapper script that
>> wraps the bitbake wrapper script and sets BUILDDIR automatically.
> 
> I'm actually working on a couple of fixes that should work for your setup right 
> now. If you can wait a little the patches will get posted soon. No additional 
> wrapper scripts necessary.
> 
>> This way I can als get rid of oe-core/scripts from PATH.
> 
> I don't think this is a good idea. If it doesn't cause breakage now I'd be 
> surprised if it didn't in the future.
> 
>> Can you please ack this patch below, though? This keeps your change intact
>> and surely causes no trouble for you.
> 
> This won't be necessary with the fixes I have. The directory where the 
> "pseudodone" file is located is supposed to be your build directory, there's no 
> need to configure it.

I'm not convinced. If I delete tmp, pseudo gets deleted, but pseudodone
stays. In my opinion, pseudodone's intuitive location is tmp, if the
location of tmp is known - which it is in my case.

Can you please at least put $BUILDDIR/pseudodone into a variable, so I
can keep my patch small and maintainable?

Regards,
Andreas
Paul Eggleton - March 26, 2012, 3:09 p.m.
On Monday 26 March 2012 16:57:33 Andreas Oberritter wrote:
> I'm not convinced. If I delete tmp, pseudo gets deleted, but pseudodone
> stays. In my opinion, pseudodone's intuitive location is tmp, if the
> location of tmp is known - which it is in my case.

pseudodone exists so that the script does not have to ask bitbake every time 
it is run where to find the pseudo executable (i.e., STAGING_BINDIR_NATIVE). 
Now, at the moment the script is lazy and assumes if the file doesn't exist 
then it needs to build pseudo even if that isn't needed. I have a fix for this 
already, so this problem is taken care of.
 
> Can you please at least put $BUILDDIR/pseudodone into a variable, so I
> can keep my patch small and maintainable?

If the above is fixed and you can move freely between build directories without 
re-running a setup script, then unless I'm mistaken your immediate problems 
have now been addressed...?

Cheers,
Paul

Patch

diff --git a/scripts/bitbake b/scripts/bitbake
index 45c8697..ea24de7 100755
--- a/scripts/bitbake
+++ b/scripts/bitbake
@@ -52,9 +52,13 @@  if [ "`pwd`" != "$BUILDDIR" ] ; then
     exit 1
 fi
 
+if [ -z "$PSEUDODONE" ]; then
+    PSEUDODONE="$BUILDDIR/pseudodone"
+fi
+
 buildpseudo="1"
-if [ $needpseudo = "1" ] && [ -e "$BUILDDIR/pseudodone" ]; then
-    PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
+if [ $needpseudo = "1" ] && [ -e "$PSEUDODONE" ]; then
+    PSEUDOBINDIR=`cat $PSEUDODONE`
     if [ -e "$PSEUDOBINDIR/pseudo" -a -e "$PSEUDOBINDIR/tar" -a "$needtar" = "1" ]; then
         buildpseudo="0"
     fi
@@ -96,7 +100,7 @@  if [ $buildpseudo = "1" ]; then
     if [ "$ret" != "0" ]; then
         exit 1
     fi
-    echo $PSEUDOBINDIR > $BUILDDIR/pseudodone
+    echo $PSEUDOBINDIR > $PSEUDODONE
     # This needs to exist in case pseudo has to log somewhere
     mkdir -p $PSEUDOBINDIR/../../var/pseudo
 fi
@@ -104,7 +108,7 @@  BITBAKE=`which bitbake`
 export PATH=$OLDPATH
 if [ $needpseudo = "1" ]; then
     export PSEUDO_BUILD=2
-    PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
+    PSEUDOBINDIR=`cat $PSEUDODONE`
     PSEUDO_BINDIR=$PSEUDOBINDIR PSEUDO_LIBDIR=$PSEUDOBINDIR/../lib/pseudo/lib PSEUDO_PREFIX=$PSEUDOBINDIR/../../ PSEUDO_DISABLED=1 $PSEUDOBINDIR/pseudo $BITBAKE $@
 else
     export PSEUDO_BUILD=0