Where can I found a place (in code) where OpenWrt downloads and untars packages sources to build?

I've got a problem building an OpenWrt 14.07 using a docker within a Jenkins: (I run docker as a root user)

...
make[3] -C tools/quilt install
make[2] toolchain/install
make[3] -C toolchain/gdb prepare
make[3] -C toolchain/binutils prepare
/bin/tar: gdb-linaro-7.6-2013.05/symlink-tree: Cannot change ownership to uid 1000001, gid 100: Invalid argument
...
/bin/tar: gdb-linaro-7.6-2013.05/COPYING: Cannot change ownership to uid 1000001, gid 100: Invalid argument
make[3] -C toolchain/gcc/minimal prepare
/bin/tar: gdb-linaro-7.6-2013.05/opcodes/i386-tbl.h: Cannot change ownership to uid 1000001, gid 100: Invalid argument
...
/bin/tar: Exiting with failure status due to previous errors
make[3]: *** [/home/jenkins/workspace/uild_openwrt_g150_wrt_build-6IO3AUSGWTB6G26V6X5O6TNX5HFPB5NPT4YOJGWNZMKTAMSAEF4A/deps/openwrt_platform/G150/openwrt-3.10.14/build_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/gdb-linaro-7.6-2013.05/.prepared] Error 2
make[2]: *** [toolchain/gdb/prepare] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/home/jenkins/workspace/uild_openwrt_g150_wrt_build-6IO3AUSGWTB6G26V6X5O6TNX5HFPB5NPT4YOJGWNZMKTAMSAEF4A/deps/openwrt_platform/G150/openwrt-3.10.14/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/stamp/.toolchain_install] Error 2
...

But I'm able to build this OpenWrt locally without any problem (under root and normal users).

As I read, even running under a root, tar utility may fail doing its work: https://www.krenger.ch/blog/linux-tar-cannot-change-ownership-to-permission-denied/ .

That article states that we can use a --no-same-owner flag with the tar utility to prevent such a problem, so the question is: where can I find/change flags passed to the tar which is used to untar sources during an OpenWrt build? Is it a correct way at all?

It's interesting that I'm able to build an OpenWrt 18.06.1 on the same docker in the Jenkins.

QSDK, an older version probably?

If so, it used bits and pieces of OpenWrt, but is not OpenWrt. It cannot be supported here as it is proprietary software that isn’t available except under NDA. Contact your QCA support.

1 Like

Typical reason is that the old source code is not compatible with tools in today's Linux. Use Ubuntu 14.04 or something similar, which is from the same period (year 2014) as the source code.

1 Like

I wrapped a docker tar utility by sh script which passes this additional option --no-same-owner to an original tar, so it works :slight_smile:

what do you mean?

Yes, the OpenWrt I have I've got from a hardware manufacture. But how did you get it? Does it mean that OpenWrt 14.07 is used only as part of a proprietary solution?

Very often, manufacturers take OpenWrt, which is open source and mainly under GPL, and modify it for their needs, often to the point that it is unrecognizable. Perhaps the most common case is Qualcom / Atheros that does this with their QSDK, replacing at least kernels, drivers, and who knows what else, as it is proprietary and only available to their licensees. You can't "get it" as an individual. Many other device manufacturers do the same, providing firmware for their devices that is based on some version of OpenWrt, but is very different.

OpenWRT 14.07 is VERY old. As in end-of-lifed with no maintenance for many years.

Qualcomm's QSDK started with 15.something as a starting point (They may have had a 14.x based branch? I don't know in that case.) - but Qualcomm made EXTREMELY heavy modifications to it including proprietary/closed-source addons. As a result, while it's "derived from OpenWRT", because it isn't ACTUALLY OpenWRT but instead is something with unknown modifications made, the OpenWRT team is not going to support it.

OpenWRT 14.07 is/was not proprietary. However while whatever you have is something derived from OpenWRT, because the manufacturer made modifications, it no longer actually IS OpenWRT.

Basically - unless it is source code that came from the official OpenWRT repos, it isn't actually OpenWRT, it is an unofficial derivative.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.