Skip to contentSkip to conversation

Buildman cookbook

U-Boot Wolfgang Denk 4 participants 5 messages Oct 27, 2014 – Oct 29, 2014

lore
Share & tools
lore
#0 lore raw

Hello,

it would be nice if we could add a buildman cookbok with hints how to get started quickly with the most frequent use cases (or add some quickstart section to the README).

Things that I would like to have better documented include:

- dependencies on external tools:

-> tools/buildman/buildman --list-tool-chains Traceback (most recent call last):
File "tools/buildman/buildman", line 10, in <module>
import multiprocessing
ImportError: No module named multiprocessing

It would be nice if we could list such dependencies.

Actually we should probably provide such dependencies for U-Boot in general - other tools have similar issues, like:

-> tools/genboardscfg.py
Traceback (most recent call last):
File "tools/genboardscfg.py", line 19, in <module>
import fnmatch
ImportError: No module named fnmatch

- It would be nice if we could include a sample ".buildman" file, and add documentation what the sections ("[toolchain]", "[toolchain-alias]") and entries ("root", "rest", "eldk", "arm", "aarch64") actually mena, which other options exist, and how the tool selects a specific tool chain from this list if multiple options are present.

- I work a lot with local branches, and regularly run into this:

-> tools/buildman/buildman -n -b tq-generic-board No section: 'make-flags'
Branch 'tq-generic-board' not found or has no upstream

Can we not avoid this? Or add a default to "master"?

The README recommends to use "git branch --set-upstream ...", but actually I don't want to do that - it is simply not needed. Furthermore, git complains;

-> git branch --set-upstream tq-generic-board master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to Branch tq-generic-board set up to track local branch master.

Thanks.

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Man braucht zwei Jahre, um sprechen zu lernen,  und f?nfzig Jahre, um
schweigen zu lernen.                               - Ernest Hemingway
#1 lore raw

Hi Wolfgang,

Quoted 5 lines · Wolfgang Denk

Hello,

it would be nice if we could add a buildman cookbok with hints how to get started quickly with the most frequent use cases (or add some quickstart section to the README).

There is a workflow section, setting up and 'how to run it'. At present it requires toolchain setup which is I think the main obstacle.

Quoted 5 lines

Things that I would like to have better documented include:

- dependencies on external tools:

Quoted 7 lines

-> tools/buildman/buildman --list-tool-chains Traceback (most recent call last):
File "tools/buildman/buildman", line 10, in <module>
import multiprocessing
ImportError: No module named multiprocessing

It would be nice if we could list such dependencies.

What version / distribution of Python are you using? We could certainly add a list, but for me everything is already installed :-(

Quoted 10 lines

Actually we should probably provide such dependencies for U-Boot in general - other tools have similar issues, like:

-> tools/genboardscfg.py
Traceback (most recent call last):
File "tools/genboardscfg.py", line 19, in <module>
import fnmatch
ImportError: No module named fnmatch

Quoted 6 lines

- It would be nice if we could include a sample ".buildman" file, and add documentation what the sections ("[toolchain]", "[toolchain-alias]") and entries ("root", "rest", "eldk", "arm", "aarch64") actually mena, which other options exist, and how the tool selects a specific tool chain from this list if multiple options are present.

I think we can expand that section.

Quoted 8 lines

- I work a lot with local branches, and regularly run into this:

-> tools/buildman/buildman -n -b tq-generic-board No section: 'make-flags'
Branch 'tq-generic-board' not found or has no upstream

Can we not avoid this? Or add a default to "master"?

I think we might be able to have a default. How did you create the local branch? I normally use:

git checkout -b my-branch upstream/master

and it does the right thing.

Quoted 8 lines

The README recommends to use "git branch --set-upstream ...", but actually I don't want to do that - it is simply not needed. Furthermore, git complains;

-> git branch --set-upstream tq-generic-board master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to Branch tq-generic-board set up to track local branch master.

Yes I notice that in recent versions. We probably need another round of tweaks although I mostly have my hands full for a few weeks.

Regards,
Simon

#2 lore raw

BTW is it possible to define toolchains per CPU and not per architecture? I did not find anything on this in the README.

Cheers
Dirk

#3 lore raw
In reply to Simon Glass

Dear Simon,

Quoted 8 lines · In message <CAPnjgZ0HbeoOkb9A-USBjMXh39qJFdmATf8W7DZb4Qj_jFYWmA@mail.gmail.com>…
Quoted 4 lines

it would be nice if we could add a buildman cookbok with hints how to get started quickly with the most frequent use cases (or add some quickstart section to the README).

There is a workflow section, setting up and 'how to run it'. At present it requires toolchain setup which is I think the main obstacle.

Well, it seems you already need to understand a lot of things to get it working from scratch.

Quoted 4 lines
Quoted 1 line

It would be nice if we could list such dependencies.

What version / distribution of Python are you using? We could certainly add a list, but for me everything is already installed :-(

This is Python2.7 as comes bundled with the Yocto / ELDK releases. Yes, I am aware that most (all?) "standard" distros will provide these moduules, but for the tool chain maker it would be very helpful to have a list of such required modules / dependencies.

Quoted 6 lines

I think we might be able to have a default. How did you create the local branch? I normally use:

git checkout -b my-branch upstream/master

and it does the right thing.

Usually: git checkout -b my-branch master

But many of these branches may have been created weeks or months ago, so probably using older versions of git, in case this matters.

Quoted 2 lines

Yes I notice that in recent versions. We probably need another round of tweaks although I mostly have my hands full for a few weeks.

No problem. This is not a critical thing, just a wish list. Xmas is approaching, you know :-)

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In an organization, each person rises to the level of his own  incom-
petency                                         - The Peter Principle
#4 lore raw
In reply to Simon Glass

Hi Simon,

Quoted 21 lines
Quoted 8 lines

- I work a lot with local branches, and regularly run into this:

-> tools/buildman/buildman -n -b tq-generic-board No section: 'make-flags'
Branch 'tq-generic-board' not found or has no upstream

Can we not avoid this? Or add a default to "master"?

I think we might be able to have a default. How did you create the local branch? I normally use:

git checkout -b my-branch upstream/master

and it does the right thing.

Quoted 5 lines

The README recommends to use "git branch --set-upstream ...", but actually I don't want to do that - it is simply not needed. Furthermore, git complains;

Quoted 7 lines
Quoted 3 lines

-> git branch --set-upstream tq-generic-board master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to Branch tq-generic-board set up to track local branch master.

Yes I notice that in recent versions. We probably need another round of tweaks although I mostly have my hands full for a few weeks.

it would be nice if one can specify branch ranges. For example:

tools/buildman/buildman -b master..my_feature
tools/buildman/buildman -b origin/master..master

Signature · 1 line
- Daniel