Bug 4853

Summary: Can't install prebuilt SDK
Product: [Yocto Project Subprojects] ADT Reporter: Nick G <exosyst>
Component: adtAssignee: Stefan Stanacar <sstncr>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: Medium+ CC: jessica.zhang, poky.adt.watcher, poky.bs.watcher, poky.watcher, rpjday, sstncr
Version: unspecified   
Target Milestone: 1.5 M3   
Hardware: x86   
OS: x86   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Nick G 2013-07-15 22:06:41 UTC
Tried to install the prebuilt SDK for 1.4 (and also tried 1.4.1) and was unable to finish the installation

[nick@slimtop BBB]$ sudo ./poky-eglibc-i686-arm-toolchain-gmae-1.4.sh 
[sudo] password for nick: 
Enter target directory for SDK (default: /opt/poky/1.4): 
You are about to install the SDK to "/opt/poky/1.4". Proceed[Y/n]?y
Extracting SDK...done
Setting it up...SDK could not be set up. Relocate script failed. Abort!

Digging into it - it looks like the relocate_sdk.py that gets extracted fails with an exit code of 255 and is checking for the wrong number of arguments but I didn't want to dive too far down the rabbit hole on this.

I'm using Fedora 19 and the downloads were from http://downloads.yoctoproject.org/releases/yocto/yocto-1.4/toolchain/i686/poky-eglibc-i686-arm-toolchain-gmae-1.4.sh and the newer http://downloads.yoctoproject.org/releases/yocto/yocto-1.4.1/toolchain/i686/poky-eglibc-i686-arm-toolchain-gmae-1.4.1.sh


In the meantime, are there still .tar.gz archives that I can just extract to save messing with broken scripts?

Thanks, 
Nick
Comment 1 Nick G 2013-07-16 09:14:52 UTC
OK, So i've just tested this on a slightly older F18 machine and it installed fine so *something* changed on F19.

Is there any triaging I can do to help this along?
Comment 2 Stefan Stanacar 2013-07-16 11:32:38 UTC
The problem it's in the script here:
executable_files=$($SUDO_EXEC find $native_sysroot -type f -perm +111)

-perm +mode is no longer supported according to F19's find's man page:


 -perm +mode
              This  is  no  longer  supported  (and  has been deprecated since
              2005).  Use -perm /mode instead.

F18's man page says:

  -perm +mode
              Deprecated,  old way of searching for files with any of the per‐
              mission bits in mode set.  You should use -perm  /mode  instead.
              Trying to use the `+' syntax with symbolic modes will yield sur‐
              prising results.  For example, `+u+x' is a valid  symbolic  mode
              (equivalent to +u,+x, i.e. 0111) and will therefore not be eval‐
              uated as -perm +mode but instead as  the  exact  mode  specifier
              -perm  mode  and so it matches files with exact permissions 0111
              instead of files with any execute bit set.  If  you  found  this
              paragraph  confusing,  you're  not alone - just use -perm /mode.
              This form of the -perm test  is  deprecated  because  the  POSIX
              specification  requires  the  interpretation of a leading `+' as
              being part of a symbolic mode, and so we switched to  using  `/'
              instead.


The new /mode seems to workson F18 and Ubuntu 12.04, I'll send a fix.
Comment 3 Laurentiu Palcu 2013-07-16 11:35:27 UTC
Assigning the bug to Stefan as he already has the fix.
Comment 4 Stefan Stanacar 2013-07-16 11:48:44 UTC
I've sent a fix on the ML.
With that applied I've built meta-toolchain on latest master and that installed just fine.
Comment 5 Stefan Stanacar 2013-07-19 09:17:33 UTC
Merged in master, commit 8db36429ef328b97340ee1d9fc2e697cfdd68bff