opentechinstitute / commotion-feed

Feed of Commotion components to be pulled in by OpenWRT
GNU Affero General Public License v3.0
5 stars 11 forks source link

Serval-DNA build script assumes build tree is a git repo #19

Closed areynold closed 10 years ago

areynold commented 10 years ago

This bug affects users who download a commotion-openwrt tar archive instead of cloning the commotion-openwrt git repo. Submit upstream patch if necessary.

(Was Bug 624 on code.commotionwireless.net)

This issue is in follow-up to #622 that was marked resolved yesterday.

The problem is that Commotion-OpenWRT build will fail with the following error if no level in serval-dna-batphone's path inside the build tree is a git repo:

make[4]: Entering directory /blah/blah/commotion-openwrt/openwrt/build_dir/target-mips_uClibc-0.9.33.2/serval-dna-batphone-release-0.91' LINK servald fatal: Not a git repository (or any of the parent directories): .git make[4]: *** [servald] Error 128 make[4]: Leaving directory/blah/blah/commotion-openwrt/openwrt/build_dir/target-mips_uClibc-0.9.33.2/serval-dna-batphone-release-0.91' make[3]: * [/blah/blah/commotion-openwrt/openwrt/build_dir/target-mips_uClibc-0.9.33.2/serval-dna-batphone-release-0.91/.built] Error 2 make[3]: Leaving directory /blah/blah/commotion-openwrt/openwrt/feeds/commotion/packages/serval-dna' make[2]: *** [package/feeds/commotion/serval-dna/compile] Error 2 make[2]: Leaving directory/blah/blah/commotion-openwrt/openwrt' make[1]: *\ [/blah/blah/commotion-openwrt/openwrt/staging_dir/target-mips_uClibc-0.9.33.2/stamp/.package_compile] Error 2 make[1]: Leaving directory `/blah/blah/commotion-openwrt/openwrt' make: * [world] Error 2

This error occurs because /blah/blah/commotion-openwrt/openwrt/build_dir/target-mips_uClibc-0.9.33.2/serval-dna-batphone-release-0.91/Makefile runs the script version_string.sh in the same directory to generate a string representing the current revision.

This works for instances where the Commoption-OpenWRT codebase is itself cloned from github, as version_string.sh will then return "DR2", but really this approach is only working by coincidence. version_string.sh is likely expecting to retrieve the current git revision for serval-dna, and not for an unrelated repo in a higher up directory.

A possible resolution is to add a patch commotion/packages/serval-dna/patches to alter version_string.sh so that it doesn't expect a git repo in its current directory.

aversario commented 10 years ago

Now even building from git clone won't finish. Some other problem (but similar) exists.

make log:

In file included from serval.h:116:0, from audiodevices.c:20: net.h:37:43: error: unknown type name 'size_t' net.h:38:45: error: unknown type name 'size_t' net.h:39:50: error: unknown type name 'size_t' net.h:40:54: error: unknown type name 'size_t' net.h:43:54: error: unknown type name 'size_t' In file included from serval.h:117:0, from audiodevices.c:20: os.h:59:31: error: unknown type name 'size_t' In file included from audiodevices.c:20:0: serval.h:164:42: error: unknown type name 'size_t' serval.h:318:17: error: field 'poll' has incomplete type serval.h:392:22: error: field 'address' has incomplete type serval.h:393:22: error: field 'broadcast_address' has incomplete type In file included from audiodevices.c:20:0: serval.h:431:44: error: unknown type name 'size_t' serval.h:433:34: error: unknown type name 'size_t' serval.h:447:80: error: unknown type name 'size_t' serval.h:448:47: error: unknown type name 'size_t' serval.h:530:91: error: unknown type name 'size_t' serval.h:555:3: error: unknown type name 'uint16_t' serval.h:589:3: error: unknown type name 'uint16_t' serval.h:713:36: error: unknown type name 'size_t' serval.h:781:36: error: unknown type name 'uint64_t' serval.h:782:36: error: unknown type name 'uint16_t' serval.h:783:36: error: unknown type name 'uint32_t' serval.h:784:1: error: unknown type name 'uint64_t' serval.h:785:1: error: unknown type name 'uint32_t' serval.h:786:1: error: unknown type name 'uint16_t' make[4]: * [audiodevices.o] Error 1 make[4]: Leaving directory `/home/linopurabnk/commotion-openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/serval-dna-batphone-release-0.90' make[3]: * [/home/linopurabnk/commotion-openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/serval-dna-batphone-release-0.90/.built] Error 2 make[3]: Leaving directory/home/linopurabnk/commotion-openwrt/openwrt/feeds/commotion/packages/serval-dna' make[2]: **\* [package/feeds/commotion/serval-dna/compile] Error 2 make[2]: Leaving directory/home/linopurabnk/commotion-openwrt/openwrt' make[1]: [/home/linopurabnk/commotion-openwrt/openwrt/staging_dir/target-mips_r2_uClibc-0.9.33.2/stamp/.package_compile] Error 2 make[1]: Leaving directory`/home/linopurabnk/commotion-openwrt/openwrt' make: \ [world] Error 2

gardners commented 10 years ago

