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>
command = ["make", "defconfig"]
))
command = ["make", "defconfig"]
))
factory.addStep(ShellCommand(
name = "checkarch",
description = "Checking architecture",
factory.addStep(ShellCommand(
name = "checkarch",
description = "Checking architecture",
- 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))
# install build key
factory.addStep(FileDownload(mastersrc=home_dir+'/key-build', slavedest="key-build", mode=0600))
factory.addStep(ShellCommand(
name = "targetupload",
description = "Uploading target files",
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
env={'RSYNC_PASSWORD': rsync_bin_key},
haltOnFailure = True,
logEnviron = False