summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFiles
2012-07-28Rework installation of dev, dbg, doc, and locale packagesPaul Eggleton2
Use a similar mechanism that was previously used to install locales at rootfs generation time to install other "complementary" packages (e.g. *-dev packages) - i.e. install all of the explicitly requested packages and their dependencies, then get a list of the packages that were installed, and use that list to install the complementary packages. This has been implemented by using a list of globs which should make it easier to extend in future. The previous locale package installation code assumed that the locale packages did not have any dependencies that were not already installed; now that we are installing non-locale packages this is no longer correct. In practice only the rpm backend actually made use of this assumption, so it needed to be changed to call into the existing package backend code to do the complementary package installation rather than calling rpm directly. This fixes the doc-pkgs IMAGE_FEATURES feature to work correctly, and also ensures that all dev/dbg packages get installed for dev-pkgs/dbg-pkgs respectively even if the dependency chains between those packages was not ensuring that already. The code has also been adapted to work correctly with the new SDK-from-image functionality. To that end, an SDKIMAGE_FEATURES variable has been added to allow specifying what extra image features should go into the SDK (extra, because by virtue of installing all of the packages in the image into the target part of the SDK, we already include all of IMAGE_FEATURES) with a default value of "dev-pkgs dbg-pkgs". Fixes [YOCTO #2614]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-07-18scripts/bitbake: Check the git-native version and build it if necessaryRichard Purdie1
We require git version 1.7.5 or later for the git remote --mirror=xxx syntax. If we have an older version of git, this patch ensure we build git-replacement-native. We add an alternative PROVIDES in the same way as tar-native to allow this script to trigger the build whilst still allowing git-native in ASSUME_PROVIDED. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-07-16runqemu: Fix running qemu when build without glKhem Raj2
When gl is disabled in PACKAGECONFIG then we dont need to check for supporting libs to be present before running qemu. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-07-16runqemu/mips: adjust runqemu script to support mipsel machineDennis Lan2
Signed-off-by: Dennis Lan <dennis.yxun@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-07-09runqemu: fix support for ext4 rootfs imagesScott Garman1
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2012-07-09runqemu: fix usage() help for MACHINE settingScott Garman1
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2012-07-02runqemu: fix fedora pkg names when run failsCristian Ciupitu1
runqemu can fail to with the following message: You need libGL.so and libGLU.so to exist in your library path to run the QEMU emulator. Fedora package names are: mesa-libGL mesa-libGLU. The libGL.so and libGLU.so files are provided by the mesa-libGL-devel and mesa-libGLU-devel Fedora packages (yum provides '*/libGL*.so'). Signed-off-by: Cristian Ciupitu <cristian.ciupitu@yahoo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25runqemu-internal: qemu fails to run on ext2 imageKang Kai1
[Yocto 2579] When set DISTRO to poky-tiny, only ext2 image is created. But runqemu-internal doesn't set QEMUOPTIONS for ext2 image that make qemu fail to boot. Fix it for qemux86 arch since poky-tiny can only build for qemux86 now. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-06-18cleanup-workdir: update help textKang Kai1
Update the help text to tell user that the files and dirs under WORKDIR which are not created by Yocto will be deleted. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-06-18cleanup-workdir: only deal dirs related to current archKang Kai1
Some users may build for different archs under same workdir, so they don't want to clean the dirs not related to current arch. Run command 'bitbake -e' with selected packages to get the dirs related to current arch then clean them. Update the way to get the WORKDIR by parsing the IMAGE_ROOTFS by the way. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-06-18cleanup-workdir: replace commands with subprocessKang Kai1
Use modules subprocess to run command instead of module commands. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-06-18cleanup-workdir: update the way to check obsolete dirsKang Kai1
Update the way to check obsolete directories. According to package and its version construct a list of all packages' current build directory. If any directory under $WORKDIR/*/ is not in the list will be removed. At same time, all the files(vs. directory) under $WORKDIR and $WORKDIR/*/ will be removed because they are not created by poky. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-06-15pybootchartgui: Fix the filename and add a default formatRobert Yang1
* Fix teh output filename to make it easy to use * Add a default output format (svg) * Fix the usage message * Fix the version to v1.0.0 Currently, the help messages are: $ ./pybootchartgui.py --help Usage: pybootchartgui.py [options] /path/to/tmp/buildstats/<recipe-machine>/<BUILDNAME>/ Options: --version show program's version number and exit -h, --help show this help message and exit -i, --interactive start in active mode -f FORMAT, --format=FORMAT image format: svg, pdf, png, [default: svg] -o PATH, --output=PATH output path (file or directory) where charts are stored -s NUM, --split=NUM split the output chart into <NUM> charts, only works with "-o PATH" -n, --no-prune do not prune the process tree -q, --quiet suppress informational messages --very-quiet suppress all messages except errors --verbose print all messages [YOCTO #2403] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-06-15pybootchartgui: split the output chart into multiple onesRobert Yang2
Split the output chart into multiple ones to make it more readable, it only works with "-o path", which means that it doesn't work if the user doesn't want to save the chart to the disk. For example: $ ./pybootchartgui.py /path/to/tmp/buildstats/core-image-sato-qemux86/201205301810/ -f svg -s 5 -o /tmp/ bootchart written to /tmp/bootchart_1.svg bootchart written to /tmp/bootchart_2.svg bootchart written to /tmp/bootchart_3.svg bootchart written to /tmp/bootchart_4.svg bootchart written to /tmp/bootchart_5.svg [YOCTO #2403] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-06-15pybootchartgui: make the build profiling in picturesRobert Yang4
The original patch is from Richard, I rebased it to the up-to-date upstream code, here are the original messages from him: We have just merged Beth's initial buildstats logging work. I was sitting wondering how to actually evaluate the numbers as I wanted to know "where are we spending the time?". It occurred to me that I wanted a graph very similar to that generated by bootchart. I looked around and found pyboootchartgui and then hacked it around a bit and coerced it to start producing charts like: http://tim.rpsys.net/bootchart.png which is the initial "pseudo-native" part of the build. This was simple enough to test with. I then tried graphing a poky-image-sato. To get a graph I could actually read, I stripped out any task taking less than 8 seconds and scaled the x axis from 25 units per second to one unit per second. The result was: http://tim.rpsys.net/bootchart2.png (warning this is a 2.7MB png) I also added in a little bit of colour coding for the second chart. Interestingly it looks like there is more yellow than green meaning configure is a bigger drain on the build time not that its unexpected :/. I quite enjoyed playing with this and on a serious note, the gradient of the task graph makes me a little suspicious of whether the overhead of launching tasks in bitbake itself is having some effect on build time. Certainly on the first graph there are some interesting latencies showing up. Anyhow, I think this is the first time bitbake's task execution has been visualised and there are some interesting things we can learn from it. I'm hoping this is a start of a much more detailed understanding of the build process with respect to performance. [YOCTO #2403] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-06-15pybootchartgui: add the original codeRobert Yang14
This is from: http://pybootchartgui.googlecode.com/files/pybootchartgui-r124.tar.gz Will modify it to make the build profiling in pictures. Remove the examples since they would not work any more, and they cost much disk space. [YOCTO #2403] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-06-08runqemu-ifup: enable arp proxyingScott Garman1
This allows core-image-sato to access the WAN. Thanks to Dexuan Cui for proposing this fix. Fixes [YOCTO #2329] Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05generate-manifest-2.7.py: replace os.popen with os.unlinkRobert Yang1
The os.popen function would fail (more or less) silently if the executed program cannot be found, and here what we need is os.system not os.popen since it doesn't use the return value, use os.unlink() and ignore exceptions from it would be better as Chris suggested. [YOCTO #2454] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-05-30scripts/cp-noerror: Add a special copy function to fix autotools issuesRichard Purdie1
Currently we copy the aclocal directory to the build so that autotools doesn't see .m4 files disappear when its processing them. This can happen if for example, package X is being rebuilt at the same time as Y and it gets uninstalled from sstate (assuming there are no dependencies between X and Y). This code making the copy was added to avoid races but introduces a race of its own, namely that the files can disappear during the copy. This patch adds a cp-noerror script which silently ignores such errors and gives the behaviour we need in this case. It hence fixes issues which crop up for users and the autobuilder occasionally. [YOCTO #2485] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30scripts/buildhistory-diff: add GitPython version checkPaul Eggleton1
Display an error if the user does not have at least version 0.3.1 of GitPython installed. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30scripts: replace os.system with subprocess.callRobert Yang2
Replace os.system with subprocess.call since the older function would fail (more or less) silently if the executed program cannot be found More info: http://docs.python.org/library/subprocess.html#subprocess-replacements [YOCTO #2454] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20runqemu: Add qemush4 and qemumips64 knowledgeKhem Raj2
New machines need to be added and they also have different kernel commandlines Signed-off-by: Khem Raj <raj.khem@gmail.com>
2012-05-18test-reexec: Add script to address issues when task re-executionJiajun Xu1
The script is used to address build issues when tasks of different recipes are re-executed. The script goes through all available recipes and their tasks. The test results are saved in ./reexeclogs. Force build logs are saved with prefix "force". Build failure logs are saved with prefix "failed". [YOCTO #2123] Signed-off-by: Jiajun Xu <jiajun.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15runqemu: replace bashism with working shell idiomPeter Seebach1
The =~ operator is not one of my favorites, not just due to portability issues, but because it's not well known, and a lot of people might not expect a regex operator. The canonical shell idiom for this is to use case with alternation and wildcards. As a side note, if you are matching anything containing core-image-sato, you don't need to also check for core-image-sato-sdk. Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-12oe-buildenv-internal: Fix BITBAKEDIR changes to work with existing ↵Richard Purdie1
autobuilder scritpts The BITBAKEDIR change does not work well when the script is sourced from another script since $2 may be unrelated. This change adds the logic onto the BDIR conditional and which more external scripts would set, hence avoiding the problem. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11Add option to oe-buildenv-internal script to change bitbake location.Philip Balister1
Having bitbake inside the oe-core is annoying to some people. This commit adds a second option to the oe-init-build-env script. Run like this: . ./oe-init-build-env ../build ../bitbake for example. Without the second option, the old behavior is preserved. Signed-off-by: Philip Balister <philip@balister.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06runqemu: be sh neutralBernhard Reutner-Fischer2
Now runs with dash and busybox' ash as well as with bash Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06runqemu: minor tweaksBernhard Reutner-Fischer1
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06runqemu: add and use error()Bernhard Reutner-Fischer1
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06runqemu: simplify process_filename()Bernhard Reutner-Fischer1
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06runqemu: use modern, single-char name of test(1)Bernhard Reutner-Fischer1
I do not have "[[", just "[". Be gentle to users of legacy-free setups, also by using '=' instead of the double notation. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06runqemu: Use OE_TMPDIRBernhard Reutner-Fischer1
The error message erroneously talked about TMPDIR. Just use OE_TMPDIR everywhere to make the name of the variable obvious. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06terminal.bbclass, oe-buildenv-internal: pass SCREENDIR environment variableJason Wessel1
Some versions of the screen utility provided from the host OS vendor write the socket directory to $HOME/.screen. When using a shared home directory across many servers, one sets the SCREENDIR environment variable to avoid collisions in the shared home directory. This results in problems launching a devshell where it is not entirely obvious what happened because the SCREENDIR environment variable got stripped from the environment prior to setting up the screen in detached mode. Example: % bitbake -c devshell busybox # ...Please connect in another terminal with "screen -r devshell" % screen -r devshell There is no screen to be resumed matching devshell. The temporary work around was to do something like: sh -c "unset SCREENDIR; screen -r devshell" This patch adds SCREENDIR to the white list to ensure screen works properly on systems where a developer needs to use the SCREENDIR with shared home directories. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03runqemu: Fix TAP='TUNSETGROUP: Invalid argument' by falling back to tunctl -uJason Wessel2
By default the runqemu script tries to set the group permissions on any tap device it creates. The TUNSETGROUP ioctl is not implemented on some popular host enterprise linux distributions. Internally the script will exit as follows: ++ /opt/qemux86/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tunctl -b -g 100 + TAP='TUNSETGROUP: Invalid argument' + STATUS=1 + '[' 1 -ne 0 ']' + echo 'tunctl failed:' tunctl failed: + echo TUNSETGROUP: Invalid argument This patch implements a fallback to using the userid as the owner of the tap device which is supported by all 2.6 kernels, the default remains to try and use the groupid first. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03create-recipe: base on autospectacle.pl to create recipe fileKang Kai1
[Yocto 1656] create-recipe is based on original autospectacle.pl from project Meego. Add feature to create a recipe .bb file. It requires a parameter to be told where to download source package, then download and parse. Create recipe file according to parse results. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-05-03autospectacle.pl: pull it from meego as a baseKang Kai1
This autospectacle.pl is from meego project http://meego.gitorious.org/meego-developer-tools/autospectacle And take its latest commit f462b759c6f569f35283d0885c97ae53b010bb03 as base of Yocto 1656: Recipe creation/import script. Signed-off-by: Kang Kai <kai.kang@windriver.com>
2012-04-27package_rpm: Only rebuild the indexes if the packages have changedRichard Purdie1
This change farms the solvedb creation out to a separate script which handles creation of the index, only if mtime of any of the packages has changed. For a core-image-minimal set of rpm's this saves ~20s of a 45s rootfs build. For core-image-sato it saves 1 minute of a 5 minute rootfs build. The more packages in the system, the bigger the saving will be. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-25runqemu-ifup: enable ip masquerading for QEMU NAT addressesScott Garman1
Fix the IP masquerading settings so that networked QEMU sessions can reach external networks. This is a partial fix for [YOCTO #2329]. Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23scripts/hob: disable sanity checks when launchingJoshua Lock1
This enables us to use the GUI to change any settings which might cause sanity checks to fail, such as the proxy configuration. Signed-off-by: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11python: multilib header support.Lianhao Lu1
Add intercept multilib header for pyconfig.h in python. This is part of the bug fixing [YOCTO #2216]. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10create-pull-request: Assume remote branch from local branchDarren Hart1
It is common to use the same remote branch name as the local branch name. In this case, it would be nice not to have to specify the remote branch name. Make the -b argument optional and assume the remote branch is the same name as the local branch. Print a NOTE to this effect so as not to catch the user by surprise: NOTE: Assuming remote branch 'notthere', use -b to override. If the remote branch doesn't exist, a WARNING is displayed just as if the user had used -b to specify a non-existent branch: WARNING: Branch 'notthere' was not found on the contrib git tree. Please check your remote and branch parameter before sending. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-04-06runqemu-internal: Add console=tty for qemuppc and NFSSaul Wold1
Adding this to the nfs to match the ext3 kernelcmdline, this re-enables keyboard input on the qemuppc. [YOCTO #2058] Thanks to Yi Zhao <yi.zhao@windriver.com> for the initial patch suggestion Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-04-02qemugl: Fix GL apps failure on Ubuntu 11 host with nVidia GLX driverZhai Edwin1
Previous version of nVidia GLX driver in Ubuntu 10 cause qemu segfault, so we fall back to Mesa GLX driver if detecting nVidia driver installed. From Ubuntu 11, nVidia GLX driver works well, while previous work around cause GL apps failure. So this work around is limited in Ubuntu 10 only, and will be removed in future. [YOCTO #1886] got fixed. Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31scripts/bitbake: add/fix some commentsPaul Eggleton1
Add some comments explaining what this script does, fix one grammatical error in a comment and make the tar-replacement-native comment give the full reason why it is needed. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-03-31scripts/bitbake: allow switching between build directoriesPaul Eggleton1
The recent addition of the check to ensure the user was in their build directory disabled the ability to switch between build directories without re-running the build environment setup script. We can rely upon checking for conf/bblayers.conf instead, so use this check. This does allow BUILDDIR (which is normally set by the environment script) to be unset; however if it is set then it is assumed to be the correct build directory and will be used in the error message that is shown when we can't find conf/bblayers.conf. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-03-31scripts/bitbake: try harder to check if pseudo existsPaul Eggleton1
If pseudodone doesn't exist, we can get STAGING_BINDIR_NATIVE by calling bitbake -e and use that as the path to check for pseudo before we give up and try to build it explicitly first. This is useful for people who share TMPDIR between multiple build directories. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-03-30sstate-cache-management.sh: fixes and enhancementRobert Yang1
Fix a few problems and enhance its functions, it shoud be more useful than before. * Search in meta and meta-* for archs, and grep AVAILTUNES for archs, (only search meta, and grep DEFAULTTUNE before), add the host arch. and also can search in extra layers with --extra-layer. * Reduce the analyzing time when remove duplicated files. It would cost more than 10 minutes to analyze 11,000 files before, now only needs about 50 seconds. * Check the access time rather than create time. * Need the user's confirm before really remove the file, or use --yes to assume yes. * Add --stamps-dir to keep sstate files which are used by the build directory, and remove others this can make the sstate cache dir clean, it is faster and should be useful than the --remove-duplicated. * Add --verbose to explain what is being done. * Add "-d" which is short for --remove-duplicated [YOCTO #2198] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29runqemu: set console=ttyS0 when running with nographic optionScott Garman1
When passing the nograhic option to the runqemu script, set console=ttyS0 in the kernel options so the user can view the kernel boot messages. This fixes [YOCTO #1475] Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-28scripts/bitbake: Update to help rebuild pseudo-nativeMark Hatle1
Attempt to detect when pseudo-native has been updated. If it has been updated, or if the user is attempting an operation with pseudo-native in the name, force a build of pseudo-native, prior to running the main build. Note: This causes a build, then clean in the case of bitbake -c cleansstate pseudo-native Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-26python: fix packaging dependencies on minimal systemsGary Thomas1
If you install the top-level python package only on a minimal system which has no other python packages installed then python is not functional at all. Without any extra packages installed this error is seen: # python Traceback (most recent call last): File "/usr/lib/python2.7/site.py", line 64, in <module> import traceback ImportError: No module named traceback Installing python-lang only partly fixes the problem as this error still exists: # python Traceback (most recent call last): File "/usr/lib/python2.7/site.py", line 569, in <module> main() File "/usr/lib/python2.7/site.py", line 551, in main known_paths = addusersitepackages(known_paths) File "/usr/lib/python2.7/site.py", line 278, in addusersitepackages user_site = getusersitepackages() File "/usr/lib/python2.7/site.py", line 253, in getusersitepackages user_base = getuserbase() # this will also set USER_BASE File "/usr/lib/python2.7/site.py", line 243, in getuserbase USER_BASE = get_config_var('userbase') File "/usr/lib/python2.7/sysconfig.py", line 520, in get_config_var return get_config_vars().get(name) File "/usr/lib/python2.7/sysconfig.py", line 400, in get_config_vars import re ImportError: No module named re Signed-off-by: Gary Thomas <gary@mlbassoc.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>