I can build from the head of the development branch. Also, just made a trivial fix for building out of git repository. Puts "UNKNOWN-VERSION" as the version if there is no .git directory in the build directory (see commit 6ee774f10b4be1cee9cb576a345c50e24a7a4677).

Let me know if you still have problems. Paul.

areynold commented 10 years ago

@aversario: I suspect you're getting breakage from last week's repository refactoring. We moved and renamed several commotion-feed packages in preparation for the upcoming version 1.0 release. The new structure is more logical, but is not compatible with the old structure. The fix is simply to start with a clean commotion-openwrt build tree.

@gardners: That seems to fix it. I was able to build successfully from a github archive of commotion-openwrt.

dismantl commented 10 years ago

@gardners @areynold, since we are not pulling the development branch of serval-dna, does the fix still apply?

areynold commented 10 years ago

Huh. It does not still apply, but I also was not able to reproduce the original build error.

gardners commented 10 years ago

You probably do want to pull the development branch.

I hit the issue on Android build this morning as well, so it is possible that there is some new fangled bug in the version script when it is in a git directory. I will ask Andrew Bettison to take a look when he gets a chance.

Andrew B: The bug is in line 132 where if the git command fails there is no file descriptor 5 to redirect.

Paul.

On Tue, Oct 22, 2013 at 2:05 AM, dismantl notifications@github.com wrote:

@gardners https://github.com/gardners @areynoldhttps://github.com/areynold, since we are not pulling the development branch of serval-dna, does the fix still apply?

— Reply to this email directly or view it on GitHubhttps://github.com/opentechinstitute/commotion-feed/issues/19#issuecomment-26727888 .

dismantl commented 10 years ago

Since the development branch is constantly being commited to, I think it would be best if we stayed with a stable version. We are pulling batphone-0.9.1 right now.

gardners commented 10 years ago

Roger that. Perhaps make a branch that you can cherry-pick desired fixes onto? If you like we can setup a commotion branch on our repo and manage it from that side if that is suitable. We have a separate mesh extender branch for the same reasons.

Paul.

On Tue, Oct 22, 2013 at 3:53 AM, dismantl notifications@github.com wrote:

Since the development branch is constantly being commited to, I think it would be best if we stayed with a stable version. We are pulling batphone-0.9.1 right now.

— Reply to this email directly or view it on GitHubhttps://github.com/opentechinstitute/commotion-feed/issues/19#issuecomment-26737422 .

dismantl commented 10 years ago

If you think that's necessary we could do that. But we can also include one-off patches in our OpenWRT feed repo.

gardners commented 10 years ago

Howdy,

I think it makes more sense to have your branch on github where it is also easier for you to look at what commits you want to pull over as time goes on, rather than maintaining a separate set of patches that are in some sense offline.

Tell me the commit id you are using, and I will make a branch pointing to that for you.

Paul.

On Tue, Oct 22, 2013 at 4:59 AM, dismantl notifications@github.com wrote:

If you think that's necessary we could do that. But we can also include one-off patches in our OpenWRT feed repo.

— Reply to this email directly or view it on GitHubhttps://github.com/opentechinstitute/commotion-feed/issues/19#issuecomment-26743208 .

dismantl commented 10 years ago

we're pulling from the head of batphone-release-0.91. What patches/fixes do we currently need?

gardners commented 10 years ago

Hello,

Try the commotion-wireless branch and let me know if you hit any snags.

Paul.

On Tue, Oct 22, 2013 at 6:23 AM, dismantl notifications@github.com wrote:

we're pulling from the head of batphone-release-0.91. What patches/fixes do we currently need?

— Reply to this email directly or view it on GitHubhttps://github.com/opentechinstitute/commotion-feed/issues/19#issuecomment-26750257 .

dismantl commented 10 years ago

thanks, Paul!

aversario commented 10 years ago

Guys, I might be dumm, but today I've tried to build master from git again and it still stops at serval-dna-batphone-release-0.90

A bit longer make log -> http://pastebin.com/zGqDMuwH

dismantl commented 10 years ago

Thanks for the update, @aversario. I built a completely fresh version of commotion-openwrt yesterday, and didn't have any such errors...bizarre. Can you try cloning a completely fresh version of commotion-openwrt and building? I wonder if it has something to do with a old borked build-tree...

gardners commented 10 years ago

I believe the openwrt scripts won't refetch a branch if the branch name has not changed. You need to clear out the cached downloaded copy of the serval source, and then all should be well. This is a really annoying behaviour sometimes.

Paul.

On Thu, Oct 24, 2013 at 3:52 AM, dismantl notifications@github.com wrote:

Thanks for the update, @aversario https://github.com/aversario. I built a completely fresh version of commotion-openwrt yesterday, and didn't have any such errors...bizarre. Can you try cloning a completely fresh version of commotion-openwrt and building? I wonder if it has something to do with a old borked build-tree...

— Reply to this email directly or view it on GitHubhttps://github.com/opentechinstitute/commotion-feed/issues/19#issuecomment-26924717 .

jheretic commented 10 years ago

Closing this issue in favor of https://github.com/opentechinstitute/commotion-feed/issues/26