phase1: handle source directory with libc suffix
authorJo-Philipp Wich <jo@mein.io>
Wed, 20 Jul 2016 13:01:12 +0000 (15:01 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 20 Jul 2016 13:01:15 +0000 (15:01 +0200)
The ARC architectures use "generic-uClibc" instead of the expected "generic"
as subtarget directory name, leading to errors in the rsync step because the
expected directory cannot be found.

Extract the libc flavor from the generated .config and decide whether to use
a directory suffix based on the value obtained in order to let ARC uploads
complete successfully.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
phase1/master.cfg

index 5e51466b46a44808ed5f33169488bf35c9131573..e916aad7f1008bd051813b698757c8dfcf2c4247 100644 (file)
@@ -312,7 +312,7 @@ EOT''' %(ts[0], ts[0], ts[1]) ))
                command = ["make", "defconfig"]
        ))
 
-       # check arch / libc
+       # check arch
        factory.addStep(ShellCommand(
                name = "checkarch",
                description = "Checking architecture",
@@ -323,15 +323,12 @@ EOT''' %(ts[0], ts[0], ts[1]) ))
                haltOnFailure = True
        ))
 
-       factory.addStep(ShellCommand(
-               name = "checklibc",
-               description = "Checking libc flavor",
-               command = ["grep", "-sq", 'CONFIG_LIBC="musl"', ".config"],
-               logEnviron = False,
-               want_stdout = False,
-               want_stderr = False,
-               haltOnFailure = True
-       ))
+       # find libc suffix
+       factory.addStep(SetProperty(
+               name = "libc",
+               property = "libc",
+               description = "Finding libc suffix",
+               command = ["sed", "-ne", '/^CONFIG_LIBC=/ { s!^CONFIG_LIBC="\\(.*\\)"!\\1!; s!^musl$!!; s!.\\+!-&!p }', ".config"]))
 
        # install build key
        factory.addStep(FileDownload(mastersrc=home_dir+'/key-build', slavedest="key-build", mode=0600))
@@ -438,7 +435,7 @@ EOT''' %(ts[0], ts[0], ts[1]) ))
        factory.addStep(ShellCommand(
                name = "targetupload",
                description = "Uploading target files",
-               command=["rsync", "--delete", "--delay-updates", "--partial-dir=.~tmp~%s~%s" %(ts[0], ts[1]), "-avz", "bin/targets/%s/%s/" %(ts[0], ts[1]), "%s/targets/%s/%s/" %(rsync_bin_url, ts[0], ts[1])],
+               command=["rsync", "--delete", "--delay-updates", "--partial-dir=.~tmp~%s~%s" %(ts[0], ts[1]), "-avz", "bin/targets/%s/%s%s/" %(ts[0], ts[1], WithProperties("%(libc)")), "%s/targets/%s/%s/" %(rsync_bin_url, ts[0], ts[1])],
                env={'RSYNC_PASSWORD': rsync_bin_key},
                haltOnFailure = True,
                logEnviron = False