Compare commits

...

2785 Commits

Author SHA1 Message Date
Wolfgang Denk
0d3591db9c x11-common: Fix unusable serial console
The serial console port is basicly unusable in images containing X.
Login works fine, but at the shell prompt only one out of N input
characters (N usually between 2 and 10) gets through to the shell.

dbus-launch (running as "dbus-launch --sh-syntax --exit-with-session")
is also reading from /dev/console and "eating" the missing characters.

As soon as I stop the Xserver ("sh /etc/init.d/xserver-nodm stop")
the serial console starts wroking fine (because dbus-launch is not
running any more).

This patch addresses the problem.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-18 16:41:25 +00:00
J. Aaron Gamble
753f79806b tslib: 32bit big endian support
Fixes [BUGID #394]

patch added from: https://launchpad.net/ubuntu/+source/tslib/1.0-7

Enables wacom tablet/touchscreen support on qemumips

Signed-off-by: J. Aaron Gamble <john.gamble@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2011-02-22 14:50:41 -08:00
Bruce Ashfield
50ece536ae mpc8315e-rdb: set UBOOT_ENTRYPOINT
Fixes [BUGID #685]

Although not used if the in kernel uImage is booted, it is
a good idea to set the UBOOT_ENTRYPOINT just as the other
uImage based boards do.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2011-02-22 14:50:41 -08:00
Dongxiao Xu
fdcda41c5e connman-gnome: Remove the applet and properties desktop icons
Remove the applet and properties desktop icons, since the
connman-properties program should be invoked by tool bar,
while connman-applet is launched by autostart.

This fixes [BUGID #683] for laverne build, which is similar as
Bug 506.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2011-02-22 14:11:33 -08:00
Saul Wold
6ceab2c76d formafactor: Fix qemumips machconfig to reflect update kernel fixes [BUGID #682]
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2011-02-10 11:50:20 -08:00
Tom Zanussi
0b8fcb95dd init-live.sh: add 'coldplug' udev trigger
Fixes [BUGID #693]

The init-live.sh script starts udevd in init-live.sh:early_setup(),
but doesn't account for the possibility that the root device may have
already been registered by the kernel before udevd starts up.

If the device is detected after udevd starts up, everything's fine -
udevd gets the 'add' uevent for the device, the root image shows up at
e.g. /media/sda/rootfs.img, and the boot continues.

If however the device is detected before udevd starts up, udevd misses
the 'add' uevent and the root image never shows up, causing it to stay
in the 'waiting for removable media' loop forever.

The 'udevadm trigger' command is meant to be used to avoid this
situation, but init-live.sh doesn't use it.  Furthermore, since the
default was changed in udev 152 from 'add' to 'change', the command
needs to explicity name 'add' as the action.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2011-02-09 14:14:01 -06:00
Beth Flanagan
45526f5ecf Set release to correct version: poky.conf
Correcting release version in poky.conf

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-04 11:44:57 -08:00
Beth Flanagan
d1fd60f69d Setting Yocto rev number to 4.1: poky.conf
Found just prior to mirror push. Modified poky.conf to use the correct
version.

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-03 17:43:11 -08:00
Beth Flanagan
7fa2b1c154 Laverne 4.1 release: NOTES and CHANGELOG
Name: Laverne
Version: 4.0.1
Built from Revision: fd7a07b3a2
Build Date: Jan 26 2011
Builder: autobuilder.pokylinux.org

Commit of final release notes and changelog for Laverne 4.1

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-03 13:24:07 -08:00
Scott Garman
fd7a07b3a2 poky-extract-sdk: allow relative paths for extract-dir
psuedo needs a full path to its pid file, so convert
relative extract-dir paths to full ones.

The symptom of this bug is receiving the following error:

pseudo: Couldn't open relative/path/to/var/pseudo/pseudo.pid: No such file or directory

This fixes [BUGID #670]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2011-01-25 09:31:49 +00:00
Beth Flanagan
01bc47f4d4 quilt: Fixed configure test for patch --version.
OpenSuSE 11.3 uses GNU patch 2.6.1.81-5b68 which breaks quilt's
configure test for patch version.

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-01-14 12:08:54 +00:00
Richard Purdie
12a3d41a24 image.bbclass: Use the dedicated BB_WORKERCONTEXT, not bitbake internals to detect context
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-14 12:08:45 +00:00
Richard Purdie
ce4f835679 scripts/poky-qemu: Improve tmp layout assumption
If someone has changed TMPDIR in local.conf to a non-standard location, the
poky-qemu script currently doesn't handle this and assumes if BUILDDIR is set,
$BUILDDIR/tmp will exist.

Its simple to check if this exists and if not, to ask bitbake where the
directory is so this patch changes the code to do that.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-14 12:07:46 +00:00
Scott Garman
54f08d23cd Make poky-qemu and related scripts work with arbitrary SDK locations
* No longer assume SDK toolchains are installed in /opt/poky
* [BUGFIX #568] where specifying paths to both the kernel and fs
  image caused an error due to POKY_NATIVE_SYSROOT never being
  set, triggering failure of poky-qemu-ifup/ifdown
* Cosmetic improvements to usage() functions by using basename

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2011-01-14 12:07:29 +00:00
Scott Garman
8a3d0f375c poky-qemu: Fix issues when running Yocto 0.9 release images
This fixes two bugs with poky-qemu when it is run from a
standalone meta-toolchain setup.

[BUGFIX #535] and [BUGFIX #536]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2011-01-14 12:07:11 +00:00
Paul Eggleton
0c2003f134 openssl: restore -Wall flag
The -Wall flag was unintentionally removed from the end of the CFLAG var in
089612794d by me. This patch puts it back in.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-16 15:44:15 +00:00
Joshua Lock
6e71b0a012 web-webkit: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 14:31:21 +00:00
Joshua Lock
4b5c1c0530 contacts: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 14:10:46 +00:00
Joshua Lock
171e709ae6 dates: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 14:10:46 +00:00
Joshua Lock
a8b8557e4c owl-video-widget: fix Makefile for super strict make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 12:35:41 +00:00
Joshua Lock
399e6b8008 libowl-av: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 18:58:21 +00:00
Joshua Lock
290280b332 gst-plugins: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 17:56:53 +00:00
Joshua Lock
9e11fbf904 gstreamer: fix to comply with make 3.82's stricter parser
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 15:39:42 +00:00
Joshua Lock
0f8244faba linux-libc-headers: fix for Make 3.82
Fix the kernel Makefile for use with Make 3.82 by splitting mixed implicit and
normal rules into separate rules.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 12:49:13 +00:00
Joshua Lock
0cc23a8656 busybox: additional fixes for Make 3.82
There where still some mixed implicit and normal rules in the Busybox Makefile,
Update our existing make-382.patch to split these into separate rules.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 12:23:24 +00:00
Joshua Lock
30c39cc97c procps: fix for build against make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-10 17:32:33 +00:00
Joshua Lock
261ca88596 busybox: import upstream patch for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-10 16:52:32 +00:00
Joshua Lock
72ddd5c202 eglibc: fix build of eglibc-initial for make 3.82
Make 3.82, as shipped with Fedora 14, fixes some holes in the parser which in
turn breaks behaviour of some Makefiles. Most notably eglibc's.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-10 16:50:39 +00:00
Paul Eggleton
6026999e81 qemu: fix failure to find zlib header files during configure
Corrects problems during configure of qemu-native due to the BUILD_CFLAGS
not being included when attempting to compile the test program for zlib
within the configure script.

Signed-off-by: Paul Eggleton <paul.eggleton@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-10 14:56:36 +00:00
Paul Eggleton
c5ab4d56f9 openssl-native: disable execstack flag to prevent problems with SELinux
The execstack flag gets set on libcrypto.so by default which causes SELinux
to prevent it from being loaded on systems using SELinux, which includes
Fedora. This patch disables the execstack flag. (Note: Red Hat do this in
their openssl packaging.)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2010-12-10 11:37:14 +00:00
Joshua Lock
b9d6950732 documentation/bsp: update to reference FILESEXTRAPATHS
It's no longer neccesarry to define THISDIR and FILESPATH in each bbappend
recipe. Should you need to reference extra files you should use FILESEXTRAPATHS

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-24 01:02:40 -07:00
Richard Purdie
95b64df744 documentation: Update copyright to the Linux Foundation
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-24 01:02:39 -07:00
Richard Purdie
941855f0c0 documentation/yocto-qs: Fix references to a poky-qemu package and replace with the yocto toolchain tarball
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
17641a7ead Removed text from section 5.1.2.1.1.
Removed several blocks of text from section 5.1.2.1.1
"Installing and Setting up the Eclipse IDE".  This text according
to Jessica was no longer needed.
2010-10-24 01:02:39 -07:00
Scott Rifenbark
c6e842d9f5 Corrected the package command for Debian-based hosts.
Corrected a typo listing the package libsdl1.2-dev as libsdll.2-dev.
Also added the package mercurial.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
372186ff62 Added package installation requirements.
Added commands to support package installation of RPM-based host systems
to the example.  Input based on feedback from Dirk.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
c718ef5b60 Re-inserted Poky Image as part of the front matter.
I have inserted the Poky image in the front matter again because the
book is a Poky Guide.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Richard Purdie
e160e68136 documentation/poky-ref-manual: Fix image makefile to reference the image
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
c42340603f Moved the Poky image file to the "Figures" folder.
The image file was in the same directory as the main reference manual
files.  So I moved the file into subdirectory "Figures" with other
figures.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
1a0cf646cf Re-installed the Poky Handbook image at the top of the manual
I could not get the Yocto Project logo to appear correctly in the book
after the title.  I also decided that since Poky is by no means
going away that this book should have that image associated with it
as it is the Poky Reference Manual.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
3ed9ba33a3 Updated the yocto-environment picture and added example command edits.
When scaled to fit the page the picture had a black vertical line
artifact to the right.  I snipped out the image a little tigher to
eliminate this line.

I also incorporated Dirk's comments tightening up the sequence of
example commands to do the build.  I incorporated Fedora 14 note
and addition of the BB_NUMBER_THREADS and PARALLEL_MAKE variables.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:38 -07:00
Richard Purdie
88ff0a4470 rm_work.bbclass: Handle case where pseudo directory doesn't exist
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 17:05:29 -07:00
Richard Purdie
7b6db199fa bitbake/fetch: When fetchers return errors, ensure any partial download is cleared
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 17:05:14 -07:00
Richard Purdie
a28bc0d0b6 package_deb: The packaging command itself is run under fakeroot so these lines are totally unneeded
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 15:26:54 -07:00
Richard Purdie
47cfaec4ea classes: Only enable fakeroot on setscene tasks with packaging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:14:13 -07:00
Richard Purdie
59df74164d bitbake/fetch: Make URL checking slightly less verbose (distracting with the sstate code)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:59 -07:00
Richard Purdie
b5419d931e sstate: Fix mirror handling for file:// urls
The fetcher has special handling for file:// mirror urls, being efficient and
just providing an updated path. Unfortunately the sstate fetching code wasn't
able to handle this. This patch detects this and injects a symlink to ensure
everything works. It also fixes some datastore references to be correct and
ensures the sstate download directory exists if it doesn't already.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:51 -07:00
Richard Purdie
1ddda942bd pseudo/fakeroot: Move the pseudo directory creation into bitbake
If sstate was used to accelerate a build, the pseudo directory might not have
been created leading to subsequent task failures.

Also, sstate packages were not being installed under pseudo context meaning
file permissions could have been lost.

Fix these problems by creating a FAKEROOTDIRS variable which bitbake ensures
exists before running tasks and running the appropriate setscene tasks under
fakeroot context.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:40 -07:00
Richard Purdie
c115f07678 package_deb: Fix a typo meaning the debian packaging was not running in the fakeroot evnironment
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:30 -07:00
Richard Purdie
73be41e475 package_rpm: Don't check for the existence of dvar as its never used
If a sstate package exists for the package task but not for the rpm packaging
task, the output from the package task will be used. The directory pointed
to by dvar will not exist under this scenario.

Since the directory is never used by the packaging process remove the
check, substituting the pkgd variable which is always present and used.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:22 -07:00
Richard Purdie
b96412845d base.bbclass: Ensure an empty do_build tasks exists to silence a warning
The message "WARNING: Function do_build doesn't exist" doesn't look professional,
so fix the underlying problem even if this warning is harmless.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:12 -07:00
Richard Purdie
f0c88f220e sstate: Fix broken plaindirs support
When installing a sstate package, directories tracked by plaindirs were being installed
to the incorrect location. With the current implementation this was limited to
the do_package task.

This patch ensures plaindirs tracked files are created in the correct location, fixing
the bug where these files would go missing.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:55 -07:00
Dexuan Cui
1a3140eaf6 libtheora: add DEPENDS on libogg
This is used to fix the following build failure:

 checking for oggpackB_read... no
| configure: error: newer libogg version (1.1 or later) required

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-10-22 11:12:40 -07:00
Richard Purdie
e34401720d base/sstate: Add cleanall task to remove downloads and sstate cached files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:28 -07:00
Richard Purdie
72aadcf274 local.conf.sample: Default to not building 32 bit libs on 64 bit systems as most people don't need it and it confuses them
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:19 -07:00
Richard Purdie
411910bb98 metadata_scm: Ensure that if an SCM isn't present, we dont print a revision of 'fatal:' as it looks bad
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:09 -07:00
Richard Purdie
23bae7e299 docmentation/yocto-project-qs: Fix Yocto Environment graphic
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 22:26:55 +01:00
Scott Rifenbark
13642c439c Removed first link to openembedded and replaced with more general text.
The link to openembedded was used to reference Linux distributions supporting
Yocto Project.  The link has been removed and replaced with more generic
text so as to not have to link to openembedded.  Text used is
"A Host system running a supported Linux distribution (i.e. recent releases
of Fedora, OpenSUSE, Debian, and Ubuntu)."

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 14:10:47 -07:00
Scott Rifenbark
784f9b3369 Updated the first figure in the quick start.
This conceptual figure has been replaced by a more detailed work
flow representing YP.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 14:01:34 -07:00
Scott Rifenbark
0826752c04 Corrected link to the yocto website.
This link was incorrect and has been changed to yoctoproject.com.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 13:40:11 -07:00
Scott Rifenbark
a168d77ea9 Updated supporting text to reflect new poky-4.0-build directory in example
The example commands that build an image were updated to reflect the
real 4.0 release.  I updated the paragraph after the example commands
to refer to the new release used in the command examples.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 13:11:46 -07:00
Richard Purdie
297c60afd8 documentation-project-qs: Remove stray ]
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 20:56:02 +01:00
Richard Purdie
0f49a2c359 documentation/qs-guide: Fix urls for release
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 20:56:02 +01:00
Saul Wold
37eec34886 Yocto Project 0.9 - Poky Laverne 4.0 Release
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-21 20:54:57 +01:00
Scott Rifenbark
2e793fe2bf Edits as described below:
1) Wording change based on Darren's input of making Linux kernel sound like the only open source part of YL

2) Removal of the "v" option for the tar command example.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 12:16:42 -07:00
Bruce Ashfield
2bf160150f mpc8315e-rdb: align PACKAGE_EXTRA_ARCHS with tuning
Fixes [BUGID #500]

While the tuning for the mpc8315e is 603e, the PACKAGE_EXTRA_ARCHES
was ppce300. This created a mismatch and resulted in rootfs assembly
issues due to missing locales.

We align both at 603 and can revist a better tuning in the future.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-21 15:27:39 +01:00
Scott Rifenbark
c3a5bee36f Review changes applied.
1. Added Richard Purdie's general editing feedback to the "Welcome" and
"Introducing the Yocto Project Development Environment" sections.

2. Added Kevin Tian's feedback:  1) changed "Sudo" to "sudo", 2) reversed
the order of the sample "cd" and "source" commands since the "source" command
builds the directory structure first so changing to the directory before running
"source" made no sense, 3) removed the "bitbake qemu-native" command.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
4a5a659674 Updated figure.
Feedback from Kevin Tian suggested that the outer box be labeled "QEMU" rather
than "Target."  Also that the two inner boxes be "Set of Emulated Devices" and
"Target CPU."  Final change was the use of "Yocto Project Scripts" rather than
"Yocto Linux Scripts."

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
ce18dde858 Updated this figure to correctly capaitalize opkg, zyper, and app-get
Feedback from Kevin Tian suggested "OPKG" should be lower-case.
Also, use of "zypper" instead of "YUM."  I also lower-cased
"apt-get."

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
e51e4870f0 Removed reference to pre-build in section 5.3.2, "Using OprofileUI".
The "Using OprofileUI" section had a description of how to use a
pre-built UI and how to download and build one.  Feedback from Jessica
Zhang suggested removing the instruction for using a pre-built UI.
All that remains in the first paragraph now is instruction on how
to download and build the UI.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
440a4cfffb Added the Anjuta Plug-in information
Added section 5.1.2.2 "The Anjuta Plug-in" into the Poky Reference Manual.
    This section consists of sub-sections 5.1.2.2.1 "Setting Up the Anjuta
    Plug-in", 5.1.2.2.2 "Configuring the Anjuta Plug-in", and 5.1.2.2.3 "Using
    the Anjuta Plug-in".  This information was in the original Poky Handbook
    but had been removed by me since I thought it was not going to be supported
    for the 0.9 Yocto Release.  It has now been restored with a note indicating
    that Anjuta will not be supported post 0.9 release.

    I did some general text editing in each section for readability.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Richard Purdie
779288f438 documentation/pokt-ref-manual: Update with Yocto branding
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 15:25:55 +01:00
Richard Purdie
c3fa1a6677 documentation: Add Yocto quickstart guide
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 15:25:55 +01:00
Richard Purdie
e8ea66f5ff documentation/poky-ref-manual: Update packages references to recipes and make sure bbappend files are included in example BBFILES lines
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:12:25 -07:00
Richard Purdie
476242adc4 bitbake/fetch/git: Ensure fullclone repositories are fully fetched
The git fetcher was failing to pull in new branches into a git
repository mirror tarball as the git fetch command being used didn't
add new remote branches.

This patch uses "git fetch --all" for fullclones to ensure any
new remote branches are cloned correctly.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:10:51 -07:00
Richard Purdie
e9ef9424a3 bitbake/fetcher: Deal with a ton of different bugs
The more we try and patch up the fetcher code, the more things break. The
code blocks in question are practically unreadable and are full of corner
cases where fetching could fail. In summary the issues noticed included:

a) Always fetching strange broken urls from the premirror for "noclone"
   git repositories
b) Not creating or rewriting .md5 stamp files inconsistently
c) Always fetching git source mirror tarballs from the premirror even
   if they already exist but the checkout directory does now
d) Passing "None" values to os.access() and os.path.extsts() checks under
   certain circumstances
e) Not using fetched git mirror tarballs if the preexist and always
   try and fetch them.

This patch rewrites the sections of code in question to be simpler and
more readable, fixing the above problems and most likely other odd
corner cases.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:09:12 -07:00
Richard Purdie
fc9c11de28 bitbake/fetch/git.py: Fix git fetcher to correctly use mirror tarballs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:09:01 -07:00
Saul Wold
4ae9c0785e poky.conf: Update DISTRO_NAME and DISTRO_VERSION for the Yocto Project Release
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-18 11:54:36 -07:00
Saul Wold
ef670167cd rpm: Change pcre to use internal library [BUGID #404]
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-18 11:33:27 -07:00
Kevin Tian
daca4c7469 sed: use ALTERNATIVE_LINK
update-alternatives.bbclass assumes /usr/bin/sed if ALTERNATIVE_LINK is not
specified, however sed has changed its default installation directory to
/bin/sed. This causes below errors at the first boot of lsb image:

update-alternatives: Error: cannot register alternative sed to /usr/bin/sed
since it is already registered to /bin/sed

This fixes [BUGID #478]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-10-18 10:10:36 -07:00
Dongxiao Xu
644e54fef9 gstreamer: add support for theora plugins
Add theora codec and its corresponding lib recipe (import from OE).
This fixes [BUGID #476].

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-10-18 11:27:31 +01:00
Bruce Ashfield
f8c6335e95 wrs_meta: update SRCREV for netfilter options
Fixes [BUGID #199]

Updating the SRCREV for wrs_meta to import a set of default
netfilter options, which can then be applied to any BSP. This
keeps the default BSP configs small, while allowing the
functionality to be available.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-18 01:17:46 -04:00
Bruce Ashfield
3d91a51a8e kernel tools: update SRCREV
Fixes [BUGID #199]

To allow optional features to be enabled for a given BSP, we
need to re-enable this functionality in the kernel tools. The
following commit in that repo fixes a problem when passing
feature names:

  [
  commit 140693a6b0d81b7ba7175b6cfce11c6c22f81e24
  Author: Bruce Ashfield <bruce.ashfield@windriver.com>
  Date:   Sun Oct 17 01:22:00 2010 -0400

    updateme: do not expand directories

    If a directory is passed to updateme, do NOT expand it to a
    full path, the compilation phase will search and do this
    while applying some special logic to find properly named
    features.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
  ]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-18 01:17:46 -04:00
Bruce Ashfield
64bb014ea6 linux-wrs: pass netfilter options as an addon feature
Fixes [BUGID #199]

Although an optional feature to a base BSP, most of the machines
currently supported want/need the netfilter options. To enforce
this configuration, it is temporarily forced in the kernel
recipe itself, but can move to machine configurations in the
future.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-18 01:17:46 -04:00
Bruce Ashfield
1dc2a4c17b linux-wrs: allow optional features via KERNEL_FEATURES variable
Fixes [BUGID #199]

Reinstate the ability to specify optional/additional kernel features
when updating the tree.

This is done via the variable KERNEL_FEATURES which specifies
a list of features to be appended to the current branch and
config. These features are part of the wrs_meta branch in the
kernel repository and hence are self contained within the
kernel tree waiting to be activated. This saves multiple
branches simply to allow a machine to have many profiles.

The kernel patching/configuration phases will locate these
features and add them to the meta_series, which in turn
modifies the tree.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-18 01:17:46 -04:00
Saul Wold
77176d56fd distrodata: Modify Distro tracking spreadsheet
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-15 13:55:46 -07:00
Saul Wold
2c40e13634 distro_tracking: Update Distro Aliases
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-15 13:55:45 -07:00
Richard Purdie
8fc871a814 task-poky-sdk: Add lttng-ust
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 11:28:00 -07:00
Richard Purdie
fd59449f5b libtasn1: Comment out the RREPLACES as it causes problems with rpm backend
Since we've never distributed binary feeds this isn't a problem for now
for Poky and as it stands this line breaks images.

[BUGID #442]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 16:38:24 +01:00
Richard Purdie
d3099f8f5c poky.conf: Add qemu-config dependency for qemux86-64
After booting qemux86-64 sato image, there is no icon for shutdown on the
desktop which is caused by missing the qemu-config package on this machine.

[BUGID #458]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 16:34:40 +01:00
Richard Purdie
20b4aa30c9 shared-mime-info: Don't run the util for the native version of the package
The whole point of building a native version of this package is
to provide the share-mime-info binary so using it in do_install
of the native package is incorrect. Add a modified do_install for
the native version of the package to avoid this.

[BUGID #466]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 16:30:41 +01:00
Richard Purdie
80eba26fb1 documentation/poky-ref-manual: Various tweaks to the text
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 15:07:06 +01:00
Richard Purdie
0be66f0e88 documentation/tools: Add comments to script
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 15:07:05 +01:00
Joshua Lock
879ac8fb9f libffi: fix the uri
It had the previous version hard-coded

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-15 14:43:10 +01:00
Richard Purdie
95cf36fbd1 documentation: Complete poky-handbook -> poky-ref-manual rename
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 12:45:09 +01:00
Richard Purdie
37eb4e2b93 documentation/handbook: Tweak Makefiles and paths after path changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 12:14:28 +01:00
Richard Purdie
94c2a3c0ab handbook/poky-ref-manual: Makefile tweaks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 11:57:01 +01:00
Richard Purdie
2208328791 handbook: Move into documentation directory
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 11:55:59 +01:00
Dongxiao Xu
13a702e9e5 Use gdk_threads_enter/gdk_threads_leave to ensure gtk multithread safe
If the video player tries to play an unknown type file, it will enter
the error_cb() function, which is called in another thread.
Use gdk_threads_enter/gdk_threads_leave to ensure the safe of gtk
multi-thread operation.

This fixes [BUGID #474]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-10-15 11:30:49 +01:00
Joshua Lock
485839d873 libffi: bumpt to version 3.0.9
3.0.8 is incompatible with the autotools versions we use in Poky

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-15 11:10:07 +01:00
Joshua Lock
d036f97b62 make: enable make-native
Fedora 14 ships with a version of make which doesn't work with the Makefiles
shipped in our busybox and eglibc versions. Enable make native as a workaround.

This is a low risk fix for [BUGID #467]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-15 11:10:07 +01:00
Scott Rifenbark
ce8932d28d handbook: Fix the Ubuntu version requirement
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-15 10:40:48 +01:00
Scott Rifenbark
f0500bc699 handbook: Fix section numbering
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-15 10:40:23 +01:00
Darren Hart
03ecd2a3f4 atom-pc: remove kernel video mode parameters
The kernel video mode parameters are not needed with the atom-pc linux-wrs
configuration. Without them, we boot up with a standard 80x25 text display
until the Intel i915 driver is initialized, at which point we switch to a
higher resolution text mode. Afterwards, a sato image will start the splash
screen and successfully boot to X.

Tested on the Toshiba NB305 netbook and the Black Sand development board.

[BUGID #450]

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Richard Purdie <rpurdie@linux.intel.com>
2010-10-15 10:13:26 +01:00
Bruce Ashfield
3a8d109c85 linux-wrs: update SRCREV for mpc8315e-rdb
Fixes [BUGID: 423]

The mpc8315e-rdb BSP failed to build due to -Os being used
in the boot code. The fix that doesn't involve changing
the compiler is to remove -Os in the powerpc code and keep
it contained on the BSP branch.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-15 10:10:55 +01:00
Scott Garman
12477ad2b2 gupnp: fix broken SRC_URIs
This fixes [BUGID #469]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-15 10:10:08 +01:00
Bruce Ashfield
95fb69bb24 emenlow: add 8250 serial options
The emenlow didn't have the default 8250 serial ports.
Including the common serial config fragment fixes this
problem.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-14 20:12:04 +01:00
Scott Garman
9a2ae44380 poky-qemu-internal: make the -no-reboot qemu option mandatory
This fixes [BUGID #100]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-14 20:12:04 +01:00
Scott Garman
7d7d35f369 poky-qemu: miscellaneous bugfixes
In scenarios where the POKY_NATIVE_SYSROOT env variable hasn't been
set up, bug #427 can still be triggered. This fixes it by running
setup_tmpdir(). This fixes [BUGID #427].

Also, the qemu tap dev lock directory needs to be chmod 777 so that
multiple users can create and delete lock files.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-14 20:12:04 +01:00
Scott Garman
af404b1372 poky-qemu: add nographic option for disabling video console
This fixes [BUGID #408]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-14 20:12:03 +01:00
Tom Zanussi
65954baaa3 atom-pc: get rid of undefined video mode prompt on bootup
Temporary fix for [BUGID #450]

This fixes the video mode number to the expected value for this video
setting, but the setting itself needs to be fixed along with matching
config options - this patch is just a temporary fix for RC2.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-14 20:12:03 +01:00
Saul Wold
deba7adc4b sysvinit: add check for no X11 to disbale psplash
Add a check to the rc script to check if the /etc/init.d/xserver-nodm
script exists and is executable and not disable psplash if it is,
otherwise disable pspalsh since we do not have X installed.

Fixed [BUG #457]

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-14 20:12:03 +01:00
Saul Wold
cb34a1496a task-poky-qt: Re-Enable MIPS Build and disable fotowall
This address a number if issues with fotowall not being ready
and [BUGID #462] Qt missing for Mips build

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-14 20:12:03 +01:00
Richard Purdie
229b6630af bitbake-runtask: Ensure logging settings take effect in the worker process (and pass verbose setting)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-14 20:07:15 +01:00
Richard Purdie
fa91404055 pseudo: Update to revision 489ed5e89f040febcb605f22187968f597211205
This fixes various issues with modern coreutils which use *xattr() syscalls
which pseudo wasn't catching causing permissions problems.

[BUGID #463]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-14 20:03:58 +01:00
Richard Purdie
462aef73fa eglibc-nativesdk: Add patch to change the search path of the dynamic linker
Change the search path of the dynamic linker to search ld.so.cache as a last resort when
trying to find libraries at runtime. This means libs in /opt/poky are used in preference
but any host libs such as libGL can also be found. See the patch for a more detailed
description.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-14 11:46:39 +01:00
Richard Purdie
9eb2de9163 Revert "meta-toolchain: Update the way ld.so.cache is handled"
This change didn't work as expected as ld.so.cache doesn't preseve any search
path ordering, therefore revert the change.

This reverts commit b2c3ce6d17.
2010-10-14 11:46:39 +01:00
Bruce Ashfield
a2337a3435 linux-wrs: update SRCREVs
Fixes [BUGID #432, #438, #437, #422]

    [atom-pc: switch to the atom-pc branch

    The atom-pc has a dedicated branch and merged kernel commits.
    Swtich the kernel recipe to use the fully integrated BSP

    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>]

    [atom-pc: add kernel config options needed for -live images

    Fixes [BUGID #432]

    Live images require VFAT filesystem and loop device support - this
    adds the required kernel config options for them.

    Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>]

    [atom-pc: Add netbook wireless networking support for NB305 and eee901

    Add the atom-pc-wifi.cfg to enable wireless networking support for the netbooks
    mentioned in the atom-pc machine config file.

    Note: this adds a staging tree driver (rt2860sta) for the eee901 wifi.

    [BUGID #438]

    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    CC: Tom Zanussi <tom.zanussi@intel.com>
    CC: Richard Purdie <rpurdie@linux.intel.com>
    CC: Bruce Ashfield <bruce.ashfield@windriver.com>]

    [atom-pc: Add netbook wired networking support for NB305, Aspire One, and eee901

    Add the atom-pc-eth.cfg to enable wired networking support for the three
    netbooks mentioned in the atom-pc machine config file.

    [BUGID #437]

    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    CC: Tom Zanussi <tom.zanussi@intel.com>
    CC: Richard Purdie <rpurdie@linux.intel.com>
    CC: Bruce Ashfield <bruce.ashfield@windriver.com>]

    [routerstationpro: add missing kernel patches

    [BUGID: #422]

    Add the kernel patches required for routerstaion pro boot

    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>]

    [netbook: allow hardisk booting

    [BUGID: #445]

    Signed-off-by: Darren Hart <dvhart@linux.intel.com>]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-13 21:38:51 -07:00
Bruce Ashfield
cbeb72b90d atom-pc: switch to the atom-pc branch
The atom-pc has a dedicated branch and merged kernel commits.
Swtich the kernel recipe to use the fully integrated BSP

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-13 21:38:51 -07:00
Bruce Ashfield
48755c4bc6 emenlow/linux-wrs: merge emenlow configuration
Complete the merge of the emenlow BSP, by removing the external
configurations from the emelnow layer and merging them into
the wrs_meta branch of the kernel tree. This also allows the
emenlow to drop the tools config fragement and use the common
definitions shared by BSPs maintained in the kernel.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-13 21:38:51 -07:00
Bruce Ashfield
5e558a17f2 linux-wrs: remove external x86 config fragment
[BUGID #363]

Integrate the x86 gfx options into the existing x86 graphics
options for the common_pc and common_pc_64 boards.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-13 21:38:51 -07:00
Tom Zanussi
d3fbeb9833 emenlow: update formfactor keyboard setting
Fixes [BUGID #447]

We expect the emenlow to normally have a keyboard so tell the
formfactor so and avoid the keyboard pop-up.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-13 21:38:50 -07:00
Dongxiao Xu
41ad94640b libowl-av: Fix music player crash if adding unknown type files
Using bus message to call function flush_head/feed_head in main thread
to protect private data operation.

A better fix may be to listen to bus message "CODEC_NOT_FOUND" and
"MISSING_PLUGIN" directly to avoid hooking into "unknown-type" signal.
We will revisit it in next period.

This fixes [BUGID #296]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-10-13 11:29:13 -07:00
Zhai Edwin
e1f257af7b tzdata: install zone.tab and iso1366.tab
These files are removed in libc-package.bbclass. Missing of zone.tab cause
get_zone_directory in libical return NULL for strlen, which leads seg fault
of dates & tasks.

Openembedded has similar patch.

[BUGID #420] got fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-10-13 11:29:13 -07:00
Richard Purdie
b2c3ce6d17 meta-toolchain: Update the way ld.so.cache is handled
Fix the library search path so that libs in the toolchain in /opt/
have priority over those in base system but ones from the base system
can still be found.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-13 17:41:29 +01:00
Joshua Lock
271bd9d8f9 sanity.bbclass: ensure 32it libc is correctly detected
Fix to work for both Ubuntu and Fedora multilib paths.

Fixes [BUGID #454]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-13 15:31:12 +01:00
Scott Garman
d393edda26 poky-qemu-internal: enforce a 128M memory limit for qemuarm
This fixes [BUGID #433]

Also set a sane default for the ifconfig command, which simplifies
our autobuilder sanity test setup.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-12 17:21:39 +01:00
Richard Purdie
99c0cbd6d6 rm_work: Fix interaction issues with pseudo
This class needs to wipe out the contents of the pseudo database but also
ensure the pseudo directory exists for any subsequent tasks and also ensure
any pseudo server has shut down before removing the database. This patch
does all of these things.

[BUGID #222]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-12 15:52:07 +01:00
Joshua Lock
1958497f00 poky-default-revisions: fixups
Entries should be alphabetised and use weak weak assignment

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-12 13:56:35 +01:00
Joshua Lock
27e785cb28 swabber: new recipe
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-12 13:41:08 +01:00
Joshua Lock
c6a6eb18c2 strace: use BBCLASSEXTEND to enable a native package
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-12 13:32:36 +01:00
Joshua Lock
812f8835d2 bitbake/runqueue: make the runtask program configurable
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-12 13:32:27 +01:00
Joshua Lock
35f36bac42 Update gitignore
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-12 13:32:18 +01:00
Jessica Zhang
04ace8380c Add recipe for sdk directdisk target
Signed-off-by: Jessica Zhang <jessica.zhang@intel.com>
2010-10-11 23:46:50 +01:00
Bruce Ashfield
c9b6051f2c linux-wrs: add initial beagleboard support
BUGID: 421

Create the infrastructure to build the beagleboard against the
linux-wrs kernel.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-11 22:57:20 +01:00
Bruce Ashfield
5ae1e2c9e8 mpc8315e-rdb: create machine and tuning configuration
BUGID: 423

Introduce the basic mpc8315e BSP. By default this BSP uses
the basic 603 tuning and soft-float. There are issues with
the e300 tuning and eglibc, and the compiler. Subsequent
commits will further tune this BSP.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-11 22:57:00 +01:00
Bruce Ashfield
149f226213 routerstationpro: create machine conf and compatibility
BUGID: 422

Add the machine configuration and kernel infrastructure for building
the routerstation pro BSP.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-11 22:56:28 +01:00
Nitin A Kamble
b5f744c5d6 python: fix for host contamination issue while cross compiling
This fixes [BUGID #385]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-11 22:53:45 +01:00
Richard Purdie
6b53fbcc20 xpsb-glx: Fix compile issues on 64 bit machines without 32 bit headers/binaries
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 22:44:25 +01:00
Scott Garman
364aaa6dfa poky-qemu: fix for handling full path to rootfs
This fixes [BUGID #427]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-11 22:24:23 +01:00
Yu Ke
cecd1bdf6f qemugl: remove obsolate /usr/X11R6/lib lib directory
qemugl makefile has "-L/usr/X11R6/lib" to specifiy the X lib dir.
it is actually obsolate in poky now, because poky use Xserver from
X.org (X11R7.x), and its libs are in standard /usr/lib.

Meanwhile,the -L/usr/X11R6/lib will cause warning: library search path
"/usr/X11R6/lib" is unsafe for cross-compilation. so better to remove it.

Fix [BUGID #386]

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-10-11 22:16:42 +01:00
Mark Hatle
75732f5443 recipes-connectivity: Cleanup package descriptions and summaries
[BUGID #281]

Evaluate and update each package in recipes-connectivity to ensure they
have a consistent summary and description.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-11 22:15:48 +01:00
Mark Hatle
daa21c1e0a recipes-bsp: Cleanup package descriptions and summaries
[BUGID #281]

Evaluate and update each package in recipes-bsp to ensure they have a
consistent summary and description.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-11 22:15:37 +01:00
Mark Hatle
fa647b9176 recipes-core: Cleanup package descriptions and summaries
[BUGID #281]

Evaluate and update each package in recipes-core to ensure they have a
consistent summary and description.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-11 22:15:10 +01:00
Mark Hatle
b2f2590e6c Add Summary/Description support to packaging
[BUGID #281]

Add the ability for the deb, ipk and rpm classes to use the new summary
and description fields.  The Description is wrapped around 75 characters
to ensure a reasonably nice, presentable description.

(Summary defaults to the description if Summary is not defined.)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-11 22:13:14 +01:00
Tom Zanussi
5783e717ee Subject: [PATCH] emenlow: add kernel config options for sdk tools
Fixes [BUGID #261]

Adds kernel config options for latencytop, powertop, oprofile, and
lttng.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-11 10:18:32 -05:00
Tom Zanussi
86b30f722e emenlow: fix SRC_URI in linux-wrs_git.bbappend
Restrict it to emenlow so it doesn't conflict with other machines.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-11 10:16:25 -05:00
Richard Purdie
d4c86791aa linux-wrs/emenlow: Fix FILESPATH so as not to corrupt other machines
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 14:32:16 +01:00
Richard Purdie
56be122d35 linux-wrs: move config fragment to the correct location
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 14:32:01 +01:00
Richard Purdie
d14f9bf6c4 bitbake/build.py: Write logfiles on a per task basis, not per function
Per function logging made it hard to track down what was happening so
switch to logging on a per task basis.

[BUGID #383]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 12:53:54 +01:00
Richard Purdie
ff539b11ac bitbake-runtask: Ensure logging options are inherited from the parent
[BUGID #291]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 12:52:57 +01:00
Kevin Tian
efe55d749a linux-wrs: Change the kernel configuration to enable psplash.
Init scripts assume uvesafb as module, and also need CONFIG_FRAMEBUFFER_CONSOLE
to set some mode parameter, else wrong parameter cause psplash's mmap failure.

This is just a quick fix as we don't know how to change the wrs kernel config
in a clean way. Should revert it with clean way of changing.

[BUGID #363] fixed by this

Signed-off-by: Tian Kevin <kevin.tian@intel.com>
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-10-11 12:25:53 +01:00
Dongxiao Xu
771fb55d6b connman: Do not take over ethernet interface if target is boot by nfs
Detect if target system is booting by nfs, connman will
not take over the ethernet interface.

This fixes [BUGID #364]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-10-11 12:22:39 +01:00
Richard Purdie
ded2919f19 rootfs: Update ROOTFS_PKGMANAGE to include atp/zypper
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 12:18:02 +01:00
Richard Purdie
df41bd46dd package_rpm: Disable nativesdk/canadian package indexes for now as these are being incorrectly used for target rootfs generation, breaking the images
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 12:13:43 +01:00
Richard Purdie
e9af61e9c2 dpkg-native: Don't install update-alternatives as it isn't cross rootfs capable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11 11:44:42 +01:00
Dongxiao Xu
b9728f63c6 dpkg: fix package_deb error for linux-wrs
The new dpkg will report linux-wrs version parse error,
since there is a '_' inside. This patch fixes this issue.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-10-09 10:15:50 -07:00
Richard Purdie
7836c45267 linux-wrs: emenlow has its own branch, use it
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 18:12:37 +01:00
Richard Purdie
115514b5eb bitbake/fetch: Ensure SRCREV is still set correctly if the pn-X override has been expanded
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 17:24:16 +01:00
Richard Purdie
a743e823bc base.bbclass: Fix spelling mistakes and change log level
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 16:25:03 +01:00
Richard Purdie
b8ce8c72d1 poky-default-revisions.inc: Work around weak assignment operator bad interaction with SRCREV
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 16:24:30 +01:00
Richard Purdie
b825febaeb linux-wrs/emenlow: Set WRMACHINE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 16:23:12 +01:00
Richard Purdie
2f55ec4a52 atom-pc: Switch from linux-netbook to linux-wrs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 16:00:57 +01:00
Tom Zanussi
b8d75d2a50 emenlow: switch kernel from "linux" to "linux-wrs"
Fixes [BUGID #396]

Make the emenlow machine point to the windriver kernel instead.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-09 16:00:26 +01:00
Tom Zanussi
627fb75407 emenlow: remove psb-kernel-source dependency from xserver-psb package
Fixes [BUGID #396]

With the switchover to linux-wrs, xserver-psb no longer depends on the
external modules contained in psb-kernel-source (which have been moved
in-tree).

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-09 16:00:08 +01:00
Tom Zanussi
ee1c802ae2 emenlow: add linux-wrs_git.bbappend
Fixes [BUGID #396]

Add emenlow as a compatible machine for linux-wrs and pick up the
defconfig (which will be pared down if necessary in a later patch).

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-10-09 15:59:37 +01:00
Darren Hart
fe9c556f56 atom-pc: enable CONFIG_FRAMEBUFFER_CONSOLE
Add CONFIG_FRAMEBUFFER_CONSOLE to the i915.cfg config fragment for
the atom-pc machine. This allows the BlackSand to boot to the sato
desktop with text after the fb switch as well as the poky splash
screen.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 15:58:52 +01:00
Darren Hart
6f66fc15c7 Add default revision for linux-wrs common_pc-standard HEAD
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2010-10-09 15:58:27 +01:00
Darren Hart
d7a1ebc81e atom-pc: 8250 config fragment
Add serial port support for atom-pc.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2010-10-09 15:56:52 +01:00
Darren Hart
1bc382586a linux-wrs: Add support for atom-pc
Add the option of using linux-wrs as the kernel provider for atom-pc. This
patch uses poky to apply config fragments to the common_pc-standard branch
of the linux-wrs kernel. A follow-on patch will remove these once linux-wrs
has an atom-pc branch and the config fragments are present in the kernel
repository.

This configuration boots to a prompt on the BlackSand, but panics unable
to find the root partition on the Toshiba NB305 where the "rootwait"
kernel boot option appears to be being ignored.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 15:55:06 +01:00
Dongxiao Xu
ca664ee35d dpkg: upgrade to version 1.15.8.5
Rebase several patches to fit the latest version
Fix a compile issue related with snprintf.
dpkg: bump PR

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-09 07:40:04 -07:00
Richard Purdie
144e7b461d udev: Don't install unused links.conf file (thanks Joe Sauer for spotting)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 15:08:09 +01:00
Richard Purdie
939e2fe270 gettext: Move files to the correct place
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-09 15:05:09 +01:00
Bruce Ashfield
530fb7fdea linux-wrs: fix emenlow and wrs_meta SRCREV values
Fixes [BUGID #395, #396]

The initial commit for emenlow support dropped a character on the
SRCREV and missed the wrs_meta update. this fixes both those issues.

There are still pending commits and issues with emenlow support, but
these values are wrong and should be fixed now.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-09 15:02:51 +01:00
Dexuan Cui
30f77f6182 distro_tracking_fields: remove the duplicate line for oprofile
In the same file, there is alrealy a line for oprofile.

Also add an empty line before oprofileui.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-10-09 14:44:07 +01:00
Dexuan Cui
1d7c9a9828 attr: fix the hardcoded search path in the AC_PATH_PROG
We should respect $PATH.

The patch is from Qing.

Fixes [BUGID #369].
BTW: the bug was triggered on a build host that didn't install gettext.

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-10-09 14:44:07 +01:00
Scott Garman
c805a6ed28 poky-qemu-internal: implement file locking in bash
There does not appear to be a universal lockfile utility that
meets our needs. For example:

* 'lockfile' is part of the procmail pacakge in Ubuntu, a
  requirement we don't want to impose on our users
* lockfile-[create|remove] from the Ubuntu lockfile-progs
  package does not appear to be available in Fedora/openSUSE

So, the most portable way to do this is just to implement it
in bash. The likelihood of race conditions is minimal for
what we need this for.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-08 14:48:20 -07:00
Scott Garman
7cd824a538 poky-qemu: fix handling of some rootfs types
This allows the user to specify a rootfs type
(e.g, poky-image-sato) without typing out the full filename
and path (assuming we can infer a valid MACHINE and FSTYPE).

This fixes [BUGID #415]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-08 14:47:54 -07:00
Saul Wold
e72e7b2fdc rootfs_deb: Fix problem with pseduo and rootfs location
This address [BUGID #401] to complete dpkg rootfs support

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-08 13:51:44 -07:00
Dongxiao Xu
0ae7e9e2cb dpkg: upgrade to version 1.15.8.5
Rebase several patches to fit the latest version
Fix a compile issue related with snprintf.
Reset PR in dpkg.inc

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-08 13:51:29 -07:00
Darren Hart
c449c78c25 Rename MACHINE=netbook to MACHINE=atom-pc
In preparation for the more generic atom-pc, rename the netbook machine and all
the relevant overrides. Leave the linux-netbook kernel recipe intact and as the
default kernel for the atom-pc machine.  A future patch will convert this over
to linux-wrs and likely remove the linux-netbook kernel recipe.

Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-08 16:56:44 +01:00
Saul Wold
5f17c07331 gststream commercial: modified recipes and tasks to add commercial identifier
Modified DEPENDS and RDEPENDS in these recipes and tasks to make packages
which have potential license implications opt in through options in
poky/local.conf.

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-08 16:47:19 +01:00
Saul Wold
7d42965565 base.bbclass: add support for commercial license check
This addresses [BUGID #410], require implict action by someone to enable
functionality that may have license implications.

By default this diables mp3 and mpeg decoding

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-08 16:46:33 +01:00
Saul Wold
c47132ae66 gettext: Add GPLv2 version 0.14.1
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-08 16:46:33 +01:00
Richard Purdie
45e05c1316 meta-toolchain: Fix symlink path
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-08 16:45:50 +01:00
Richard Purdie
ad042da703 meta-toolchain: Fix libGL.so not found issues
Fix libGL.so not found issues by making sure ld.so.cache from the host system
is used to locate libraries.

Also, fix a /usr/ reference that should be /var to keep the installation
tarball clean.

[BUGID #228]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-08 15:20:42 +01:00
Richard Purdie
93c19abbc2 unfs-server: Fix DEPENDS for native/nativesdk cases
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 23:40:05 +01:00
Nitin A Kamble
2f19e2a1e6 libc-package.bbclass, eglibc, glibc: enable locales generation using cross-localedef
Along with qemu this provides another option to generate locales for
[e]glibc. The new method is to use cross-localedef with appropriate arch
specific parameters.

The cross-localedef method is found to be 15 times faster than qemu's
emnualted method.

LOCALE_GENERATION_WITH_CROSS-LOCALEDEF : This is new config variable
introduced to selet qemu or cross-localedef method for locale generation.

Thanks to Mark Hatle from Windriver for providing the rich
information for cross locale generation.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-07 22:53:28 +01:00
Nitin A Kamble
2e04061897 cross-localedef-native: tool for cross generation of locales
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-07 22:11:36 +01:00
Scott Garman
7b079e1d08 Update meta-ide-support dependencies
Using poky-qemu with our new tap networking and/or unfs support
required too many additional build steps. This updates the
meta-ide-support dependencies so all features are built and
available to use.

Specifically, this adds psuedo-native, qemu-helper-native, and
unfs-server-native to the dependency chain for meta-ide-support.

This fixes [BUGID #392]

Also add poky-gen-tapdevs and remove runqemu-nfs from the
qemu-helper-native recipe, and update some qemu control script
error messages to suggest building meta-ide-support.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 22:07:45 +01:00
Richard Purdie
bda24caa5c poky-fixed-revisions.inc: Clean up pointless PREFERRED_VERSION statements
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 21:51:29 +01:00
Richard Purdie
ddb5d4c9af librsvg: Drop old versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 21:44:48 +01:00
Richard Purdie
519b7c0dd3 pulseaudio: Add back after it was lost in meta-moblin removal (and dependencies)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 21:38:47 +01:00
Richard Purdie
02445fca7b poky-default-revisions.inc: Move SRCREV settings into this file
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 21:24:11 +01:00
Scott Garman
0f973ed665 Merge runqemu features into poky-qemu
This merges the functionality of the runqemu script into poky-qemu.
It also removes the requirement to order command line args to poky-qemu
in any particular order.

This fixes a slew of runqemu-related bugs by making the runqemu script
obsolete (and fixing the issues in the new poky-qemu), including
[BUGID #294] [BUGID #295] [BUGID #371] and [BUGID #324].

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 19:57:34 +01:00
Scott Garman
e70c8981f2 Allow running of multiple QEMU nfs instances
These changes allow multiple instances of the userspace NFS server
to run, when brought up by consecutive instances of the poky-qemu
control script.

This fixes [BUGID #393]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 19:55:50 +01:00
Scott Garman
8532405c1d poky-gen-tapdevs: script to create a 'bank' of tap interfaces
This script can be used to create and configure a 'bank' of tap
interfaces that can be used by the poky-qemu script.

It is useful in locked-down enterprise environments where developers
do not have sudo access, but need to be able to run QEMU with
networking. A sysadmin would then use this script to bring up a
number of tap interfaces for the user to make use of.

This fixes [BUGID #391]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 19:53:46 +01:00
Scott Garman
62625d0ca0 poky-qemu-internal: use lockfile-progs for network interface locking
The 'lockfile' utility originally used comes from the procmail
package, which users shouldn't have to install. This uses the
more general lockfile-progs utilities to acheive the same end.

This fixes [BUGID #389]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 19:52:32 +01:00
Scott Garman
fcbd67c047 poky-qemu: integrate userspace nfsroot support
This is the first phase of some refactoring the poky-qemu control
scripts are getting. This integrates userspace nfsroot support into
poky-qemu, making runqemu-nfs obsolete.

This fixes [BUGID #295]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 19:51:36 +01:00
Scott Garman
c8a181e847 poky-qemu-ifup/ifdown: Require root privileges to run
This fixes [BUGID #232], requiring root privileges to run these scripts
and giving an error prompt when that requirement is not met.

The tunctl uid fallback code has also been removed, as we can rely on
the specific version of tunctl run from the native sysroot.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-10-07 19:48:17 +01:00
Bruce Ashfield
fb24302125 kern_tools: update SRCREV for defconfig fixes
Fixes [BUGID #399]

During BSP work it was noticed that some defconfigs weren't being
pulled into BSPs. This was due to a bad test that ended up
allowing a defconfig to exclude itself. The test has been tightened
to only kernel feature files, and defconfigs are now always
pulled in.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-07 08:24:37 -07:00
Nitin A Kamble
bf1a37e40c xf86-video-intel_git: fix COMPATIBLE_HOST definition
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-07 08:24:37 -07:00
Nitin A Kamble
f938a4199b syslinux: fix COMPATIBLE_HOST definition
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-07 08:24:37 -07:00
Nitin A Kamble
50ba9c4d40 nasm: fix COMPATIBLE_HOST definition
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-07 08:24:37 -07:00
Nitin A Kamble
8a4298c71c libacpi: fix COMPATIBLE_HOST definition
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-10-07 08:24:37 -07:00
Saul Wold
7160dce02e formfactor: mv emenlow formfactor config to machconfig
Fixes [BUGID #398]

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-07 08:24:36 -07:00
Richard Purdie
bee7c21f6e bitbake/runqueue.py: Fix invalid variable reference fixing the -f option with setscene tasks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 15:45:02 +01:00
Richard Purdie
240b6636f9 sstate: Fix SSTAGE_MIRRORS handling and improve example in local.conf.sample
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 15:42:56 +01:00
Richard Purdie
24ad63979f bitbake/fetch/__init__.py: Abstract mirror variable handling and enhance to accept \n delimitation in variables
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 15:42:15 +01:00
Richard Purdie
0e0fadb400 rootfs_rpm: Add lock file in the rpm deploy directory to allow mutliple rootfs creation tasks to coexist without breaking each other
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 15:41:17 +01:00
Richard Purdie
fafb40364d gcc: Fix c++ search path for target system compiler making everything consistent
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 11:06:32 +01:00
Richard Purdie
11ebcec445 local.conf.sample: Until bug 227 is resolved, ipk packaging is needed for meta-toolchain so enable by default
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 10:23:30 +01:00
Darren Hart
0a20caf090 Export ALL_PROXY for bitbake commands
We already export http,ftp,https proxy environment variables. Some environments,
GNOME for instance, place the socks proxy in ALL_PROXY and all_proxy. Export it
as well.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2010-10-07 10:18:25 +01:00
Darren Hart
e12c57e877 handbook: corrent RRECOOMENDS spelling in ref-variables
Correct MACHINE_EXTRA_ESSENTIAL_RRECOOMENDS to
MACHINE_EXTRA_ESSENTIAL_RRECOMMENDS.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2010-10-07 10:17:56 +01:00
Mark Hatle
60beb398cc pseudo: Update to the latest version of pseudo
[BUGID #403]

The latest version of pseudo has a workaround for an extended attribute
problem that may show up with certain configurations of modern coreutils.

Specifically cp -p does not use chmod to change the permissions, but instead
uses fsetxattr to change the permissions.  fsetxattr (and extended attributes)
are not supported within pseudo.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-07 10:16:17 +01:00
Richard Purdie
5eee854f53 qt4-tools-native: Fix compile failures
fontconfig/freetype are not listed in the dependencies, neither are any of the
X components yet this recipe appears to be building the whole UI framework, not
just the tools.

It turns out this is a dependency for uic3 and qdbus. Since at this time we don't
require these, remove them from the build.

Its likely cross versions of those specific tools would need to be added due to
their dependency on the windowing system compilation.

[BUGID #390]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-06 15:17:14 +01:00
Richard Purdie
35d095c282 bitbake/sstate: Implement a lookup function to speed up setscene processing
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-05 22:26:33 +01:00
Richard Purdie
2d93cb0a0d Revert "classes: Disable setscene tasks for initial testing"
This reverts commit 084ec86402.
2010-10-05 22:26:33 +01:00
Richard Purdie
425435f403 base.bbclass: Implement PRINC, a way to increment the PR variable in .bbappend files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-05 22:26:32 +01:00
Richard Purdie
904ae4a753 Improve FILESPATH usage in .bbappend recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-05 22:26:32 +01:00
Joshua Lock
0ee7a9e6bd bitbake/fetch: if mirror fetching fails, ensure exception is raised
We catch any exception raised by the fetchers go() method and attempt to work
around it by trying any (post) mirrors which are configured. However, should
the mirrors fail the exception is lost and the fetch is assumed to have
completed successfully.

Instead, save the exception and if the local file does not exist after trying
the mirrors re-raise the exception.

Fixes [BUGID #362]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-05 16:54:10 +01:00
Saul Wold
8e5c0841ea rootfs_deb: fix parsing a shell cmd
This fixes [BUGID #360] parsing failure when using package_dep
as rootfs generator.

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-04 16:24:01 -07:00
Bruce Ashfield
a4f2e2af1b kernel: update SRCREVs for emenlow and blacksand/Kconfig
Fixes [BUGID #395, #396]

Add the emenlow-standard branch to the SRCREV list, and update
all the branch revisions to include the fix for defconfig processing,
that was exposed by work on the blacksand BSP.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-04 16:24:01 -07:00
Bruce Ashfield
12b0f4903a createme/patchme: use kgit-checkpoint to restore meta data
Fixes [BUGID: #390]

The custom de-checkpoint routines used in createme/patchme
destroyed data each run. This meant that incremental and
expermental work couldn't be done directly in the kernel source
tree itself. Using the more robust kgit-checkpoint allows that
data to be persistent (until a clean is done).

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-04 09:40:59 +01:00
Bruce Ashfield
1225cc4486 kern_tools: allow patching on autocreated/empty branches
Fixes [BUGID #388]

Even if we aren't creating the branch from scratch, it is possible
that it has never been patched before. So let's make sure the
infrastructure for patching is always in place.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-04 09:40:59 +01:00
Richard Griffiths
2fac07aa98 qemumips: Add formfactor file so the mouse works correctly
Fixes [BUGID #99]

Signed-off-by: Richard Griffiths <rgriffit@windriver.com>
2010-10-04 09:40:59 +01:00
Richard Griffiths
546ffc5fa5 x11-common: correct the syntax for the -mouse arg to Xfbdev
Fixes [BUGID #99]

The mouse option as passed to Xfbdev was correct for most
targets, except mips (and a PS/2 mouse). Modifying the
syntax of the option fixes the mips case, and has no impact
on other users.

Signed-off-by: Richard Griffiths <rgriffit@windriver.com>
2010-10-04 09:40:58 +01:00
Richard Griffiths
ce7101b1f0 qemumips: override default UI options.
Fixes [BUGID #99]

The mouse, usb and cursor devices don't work for the
qemumips machine. There's no easy way to 'undo' the
defaults, or dynamically remove them, so we simply
don't use the default UI options for this machine type.

Mouse and pointer are provided via ps/2 and not via
the usb and wacom tablet driver.

Signed-off-by: Richard Griffiths <rgriffit@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-04 09:40:58 +01:00
Daniel Díaz
8223e50582 ncurses: Fix export of LD_LIBRARY_PATH.
This fixes the following error on do_install:
> line 175: export: `=': not a valid identifier
> line 175: export: `[...]/usr/lib': not a valid identifier

Signed-off-by: Daniel Díaz <yosoy@danieldiaz.org>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-04 09:21:42 +01:00
Richard Purdie
31bd1412e5 gitignore: Add meta-extras and meta-m2
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-02 22:34:08 +01:00
Richard Purdie
ce25e933a9 meta-openmoko: Drop as this code is very stale
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-02 22:33:24 +01:00
Richard Purdie
0cab41aac3 meta-gnome: Remove libgnome, libgnoneui and update gthumb adding libunique dependency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-02 22:32:45 +01:00
Richard Purdie
4163767c00 ncurses: Only set LD_LIBRARY_PATH within the do_install
If this is done as a global export it can affect the whole task and the
wrong python libraries can be found for example.

[BUGID #335]

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-02 18:09:14 +01:00
Mark Hatle
dd81d5882b insane: Update the insane class to check for host contamination
[BUGID #376]

Update to the insane class to detect the new gcc and binutils poison
messages located within the config.log.  (Continue to scan for the old
style message.)

Add a new compile and install log check to the package_qa that scans the
logs for the same types of messages "unsafe for cross-compilation".

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-01 18:45:32 +01:00
Mark Hatle
8e429accb8 build.py: Add a symlink for the logging
[BUGID #375]

When configuring for the log file output, we generate a symlink to the
target filename.  This link uses the same file naming, but without the
active pid, making it easier to see which log file is the last one
generated.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-01 18:45:32 +01:00
Joshua Lock
df07008f56 python-pygtk: Use correct paths at build time
Fix the paths in configure.ac to use the target libraries and generators for
building pygtk. Fix taken from OE.

Thanks to Gary Thomas for providing a first stab at this.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-01 16:47:38 +01:00
Gary Thomas
ce5e891d51 Python gst package needs pygtk at runtime
Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-01 16:47:38 +01:00
Joshua Lock
b9369741db poky-qemu-internal: only check mmap_min_addr when running arm images
No need to force users to poke /proc/sys when they don't need to.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-01 16:47:38 +01:00
Gary Thomas
8fdc5ff4c1 Fix packaging error (util-linux-sfdisk could not be built)
Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-01 16:47:37 +01:00
Joshua Lock
7cdddd1887 local.conf.sample: include notes on generating fewer LIBC locales
libc locale generation is very time consuming so document the
GLIBC_GENERATE_LOCALES variable in the sample local.conf

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-01 16:47:37 +01:00
Mark Hatle
c112368e6f siteconfig: Fix mkdir
[BUGID #379]

In a strange configuration, siteconfig could have already generated it's
directory, but decided it needs to regenerate the site config.  The lack
of -p in the mkdir causes a failure.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-01 16:32:33 +01:00
Mark Hatle
4a19330709 binutils: Update the poison patch
[BUGID #374]

Previously the poison directories patch was present, but not enabled due
to the lack of the configure option being set, and also the fact configure
itself was not being patched.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-01 16:32:19 +01:00
Mark Hatle
23f522e7a5 gcc: Update poisoned include path checking
[BUGID #374]

The poison directory patch that was included with gcc-4.5.0 was not previously
enabled due to the lack of the configure file changes.

The patch has been updated to include the configure fragment.  It was also noted
that this patch preformed nearly the same functions as the
zecke-no-host-includes patch, but with slightly different directories.

The directories scanned were added from the zecke-no-host-includes patch to
the new gcc-poison-dir-extend.patch.

The other difference with the zecke patch is that poisoned headers is no longer
an immediate fatal error.  There may be instances where someone wants to do
this.

Adding -Werror=poison-system-directories to the CFLAGS would restore the
behavior.

Also fix a small problem where --help=warnings on gcc wouldn't return the
poison-system-directories as a valid option, even though it was.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-01 16:30:43 +01:00
Mark Hatle
9a1d4d0c8d augeas: Add missing dependency on readline
[BUGID #381]

Augeas apparently has a readline dependency.  Add this to the DEPENDS.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-10-01 16:30:19 +01:00
Richard Purdie
ca5fff3806 sstate: Deal with a potential race when cleaning packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-01 14:07:18 +01:00
Richard Purdie
c0c657bd92 Split meta-extras and meta-moblin out of the main repository
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 22:16:10 +01:00
Richard Purdie
e71a306f9c task-base: Drop wifi fw
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 22:16:10 +01:00
Richard Purdie
c09cae578e Move prism-firmware, spectrum-fw, python-urlgrabber, python-iniparse and yum-metadata to meta-extras
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 22:16:10 +01:00
Saul Wold
a51df11c15 Distro Tracking: Remove private directory since it's merged to one file now
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 13:57:42 -07:00
Richard Purdie
e3d7890cac Make invalid LICENSE fields fatal
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 20:46:23 +01:00
Richard Purdie
c0281fa49b libopensync: Fixup a couple of LICENSE fields
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 20:46:23 +01:00
Richard Purdie
008c59cf83 external-toolchain: Set LICENSE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 20:46:23 +01:00
Richard Purdie
96235897e6 moblin-proto: Move to meta-extras
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 20:46:11 +01:00
Zhai Edwin
27b68f9f4c qemu: introduce vmware vga FIFO rewind patch to fix qemu hang
In some circumstance guest driver got interrupted before inserting all args
for one command, so that qemu get an invalid args and hang. GL patch
doesn't consume these missing args, which further cause FIFO disorder.

This commit reverts wrong behavior of GL patch, and introduces a qemu
upstream patch to rewind FIFO unpon detecting incomplete command.

[BUGID #111] fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-30 12:32:10 -07:00
Zhai Edwin
7f17d12cfd linux-libc-header: Sync CONNECTOR_MAX_MSG_SIZE with wrs kernel
Currently default header is linux-libc-header, which leads the dismatch
with wrs kernel.

The different headers for same file cause trouble between kerenl module and
user level binary. E.g. segfault in v86d due to different
CONNECTOR_MAX_MSG_SIZE in connector.h from the one used by uvesafb.

This fix is work around to sync with wrs kernel headers, and should be removed
after switching to linux-libc-headers-wrs.

[BUGID #279] fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-30 12:32:10 -07:00
Saul Wold
9c9c8eb835 gdb: add EXPAT to resolve gdbserver comm issues
[BUGID #346]

Added EXPAT = "--with-expat" to allow gdb to correctly
communicate with the gdbserver

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 12:30:18 -07:00
Saul Wold
bf1747b4e5 gst-openmax: Add LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 12:30:18 -07:00
Richard Purdie
a4762f928a gobject-introspection: Add LICENSE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 19:58:10 +01:00
Richard Purdie
84a4ef2df8 spectrum-fw: Set LICENSE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 19:55:26 +01:00
Richard Purdie
4ec740dded puzzles: Set LICENSE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 19:00:19 +01:00
Saul Wold
d4feb66a75 libfribidi: added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:22:27 -07:00
Saul Wold
d8915153e2 beeycrypt: added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:22:11 -07:00
Saul Wold
c649698d90 libffi: added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:21:46 -07:00
Saul Wold
a00a840fb7 tzcode-native: added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:21:30 -07:00
Saul Wold
784f0cfee7 polkit-gnome: added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:21:12 -07:00
Saul Wold
8c7dfe89e1 diffstat: Added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:20:14 -07:00
Saul Wold
3e5cf5f884 libopensync: Added LICNESE fields to plugins
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:19:56 -07:00
Saul Wold
fe64be2fac farsight: Added LICENSE field
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:19:20 -07:00
Dexuan Cui
6b1c260fa3 elfutils: add zlib into DEPENDS
This patch fixes the build failure I met with.
Thanks a lot to Qing He and Kevin Tian for pointing this out!

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-30 10:18:00 -07:00
Kevin Tian
2a066e7ca9 gcc: fix check for target libc ssp support
gcc uses hardcoded path "${with-build-sysroot}/usr/include" to check target
libc ssp support. Based on GLIBC version strings in features.h in that search
path, gcc knows whether target (e)glibc implements stack protector itself.

However this breaks meta-toolchain, which actually has target libc headers
installed under {with-build-sysroot}/opt/... This way features.h is not found
and thus gcc-crosssdk-intermediate thinks that target (e)glibc doesn't support ssp.

Later when building eglibc-nativesdk, undefined reference to "__stack_chk_guard"
occurs which was caused by:

  o eglibc do_configure found that gcc-crosssdk-intermediate supports ssp,
    and thus enable -fstack-protector for nscd

  o eglibc itself supports stack smash proctection for some architectures such
    as i386, x86-64, etc. It's expected to use its own method to provide stack
    protection, instead of relying on gcc. So eglibc rtld.os doesn't export
    __stack_chk_guard to other modules

  o then when installing nscd objects, gcc-crosssdk-intermediate sees the
    flag "-fstack-protector", while it thought this eglibc doesn't implement
    ssp itself, so gcc turns to the alternative to find a valid
    __stack_chk_guard exported. eglibc doesn'g export it, while
    gcc-crosssdk-intermediate itself disables libssp.

Then the undefined reference happens. If enabling libssp for gcc-crosssdk-
intermediate, it may also work-around this issue. But the ideal fix is still
to replace hard coded path with the actual one where target libc gets installed.

glibc-nativesdk doesn't encounter this issue because it thinks gcc doesn't
support ssp, and thus doesn't enable "-fstack-protector" for nscd. Don't know
the reason yet

This fix [BUGID #366]

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-30 10:18:00 -07:00
Yu Ke
b07cc5a74a initrdscripts: remove the incorrect moblin message (Bug 368)
When install the live image into netbook/emenlow, the install tool prompt:
# Found drive at /dev/sda. Do you want to install moblin there ? [y/n]
The "moblin" here should be replaced by "poky".

Fix [BUGID #368]

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-09-30 10:14:07 -07:00
Yu Ke
aca435f238 qmmp: add qmmp into image (Bug 301)
qmmp is not included any image before, because it depends on one moblin recipe taglib. Since now the taglib is included into meta/recipes-support, it is safely to add qmmp into the task-poky-qt.

This commit also add an build time dependency for qmmp, because qmmp use some head files from taglib. Without this, qmmp build failure is occationally observed.

Fix [BUGID #301]

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-09-30 10:14:06 -07:00
Bruce Ashfield
1526b9d4d9 kern-tools: add BSP bootstrap support
Part of [BUGID #373]

Update the default revisions for kern_tools to pull in the updates
required to support BSP bootstrapping.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-30 10:08:55 -07:00
Bruce Ashfield
5848cc4db6 linux-wrs: pass ARCH to updateme
Part of [BUGID #373]

In order to generate BSP definitions for new boards, we need
to know the architecture. So we'll arrange to pass it to
updateme.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-30 10:08:55 -07:00
Bruce Ashfield
8d5b2224bd linux-wrs: validate commits when forcing branches
Fixes [BUGID #372]

If for some unknown reason, the kernel git repository hasn't been properly
updated and is *older* than the revisions listed in default-revisions the
branch sanity checking kicks in and tries to force branches to the right
revs. The problem is, the revisions it is looking for don't exist in the
tree.  As a result, error messages are thrown about invalid commit IDs.
These aren't helpful, and are simply confusing for the user.

Instead we can test for the commit ID, and if it isn't valid, indicate
that the commit ID isn't valid and that the tree is potentially out
of sync.

This situation is not common, but it is an easy test and the extra
sanity checking is useful.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-30 10:08:55 -07:00
Saul Wold
06c19f0cd0 mc: add to extended, but not part of any image
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:06:24 -07:00
Saul Wold
4c9f98b4c7 Distro tracking: Add info for lighttpd
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-30 10:06:24 -07:00
Mark Hatle
41f19342f1 rpm_5.1.10.bb: The upstream location has changed
rpm_5.1.10.bb: bump PR
[BUGID #357]

The upstream distribution location for the Poky 5.1.10 version of RPM
has changed.  Correct it to the new location.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:06:24 -07:00
Mark Hatle
ce373c7cc3 rpm_5.1.10: Disable dependency loop message
[BUGID #332]

Disable the dependency loop message that looked like an error had
occured.  This is really a debug message.

Also remove the "remove: " debug message about which side of the
dep loop it is removing to resolve the circular dependency.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-30 10:05:43 -07:00
Mark Hatle
fad896d4ea rootfs_rpm.bbclass: Add Dirnames configuration
[BUGID #327]

RPM attempts to validate all of the directories on the system are
owned by a package.  While the root "/" directory was not owned, so
in some cases an error could be thrown.  Resolve this by informing
RPM that yes, "/" is in fact a directory on the system that was
properly constructed and is "owned".

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-30 10:01:34 -07:00
Saul Wold
c9e6f53a11 distro_tracking_fields: Updated with distro alias information
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-30 10:01:34 -07:00
Richard Purdie
82a42c6457 pointercal: Add LICENSE field
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:36 +01:00
Richard Purdie
66bb71a25a udev-extraconf: Fix LICENSE field
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:36 +01:00
Richard Purdie
041fe173cc pong-clock: Fix LICENSE field
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:36 +01:00
Richard Purdie
ced8cb0809 signgp: Add licence info from OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:36 +01:00
Richard Purdie
bb1b3cfd53 task-poky-lsb/basic: Add LICENSE fields
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:36 +01:00
Richard Purdie
69c650c277 run-postinsts: Add LICENSE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:36 +01:00
Richard Purdie
1d52fa5269 bitbake/bitbake-sigdiff: Extend to handle dumping single state siginfo files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:35 +01:00
Richard Purdie
1c91f32f5e bitbake/siggen: Fix issue where excluded dependencies caused exceptions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:35 +01:00
Richard Purdie
adcb01d091 poky.conf: Add BB_HASHBASE_WHITELIST to ignore variables which don't influence sstate packages (Initial Population)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-30 18:02:35 +01:00
Joshua Lock
7f7c185cf1 Revert "Drop vm_mmap_min_addr checks from scripts and sanity class"
This reverts commit 138df217ef.

We still need the vm_mmap_min_addr set to 0 to run locale generation for
qemu-arm

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-29 17:10:41 +01:00
Joshua Lock
62fe6dc755 sstate: list directories in child first order in the manifest file
The directory list in the manifest file needs to be sorted such that child
directories are deleted first. Fortunately as the list is generated by walking
the directory tree achieving this is as simple as reversing the directory list.

Fixes [BUGID #269]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-29 17:10:41 +01:00
Kevin Tian
e88a8951be procps: use new batch update-alternatives feature
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-29 16:42:43 +01:00
Kevin Tian
b797a842ba diffutils: use new batch update-alternatives feature
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-09-29 16:42:33 +01:00
Kevin Tian
2b18117820 bzip2: use new batch update-alternatives feature
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-29 16:42:19 +01:00
Kevin Tian
22cbcd964f update-alternative.bbclass: add batch alternatives support
With new batch ability, we can use below simple 2 lines for multiple alternatives
updates:

ALTERNATIVE_LINKS = "${bindir}/cmd1 {sbindir}/cmd2 ..."
ALTERNATIVE_PRIORITY = "100"

Then for each command "/path/cmd" listed in ALTERNATIVE_LINKS, below is done
automatically:

    ${D}/path/cmd is renamed to ${D}/path/cmd.{PN}
    a new alternative named 'cmd' is created which:
        links /path/cmd to /path/cmd.{PN} with priority specified in ALTERNATIVE_PRIORITY

This way the recipe with multiple alternatives could be simplified a lot. There
are still some cases where above assumptions may break, but I expect more recipes
should benefit from this simple enhancement

Fix [BUGID #257]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-29 16:42:15 +01:00
Gary Thomas
5f289ac80f e2fsprogs: Don't change ownership of the patches directory
Patches can be symlinks and changing their ownership may not be possible.
Therefore stop doing this.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 16:25:47 +01:00
Gary Thomas
53bfbe6b06 gstreamer: Ensure correct orcc version is used
Taken from a patch from the OE list posted by Michael Smith, submitted
to Poky by Gary Thomas.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 16:22:40 +01:00
Richard Purdie
a598c15636 handbook/bsp-guide: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 15:29:32 +01:00
Richard Purdie
2624b61814 poky-doc-tools: Remove unnecessary autotools usage and simplfy structure
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 15:27:04 +01:00
Richard Purdie
1e0e6f1185 sstate.bbclass: Add signature hash to sstate package names
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 12:12:53 +01:00
Richard Purdie
624924bdcd bitbake/bitbake-runtask: Signatures are needed in task context and have little overhead so enable in worker context
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 12:12:26 +01:00
Richard Purdie
97dec8410b sstate.bbclass: Update to use SSTATE variables everywhere and remove the now unneeded complicated paths from the sstate files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 12:12:26 +01:00
Richard Purdie
dd28a9c516 sstate.bbclass: pstage -> sstate name changes (no global implications)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 12:12:26 +01:00
Richard Purdie
7087fb788a sstate.bbclass: Rename PSTAGE2 -> SSTATE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 12:12:26 +01:00
Richard Purdie
9747616600 bitbake/siggen: Ensure full signature data is not held unless needed, reducing memory consumption
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-29 10:47:17 +01:00
Dongxiao Xu
8976fa69d0 connman: fix the issue that connman could not disconnect from shutdown AP
Upstream has a fix for MeeGo/Carrick which has the same
phenomenon as our side, therefore port the patch into poky.
This fixes [BUGID #266] and [BUGID #267].

Remove the option "--enable-fake" since it sometimes causes
offline mode failure.

Launch connmand in initlevel 3.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-28 15:51:27 -07:00
Saul Wold
65ace927bd task-poky-basic.bb: fix lighttpd typo
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-28 15:25:18 -07:00
Saul Wold
d6c4088f10 task-poky-basic.bb: add lighttp to basic image type for webserver
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-28 08:45:07 -07:00
Saul Wold
8860ef2449 local.conf.sample: set RPM as default package and rootfs image creation
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-28 08:44:37 -07:00
Zhai Edwin
a1d1e4e47d lighttpd: Add 1.4.28 as new recipe.
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-28 08:26:53 -07:00
Richard Purdie
ec4d6b989a bitbake: Pass task hash information to subprocesses
Pass task has informaiton to work processes, allowing full manipulation of
the hash data in the task context allowing checksums to be usable.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-28 15:34:27 +01:00
Joshua Lock
15ceaaaaf7 bitbake/fetch: fix logic to prevent fetches when the file already exists
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-28 14:07:08 +01:00
Richard Purdie
d85dc37b73 codeparser.py: Fix storing of hash values as object references can be corrupted
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-28 12:05:15 +01:00
Saul Wold
cf09c7a1e3 iproute2: Disable PARALLEL_MAKE
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-27 09:19:58 -07:00
Dexuan Cui
dd5ad1840d eglibc: add FILESPATH to avoid failure on unpack
Actually Kevin identified the issue:
without this fix, "bitbake eglibc-initial-nativesdk" would fail on unpack.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-27 09:12:02 -07:00
Dexuan Cui
aa8dea4829 poky-default.inc: change the hardcoded glibc-initial to ${POKYLIBC}-initial
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-27 09:12:02 -07:00
Scott Garman
2cb33a983a distro_tracking_fields.inc: update cpio info
Reflects current status of cpio recipes.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-27 09:08:38 -07:00
Scott Garman
928e6ca664 cpio: add version 2.11 (GPLv3)
This is the most recent version of cpio. Recipe derived from
OpenEmbedded's recipe for cpio v2.5.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-27 09:08:38 -07:00
Saul Wold
661e864a03 trace-cmd_git.bb: remove DEPENDS of glibc since there is a system default for
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-27 09:08:16 -07:00
Scott Garman
3b7110b519 distro_tracking_fields.inc: update grep info
Reflects current status of grep, including new recent release
information.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-27 09:07:47 -07:00
Scott Garman
5c46570185 grep: add version 2.7 (GPLv3)
This is the most recent version of grep. Recipe derived from
OpenEmbedded's recipe for grep v2.6.3.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-27 09:07:47 -07:00
Saul Wold
62432db79d task-poky-clutter.bb: removed examples
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-27 08:59:53 -07:00
Saul Wold
63ec0c2632 distro_tracking: Update tracking info
Add additional aliases and tracking fields for missing packages

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-27 08:59:17 -07:00
Saul Wold
055a720359 distro_check.py: Added additional support for distro checking
Now tells which section a macth occurs (main vs contrib)
    Keywords for Poky, OpenedHand, ...

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-27 08:59:16 -07:00
Yu Ke
7531480bbb QEMU: Fix the mouse shadow issue (bug 170)
the root cause is that the qemu cursor array is hardcoded to 256 bytes, while the sato use cursor of the size 64*64=4096, thus lead buffer overflow and abnormal mouse.

A qemu patch is introduced to dynamically allocate qemu cursor array to fix this issue. BTW, qemu upstream already redesign the cursor interface and implementation, and this issue does not occur in upstream, so no need to push this patch to upstream. and when upgrade the qemu, this patch can be safely removed.

Fix [BUGID #170]

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-09-27 08:59:16 -07:00
Qing He
59646974ab qemux86-64: remove -march for 64bit common pc
Fixes [BUGID #347].

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-27 08:59:16 -07:00
Qing He
998a8316a2 task-poky-tools: add rsync in target image
rsync is needed by debugging using SDK, add it as dependency
of task-poky-tools-debug, this fixes [BUGID #345]

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-27 08:59:16 -07:00
Qing He
0f55d28a4d glibc & eglibc: fix mips DT_MIPS_RLD_MAP checking
On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
section if a --version-script sets _RLD_MAP to local. This is apparently
a binutils bug, but libc shouldn't segfault in this case.

Add sanity check on the entry to avoid segfault, fixes [BUGID #287].

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-27 08:59:16 -07:00
Dongxiao Xu
5c8fad6544 poky-qemu-internal: Add userspace nfs support for mips and ppc
Add userspace nfs support for mips and ppc architecture.
This fixes [BUGID #343]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-27 08:59:15 -07:00
Dongxiao Xu
ce456306da gcc: enable poison parameters detection
If not configured with --enable-target-optspace, gcc will report
errors if there is '-Os' optimization in parameters.

This fixes [BUGID #342]

Also add "--enable-target-optspace" option to arm gcc configuration.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-27 08:59:15 -07:00
Zhai Edwin
b3ef7f59e2 xtscal: Fix the endless loop when starting X
xtscal script in Xsession.d would lead endless loop if /etc/pointercal is
missing, which make the system hang.

This fix adds a counter for loop.

[BUGID #251] got fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-27 16:01:49 +01:00
Saul Wold
239a368d57 netbook: Correct netbook build by moving netbook configuration from moblin to meta
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-24 16:43:21 -07:00
Saul Wold
c5b9525263 taglib: move from moblin to recipes-support to support qmmp
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-24 16:40:10 -07:00
Saul Wold
09f1f6939e man-pages_3.25.bb: Fix SRC_URI to contain Archive directory
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-23 12:42:06 -07:00
Saul Wold
233af81e77 distro_tracking_fields.inc: merged fixes
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-22 18:35:29 -07:00
Dongxiao Xu
460954b1b3 upgrade gcc to 4.5.0 for mips architecture
Fix the out of memory when building webkit-gtk with gcc-4.5.0

The new feature added after 4.3.3
"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html"
will cause cc1plus eat up all the system memory when build webkit-gtk.
The function mips_get_pic_call_symbol keeps on recursively calling itself.
Disable this feature to walk aside the bug.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-22 09:52:41 -07:00
Dongxiao Xu
b80483094f meta-ide-support: Fix PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH
Fix PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH to make them point
to the correct directory path.

This fixes [BUGID #340].

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-22 09:52:41 -07:00
Bruce Ashfield
c9e52b05d5 qemuarm: remove NFS_ROOT override
During the debug of disk booting on the qemuarm target, the
NFS_ROOT default settings were incorrectly overriden. This
removes the overide and allows the default / global settings
to be processed.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-22 09:30:57 +01:00
Yu Ke
efd25901aa Add DISTRO_PN_ALIAS for 95 packages
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Mei Lei <lei.mei@intel.com>
2010-09-22 00:06:09 +01:00
Xiaofeng Yan
23bfe02542 [#BUG298]:Fix some bugs during compiling based on x86_64
fix a problem that compliation failed for groff on machine x86_64
Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2010-09-22 00:03:00 +01:00
Richard Purdie
3c5984a5ba bitbake.conf/documentation.conf: Start using SUMMARY variable and document it
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-21 23:53:07 +01:00
Darren Hart
4a10634a88 Correct js jsautocfg.h and install jsproto.tbl
I'm adding mediatomb packages and ran into a couple build issues with js.

The first complained that jsapi.h wasn't found/usable. This turned out to
be because jsautocfg.h was including "../conf.h" instead of "conf.h" as
they are installed in the same directory in the sysroot. I believe the correct
fix for this would involve the configure.ac script which is used to generate
the jsautocfg.h header file we store in the recipe. Commit
f25d26de77 (js: fix configure) added conf.h,
Qing can you comment here?

The second failure is due to jsproto.tbl not being installed but being
referenced by another header file.

This patch corrects the jsautocfg.h header directly and adds the jsproto.tbl
to the do_install() recipe function.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Qing He <qing.he@intel.com>
2010-09-21 23:40:17 +01:00
Darren Hart
1cf456611d Wrap output at 80 columns for poky-env-internal
The output of:

$ source poky-init-build-env

would wrap on 80 character terminals, making the output difficult to read.
Replace the somewhat clumsy repeated usage of "echo" with bash here documents,
limiting line length to 80 characters. The use of here documents simplifies this
by removing any leading commands or indentation from the output being generated.
A bash'ism should be acceptable here as poky-init-build-env already aborts if
the shell is not bash.

Signed-off-by: Darren Hart <darren@dvhart.com>
2010-09-21 23:38:00 +01:00
Dexuan Cui
f342f3ba68 poky.conf: use eglibc rather than glibc
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-21 23:37:29 +01:00
Dexuan Cui
8c33bfc84a [e]glibc-package.inc: fix multiple providers for glibc-gconv-iso8859-1
This commit fixes the following error while doing this:
bitbake poky-image-sato

ERROR: Conflicting PREFERRED_PROVIDER entries were found which resulted in an attempt to select multiple providers (['virtual:nativesdk:/distro/dcui/dexuan/meta/recipes-core/eglibc/eglibc_2.12.bb', '/distro/dcui/dexuan/meta/recipes-core/eglibc/eglibc_2.12.bb']) for runtime dependency glibc-gconv-iso8859-1 The entries resulting in this conflict were: ['PREFERRED_PROVIDER_virtual/libc-nativesdk = eglibc-nativesdk', 'PREFERRED_PROVIDER_virtual/libc = eglibc']
NOTE: multiple providers are available for runtime glibc-gconv-iso8859-1 (eglibc, eglibc-nativesdk, glibc-nativesdk, glibc, external-csl-toolchain, external-poky-toolchain)
NOTE: consider defining a PREFERRED_PROVIDER entry to match glibc-gconv-iso8859-1

And bumped PR.

This partly fixes [BUGID #329]

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-21 23:36:59 +01:00
Dexuan Cui
11a92051e7 poky-eglibc.inc: fix multiple providers for virtual/libc-nativesdk and other
This commit fixes the following error while doing this:
bitbake poky-image-minimal

NOTE: multiple providers are available for virtual/libc-nativesdk (glibc-nativesdk, eglibc-nativesdk)
NOTE: consider defining a PREFERRED_PROVIDER entry to match virtual/libc-nativesdk
NOTE: multiple providers are available for virtual/i586-pokysdk-linux-libc-initial-nativesdk (glibc-initial-nativesdk, eglibc-initial-nativesdk)
NOTE: consider defining a PREFERRED_PROVIDER entry to match virtual/i586-pokysdk-linux-libc-initial-nativesdk

And bumped PR.

This partly fixes [BUGID #329]

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-21 23:36:37 +01:00
Tom Zanussi
73049a3431 handbook: add BSP click-through licensing section
Add a section to the BSB Developer's Guide outlining the motivation
and procedures for click-through BSP licensing support.

The corresponding build system support hasn't been implemented yet;
this is being added now mainly as a guideline wrt future intentions.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-09-21 23:36:05 +01:00
Tom Zanussi
c0317494aa Fix some typos and grammatical errors in Poky handbook
While going through the BSP section, I noticed some minor problems -
these are my cleanup fixes.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2010-09-21 23:35:36 +01:00
Bruce Ashfield
7450c1a2db linux-wrs: update SRCREVs
The following are the highlights of the latest updates to the
2.6.34 kernel tree:

086d819 selinux: fix parallel compile error
0bffbc5 MIPS: Audit: Fix hang when starting audit
e49491e ucc_geth: fix ethtool set ring param bug
53b9f33 params: don't hand NULL values to param.set callbacks.
eb3b13c irda: Correctly clean up self->ias_obj on irda_bind() failure.
b4aee0b crypto: fix missed kfree for crypto_req
f8490d8 x86-64, compat: Test %rax for the syscall number, not %eax
c3acc43 x86-64, compat: Retruncate rax after ia32 syscall entry tracing
5c21faf compat: Make compat_alloc_user_space() incorporate the access_ok()
afc2a18 Merge commit 'v2.6.34.7' into standard
f423469 Linux 2.6.34.7

Built and booted on all architectures.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-21 13:38:25 +01:00
Qing He
68772b9103 zypper: fix runtime dependency
add procps as runtime recommendation, since pgrep is used by zypper
binary

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-21 13:37:57 +01:00
Qing He
eede7208aa libzypp: RDEPENDS sat-solver
rpmdb2solv provided by sat-solver is executed from within libzypp,
RDEPENDS sat-solver to get the utility included, fixes [BUGID #328]

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-21 13:37:38 +01:00
Richard Purdie
d8137c014f eglibc: Add in libc_cv_slibdir setting as used by glibc to fix 64 bit builds
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-21 00:16:15 +01:00
Richard Purdie
d08f922083 recipes-tbd: Drop old external CSL toolchains and no obsolete staging-linkage recipe
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-20 14:20:06 +01:00
Richard Purdie
79a4501a2e Complete packages -> recipes transition
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-20 14:18:45 +01:00
Dongxiao Xu
03d9669cbc distro_track: add dpkg, m4, and cmake tracking fields
distro_tracking_fields.inc: moved updates to master file

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-17 14:21:28 -07:00
Dongxiao Xu
0ff070bbf1 gcc: upgrade gcc for powerpc to version 4.5.0
Fix one parameter order issue for base_contains function,
which impacts glibc build under new gcc.

Add new judge code to determine whether <altivec.h> is needed.
This fixes the mpeg2dec build failure under new gcc.

Use O2 as the optimization flag to tinylogin as it will meet
segfault if compiled by gcc-4.5.0 when enable both frename-registers
and Os options. Use O2 instead.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-17 11:41:58 -07:00
Zhai Edwin
8e9caafd0b formfactor: Add machconfig in qemux86-64 to avoid HAVE_KEYBOARD unset.
This prevent matchbox-kerboard starting as daemon automatically.

Also fix minor issue of netbase on qemux86-64, and add the machine in
local.conf.sample

[BUGID #308] fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-17 11:33:26 -07:00
Tom Zanussi
a50dd612ad perf: Add libelf to dependencies
Fix for unresolved libelf error when running perf:

perf: error while loading shared libraries: libelf.so.1: cannot open
shared object file: No such file or directory

Signed-off-by: <tom.zanussi@intel.com>
Signed-off-by: <bruce.ashfield@windriver.com>
2010-09-17 11:32:38 -07:00
Scott Garman
87cac1db8c bblayers.conf.sample: remove meta-moblin from default layers
This fixes [BUGID #273]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-17 11:32:00 -07:00
Saul Wold
0be92981b3 poky-qemu-internal: fix locking of tap lockfile
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-17 11:30:44 -07:00
Saul Wold
a67d9dcaa9 distro_tracking_fields.inc: Merged tracking data
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-17 11:30:44 -07:00
Dexuan Cui
089b1860c7 Distro tracking: update mdadm, screen, oprofile; add libsdl
Add tracking info for libsdl;
Move oprofile from distro_toolchain_devel.inc to distro_toolchain_devel.inc;
Add RECIPE_MAINTAINER_pn for mdadm, screen, oprofile, libsdl.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-17 11:30:43 -07:00
Saul Wold
ad972a787c Distro Tracking: Updated and add Poky Alias info
distro_check.py: Add DISTRO_PN_ALIAS check for Poky, OpenedHand,
                 Intel and Upstream, to mark packages that are
                 not in known upstreams
distro_tracking_fields.inc:
                Merged private files into 1 master file
                Added additional Maintainer Info
                Added Distro Alias information for Poky and OpenedHand

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-17 11:30:43 -07:00
Qing He
3a0b3da57b distro-track: zypper related packages
add tracking fields for zypper related packages

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-17 11:30:43 -07:00
Qing He
7c99ba8470 avahi: explicit depends on libcap
This avoids possible host contamination, fixes [BUGID #288]

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-17 11:30:43 -07:00
Yu Ke
6295c9add5 distro field: add distro fields for some graphcis recipes
they are:
	imake
	fotowall
	libdrm-poulsbo
	mesa-dri-glsl-native
	qt4-tools-native
	quicky
	xf86-video-vesa

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-09-17 11:30:43 -07:00
Zhai Edwin
83c005da5a distro tracking: Add info for gobject-introspection, gdk-pixbuf-csource-native and qemu-helper-native...
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-17 11:30:43 -07:00
Saul Wold
3197bcfcbc distro data: Update distro data tracking data
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-17 11:30:42 -07:00
Richard Purdie
d1ff9aa4f3 toolchain-scripts: Add POKY_TARGET_SYSROOT variable for SDK usage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-16 15:35:28 +01:00
Richard Purdie
5b02bbcc32 local.conf.sample: Fix commented value to match the default download directory
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-16 15:16:01 +01:00
Richard Purdie
f47ae202af toolchain-scripts: Export TARGET_PREFIX and GDB variables for SDK usage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-16 15:16:01 +01:00
Richard Purdie
fe0f86e15c bitbake/runqueue: Remove now unneeded indentation
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 21:00:10 +01:00
Richard Purdie
474c2a2817 bitbake/runqueue.py: Optimise delay values to avoid unneeded delays
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 16:57:13 +01:00
Richard Purdie
e888596636 sstate: Trigger generation of siggen info when building sstate packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 15:41:07 +01:00
Richard Purdie
19d9435a32 bitbake/siggen: Allow generation of siggen data from task context
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 15:40:31 +01:00
Richard Purdie
89c7260931 bitbake/build.py: Set BB_FILENAME to represent the .bb file being built (including any virtual prefix)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 15:39:07 +01:00
Richard Purdie
d94f0f74c1 bitbake/siggen.py: Improve debugging of checksums
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 12:17:33 +01:00
Richard Purdie
4aec2155a5 bitbake/data.py: Allow variables to suplement dependencies using the vardep flag
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-13 12:16:46 +01:00
Joshua Lock
c01e8760ba bitbake/fetch: ensure the go() method completes when not using premirrors
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-10 18:36:35 +01:00
Richard Purdie
dc4d33cf0f poky-default-revisions.inc: Add missing SRCREV for dtc-native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 18:32:19 +01:00
Bruce Ashfield
919ae74811 qemu_x86_64/conf: enable E1000 by default
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-10 17:36:01 +01:00
Richard Purdie
6a16ff4c92 dtc: Drop unneeded SRCREV
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 13:01:45 +01:00
Adrian Alonso
6cbc2c3b56 dtc: device tree compiler recipes
* Device tree compiler recipes from OE
* v2 reorder patchset
* remove BBCLASSEXTENDDED from dtc-native.inc
* v3 remove installing dtc in ${STAGING_BINDIR}
* fix PR variable follow Poky guidelines
* v4 fix PV variable

Signed-off-by: Adrian Alonso <aalonso00@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 13:00:49 +01:00
Adrian Alonso
c541b598c8 poky-default-revisions: set default dtc srcrev
* Set default devicetree SRCREV version

Signed-off-by: Adrian Alonso <aalonso00@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 13:00:20 +01:00
Adrian Alonso
9619df0969 linux: add binary devicetree generation
* Add binary devicetree generation support
* Taken from OE
* v2 reorder patch set
* v3 remove package_stagefile_shell
* v4 rename devicetree_image function to install_append
* remove pkg_postinst_kernel-devicetree,
  pkg_postrm_kernel-devicetree functions
* Update KERNEL_DEVICETREE_FLAGS use "-p" option instead
  of "-S" which is deprecated

Signed-off-by: Adrian Alonso <aalonso00@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 13:00:15 +01:00
Jeff Polk
be11510e21 ncurses: rename site_config that was mis-merged when ncurses moved
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-10 12:57:34 +01:00
Jeff Polk
2e9d981d76 autotools: enable siteconfig by default
eglibc glibc ncurses uclibc zlib: remove explicit siteconfig

Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-10 12:57:16 +01:00
Jeff Polk
c3269e20bf siteinfo: add SITECONFIG_SYSROOTCACHE definition in place of hard-coded path
siteconfig: use SITECONFIG_SYSROOTCACHE and use sstate-interceptfuncs

Use the new sstate-interceptfuncs functionality to interpose do_siteconfig
between the sstate_install and package.

Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-10 12:56:56 +01:00
Jeff Polk
27dd7f82c9 sstate: Add sstate-interceptfuncs called between install and package
Adds the ability to impose intercept function call(s) after
sstate_install and before sstate_package in sstate_task_postfunc.

Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-10 12:55:34 +01:00
Nitin A Kamble
d6e8013a8c [e]glibc-package.inc: fix providers for libsegfault and other
[e]glibc-nativesdk should not be providing libsegfault.

This commit fixes the following error while doing this:
bitbake poky-image-minimal-initramfs

DEBUG: providers for libsegfault are: ['glibc-nativesdk', 'glibc',
'eglibc-nativesdk', 'external-csl-toolchain', 'eglibc',
'external-poky-toolchain']
DEBUG: selecting
virtual:nativesdk:/rphome/poky/meta/recipes-core/glibc/glibc_2.10.1.bb
as PREFERRED_VERSION 2.10.1 of package glibc-nativesdk (for item
libsegfault)
DEBUG: selecting /rphome/poky/meta/recipes-core/glibc/glibc_2.10.1.bb as
PREFERRED_VERSION 2.10.1 of package glibc (for item libsegfault)
NOTE: checking PREFERRED_PROVIDER_glibc-nativesdk
NOTE: checking PREFERRED_PROVIDER_glibc-nativesdk-2.10.1
NOTE: checking PREFERRED_PROVIDER_glibc-nativesdk-2.10.1-r3
NOTE: checking PREFERRED_PROVIDER_virtual/libc-nativesdk
NOTE: selecting glibc-nativesdk to satisfy runtime libsegfault due to
PREFERRED_PROVIDER_virtual/libc-nativesdk = glibc-nativesdk

And bumped PR.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 12:53:46 +01:00
Nitin A Kamble
b273ca2be0 libc-package.bbclass: fix qemu issue with pseudo
This solution is what Mark Hatle recommended.

To disable pseudo, while already running, you need to set:
PSEUDO_RELOADED=YES, and then exec something...

This causes pseudo to disable itself from LD_PRELOAD, and thus fall
out of memory on the exec.

This Fixes [BUGID #226]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-10 12:53:10 +01:00
Mark Hatle
b4c5b953c8 pseudo: Update pseudo to latest revision
Fix bug 231 by changeing to the latest revision of pseudo.

The latest revision of pseudo includes the following changes:

2010-09-08:
  * (seebs) handle mkfifo without guaranteeing an EINVAL response.

2010-09-02:
  * (seebs) fix errno for getcwd() with insufficient size
  * (seebs) Add an RPATH entry to the pseudo binary to find the sqlite3
    library.

2010-09-01:
  * (seebs) add missing casts to even more printf arguments

2010-08-31:
  * (seebs) add missing casts to printf arguments, after being warned
    about them a mere twenty or thirty thousand times.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-10 12:51:16 +01:00
Mark Hatle
d87034e41a rootfs_rpm: Fix workaround
The exit 0 in the workaround seems to have causes the filesystem creation
process to stop.  Instead change it to an if that can never succeed.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-10 12:50:43 +01:00
Richard Purdie
75bffcd47a handbook: Drop USB Networking section, its no longer appropriate
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 12:44:56 +01:00
Richard Purdie
ad30f2cc4e handbook: Various minor fixes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 12:32:48 +01:00
Yu Ke
0a217cd18f handbook: review and update CH1(introduction) and CH2(using Poky)
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-10 12:32:13 +01:00
Dexuan Cui
8627258ac3 handbook: review and modify Appendix A, D and E
Major change are about the structure of Poky source tree, which has been
changed a lot recently

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-10 12:23:21 +01:00
Zhai Edwin
8c7e1aced8 handbook: review and modify CH4 (BSP) and Appendix B
Besides basic corrections, also add .bbappend to bsp introduction
and update bitbake help to match latest output

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-10 12:20:44 +01:00
Dongxiao Xu
2beaecb351 handbook: Fix some errors in Appendix F/G
CVS_TARBALL_STASH and SHELLRCCMD is not found in current poky.
Fix some grammar issues.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Qing He <qing.he@intel.com>
2010-09-10 12:18:00 +01:00
Lianhao Lu
276abb19ce handbook: review and correct CH5(development)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Liping Ke <liping.ke@intel.com>
2010-09-10 12:17:48 +01:00
Qing He
a6e7652944 handbook: update appendix C/H/I
The following is suggested but not changed:
 - adding documentation of cmake.bbclass
 - remove src_distribute_local.bbclass

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-10 12:14:02 +01:00
Kevin Tian
3c6e1d7c62 handbook: review and correct CH3(extend poky) in handbook
Fix inaccurate descriptions.
Update recipe examples to make sure they do build
Add some examples for better guidance

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Ke Yu <ke.yu@intel.com>
2010-09-10 11:57:31 +01:00
Bruce Ashfield
7ef8658402 linux-wrs/meta: fix qemuarm boot issues with 2.6.34.6
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-10 11:55:52 +01:00
Bruce Ashfield
1ea9ad4df2 qemu: add qemu-mipsel to the list of simulators
Add qemu-mipsel to the list of generated simulators. Obviously
this is needed to build a MIPS little endian system.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-10 11:55:37 +01:00
Dongxiao Xu
30c2b0bb84 connman-gnome: Add some functionality.
Add offline mode.
Add ethernet/wifi enable/disable functionality.
Classify each service (ethernet, wifi) into certain group.
Do some code clean up.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-10 11:52:50 +01:00
Zhai Edwin
566de26cf5 bitbake: Add proxy variables to standard export list
With "no_proxy" exported to bitbake, both internal and externel file mirror can
be used. "https_proxy" enable fetching "https://" file through proxy.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-10 11:47:38 +01:00
Zhai Edwin
3a530fb3a3 Fix the matchbox-panel seg fault on netbook & emenlow
netbook & emenlow use "-march=core2"(in tune-atom.inc) instead of "=i586"(for
qemux86), plus the "-fomit-frame-pointer" in default FULL_OPTIMIZATION, this
cause strange seg fault when starting matchbox-panel.

seg fault happened @ tmp_reset_bg (gtk+-2.20.1/gdk/x11/gdkwindow-x11.c), which
is inline function extended inside _gdk_x11_window_tmp_unset_bg. When expanding
GDK_DRAWABLE_XID(obj->bg_pixmap) with gcc 4.5.0 optimization, a function call
is missing. Saving a local var to stack also disappeared, but still tried to
restore it from stack, which cause seg fault after getting a worng value.

This fix avoid "-fomit-frame-pointer" in gtk+ on netbook & emenlow.

[BUGID #224] fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-10 11:47:21 +01:00
Richard Purdie
c4fb6982c0 netbase: Don't hardcode the qemu IP config
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 11:38:34 +01:00
Richard Purdie
f7f044c220 scripts/runqemu: Drop broken toolchain symlink code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 10:45:55 +01:00
Richard Purdie
c4ff5f3038 scripts/poky-qemu-ifup: Ensure the host has a route to it
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 10:45:55 +01:00
Richard Purdie
8e43883f97 scrtips/poky-qemu: Fix network interface device numbering
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 10:45:55 +01:00
Richard Purdie
3dd36ababd poky-qemu-internal: Fix ifdown script to use the correct variable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 10:45:55 +01:00
Richard Purdie
3d4089ca5e gnu-config: Fix target version to contain all the substitutions and not overwrite the first half with the second set of changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-10 10:45:55 +01:00
Kevin Tian
082976c05f libzypp: change /usr/lib64 to /usr/lib
similar to previous sat-solver fix, we use /usr/lib for x86-64 target

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-09 16:56:37 +01:00
Richard Purdie
9402f934b6 linux-wrs: Update now SRCREV variable order is fixed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-09 15:19:23 +01:00
Bruce Ashfield
8fe347a851 linux-wrs: validate branches against known revisions
It is possible for the git repository to have commits on branches
that are ahead of the SRCREVs for those branches. Since the
kern tools will simply checkout and build, we can end up building
a different kernel than what is expected.

It is up to the recipe to ensure that the branches are at the
correct commits. To do this, we simply check the current machine
branch against the SRCREV and if they don't match we move the
existing branch and do a checkout at the desired commit.

Note: This probably needs to be disabled with AUTOREV.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-09 15:18:30 +01:00
Richard Purdie
be74657ced poky-default-revisions.inc: Fix variable order for linux-wrs recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-09 15:17:50 +01:00
Richard Purdie
f7b1c1056e bitbake/__init__.py: Fix named SRCREVS variable name ordering with backwards compatibility
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-09 15:09:50 +01:00
Bruce Ashfield
1e65495801 trace-cmd: add to profiling recommends
Make trace-cmd available by adding it to RECOMMENDS_task-poky-tools-profile

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-09 15:03:32 +01:00
Saul Wold
5b803e65d3 task-poky-lsb: Remove man-pages due to build failures
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-08 23:54:41 -07:00
Saul Wold
102e24d31a task-poky-lsb: add man-pages, which will pull man and groff
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-08 16:36:53 -07:00
Saul Wold
1f65837e78 image.bbclass: change IMAGE_EXTRA_SPACE to IMAGE_OVERHEAD_FACTOR
This change allows the IMAGE_OVERHEAD_FACTOR (default to 1.2) to
adjust dynamicly how much space to add for each image, thus there
is 20% overhead space by default.

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-08 16:36:53 -07:00
Xiaofeng Yan
7400ece674 man-pages:Add new man-pages package
The Linux man-pages project documents the Linux kernel and C library interfaces that are employed by user programs

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2010-09-08 16:36:53 -07:00
Xiaofeng Yan
ef8d4dc7d5 groff:Add new groff package
groff allows for a short reference for the GNU roff language

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2010-09-08 16:36:53 -07:00
Xiaofeng Yan
3f71edc3ef man: Add new man package
A set of documentation tools: man, apropos and whatis

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2010-09-08 16:36:53 -07:00
Dexuan Cui
e3f492603e Distro tracking: add package aliases
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-08 16:36:53 -07:00
Saul Wold
b98154a851 at: Disable PARALLEL_MAKE for at and add back to task-basic
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-08 16:36:53 -07:00
Nitin A Kamble
cdbbc68d08 gcc_4.5.0: add --enable-poison-system-directories option to cross
recipes

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-08 16:36:52 -07:00
Nitin A Kamble
75b90f1d6d binutils: add binutils_poison.patch
and also correct the license field in the recipe

This fixes [BUGID #245]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-08 16:36:52 -07:00
Joshua Lock
3e7db72216 bitbake: save the initial PATH for use when starting a subprocess
It was possible for bitbake-runtime to be run against a semi-installed
python-native resulting in tracebacks with ImportError's.

To prevent this we stash the initial PATH in the BBConfiguration when bitbake
is started and then set this in the env when launching bitbake-runtask through
subprocesses Popen() call.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-08 19:22:37 +01:00
Joshua Lock
8be5593777 kernel.bbclass/linux-wrs: move definition of perf package to kernel class
By defining the perf package in the shared kernel class bitbake will be able to
find the package provider even when the preferred kernel doesn't build perf,
preventing dependency resolution failures.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-08 16:42:52 +01:00
Richard Purdie
fac3ca94a2 package.bbclass: Ensure all packages package when running a build
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-08 15:55:10 +01:00
Joshua Lock
04b8511614 bitbake/fetch/git: fix try_premirror() definition .Method takes 4 parameters.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-08 15:14:07 +01:00
Joshua Lock
3341e47b52 bitbake/fetch: fix by moving try_premirror() to the right place
The previous commit didn't define the method as part of the Fetch object

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-08 15:09:07 +01:00
Dexuan Cui
3010c96a3f powertop: fix a typo: REPENDS ==> RDEPENDS
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-08 14:48:11 +01:00
Kevin Tian
c519aec68c libzypp: workaround to pass mips build
libzypp failed due to GCC "internal compiler error: segmentation fault" error on
MIPS target. The cause is about boost tribool type usage. If having assignement
within conditional check as below:

	if ( (a = b) )
		...
<a is a tribool type, b is a normal bool type>

then gcc4.3.3 throws internal error. Then the workaround is to move assignement
out of the conditional check.

However I didn't find same case from web.

We can come back to recheck this issue after upgrading to gcc4.5.0 for MIPS. If
this issue is still there, we'll need more analysis to decide whether to report
to gcc upstream or to libzypp upstream.

This fixes [BUGID #277]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-08 14:39:00 +01:00
Kevin Tian
7892add2de sat-solver: change /usr/lib64 to /usr/lib
we use /usr/lib for x86-64 target, but sat-solver will use /usr/lib64 if 64bit
target arch is detected. This finally causes libzypp failed to find libsatsolver.a.
use "-DLIB=lib" to explicitly enforce the requirement

fix [BUGID #286]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-08 14:38:37 +01:00
Joshua Lock
7117a4458b bitbake/fetch: add try_premirror method and special case git fetcher
Add a new method, try_premirror, to the Fetch object which checks to see
whether the file needs to be fetched from a premirror.
Override this in the Git fetcher to only require a pre-mirror fetch when the
clone directory does not exist.

Fixes [BUGID 290]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-08 14:25:24 +01:00
Richard Purdie
7b580b488c bitbake/bitbake-runtask: Ensure signals to the parent don't pass to the children directly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 23:54:15 +01:00
Richard Purdie
7ef65593aa qemu: Apply fix for armv6 locale generation using TLS registers
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 22:29:28 +01:00
Richard Purdie
51dd0269bc ldconfig-native: Set LICENSE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 18:08:01 +01:00
Richard Purdie
e8518d4b2e poky-image: Set LICENSE field for the image recipes (note this doesn't apply to the image contents, just the recipe and code used
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 18:05:16 +01:00
Richard Purdie
fb617bed6e poky-image: Set LICENSE field for the image recipes (note this doesn't apply to the image contents, just the recipe and code used
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 18:03:51 +01:00
Richard Purdie
8ee9aff079 tasks: Set LICENSE field
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 17:55:00 +01:00
Yu Ke
b49bfb2244 QT4 mips: disable the LDFLAGS "-Bsymbolic-functions"
"-Bsymbolic-functions" flag makes ld to bind the global function symbol of shared library at compiling time, thus reduce the runtime relocation cost.

However, this flag in binutil 2.20 cause QT4 mips building failure, which is "final link failed: Bad value" error in libQtWebKit.so linking stage. If downgrad to binutil 2.19, this error disappears.

so before binutil new release is out, it is better to disable this flag for QT4 mips.

Fix [BUGID #271]

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-09-07 15:58:10 +01:00
Richard Purdie
b86a5977e1 linux: Fix the compulab image post deploy function by making it a postfunc
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 15:16:31 +01:00
Richard Purdie
e8fdc98779 sstate: Make sure the sstate function is the last to run, not the first
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 15:16:31 +01:00
Richard Purdie
7e46fc81d4 pseudo: Honour the NO32LIBS variable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 15:16:31 +01:00
Richard Purdie
647713050b bitbake/codeparser: Deal with functions with trailing whitespace
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 14:33:53 +01:00
Richard Purdie
1c24729697 udev: Drop old versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 12:10:26 +01:00
Richard Purdie
85cf6f3e97 poky-default.inc: Use standard udev version for PPC, seems to work fine
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-07 12:10:26 +01:00
Joshua Lock
9b800fe261 scripts: use the exported POKY_NATIVE_SYSROOT variable
Rather than trying to determine things through guess-work use the newly
exported variables to determine where the native binaries reside and
whether we are running in a build directory or not.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-07 11:22:54 +01:00
Joshua Lock
c97f3a5df4 toolchain-scripts: export extra variables for use by scripts
Export the location of the native sysroot for use in the scripts to
determine the location of native binaries.

Also add a POKY_DISTRO_VERSION to the external toolchain environment as a
method of determining if we're running under a build directory or not
i.e. not if the variable is empty

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-07 11:22:54 +01:00
Joshua Lock
13ef707ab1 runqemu-nfs: check for required programs
The unfs server requires either rpcbind or portmap to be installed and
running to start so check for their presence in the script.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-07 10:48:21 +01:00
Richard Purdie
f57a3d9508 linux-wrs: Ensure S directory exists else task can fail
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-06 23:18:28 +01:00
Richard Purdie
d17a09376d gcc-crosssdk-initial: Ensure native dependencies are built, these can differ accross different gcc versions causing build failures
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-06 22:55:49 +01:00
Bruce Ashfield
fea28c22f4 kernel/wrs: update SRCREV for v2.6.34.6 + changes
Updating the SRCREVs for the recent port of bug fixes for all boards
and the integration of qemux86-64 config and connector changes.

Now that the qemux86-64 changes are in tree, we can drop them from
the linux-wrs recipe.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-06 16:15:31 +01:00
Kevin Tian
e359e25dc7 task-poky-tools.bb: avoid multiple RRECOMMENDS to override each other
there're two RRECOMMENDS_task-poky-tools-profile both using direct assignment,
which makes 'perf' overriden by "kernel-module-oprofile"

Fix [BUGID #97]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-06 15:59:45 +01:00
Richard Purdie
95b2d9395e poky-default-revisions.inc: Move SRCREVs to correct locations, fix whitespace
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-06 14:56:57 +01:00
Joshua Lock
b78d5368cc fetch: fix setting of localpath in SRC_URI parameters
When setting localpath in the SRC_URI parameters the basename should be set
explicitly as the localpath() method is not called.

Fixes [BUGID #81]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-06 14:32:31 +01:00
Richard Purdie
aa3d81f67c poky-default.inc: Make sure sdk version of gcc is fixed and doesn't change
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-06 14:31:35 +01:00
Saul Wold
e013185ac1 tasks-poky-basic and tasks-poky-qt: bump PR and remove at
Remove at since it's failing build
Add Zypper to lsb image

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-04 17:12:55 -07:00
Saul Wold
18ea4d2a30 task-poky-qt.bb: Exclude mips from building
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-03 18:40:23 -07:00
Scott Garman
d970584799 clutter-mozembed: move patches back into meta-moblin
These patches were mistakenly moved into meta/recipes-graphics/clutter
during the metadata reorg. This moves them back where they belong.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-03 18:33:25 -07:00
Mark Hatle
c849ec75e7 rpm: Fix autoconf/libtool usage
In order to resolve a host-contamination problem, we re-work the way that
autoconf and friends are invoked during the compilation of RPM.

This has a side effect of fixing another bug where RPM was being renamed
HOST_ARCH-HOST_OS-rpm.  So we remove the "fixes" for that behavior as well.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-03 18:30:47 -07:00
Mark Hatle
a9b715736f rootfs_rpm: Workaround for checksum changes
With the new checksum changes, the system is no longer able to determine
if the function resolve_package is used.  So it doesn't get emitted.  The
workaround resolves this by triggering an exit 0, followed by a bogus usage
of the function.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-03 18:30:47 -07:00
Qing He
7b017195a3 zypper: add new package
Signed-off-by: Saul Wold <saul.wold@intel.com>
Signed-off-by: Qing He <qing.he@intel.com>
2010-09-03 18:30:17 -07:00
Qing He
162c652a2c libzypp: add new package
Signed-off-by: Saul Wold <saul.wold@intel.com>
Signed-off-by: Qing He <qing.he@intel.com>
2010-09-03 18:30:16 -07:00
Qing He
1fb94b77f8 sat-solver: added new package
Signed-off-by: Saul Wold <saul.wold@intel.com>
Signed-off-by: Qing He <qing.he@intel.com>
2010-09-03 18:30:16 -07:00
Qing He
079b70a76c augeas: add new package
version 0.7.3

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-03 18:30:03 -07:00
Scott Garman
63f7b0a703 Fix broken references to libcheck
* check has been renamed to libcheck

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-03 23:31:07 +01:00
Richard Purdie
0843607a2b rpm: Change the way the python version is determined so its sane and works with checksumming
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 23:23:09 +01:00
Saul Wold
3e38d633c9 task-poky-qt: create a task and add to poky-image-sdk
Fixes [BUGID #260]

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-03 18:31:52 +01:00
Kevin Tian
41d02d40ed bootmisc.h: use "date -s" to set time
without "-s", 201009031653 would be interpreted incorrectly by date
and then we saw below warning:
	date: invalid date 165320100903

Fix [BUGID #265]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-03 18:17:45 +01:00
Dexuan Cui
e5fe433b14 distro-tracking: update lttng-ust, lttng-viewer
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-03 18:17:44 +01:00
Dexuan Cui
02c122cb5e lttng-viewer: upgrade to the latest version 0.12.35
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-03 18:17:44 +01:00
Dexuan Cui
ee3e622999 lttng-ust: upgrade to the latest version 0.7
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-03 18:17:44 +01:00
Richard Purdie
33e2b4a8a7 poky.conf: Set hash policy
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 16:25:24 +01:00
Richard Purdie
8d764de25f bitbake: Add missing signature files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 16:11:45 +01:00
Richard Purdie
43595fabbe bitbake: Implement signatures
Includes functionality to find out what changes between two different singature data dumps.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 16:08:32 +01:00
Richard Purdie
453d8f49ac bitbake/codeparser: Ensure cached sheel entries return the correct dependencies
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 16:08:32 +01:00
Richard Purdie
e8ed1454ae bitbake/ast: Ensure function definitions are always added to the dictonary
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 16:08:31 +01:00
Richard Purdie
a6ce10e83e sstate: Handle symlink directory entries correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 15:28:27 +01:00
Mark Hatle
7e36135a7e rpm: Raise the number of potential rescans before aborting with a dep loop
Within Poky we have a large number of self-referencing packages.  So we
need to raise the number of rescans before triggering a dependency loop
error.  100 seems like a reasonable number.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-03 13:59:01 +01:00
Jeff Polk
a2116860eb eglibc: Add siteconfig cache generation
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-03 10:50:03 +01:00
Jeff Polk
1f1aac7a84 uclibc: Add siteconfig cache generation
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-03 10:50:03 +01:00
Jeff Polk
cd9379c390 ncurses: Add siteconfig cache generation
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-03 10:50:02 +01:00
Jeff Polk
7f286e28ec zlib: Add siteconfig cache generation
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-03 10:50:02 +01:00
Jeff Polk
f5389267b0 glibc: Add siteconfig cache generation
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-03 10:50:02 +01:00
Jeff Polk
d2febcce2b siteconfig: generate configuration data caches for autoconf
siteinfo: Use configuration caches when available

Generate cached configuration data for autoconf for the package
based on a list of header, types, and functions to eliminate the
need for all subesequent package builds to do the actual tests
via the cross compiler and sysroot.  The cache files are
stored in the sysroot in ${STAGING_DATADIR}/${TARGET_SYS}_config_site.d.
Siteinfo appends any files it finds in that directory to the normal
CONFIG_SITE.  All of the cache values set the variables only if not
already set so they may be overridden by any of the normal site files.

Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
2010-09-03 10:50:02 +01:00
Mark Hatle
d6c45f0f11 rootfs_rpm: Support install_all_locales
Support installing all locales similarly to how it is done within the ipk
support.  This has had basic testing, but it's not a normally used function
so there could still be some flaws.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-03 09:45:29 +01:00
Mark Hatle
2f68de1e88 roots_rpm: Enable installation of recommended packages
Within RPM there is a field called "Suggests".  This filed behaves like
"Recommends" does in ipk.  So we write out the packages using the Suggests
field with the Poky 'Recommends' values... and then use the arbitrary tags to
capture the Poky 'Suggests' within a new "Recommends" tag.

Slightly confusing, but the end result is a functioning install.

Also some performance enhancements were add at the same time.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-03 09:44:56 +01:00
Mark Hatle
84e1f5a689 package_rpm: Start packaging directories
Match ipkg behavior and unconditionally include directories in the packages

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-03 09:43:14 +01:00
Kevin Tian
9f60a6fbfb glibc-package.inc: disable build-time locale generation for nativesdk
The idea of build-time locale generation is documented in glibc-package.inc:

    Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
    is set. The idea is to avoid running localedef on the target (at first boot)
    to decrease initial boot time and avoid localedef being killed by the OOM
    killer which used to effectively break i18n on machines with < 128MB RAM.

However it doesn't make sense to do same thing for glibc-nativesdk, as the
build system is powerful. More importantly is that ideally host_arch running
sdk may even be out of the support list of target_arch by qemu-native.

Regarding to above rationale, this commit disables build time locale
generation to avoid following error when asking qemu to run localdef:

NOTE: /opt/poky/sysroots/i586-pokysdk-linux/lib/ld-linux.so.2: No such file or directory

nativesdk binaris have opt path hardcoded to avoid mess with host bits, which
is another reason that build time locale generation is not feasible here.

This fixes [BUGID #264]

also add 'nativesdk' to eglibc per RP's suggestion

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-03 09:30:26 +01:00
Richard Purdie
3d7431b71b eglibc: Set BBCLASSEXTEND to include nativesdk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-03 09:29:36 +01:00
Kevin Tian
7e80c6e446 udev: don't reference parent sysfs node directly
udev warns direct reference to parent sysfs, which is not necessary and
may break future kernel. Actually udev will handle parent nodes automatically
for ATTRS key.

This fixes [BUGID #113]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-03 08:58:25 +01:00
Kevin Tian
5c1638ced3 kern-tools: add dependency on guilt-native
Fix [BUGID #262]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-03 08:57:57 +01:00
Saul Wold
9bf90ab9dd rpcbind: move patch to correct location
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 15:19:34 -07:00
Saul Wold
893713352a linux-libc-headers: update hayes-gone patch to remove HAYES ioctls from mips
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 15:19:34 -07:00
Saul Wold
c840412b69 setserial: add patch to fix missing stdlib header
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 15:19:34 -07:00
Xiaofeng Yan
3be379dea3 mingetty: Add new mingetty package
mingetty allows for a compact getty program for virtual consoles only

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2010-09-02 15:19:34 -07:00
Xiaofeng Yan
47423b530f logrotate: Add new logrotate package
logrotate allows for the rotation, compression and removal of system log file

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2010-09-02 15:19:34 -07:00
Dexuan Cui
dea8d65f3c distro-tracking: update cronie
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-02 15:19:33 -07:00
Dexuan Cui
c398c16aa5 cronie: add the latest version 1.4.4
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-02 15:19:33 -07:00
Saul Wold
883b09fefe task-poky-basic: add cron, logrotate, mingetty
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 22:17:23 +01:00
Nitin A Kamble
2eeb0943ac at: fix for parallel build issue & bug #180
parallel build was failing inconsistently due to missing dependancy
specification in the make file. Fixed it with a new patch.

Bug 180 reported this issue:
| arm-poky-linux-gnueabi-gcc -march=armv5te -mtune=arm926ej-s -c -I.
-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2
-ggdb
-feliminate-unused-debug-types -DHAVE_CONFIG_H -DVERSION=\"3.1.12\"
-DETCDIR=\"/etc\" -DLOADAVG_MX=0.8 -DDAEMON_USERNAME=\"daemon\"
-DDAEMON_GROUPNAME=\"daemon\" -DLFILE=\"/var/spool/cron/atjobs/.SEQ\"
-Wall
atd.c
| atd.c:511:2: error: #error "No mail command specified."
| make: *** [atd.o] Error 1

Fixed it with the recommended solution of defining SENDMAIL as /bin/true

Fixes [BUGID #180]

Reorganized the recipe file for cleanlyness.
Add the init script for at

As per Scott's wiki instructions added the this init script for at:
http://git.buildroot.net/buildroot/tree/package/at/S99at

add libpam to dependancy
And bumped PR.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-02 22:17:11 +01:00
Saul Wold
558ef57097 rpcbind: add patch to fix host include path
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 11:59:08 -07:00
Joshua Lock
a6c83e0620 qemu: build qemu-x86-64 binary for use in locale generation
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-02 14:07:11 +01:00
Bruce Ashfield
1ff9c93e49 updateme: detect and prepare patches
The big part of this commit is to detect and prepare any
"free floating" patches into a kernel feature that will be
automatically applied to the kernel tree. These patches will
be pushed onto the BSP branch via guilt, and then built as
part of the normal build/deploy cycle.

There are other grouped cleanups, such as tabs instead
of spaces, and the removal of the unused decheckpoint
function.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-09-02 11:02:55 +01:00
Jiajun Xu
80993c4e1b qemuimage-testlib: kill qemu process according to its pid, instead of process name
poky-qemu-internal will set up a tap lockfile when creating tap device. The lockfile
will be released when a TERM signal is received. In previous code, function
Test_Kill_Qemu uses pkill to kill all process named "qemu". This may cause lockfile
release function not work in poky-qemu-internal. Then poky-qemu-internal will be
hang when user start QEMU the second time. To prevent the issue, the new function
Test_Kill_Qemu kills all child pid with a given parent process ID.

Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
2010-09-02 11:00:08 +01:00
Mark Hatle
4b611b6674 package_rpm: Enable debian style tags
Enable debian style tags including suggests, enhances, recommends

Note, these are not yet used by the dependency resolver.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-02 10:01:22 +01:00
Mark Hatle
379ba0e9d7 rootfs_rpm: Optimize rpm database processing
Optimize the creation of the solverdb by disabling fsyncs and
database caches that are not used when generating a solution.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-02 10:01:22 +01:00
Mark Hatle
84f7f70308 package_rpm: Enable per file dependencies
Switch the per file dependency handing to passing the information to
rpm via the standard 'external' dependency scripting.  This ensures that
the dependencies found by RPM exactly match the ones presented by
package.bbclass.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-02 10:01:22 +01:00
Zhai Edwin
431c97533b Add qemu-ppc in qemu-native, required by eglibc
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-02 09:53:49 +01:00
Zhai Edwin
0d7bcdf9fd libmatchbox: Fix the matchbox environment start failure on x86-64 target.
x86 target works well. Root cause is libmatchbox use "0"(int) as termination
indicator when calling XftFontOpen, which in turn called FcPatternVapBuild(in
fontconfig). It try to get the "0" as char* and fetch wrong value, as int and
char* has different size on x86-64. This patch forces a NULL pointer as
terminator to fix it.

[BUGID #234] is fixed by this

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-02 09:53:49 +01:00
Zhai Edwin
36aa00b6f7 pointercal: add config file for x86-64 target
Currently no config file for x86-64 target, which cause
/etc/X11/Xsession.d/30xTs_Calibrate.sh run into an infinate loop to block
following scripts to start matchbox.

Copy x86 config file to x86-64.
[BUGID #242] is fixed by this

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-02 09:53:49 +01:00
Yu Ke
a7e14518ee distro tracking field: add NO_UPDATE_REASON for cairo
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-09-02 09:53:49 +01:00
Nitin A Kamble
7b3f400a36 distro-tracking: update devel/toolchain data
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-02 09:53:46 +01:00
Nitin A Kamble
561d875404 libc-package.bbclass: merge glibc & eglibc class files
Other enhancements:
 print qemu's stdio & error on failure
 glibc: enable locale generation for all arches
 eglibc: enable binary locale generation for mips

And cleanup of code based on the code review.

[e]glibc: move common definition in the common file

bitbake was complaining about duplicate definition of
get_libc_fpu_setting in eglibc.inc & glibc.inc
files.

And bump PRs

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-02 09:52:31 +01:00
Scott Garman
436d590c4a openssh: new recipe addition
OpenSSH v5.6p1, derived from OpenEmbedded's recipe.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-09-02 09:52:31 +01:00
Saul Wold
a206fce2ba task-poky-lsb: add sysklogd, libaio, mdadm, screen, watchdog
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:52:31 +01:00
Saul Wold
a8339e56e1 tcl: fix from missing sys/fpu.h and undefined mipsCR
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:52:30 +01:00
Dongxiao Xu
d3fd98efd5 distro_tracking: add alias for bluez4, libgsmd, and zeroconf
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:52:30 +01:00
Dongxiao Xu
748b7da6ab distro_tracking: sed, rpcbind, libtirpc
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:52:27 +01:00
Dongxiao Xu
429015a47f rpcbind: add new recipe version 0.2.0
Introduce rpcbind utility into poky which is a server that converts
RPC program numbers into universal addresses.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:50:50 +01:00
Dongxiao Xu
0bd7fc55a1 libtirpc: add new recipe version 0.2.1
libtirpc is depended by rpcbind, so introduce it into poky.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:50:50 +01:00
Dongxiao Xu
3f7f13da8c which (GPLv3): inherit update-alternatives to handle install priority
inherit the update-alternatives class to handle install priority issue,
which is recommended by poky.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:50:50 +01:00
Dongxiao Xu
c4ecd356d1 sed: Upgraded to the latest version 4.2.1
sed version 4.2.1 is under GPLv3 license
inherit update-altenatives to handle the install priority issue

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:50:50 +01:00
Dongxiao Xu
8232e01437 sed: Inherit update-altenatives to handle the install priority
This method is simple and preferred by poky

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:50:50 +01:00
Dongxiao Xu
c56bab6b25 dpkg: fix powerpc and mips build failure
set dpkg va_copy value in corresponding site files for powerpc and mips
Fixes [BUGID #219]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-09-02 09:50:49 +01:00
Nitin A Kamble
2c54c5574e at: gplv2 recipe at version 3.1.12
Took the 3.1.10.2 version of the gplv2 recipe from the master branch,
and upgraded it to 3.1.12 version and then replaced the gplv3 files
viz posixtm.[ch] by gplv2 files to make the recipe gplv2.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-02 09:50:49 +01:00
Saul Wold
e384d62afa at: remove GPLv3 version
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:49 +01:00
Saul Wold
ff9f1021c8 mdadm: add patch to fix passing linker options to cc
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:49 +01:00
Qing He
118c36466c libaio: add new recipe
version 0.3.107
from open embedded

changes:
  - use $(AR) and $(RANLIB) instead of ar and ranlib

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-02 09:50:49 +01:00
Qing He
dd5509458f valgrind: fix perl scripts
svn version of valgrind uses #! @PERL@ for several perl
scripts. However, PERL in autoconf doesn't distinguish
host perl and target perl, causing STAGING_DIR_NATIVE be
written in the output scripts.

This causes unrunnable scripts, and fails FILERDEPENDS
mechanism (thus also do_rootfs_rpm).

Uses /usr/bin/perl instead to fix it.

Signed-off-by: Qing He <qing.he@intel.com>
2010-09-02 09:50:49 +01:00
Dexuan Cui
33ed325337 distro-tracking: update powertop, lttng-ust, lttng-viewer, liberation-fonts
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-02 09:50:48 +01:00
Dexuan Cui
6c098ebe42 powertop: fix segfault in dump mode
The cause is: in dump mode, setup_windows() is not invoked so the
*_window variables, like cstate_window, are still NULL; later in
main() -> show_cstates(), the functions, like wrefresh(), will trigger
segfault.

After discussing in PowerTop mailling list, I think the right solution is
we should stub out the ncurses calls in dump mode.

(The patch was also sent to upstream PowerTop mailling list.)

This fixes [BUGID #195]:
Bug 195 - [sdk] powertop segfault when running with dump option

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-02 09:50:48 +01:00
Dexuan Cui
f2011318ec powertop: upgrade from 1.11 to the latest version 1.13
update HOMEPAGE;
add RRECOMMENDS_${PN} = "pciutils" as powertop 1.13 needs lspci;
add EXTRA_OEMAKE = "VERSION=\"${PV}\" to make the build succeed;
fix coding style: 4 SPACEs --> 1 TAB.

fix RRECOMMENDS to RDEPENDS

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:48 +01:00
Yu Ke
df894c658d sysklogd: add sysklogd 1.5
sysklogd implements two system log daemons: syslogd, klogd.
this commit adds sysklogd 1.5. it is ported from OE with some cleanup.

sysklogd: move to recipes-extended

Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:48 +01:00
Saul Wold
8cbf96aeaf runqemu: add poky-image-basic and poky-image-lsb to recognized images
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:48 +01:00
Dexuan Cui
45c8f613cf distro-tracking: add mdadm and screen
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-09-02 09:50:48 +01:00
Dexuan Cui
2426f14285 screen: add the latest version 4.0.3
The recipe is borrowed from OE, with the following changes:
- upgrade the version from 4.0.2 to 4.0.3
- add HOMEPAGE, BUGTRACKER, LICENSE and LIC_FILES_CHKSUM
- reset PR to "r0"
- update the patch name: screen_4.0.2-4.1sarge1.diff --> screen_4.0.3-11+lenny1.diff.gz
- rebase the original configure.patch against screen-4.0.3's configure.in

screen: move to recipes-extended

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:47 +01:00
Dexuan Cui
8289cd4170 mdadm: add the latest version 3.1.4
The recipe is borrowed from OE, with the following changes:
- upgrade the version from 2.5 to 3.1.4
- simplify DESCRIPTION
- add HOMEPAGE, BUGTRACKER, LICENSE and LIC_FILES_CHKSUM, PR
- remove INHIBIT_AUTO_STAGE
- fixing coding style issue: 4 SPACES --> 1 TAB

mdadm: move to recipes-extended

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:50:47 +01:00
Zhai Edwin
93914e120c distro tracking: Add info for libuser and xz
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-02 09:38:36 +01:00
Zhai Edwin
094d5d7891 Distro tracking: Add package alias for xf86-video-intel
On behalf of Yu Ke

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-02 09:38:36 +01:00
Zhai Edwin
131d268752 Distro tracking: Add package alias for puzzles, eds-dbus...
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-09-02 09:38:36 +01:00
Kevin Tian
65a490585e distro-track: add ownership for 4 recipes
modutils
  cdrtools-native
  shasum-native
  tzcode-native

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-02 09:38:35 +01:00
Kevin Tian
a4141e1c11 xset: move DISTRO_PN_ALIAS to distro .inc file
also use space as the delimiter instead of semicolon. fix handbook accordingly

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-02 09:38:35 +01:00
Saul Wold
68385456af distro_check: fix for natives, cross, and initial recipe types
datetime checking is changed to be once per day

Signed-off-by: Saul Wold <Saul.Wold@intel.com>

distro_check: fix for natives, cross, and initial recipe types

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:38:35 +01:00
Kevin Tian
444e448065 distro_check: use space as the delimiter for aliases
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-02 09:38:34 +01:00
Kevin Tian
d59456563e distro-track: add alias name for 89 recipes
some recipe names in Poky are different from other distros (Ubuntu,
Meego, Debian, ...). Here totally 89 recipes are added with specific
alias name in major distros. Then they could be found in match with
other distros.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-09-02 09:38:34 +01:00
Saul Wold
c52fcafe55 DistroData: add eventhandler to correctly setup log file
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-09-02 09:38:34 +01:00
Richard Purdie
d62ee7eaf2 packages: Separate out most of the remaining packages into recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-01 19:09:57 +01:00
Richard Purdie
caab7fc509 Drop chroot usage as its not well used, tested and is broken
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-01 15:08:45 +01:00
Joshua Lock
232ef8430e bitbake/fetch: ensure the mirrored repository is updated as required
If we fetch a tarball from a mirror it's entirely possible that the
mirror will have been from before the required tag/branch/etc was included
in the repository. To that end use forcefetch() as a way of testing whether
the repository is up to date and if not fetch updates.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-01 11:14:57 +01:00
Joshua Lock
5c229f921f bitbake/git: define a forcefetch method
The git fetcher should force a fetch if the required tag is not present in
the local clone, or if the fullclone parameter is set.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-01 11:14:41 +01:00
Joshua Lock
b54e95fd06 bitbake/fetch: Respect forcefetch even when pulling from a mirror
When pulling from a premirror we would prefer a local tarball even when the
caller had specified the forcefetch parameter.
Add an extra parameter 'force' to try_mirrors, defaulting to False. If set
the mirrors will be tested even if the file exists locally.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-09-01 11:14:23 +01:00
Saul Wold
94f2946679 powerpc-common: add working_getline to gettext
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-31 17:33:35 +01:00
Dexuan Cui
d5bc20830d which (GPLv2): inherit update-alternatives
by this, we can avoid the pkg_postinst/postrm in the recipe file.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-31 17:22:19 +01:00
Dexuan Cui
dc5f45c4e1 lttng-viewer: upgrade from 0.8.84 to 0.10.0
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-31 17:22:03 +01:00
Saul Wold
b36e98043e task-poky-basic.bb: add at and watchdog
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-31 17:21:43 +01:00
Scott Garman
8a13529172 at: run daemon as root user
Permission problems are encountered when running atd as the default
(daemon) user, so run it as root instead. These options are also
used in the OpenEmbedded recipe for at.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-31 17:21:32 +01:00
Dongxiao Xu
43938f11af sqlite3: fix multiple provider warning
Use ${PN} to replace the original hardcode name in recipe PACKAGES line
This fixes multiple provider warning of sqlite3 (sqlite3 and
sqlite3-nativesdk)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-31 17:21:13 +01:00
Yu Ke
9c1d256783 gawk: add gawk 3.1.8, GPLv3 version
move to meta/recipes

Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-31 17:20:45 +01:00
Dongxiao Xu
1a326e97c0 gst-meta-base: Enable some video and audio codec
Enable mpeg-1 mpeg-2 video format
Enable wav, flac audio format
Fix [BUGID #151]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-31 17:20:21 +01:00
Qing He
be291999de cmake.bbclass: sync from openembedded
this fixes:
  - toolchain detection error (e.g. ar and ranlib)

changes from openembedded:
  - reformatting
  - cmake modules search path
  - use 'cat <<EOF' instead of echos for clarity

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-31 17:19:53 +01:00
Qing He
a0b72c2971 rpm: compatiblity and header fix
changes:
  - add headerAddOrAppendEntry in lib/rpm4compat.h for compatibility
  - fix rpmbag.h introduced in rpm 5.1.10

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-31 17:19:19 +01:00
Qing He
adfd0e0434 boost: upgrade to 1.44.0
from version 1.36.0
which won't compile with gcc 4.5.0

also moved to meta form meta-moblin

changes:
  - .so files should go to -dev instead of sub packages
  - create libboostX-mt.{so,a} symlinks for compatibility
  - meta package 'boost' should set ALLOW_EMPTY
  - fix a bug that caused boost-dev being automatically renamed to
    libboost_prg_exec_monitor-dev, packages boost, boost-dev and
    boost-test now work as intended
  - rebased patch arm-intrinsic

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-31 17:18:55 +01:00
Qing He
d1f7c3f9cc libcheck: upgrade to version 0.9.8
from 0.9.5
moved from meta-moblin to meta
renamed to libcheck for clarity

changes:
  - --enable-plain-docdir is obsolete
  - remove the unnessary patch

Signed-off-by: Saul Wold <saul.wold@intel.com>
Signed-off-by: Qing He <qing.he@intel.com>
2010-08-31 17:17:43 +01:00
Zhai Edwin
09bffb70de Add qemu-i386 in qemu-native, required by eglibc
Adding i386-linux-user in target-list is enough in theory, but our gl stuff is
not friendly to linux-user code. So disable it when compiling linux-user.

[BUGID #218] fixed by this.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-31 16:48:53 +01:00
Dongxiao Xu
1f0ba7c2b0 sed: Fix ppc build failure
sed will firstly check whether there is a working getline function
in system, if not (ppc), it use its self-defined getline().
However in 4.1.2, this function definition is not match with its
declaration. Fixes [BUGID #243]

Also fixes metadata.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-31 16:45:38 +01:00
Saul Wold
4c00be1ecb distro_tracking_fields.inc: add distro_commands.inc
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-31 16:39:08 +01:00
Kevin Tian
c595743e3f toolchain-scripts.bbclass: inherit siteinfo
or else 'siteinfo_get_files undefined' error occurs

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-31 16:38:40 +01:00
Kevin Tian
e055544ce1 sstate: fix dir name in manifest
dir name in manifest is incorrect:

/media/disk/builds/master-arm/tmp/sysroots/usr/
/media/disk/builds/master-arm/tmp/sysroots/lib/
/media/disk/builds/master-arm/tmp/sysroots/include/

Also add one debug note when removing manifest entries

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-31 16:38:20 +01:00
Kevin Tian
03983e9647 sstate: make do_cleanup really working
there's a bug in creating manifest_pattern, which means actually with
new sstate do_cleanup hasn't worked yet

We can use PSTAGE2_MANFILEPREFIX easily for this purpose.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-31 16:37:49 +01:00
Mark Hatle
3aa6e464aa pseudo: Update to latest version
From the changelog:

2010-08-27:
  * (seebs) fix a bug caused by memcmp with wrong length
  * (seebs) stop hand-coding lengths of memcmp (torek was right...)
2010-08-31 16:24:58 +01:00
Richard Purdie
9897b81e56 bitbake/codeparser: Implement persistent cache
For a given input to this code, the output doesn't change to implement a persistent
cache of the data to speed up parsing.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 14:49:14 +01:00
Richard Purdie
332c33af18 bitbake/data.py: Add emit_func() and generate_dependencies() functions
These functions allow generation of dependency data between funcitons and
variables allowing moves to be made towards generating checksums and allowing
use of the dependency information in other parts of bitbake.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 12:47:41 +01:00
Richard Purdie
3492bff64a bitbake: Add codeparser for parsing shell and python functions
This commit is derived from Chris Larson's checksum work, turned into a
standalone piece of code for parsing python and shell functions.

The deindent code has been replaced with code to work around indentation
for speed. The original NodeVisitor in the ast was replaced with a faster
class walk call.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 12:41:23 +01:00
Richard Purdie
13fdd4ae5d bitbake/BBHandler: Save python functions into the dictonary
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 12:08:51 +01:00
Richard Purdie
f7627e4f67 bitbake/data_smart.py: Allow the data expand function to keep track of references (including those from python code)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 12:06:18 +01:00
Richard Purdie
e6566322bd meta/classes: Fix whitespace mismatch and broken functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31 12:02:24 +01:00
Qing He
e300aa0485 libproxy: disable perl bindings
cmake findperl and findperllibs use execution based approach to
locate perl executable and others like module paths and -lperl,
which does not work properly under cross compilation. Disable it
with -DWITH_PERL=no until cmake is fixed.

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-30 18:05:41 +01:00
Dongxiao Xu
4a65458eba distro_tracking: connman, connman-gnome, wpa-supplicant, etc.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-27 15:50:12 +01:00
Dongxiao Xu
ca4a58a4eb connman: Use connman as default network management tool
Upgrade connman to version 0.56
Modify connman-gnome to match the recent version of connman
Deprecate networkmanager

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-27 15:46:55 +01:00
Dongxiao Xu
f6917ad47b wpa-supplicant: Add latest stable version 0.6.10
Connman doesn't work well with wpa-supplicant development
version 0.7.2, thus import its latest stable version.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-27 15:37:03 +01:00
Richard Purdie
29d6678fd5 Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things
and is generally overwhelming. This commit splits it into several
logical sections roughly based on function, recipes.txt gives more
information about the classifications used.

The opportunity is also used to switch from "packages" to "recipes"
as used in OpenEmbedded as the term "packages" can be confusing to
people and has many different meanings.

Not all recipes have been classified yet, this is just a first pass
at separating things out. Some packages are moved to meta-extras as
they're no longer actively used or maintained.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-27 15:29:45 +01:00
Yu Ke
da49de6885 quicky: add QT app quicky, a simple note-taking application
Add quicky from qt-apps.org to validate and demo qt library. quicky is a simple note-taking application with Wiki-style syntax and behaviour.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:52 +01:00
Yu Ke
923f920a7c qmmp: add QT app qmmp, an QT audio-player
Add qmmp from qt-apps.org to validate and demo qt library. qmmp is an audio-player, written with help of Qt library

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:52 +01:00
Yu Ke
43e62c4493 fotowall: add QT app fotowall, an QT photo tool
Add fotowall from qt-apps.org to validate and demo qt library. fotowall is a creative tool that allows you to layout your photos or pictures.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:52 +01:00
Yu Ke
46bdf066a4 qt4 core lib: add qt4 core library x11 version.
QT is a comprehensive cross-platform C++ application framework. this commit add QT4 library compiled with X11 options.

The code is ported from OE version, with following changes:
   - remove the obsolate configure options, e.g. -embedded, -qdbus, etc
   - remove the poky unsupported configuree option, e.g. mysql, postgresql etc
   - revise the arch detection func, to support powerpc, x86_64
   - other format cleanup

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:51 +01:00
Yu Ke
51e05bbe6c qmake2.bbclass: update for QT4
qmake2 bbclass is a class to make QT appplication. This commit update qmake2 bbclass for QT4. The code is from OE with minor cleanup.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:51 +01:00
Yu Ke
7aa5f112b8 qt-tools-native: add QT4 tool to build qt application
QT4 provides tools like moc (meta object compiler), uic (user interface compiler) etc.. to build qt application. This commit add the qt4 tools. The recipe is from OE with minor cleanup.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:51 +01:00
Scott Garman
dd30a64fc1 grep: new recipe v2.5.1a
This is the last GPLv2 version of grep. This recipe was dervied from
OpenEmbedded's version.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-27 13:29:51 +01:00
Scott Garman
119b69dd26 distro_commands.inc: Add maintainer information
Also removed mailx package tracking, as this recipe was recently
removed from our requirements.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-27 13:29:50 +01:00
Dongxiao Xu
4c86c99be8 readline: Split GPLv2 version from shared inc file
Do not share common inc file with GPLv3 version of recipe
Fix the issue of multiple provider warning

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-27 13:29:50 +01:00
Kevin Tian
98bd03a508 coreutils (GPLv3): add latest version (8.5)
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-27 13:29:50 +01:00
Yu Ke
cc0a7034c2 sysstat: add sysstat 9.1.4
sysstat is a collection of performance monitoring tools. this commit adds sysstat 9.1.4.
the recipe is ported from OE, with following changes:

- upgrade to 9.1.4
- use populate-volatile to populate /var/log/sa

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:50 +01:00
Qing He
5bb55610f3 cmake.bbclass: sync from openembedded
this fixes:
  - toolchain detection error (e.g. ar and ranlib)
  - cmake modules search path

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-27 13:29:49 +01:00
Yu Ke
6bfeb80d57 gawk: add 3.1.5 (GPLv2 version)
this commit add GNU Awk 3.1.5, the most recent GPLv2 version.
the recipe is from OE, and upgrade to 3.1.5

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-27 13:29:49 +01:00
Scott Garman
8927e93ccd cpio: new recipe v2.8
This is the last GPLv2 version of cpio. The recipe was derived from
OE's v2.5 one.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-27 13:04:38 +01:00
Scott Garman
7c301b9640 at.inc: remove unneeded LIBS setting
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-27 13:04:38 +01:00
Scott Garman
e08ae7ea65 tar_1.17: eliminate a patch by setting CFLAGS instead
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-27 13:04:38 +01:00
Qing He
9a60cbcf48 file: reinstate 5.04 upgrades with modifications
reinstate the patch since rpm recipe has been upgraded

> commit 21d586b47c
> Author: Qing He <qing.he@intel.com>
> Date:   Tue Jul 6 13:19:10 2010 +0800
>
>     file: upgrade to version 5.04
>
>     from 4.18
>
>     changes:
>       - remove native-fix.patch and sed line in do_configure_prepend,
>         AM_CONDITIONAL(IS_CROSS_COMPILE, ...) works well
>       - fix the bug of not packaging ${datadir}/misc/magic.mgc,
>         without this file, this utility isn't very useful
>       - add zlib as explicit build dependency
>
>     Signed-off-by: Qing He <qing.he@intel.com>

new changes:
  - string/B is not supported in file 5.04, add an alias to string/W
  - '>=' and '<=' was not supported, add an extension for existing
    usage

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-27 13:04:38 +01:00
Zhai Edwin
6b039d0bb7 libuser: add 0.56.16 as new recipe
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-27 13:04:38 +01:00
Zhai Edwin
c3232ed2da base.bbclass: Add xz-native as depends when finding *.xz in SRCURI
Just adding xz-native as DEPENDS in one bb file could not make its unpack run
after xz-native build done.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-27 13:04:38 +01:00
Zhai Edwin
63f33efdb9 xz: add 4.999.9beta as new recipe
Requies xz-native to unpack the tarball of libuser

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-27 13:04:38 +01:00
Kevin Tian
cb73e943aa bash (GPLv2): remove metadata sharing from GPLv3 recipe
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-27 13:04:38 +01:00
Kevin Tian
37f914dd72 findutils (GPLv2): remove metadata sharing from GPLv3 recipe
to avoid inadvertent contamination in the future, GPLv2 recipe is
fully split its v3 buddy. This way we can enforce strong isolation
for GPLv2 code.

also remove one unnecessary patch

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-27 13:04:38 +01:00
Dexuan Cui
084eb5a04d rsync: split GPLv2 version from GPLv3 by fixing the GPLv2 recipe
remove the "require rsync.inc", and copy the .inc file into the GPLv2 recipe,
and adjust it properly;

mkdir rsync-2.6.9 and copy files/rsyncd.conf into rsync-2.6.9/rsyncd.conf.
BTW: the .conf file originated from OE in 2006:

commit c2a4b021eb04924f8c8b0e0af1fac337a04cbcae
Author: Raymond Danks <raymond@edanks.com>
Date:   Tue Apr 18 01:43:08 2006 +0000

    rsync: Add rsyncd.conf

http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=c2a4b021eb04924f8c8b0e0af1fac337a04cbcae

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-27 13:04:38 +01:00
Dexuan Cui
9f03fdd5c7 which: add GPLv2 version 2.18
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-27 13:04:38 +01:00
Kevin Tian
03df313715 coreutils: upgrade to latest GPLv2 version (6.9)
Before adding latest coreutils GPLv3 version, first we upgrade existing
recipe to latest GPLv2 version here.

To ensure a clean process, all bits are coded from scratch including
patches and recipe, except that in recipe lines about update-alternative
are reused from previous 5.3.0. All new patches are licensed under
GPLv2.

Tested simple features with most coreutils commands

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-27 13:04:38 +01:00
Jiajun Xu
7303807ef1 test: Add scenario file for each target and support single case running
Different test cases are needed for different targets. A folder "scenario"
is created under scripts/qemuimage-tests to hold scenario files for different
targets.

Single case running is supported now. User can run single case together with
a whole test suite by setting variable TEST_SCEN in local.conf.

By default test cases in sanity suite will be ran. If you want to run other
test suite or specific test case(e.g. bat or boot test case under sanity suite),
list them like following.
TEST_SCEN = "sanity bat sanity:boot"

Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
2010-08-27 13:04:37 +01:00
Saul Wold
192d6994cb task-poky-basic: added new packages to basic task for LSB
further tweaked by Kevin Tian, with simple boot test. 'at' is disabled
as it depends on mail of build system which needs to be fixed

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-27 13:04:37 +01:00
Bruce Ashfield
e76f76a37d ftrace: add trace-cmd for ftrace control and config
Rather than manually configuring ftrace, trace-cmd was created
to provide a more user friendly interface to the tracer.

Some examples are:

 # ./trace-cmd record -e all ls /bin

Then to see the information:

 # ./trace-cmd report

To see just a subsystem:

 # ./trace-cmd record -e irq ls /bin

To list the available trace events:

 # ./trace-cmd list -e

You can also trace a single trace point with one of two methods:

 # ./trace-cmd record -e sched:sched_wakeup ls /bin

Or simply:

 # ./trace-cmd record -e sched_wakeup ls /bin

This tool also works with tracers (plugins) as well as events

 # ./trace-cmd list -p

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-27 13:00:06 +01:00
Bruce Ashfield
70cd1ff43f linux-wrs: update to 2.6.34.5
edd8801 Linux 2.6.34.5
4070f43 vmware: fix build error in vmware.c
57cbde5 mm: fix up some user-visible effects of the stack guard page
4def7ce mm: fix page table unmap for stack guard page properly

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-27 13:00:05 +01:00
Richard Purdie
4b2a355a31 sstate/utility-tasks: Ensure do_clean functions correctly and removes shared state
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-27 12:33:58 +01:00
Richard Purdie
5c7531f78c sstate: Run sstate_cleanall() as part of do_setscene()
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-27 12:29:01 +01:00
Mark Hatle
4a310f203d qemu: On some older machines SDL is available
On some older machines SDL is available, even if a pkgconfig
file for SDL is not there.  (See RHEL5.1)

Extend the check, to see if the primary SDL header is there, if
the pkgconfig check fails.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-26 14:30:36 -07:00
Mark Hatle
18c0da3c17 pseudo: Update to the latest git version of pseudo
Latest git version includes:

2010-08-26:
* (seebs) make offsets.c slightly less useless
* (seebs) don't overwrite LD_LIBRARY_PATH values that include us

2010-08-25:
* (seebs) fix the signal mask restore

2010-08-24:
* (seebs) try to restore signal mask before calling exec()
* (seebs) move errno restoration after code which could set errno

2010-08-19:
* (seebs) handle insane edge case involving regcomp/regexec

2010-08-17:
* (seebs) create speculative-deletion logic
* (seebs) remove crackpot theories about cross-device renames

2010-08-16:
* (rp) Fix ld_preload/ld_library_path mixup.
* (seebs) Handle failed allocations.
* (seebs) Fix logic for dropping empty LD_PRELOAD.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-26 14:30:10 -07:00
Joshua Lock
dd0fb80917 meta-toolchain: fix for recent opkg change
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-26 18:06:17 +01:00
Joshua Lock
e10703aa5b meta-toolchain: update to reflect opkg state directory move
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-26 09:18:24 +01:00
Kevin Tian
8ea7fa6d4c opkg: finalize the change to var directory
commit 1d0757f16b changes opkg run state from
/usr/lib/opkg to /var/lib/opkg, which however is incomplete and still many
important information is kept under old directory including postinst methods.
This makes latest boot into a mess.

So finalize this movement to /var here. Fix [BUGID #229]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-26 08:54:55 +01:00
Joshua Lock
d46c362a46 sstate: fix architecture of sstate archives
Using TARGET_ARCH as the pacakge architecture for sstate archives lead to some
issues when using two machines with different BASE_PACKAGE_ARCH's but the same
TARGET_ARCH such as netbook and qemux86 machines.

Probable fix for [BUGID #223]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-25 18:01:23 +01:00
Joshua Lock
b66dc67c62 xf86-video-intel: fix COMPATIBLE_HOST entry, this was preventing building
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-25 11:37:29 +01:00
Joshua Lock
66790ecb4a poky-qemu: check for existence of required libraries
We need some libraries installed to run the built qemu, check for their
existence before trying to run the program. Fixes [BUGID #201]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-25 11:15:16 +01:00
Joshua Lock
196f6f2d20 qemu.inc: ensure helper programs are built when building for qemu machines
QEMU machine images are useless without qemu-native and qemu-helper-native

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-25 11:15:16 +01:00
Joshua Lock
1d0757f16b opkg: use var for state files, not libdir
Fixes [BUGID #221]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-25 11:15:16 +01:00
Richard Purdie
53ff069611 bitbake/runqueue.py: Ensure rqexe always exists and that empty task lists cause a graceful exit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-25 00:59:13 +01:00
Mark Hatle
9a8b6447c6 package_rpm: Temporary workaround for perfile dependencies
Until the pseudo code is fully integrated, we need to roll up the
per file dependencies into package dependencies for rpm.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 21:04:20 +01:00
Mark Hatle
59a3e98b04 rootfs_rpm: Enable multi dep solverdbs
Update package_rpm.bbclass to generate dep solver databases for each
package arch.  Following the example of the deb and ipk integration

Revise the rootfs_rpm to solve the installation based on the multiple
dep solvers.

Note, recommends, locale and attemptonly pckages are still to be
implemented.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 20:56:47 +01:00
Mark Hatle
55a046bd4c package_rpm: Rewrite the way the spec files are generated
Use a single spec file to generate all of the split packages.  This allows
us to ensure the RPM package source package meta data is correct, and also
speeds up the package generation process.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 20:55:14 +01:00
Mark Hatle
f29f9364a3 package.bbclass: Fix per-file dependency generation
The overall file list was being constructed with the wrong variable, it
should have had FLIST in the name.

Also it was possible to construct the system with some illegal variable
names.  Names that would have include "[]".  So translate these away...

Finally fix an issues where a filename with an _ could cause a package
variable conflict.  Again translate this away..

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 20:52:45 +01:00
Mark Hatle
e37ee51157 rpm_5.1.10.bb: Update macros
Fix some additional macro definitions to enable rpmdeps usage

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 20:52:45 +01:00
Jeff Johnson
f0f911a10d rpm: use rpm-5.1.10 from SNAPSHOT URI.
rpm-5.1.10 snapshot adds support for multiple aid databases

revert slashDepth patch, now included in 5.1.10

Signed-off-by: Jeff Johnson <n3npq@mac.com>
Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 20:52:45 +01:00
Joshua Lock
0741c3b8cb Ensure all packages which should have x86_64 in COMPATIBLE_HOST
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-23 20:52:44 +01:00
Richard Purdie
ca95d02ce0 package.bbclass: Fix shlibs race
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-23 15:41:21 +01:00
Richard Purdie
203bf3f772 bitbake.conf: Add DESCRIPTION for -dev, -dbg and -doc packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-23 15:27:36 +01:00
Richard Purdie
47f704ea74 insane.bbclass: Update to match the packaging classes when handling OVERRIDES
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-23 15:27:36 +01:00
Mark Hatle
b9f4ff1386 package.bbclass: Fix do_shlibs
The current packages shlibs processing is written to a local temporary file.
This file is not consulted when evaluting the provider of the dependency,
instead we need to cache the local values into the dictionary while we write
the temp file.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-23 15:27:36 +01:00
Richard Purdie
5977534d5f devshell.bbclass: export the FAKEROOTENV so it can be accessed within the devshell task
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-23 13:04:03 +01:00
Richard Purdie
71a46a44a2 utils.py: Fix bb.copyfile to change the permissions of the file back correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-23 13:01:05 +01:00
Richard Purdie
86c2b56705 package.bbclass: If files are unreadable, add read access for stripping
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-22 00:28:28 +01:00
Richard Purdie
ac9e6822f1 lib/oe/path: Use bb.utils.copyfile as shutils can't cope with copying unreadable files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-22 00:27:55 +01:00
Mark Hatle
87dba4254b utils.py: Add a new extend_deps() to easily merge two dependency lists
Add a new extend_deps function to more easily merge two dependency lists.
This avoids adding duplicates, unless the value of the dependency is
different.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-20 23:46:08 +01:00
Mark Hatle
54e3a82d9c package.bbclass: Add perfile dependency identification
Using the rpmdeps commands, we enable the discovery of per-file dependencies.
These dependencies are generated for all packages, and may or may not be used
by any given packaging mechanism.  Currently RPROVIDES and RDEPENDS are
generated in this process.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-20 23:39:55 +01:00
Mark Hatle
b4bef9ad8e bitbake.conf: Add shared/pkgconfig files to standard -dev glob
Add the pkgconfig files that may appear into the shared directory into
the -dev globbing.

Also change the udev integration to remove the manual instance of the
shared directory .pc file.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-20 23:39:43 +01:00
Mark Hatle
5d2e88c3c2 rpm: Update the rpm integration to support per-file dependencies
Update the RPM package integration to support per-file dependencies

This adds additional configuration options to RPM, as well as provides
a helper script "perfile_rpmdeps.sh" that the build system can use to
gather the dependency information.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-20 23:39:31 +01:00
Nitin A Kamble
6c12afd57d glibc: bring back needed patches from older recipes
while removing old glibc recipes some needed patches from
older recipes got wiped out. Bringing them back.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-20 23:26:40 +01:00
Saul Wold
179e056519 base.bbclass: Initial work to add GPLv2 Only Build with Whitelist for GPLv3 Native tools
[tweaks from Richard Purdie]

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 16:53:36 +01:00
Bruce Ashfield
e7e01e7831 linux-wrs: allow packed refs to be present
The code which creates a working tree from the source
Wind River Linux git repository manipulates the refs
to make non-tracking, local branches. packed-refs remove
the files from refs, making this code break and the builds
fail.

To fix this, if we detect the packed refs we simply create
the local refs from the remote branches.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-20 16:36:26 +01:00
Bruce Ashfield
a33579dc71 kernel: update branch revisions for 2.6.34.4
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-20 16:35:59 +01:00
Bruce Ashfield
2cf104f7e0 guilt: import guilt for kernel patch management
The Wind River kernel is "patched" via guilt to provide
both git integration and quilt like patch management
(if that is of interest).

This is a modified 0.33 guilt with some changes to
streamline interactions with the way that the Wind
River kernel is constructed. That being said, the
common semantics of guilt are not changed, and it
can be used for other purposes.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-20 16:35:39 +01:00
Dexuan Cui
15543017ec distro-tracking: add info for watchdog
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-20 16:20:13 +01:00
Dexuan Cui
91818ff699 watchdog: add the latest version 5.9
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-20 16:20:13 +01:00
Dexuan Cui
e8231e0950 poky-qemu-internal: fix the echo of KERNCMDLINE
Without the fix, when the commandline is printed with the "echo" command,
it loses the quotes and this confuses people.

Thanks Richard for pointing this out.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-20 16:20:13 +01:00
Zhai Edwin
9cb1b87640 distro tracking: Add info for pax
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-20 16:20:12 +01:00
Zhai Edwin
ce2e0a027b distro tracking: Updated version info for owl-video, matchbox-desktop, webkit-gtk...
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-20 16:20:12 +01:00
Scott Garman
d7d803fa1c poky-qemu-internal: fix broken call to poky-qemu-ifup
The poky-qemu-ifup script now requires a path to the native
sysroot as an argument. This fixes a case where the argument
was missing.

Also, set up NATIVE_SYSROOT_DIR when running runqemu.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:12 +01:00
Yu Ke
3a0eeb8155 python-pycairo: upgrade to 1.8.10
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-20 16:20:12 +01:00
Yu Ke
89ae21775c iputils: add iputils package
iputils are utilities for the IP protocol, including traceroute6, tracepath, tracepath6, ping, ping6 and arping.

this commit add iputils 20100418. code is borrowed from open embedded and debian, with following changes:
- upgrade from s20071127 to s20100418
- update the do_compile (add VPATH) to make s20100418 pass
- disable man since it depends docbook while poky don't have

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-20 16:20:12 +01:00
Scott Garman
070096ec70 runqemu-nfs: boot QEMU using nfsroot and local unfs export
This script automates the booting of QEMU using an nfsroot exported
by our userspace NFS tools. The rootfs should be created using
poky-extract-sdk.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:11 +01:00
Scott Garman
313bda1d87 poky-export-rootfs: script for exporting userspace nfsroots
This script automates the exporting of a root filesystem (created
with the poky-extract-sdk utility) using pseudo and the native
userspace NFS server. That filesystem can then be booted using
nfsroot with either QEMU or the target hardware using one of our
kernels.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:11 +01:00
Scott Garman
c23da3d37e poky-extract-sdk: script for extracting sdk images using pseudo
This script automates the creation of a rootfs area using pseudo so
it can be used by a QEMU nfsroot boot.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:11 +01:00
Scott Garman
f203df83a5 poky-qemu-internal: fixes for userspace NFS booting
Including a number of cases where the script could exit before
releasing a tun/tap lockfile.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:11 +01:00
Jeff Dike
81ff1ee237 poky-qemu-internal: Support use of a preconfigured tap device
This patch makes poky-qemu-internal check for the existence of an
available preconfigured tap device before running poky-qemu-ifup to
make a new one.

Locking is handled with a lockfile in /tmp/qemu-tap-locks/.  This uses
the lockfile utility, so that needs to be present on the host.  On
exit, this script removes the lock file so that the tap device may be
reused.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-08-20 16:20:10 +01:00
Jeff Dike
4df9f11171 poky-qemu-internal: Support NFS boots better
The image specification can now be in the form nfs-server:directory.
This makes it possible to nfs-boot from servers other than the host.
poky-qemu-internal will properly construct the kernel command line
given such a specification.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-08-20 16:20:10 +01:00
Jeff Dike
6ea1ed5f7b poky-qemu-[ifup|ifdown]: Use native tunctl
poky-qemu-ifup can run standalone by root in order to configure a bank
of tap devices for later qemu use.

These devices will, if possible, be owned by a specified group to
which qemu users must belong.

If the kernel is too old to support TUNSETGROUP, then it falls back to
setting the tap device to be owned by a particular user, and that user
will be the only one allowed to use it.

Also overall usability improvements to the scripts, usage() help, etc.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:10 +01:00
Scott Garman
f35a8d4079 poky-find-native-sysroot: helper script for locating the native sysroot path
Various poky scripts make use of binaries from the native sysroot.
This helper script can be used to reduce code duplication, and sets
up some environment variables you can use to identify and obtain
the correct filesystem path to the native sysroot.

It works for both in-tree Poky setups as well as toolchain
installations.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:10 +01:00
Jeff Dike
e4bc3e36e4 tunctl: Added an tunctl which supports TUNSETGROUP
TUNSETGROUP is needed in order to preconfigure a set of tap devices
that can be used by non-root users.  The requirement is that the qemu
users be members of whatever group the tap devices are assigned to.

Include tunctl in the qemu-helper package, and add a -native version.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:09 +01:00
Jeff Dike
d9aa25a337 poky-qemu-ifup: allow multiple tap devices
This patch bases the tap IP address on the device number, providing
each device with its own IP address.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-08-20 16:20:09 +01:00
Jeff Dike
c791544bb0 qemu: Use a TAP device instead of slirp for networking
With this patch, a persistent TAP device is set up by poky-qemu-ifup,
which is now run before qemu.  The qemu command line now uses the
device that was constructed (rather than the hard-coded tap0) and it
is told not to run any networking scripts.

When qemu shuts down, poky-qemu-ifdown removes the TAP device.

sudo use - sudo is used to run poky-qemu-ifup.  sudo is no longer used
to run qemu, as qemu no longer needs privileges to set up networking.
poky-qemu-ifdown is run without privileges, as you can remove a TAP
device which you own.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-08-20 16:20:09 +01:00
Scott Garman
b5b3825ce6 unfs-server: new userspace nfs recipe
This is a simple userspace NFS server, derived from one which was
previously used in openSUSE 10.x. Wind River contributed many of the
patches.

This package is not intended for target installations, only -native
and -nativesdk use.

Enabling nativesdk for readline, sqlite3, and pseudo was required, as
well as a few new autoconf siteconfig entries.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-08-20 16:20:09 +01:00
Nitin A Kamble
735210556d glibc: remove all old recipes
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-20 16:07:43 +01:00
Nitin A Kamble
7e8f14d2d8 valgrind: upgrade for eglibc 2.12
the current version only works with libc upto 2.10
hence upgraded to support eglibc 2.12

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-20 16:03:56 +01:00
Kevin Tian
4cdaa1789a gdb: disable installation of bfd/iberty/opcodes
Those are assumed to be provided by binutils, so we disable installation
here. Without doing so, a broken libbfd.la from gdb is installed to sysroot
which overrides binutils version and then hurt other packages such as
oprofile

also fix --with-readline to --with-system-readline

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-20 16:03:07 +01:00
Richard Purdie
75b57d573c bitbake/utils.py: Allow copyfile to copy files which aren't readable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 15:11:44 +01:00
Richard Purdie
ac3452c431 bitbake/utils.py: Improve better_exec debug output
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 12:52:43 +01:00
Richard Purdie
616e75523b bitbake: Correctly route events from the worker to the server
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 12:26:19 +01:00
Richard Purdie
9708f9cba7 bitbake/knotty: Exiting as soon as a fatal is seen is not desirable as the stacktrace won't be seen
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 12:26:19 +01:00
Richard Purdie
ca09a6f08c bitbake/cooker.py: Don't init the fetcher in the worker case
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 11:26:14 +01:00
Richard Purdie
fac06aaf2a bitbake/persist_data: Attempt to fix locking issues
It appears the timeout sometimes has no effect and we see database access failures. Combat
this by wrapping the execute function in all cases and retrying manually ourselves.

Thanks to Kevin Tian for help debugging this.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 11:24:02 +01:00
Richard Purdie
604f12722a bitbake/data.py: Handle exceptions in export_bars in the same way as emit_var()
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 09:42:31 +01:00
Richard Purdie
9b8ae6ba45 bitbake/server: Raise a shutdown event if we're seeing exceptions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20 09:42:31 +01:00
Richard Purdie
4a8fe7fc99 bitbake/runqueue.py: Ensure the flush happens as late as possible to avoid data mixups
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 23:39:19 +01:00
Richard Purdie
6e3a3816d5 bitbake/utils.py: Give useful debug information when no lineno information is available
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 23:27:08 +01:00
Richard Purdie
f070ee959c Rename packaged-staging2 -> sstate and remove the old empty class
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 22:48:17 +01:00
Richard Purdie
657188bfef Revert "base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged"
This reverts commit 2225e12142 and reenables
the functionality now its safe to do so.
2010-08-19 22:41:00 +01:00
Richard Purdie
084ec86402 classes: Disable setscene tasks for initial testing
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 22:36:26 +01:00
Richard Purdie
7a0f6ceb81 sanity.bbclass: Don't run the handler in worker context
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 22:36:26 +01:00
Richard Purdie
3c539be84c package_*.bbclass: Always run these tasks under fakeroot
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 22:36:26 +01:00
Richard Purdie
6739a629e9 bitbake/runqueue.py: Fix runqueue UI issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 22:36:26 +01:00
Richard Purdie
b6bfe14205 bitbake: Switch to use subprocess for forking tasks and FAKEROOTENV to run shell and python under a fakeroot environment
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 22:36:25 +01:00
Richard Purdie
a45e1d54e1 Remove packaged-staging.bbclass
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 20:06:25 +01:00
Joshua Lock
369920107e deploy.bbclass: use new style staging for deploy tasks
All tasks which implement a do_deploy should inherit this class to have the
changes in the deploy task staged.

Update recipes which include a do_deploy function to inherit this class and
to use DEPLOYDIR rather than DEPLOY_DIR_IMAGE.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-19 20:06:25 +01:00
Richard Purdie
29ca893649 package.bbclass: Implement packaged-staging2
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 20:06:25 +01:00
Richard Purdie
c28973c160 staging.bbclass: Convert to packaged-staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 20:06:25 +01:00
Joshua Lock
0769e847cb package_(deb|rpm): Update to use packaged-staging2
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-19 20:06:25 +01:00
Richard Purdie
14801197f9 package_ipk.bbclass: Convert to new task based staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 20:06:25 +01:00
Richard Purdie
c7a8029570 Start sstate
Add pre clean hook
Add sstate_installpkg
sstate: Tie all pieces together with a setscene function
Use pythonic functions rather than os.system()
Implement sstate_clean function
package_ipk: clean shared state in prestate
packaged-staging2: implement fetching packages from mirror
Copy add staging_fetch() from packaged-staging.bbclass
packaged-staging2: make the output slightly friendlier
packaged-staging2: handle directories in the shared state
Add directories to the manifest when installing and remove them if empty when
cleaning.
Move most of the sstate code into the class itself removing the need for heavy boilderplate

packaged-staging2: Programatically ensure directories are last in the manifest
packaged-staging2: add cleanall
packaged-staging2.bbclass: Connect in cleanall function to do_clean

We want to ensure that directories appear at the end of the manifest so that
when we test to see if they should be deleted any contents added by the task
will have been removed first.

pstage2: Use oe.path.copytree
packaged-staging2: support lockfiles and plaindirs

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-19 20:06:25 +01:00
Richard Purdie
787c1cf811 bitbake: Initial scenequeue implementation (needs major fixes)
bitbake: scenequeue: Skip setscene if the underlying task already ran
bitbake/setscene: Make sure uneeded dependencies are removed recursively

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 20:06:25 +01:00
Nitin A Kamble
41a364f59f gcc_4.5.0: fix for arm kernel failure
From this bugzilla:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44129
gcc 4.5.0 has target space optimization issues on arm also.

Added a fix similar to ppc.

This should fix
[BUGID #212]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-19 20:04:01 +01:00
Mark Hatle
84d96bac33 elfutils: Add GNU_HASH support to elf*_xlatetof
Add GNU_HASH and LIB types to the size table used by elf*_xlatetof in order
to avoid a divide by zero error.
Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-19 20:00:36 +01:00
Kevin Tian
f5dcdf9181 net-tools: add new recipe (1.60-23)
Borrow from OpenEmbedded with below difference:
  - use Debian as the SRC_URI
  - instead of copying all Debian locally, handle it in recipe automatically
    which eases our maintenance effort in the future
  - enable gettext

It's said the net-tools is deprecated by iproute2. However not all utilities
are replaced yet, such as hostname, domainname, netstat, slattach, ...

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-19 13:11:25 +01:00
Zhai Edwin
26f34098c8 pax: add 3.4 as new recipe
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-19 13:10:09 +01:00
Zhai Edwin
f626b8fc55 gzip: Add 1.3.12(GPLv2) as new recipe
Remove AC_USE_SYSTEM_EXTENSIONS to fix autoconf error, and rename a function to
avoid duplicated defination between gblic and gunlib

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-19 13:09:50 +01:00
Kevin Tian
6752cdfbf8 distr-tracking: add MAINTAINER and version info for rest recipes
This commit add basic distro-tracking fields (status/maintainer/latest_ver)
for rest recipes in world target. There may still have some missing, but
most have been made up this time

In total 279 pacakges are touched

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-19 13:08:51 +01:00
Richard Purdie
86af749b5b xinetd: Drop INHIBIT_AUTO_STAGE, this does nothing in Poky
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 13:08:18 +01:00
Yu Ke
23552a40fc xinetd: add xinetd
xinetd is highly configurable, modular and secure inetd. this commmit add xinetd 2.3.14.
The receipts is borrowed from OE, with following changes:
- upgrade the version from 2.3.13 to 2.3.14
- pick three patches from debian xinetd 2.3.14-7.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-19 13:06:56 +01:00
Richard Purdie
90e8bc75e3 autotools.bbclass: Drop a number of legacy functions that shouldn't be (and aren't) used in poky now
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 12:51:37 +01:00
Yu Ke
372f2f40c0 mktemp: add mktemp package
Mktemp is a small program to allow safe temporary file creation from shell scripts. this commit add mktemp 1.7.

it is borrowed from open embedded with following changes:
- upgrade from 1.6 to 1.7
- remove the patch add_destdir.patch, since this patch is already included in 1.7.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-19 12:36:37 +01:00
Yu Ke
ec22c6287c cracklib: add new package
cracklib is a pro-active password checker library
this commit add cracklib from scratch.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-19 12:35:53 +01:00
Dongxiao Xu
a57add5307 ed: add GPLv2 version.
Add the latest GPLv2 of ed (0.5) into poky system

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-19 12:29:15 +01:00
Nitin A Kamble
8cfecea699 eglibc: recipe cleanup
This removes unneccesary dependancys. And avoids glibc being built when
eglibc is configured.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-19 12:28:54 +01:00
Nitin A Kamble
75c781ad95 distro_tracking: update maitanier for toolchain/devel recipes
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-19 12:28:24 +01:00
Qing He
e6743f8416 rsync: explicitly disable xattr and acl
Signed-off-by: Qing He <qing.he@intel.com>
2010-08-19 12:28:10 +01:00
Qing He
30b01f94c3 gamin: add glib-2.0 as dependency
Signed-off-by: Qing He <qing.he@intel.com>
2010-08-19 12:27:55 +01:00
Richard Purdie
3ce480de27 bitbake/runqueue.py: Factor task skipping code into a function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 11:41:44 +01:00
Richard Purdie
65b068a5f8 bitbake/runqueue.py: Create RunQueueExecute and RunQueueExecuteTasks classes, further splitting up runqueue
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 11:41:44 +01:00
Richard Purdie
96ec9f8a60 bitbake/cooker.py: Allow idle handlers to pass through a true value
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 11:41:44 +01:00
Richard Purdie
1db9ee5e8d bitbake/runqueue.py: Drop duplicated class
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 11:39:59 +01:00
Richard Purdie
d39434bcfc task-poky-tools: Add perf to tools-profile package
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-19 11:39:59 +01:00
Richard Purdie
efadb43d67 native.bbclass: Ensure EXTRA_NATIVE_PKGCONFIG_PATH has a default value
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-18 15:30:35 +01:00
Richard Purdie
84d31b8970 apmd: Add back libtool patch as the issue the patch fixed reappeared
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-18 15:30:20 +01:00
Richard Purdie
22bf3344b5 xserver-xf86-dri-lite: xorg-minimal-fonts is responsible for this symlink
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-18 15:30:08 +01:00
Richard Purdie
418cce9ee9 bitbake.conf: Set FAKEROOTENV
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-18 15:29:54 +01:00
Richard Purdie
9ba6043530 linux-wrs: Make sure kern-tools-native is built before do_patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-18 11:49:58 +01:00
Richard Purdie
5d9f37873d bitbake: Split Runqueue into two classes, a data processor and the execution part
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-18 11:49:58 +01:00
Saul Wold
d7bc9b8ece DistroData: Cleanup Version numbers and add DistroData Parser
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-17 23:12:33 +01:00
Saul Wold
26350bbd22 aspell: moved from meta-moblin to meta to support enchant dependency
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-17 23:12:33 +01:00
Yu Ke
912480a3f6 distro tracking fix: cairo qemugl
fix the version format

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-08-17 23:12:33 +01:00
Kevin Tian
72ccda630e distro-tracking: fix versions format
dbus-wait
  shadow

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-17 23:12:33 +01:00
Kevin Tian
54d6d75445 update-rc.d.bbclass: adjust order on tweaking postinst
So far unlike prerm/postrm, update-rc.d has its own postinst method prepended
to pkg_postinst, which may result "System startup links for xxx already exist"
warning in the 1st boot of target image. Some pkg_postinst requires to run on
the target, and thus prepend here makes update-rc.d method executed twice: one
in rootfs creation and the other in the 1st target boot. So adjust the order
to append.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-17 22:57:33 +01:00
Kevin Tian
7025e6496e pam: add missing bits from previous commit
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-17 22:56:12 +01:00
Kevin Tian
db5c145af1 udev: use relative path when creating dev.tar
this effectively removes below warning:
  tar: removing leading '/' from member names

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-17 22:55:44 +01:00
Dexuan Cui
07adcbaf97 lttng-ust: disable MIPS build since liburcu doesn't build on MIPS
lttng-ust depends on liburcu.
Unluckily upstream liburcu doesn't support MIPS now.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-17 22:51:57 +01:00
Nitin A Kamble
94f63fa564 gcc_4.5.0: import a missing patch from gcc_4.3.3
[BUGID #208]

Thanks to Edwin Zhai for reproducing issue and narrowing it down to the
segmentation fault in the floorf function of libstdc++-v3

And

Thanks to RP for pointing out that this is a known issue with the fix
already in the gcc 4.3.3 recipe

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard@openedhand.com>
2010-08-17 22:50:47 +01:00
Joshua Lock
514d768673 poky-default: fix a warning caused by preferred libc-initial being unset
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-17 22:50:21 +01:00
Joshua Lock
67239d4251 kernel.bbclass: Fix adding module dependencies to RDEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-17 22:49:39 +01:00
Richard Purdie
cb5d51a485 cross-canadian.bbclass: Set TOOLCHAIN_OPTIONS to point at the correct sysroot
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-17 19:55:39 +01:00
Joshua Lock
e624b2700a build/conf: move sample conf files to meta/conf
Currently rm -fr build breaks things badly but will work if we move the sample
configuration files to meta/conf - this patch does so.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-17 17:41:20 +01:00
Richard Purdie
2225e12142 base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-17 12:13:31 +01:00
Kevin Tian
a4aaaee39d tcl: fix native build
commit a2e6b265ed introduced one patch
to fix non-native build, which however breaks native build.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-17 09:34:46 +01:00
Richard Purdie
8e8316c8f0 bitbake/utils.py: Allow explode_dep_versions to handle the commas join_deps can introduce into strings
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-17 09:29:08 +01:00
Nitin A Kamble
bfaeda03be binutils: fix the installed location of libiberty.a file
This fixes:
  [BUGID #209]

the libiberty was getting installed in usr/lib/lib64 path which was
leaving prelink-native recipe wondering where to get libiberty.
  Fix the path and prelink-native recipe is building fine now.

Patch added:
 libiberty_path_fix.patch
2010-08-13 17:19:16 -07:00
Jiajun Xu
8c498e5338 testlib: Add support for qemumips/qemuppc/qemux86-64, and add support for testing with images from autobuilder
Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
2010-08-13 23:42:03 +01:00
Saul Wold
6fc5bdd1bb task-poky-basic: enabled ethtool as part of build
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 23:38:17 +01:00
Zhai Edwin
03ee90660e distro_x11_apps_1.inc, distro_x11_ux.inc: Add maintainer info
Also add RECIPE_NO_UPDATE_REASON for the package that not updated to latest.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-13 23:38:17 +01:00
Dongxiao Xu
cedd774ced distro_tracking: Add maintainer information
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-13 23:38:16 +01:00
Yu Ke
b8f64fe44c distro_x11_core.inc, distro_x11_apps_2.inc: add maintainer info
Sigined-off-by: Yu Ke <ke.yu@intel.com>
2010-08-13 23:38:16 +01:00
Kevin Tian
26db53b91f gmp: add GPLv2 version (4.2.1)
The latest GPLv2 version of gmp is 4.2.1, which was released in 2006/05.

This GPLv2 recipe is written in clean house approach, w/o looking at
either v3 source code and recipe.

One patch (disable-stdc.patch) is added, which is also written from
scratch and licensed under GPLv2

test with 'calc' which is shipped by gmp package

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 23:38:16 +01:00
Kevin Tian
f53504d28c ethtool: add new recipe 2.6.34
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 23:38:16 +01:00
Kevin Tian
2d394b224a distro-tracking: update MAINTAINER info for base group
also add NO_UPDATE_REASON for packages marked #OK to stay with
an older version

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 23:38:16 +01:00
Nitin A Kamble
675259c82c sdk-task: make libc dependancies generic
This change specifies the libc dependancies in a generic fashion.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 23:37:31 +01:00
Nitin A Kamble
512d3b713c eglibc: import eglibc_2.12 recipe from OE
use http proto for svn checkout
cosmetic cleanups to metadata

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 23:37:30 +01:00
Saul Wold
2c11926528 procps: Move from meta-moblin to meta-lsb
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 23:37:30 +01:00
Saul Wold
e8ac5a76d9 Add glossary entry for SUMMARY for binary packaging
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 23:37:30 +01:00
Nitin A Kamble
a2e6b265ed tcl: fix a build issue
This fixes:
 [BUGID #210]

This commit addes a native recipe & a patch for tcl to fix the
following build issue

| Installing message catalogs
| /bin/sh: line 2: ./tclsh: cannot execute binary file
| make: *** [install-msgs] Error 126
| FATAL: oe_runmake failed
NOTE: package tcl-8.5.8-r0: task do_install: Failed

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 23:37:30 +01:00
Joshua Lock
aeb73bdf20 linux-wrs: Fix qemux86-64
Use the fragment support provided by kern-tools in the linux-wrs recipe to add
some extra modules required for qemux86-64 such as evdev and uvesafb.

Add a patch to increase CONNECTOR_MAX_MESSAGE_SIZE as uvesafb was sending
larger messages than the kernel would accept.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-13 17:25:39 +01:00
Joshua Lock
1c4cc60e28 kernel-arch: x86-64 is no longer a valid architecture, map it to x86
Also use the exported (and re-mapped) ARCH rather than TARGET_ARCH in the
linux-wrs recipe.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-13 17:16:19 +01:00
Joshua Lock
2e0d6df6c1 git: update to get features required for wr-kernel-tools
Update to 1.7.2.1, wr-kernel-tools requires --no-merged option for git branch
which was introduced in git 1.5.6

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-13 17:16:11 +01:00
Jeff Dike
bdb9da4847 emenlow: add support for the r8169 network card
This was reported by a user (Gary Thomas) on his board.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-08-13 14:42:20 +01:00
Jeff Dike
ed5194052e emenlow: Add Intel sound support
This adds CONFIG_SOUND, CONFIG_SND, and CONFIG_SND_HDA_INTEL to the
emenlow deconfig.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-08-13 14:42:03 +01:00
Richard Purdie
bb75c18104 Move byacc, which, libconvert-asn1-perl and libtimedate-perl to meta-lsb
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 13:56:49 +01:00
Kevin Tian
5abb132fec distro-tracking: update MAINTAINER info for base group
also add NO_UPDATE_REASON for packages marked #OK to stay with
an older version

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 13:36:06 +01:00
Saul Wold
1766b2bc22 tasks: updated tasks and images to reflect distro lsb requirments
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 13:36:05 +01:00
Dexuan Cui
cca5090408 distro-tracking: update MAINTAINER info for x11_libs and sdk_tools.
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-13 13:36:05 +01:00
Dexuan Cui
7b6700f5b8 distro tracking: add liburcu, lttng-ust, upgrade lttng-control and lttng-viewer
Move lttng-control and lttng-viewer from distro_toolchain_devel.inc to
distro_sdk_tools.inc.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-13 13:36:05 +01:00
Dexuan Cui
295e142488 task-poky-tools: fix RDEPENDS_task-poky-tools-profile and add lttng-ust into it
Here the "_append" must appear just after RDEPENDS_task-poky-tools-profile, or
else, valgrind and lttng-ust won't be built into the target image.

At present we only build lttng-ust on
qemux86/qemux86-64/qemuppc/qemumips/emenlow/netbook since upstream liburcu
(which is required by lttng-ust) may not build on other platforms, like
qemu ARMv5te that poky uses now.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-13 13:36:05 +01:00
Dexuan Cui
56c5f2a679 lttng-ust: add the latest version 0.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-13 13:36:04 +01:00
Dexuan Cui
80ec77731b liburcu: add the latest version 0.4.6
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-08-13 13:36:04 +01:00
Qing He
5f199e8b51 distro-track: add maintainer info
also adds trackinf fields for gamin

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:36:04 +01:00
Qing He
0eb96abfc9 gamin: put into meta-lsb
changes:
  - gamin now also PROVIDES fam, moved to meta-lsb
  - separate out libgamin

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:36:04 +01:00
Qing He
3a7c857064 distro-track: tcp-wrappers
add a new recipe: tcp-wrappers

Singed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:36:03 +01:00
Qing He
304f88f408 nfs-utils: enable tcp-wrappers support
Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:36:03 +01:00
Qing He
22ae6b193d portmap: enable tcp-wrappers support
this enables the hosts access control facility (i.e. /etc/hosts.allow
and /etc/hosts.deny)

changes:
  - enable tcp-wrappers by change make flags and cppflags
  - rename patch no-tcpd-support to avoid confusion
  - minor cleanups

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:36:03 +01:00
Qing He
6ffc4f2e04 tcp-wrappers: add new package
version 7.6
based on tcp-wrappers recipe of openembedded

changes from openembedded version:
  - set -DUSE_GETDOMAIN in NETGROUP to fix build error
  - install libwrap into ${base_libdir}, since it's required by
    some essential components (e.g. portmap is in ${base_sbindir})
  - distribute libwrap.a as well in libwrap-dev

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:36:02 +01:00
Kevin Tian
199177bc29 distro-tracking: update tracking fields for libpam and shadow
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 13:36:02 +01:00
Kevin Tian
f6535ea12a shadow: add new recipe 4.1.4.2
(borrow from OpenEmbedded with below tweaks)

Enhance login_defs_pam.sed according to shadow source, to ensuer we don't
leave any unknown definitions in /etc/login.defs when pam is enabled

no need for --disable-account-tools-setuid which is detected upon pam
automatically, and no specific CFLAGS append

move shadow site options to generic site files

adjust indention

RDEPENDS on a list of pam-plugins since they're separately packaged

test with both pam enabled and pam disabled. when pam is enabled, tried
some same tweak with desired effect.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 13:36:02 +01:00
Kevin Tian
44d7c5678f staging.bbclass: mangle *.la for ${base_libdir} too
currently staging.bbclass mangle *.la to ensure sysroot prefix attached to
dependency_libs if other *.la is referenced, however it only happens on
${libdir}. libpam is special with its libraries under ${base_libdir}. So
this extends mangle to ${base_libdir} too

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 13:36:02 +01:00
Kevin Tian
46771a85b0 pam: rename to libpam and add core config files
So far pam is not really functional as there no pam config files exists, here
we borrow from openembedded to setup core /etc/pam.d to make it functional:

  * change 'pam' to 'libpam' following Debian naming convention, and change
    (R)DEPENDS in other recipes

  * borrow openembedded libpam-base-files with changes:
    - rename to libpam-runtime to follow Debian naming
    - only keep common-* core files which can be traced back to Debian
      libpam-runtime-1.0.1 for license track. Other service specific files
      (such as atd, cron, ...) are removed because either they may contaminate
      the license or it's right thing to have their own packages providing them
    - use same libpam recipe instead of creating a new. This way other /etc/
      stuff are all contained by libpam-runtime

  * like openembedded, we package each pam plugin into seperate package now,
    with some differnce though:
    - Some ${sbindir} binaries are bound to specific PAM plugin. So better to
      package them together with corresponding plugin package
    - populate_sysroot_prepend is invoked before actual populate_sysroot, at
      that time ${D} binaries haven't been tripped. So it's difficult to specify
      -dev for those plugin pacakges from _prepend which are simply empty.
      actually one -dev/-doc per recipe is one good exercise here.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-13 13:36:01 +01:00
Nitin A Kamble
59e30ad05f distro_tracking: add meta data for additional devel packages
Added entries for
byacc
libtimedate-perl
libconvert-asn1-perl
libxml-parser-perl

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 13:36:01 +01:00
Nitin A Kamble
72aa55b762 libconvert-asn1-perl: create new recipe
the latest is 0.22 which is failing to build
while the previous version 0.21 just works.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 13:36:01 +01:00
Nitin A Kamble
4f90c0c8c8 libtimedate-perl: create a new recipe
imported this recipe from OE

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 13:36:01 +01:00
Nitin A Kamble
ab902e0d68 byacc: added new recipe in to the tree
Imported OE recipe and then upgraded it to the latest version

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 13:36:00 +01:00
Nitin A Kamble
eaf2a94e11 libproxy: upgrade from 0.4.2 to 0.4.3
Upgraded to fix this issue on fedora 13
http://code.google.com/p/libproxy/source/detail?r=684

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-13 13:36:00 +01:00
Saul Wold
e5052c493b minicom: Update to 2.3 (from OE)
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 13:36:00 +01:00
Saul Wold
1280503a59 minicom: move from meta-extras to meta-lsb
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 13:36:00 +01:00
Zhai Edwin
858c0d930f Distro tracking: Update tracking fields for bc and ed
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-13 13:35:59 +01:00
Zhai Edwin
a1a35a3668 ed: add 1.4 as new recipe
Add a patch(should be GPLv3) to fix the compile issue, otherwise only produce
binary for build system in cross-compile environment. Simple function test
done.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-13 13:35:59 +01:00
Dongxiao Xu
a44754d9d6 distro_tracking: enchant, cwautomacros, which, and quota
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-13 13:35:59 +01:00
Dongxiao Xu
806cc3d049 which: Add new recipe
Add which-2.20, which is licensed under GPLv3.

The installation will override the busybox "which" command.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-13 13:35:59 +01:00
Qing He
070f8f5fd8 distro-track: new package placeholder
fam libaio sysstat sysklogd tcp_wrappers gawk

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:35:58 +01:00
Qing He
4897393c05 distro-track: update for package upgrades
newly added
acl pciutils usbutils

updated
js rsync udev

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-13 13:35:58 +01:00
Richard Purdie
0e60d04436 linux-wrs: Enable tracking of the secondary wrs_meta branch in PV
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 11:35:11 +01:00
Richard Purdie
6cbd557cf5 base: Allow unpack to handle localpath=None
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 11:35:11 +01:00
Richard Purdie
f3292fa117 bitbake/git.py: Make sure different branches can have different revisions without triggering build count increases
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 11:35:11 +01:00
Richard Purdie
a18e9b4f93 bitbake/git.py: Allow tracking of branches in SRC_URI without cloning for use with fullclone
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 11:35:11 +01:00
Richard Purdie
0ea4b89649 bitbake/git.py: Make sure a full clone checkout always updates
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-13 11:35:11 +01:00
Joshua Lock
76a17c1b5e meta-ide-support: don't pull in unneeded nativesdk tasks
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-13 09:56:23 +01:00
Saul Wold
2e0e656a15 dbus-wait: Updated License File Checksum
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-08-13 08:57:52 +01:00
Mark Hatle
07582c7761 pseudo: Fix pseudo build
Revert the change from 28d70bcddb.

Change the upstream commit to id: d30de158c1986d2161647629f279018702a42750.

This fixes the const is read-only issue when compiling.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-13 08:57:25 +01:00
Richard Purdie
28d70bcddb pseudo: Fix segfaults
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 23:12:49 +01:00
Richard Purdie
6c7bc9e2eb package.bbclass: Document the process followed in the class from a high level
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 21:35:48 +01:00
Richard Purdie
268b8cf263 dbus-wait: Update LICENSE after changes upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 16:28:22 +01:00
Mark Hatle
d428c9f9e1 prelink: Enable image wide prelinking
Add the ability to specify user level classes via the local.conf.

Use this new capability to add an image-prelink class that does an
image wide cross-prelink activity.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-12 15:54:39 +01:00
Mark Hatle
1c9f061d1f pseudo: Upgrade pseudo and correct problems
Fix an issue where pseudo could try to compile incorrectly on an
x86_64 host system.  Now it verifies that it should be trying to build
a 32-bit library, and if so the necessary prereqs are available.

Also uprev to the latest version of pseudo changes to enable wrapping
of execl, local variable storage and misc fixes.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-12 15:47:02 +01:00
Kevin Tian
e101642a61 populate-volatile.sh: cleanup duplicated invocations and remove boot warning
For one, populate-volatile.sh is itself a rcS script which is invoked earlier
than package's own postinst method (last one in rcS). If package has already
installed their volatile files correctly, it doesn't make sense to update volatile
again in postinst since nothing is changed.

On the other hand, dbus/hal are special since their user/group are only created
in the target. If they pre-install volatiles like others, populate-volatile.sh
will report "undefined user" since at that time their user/group haven't been
created. The better way solving this is to generate their volatile in the fly
after user/group are created, and then update volatiles.

This fix [BUGID #121]

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-12 15:39:24 +01:00
Qing He
cf1e754b3f libxml2: fix python binding
--with-python= should be followed by the path to python binary, not
prefix, also export several environment for passing building,
fixes [BUGID #69]

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-12 15:10:12 +01:00
Richard Purdie
bb175ec208 bitbake.conf: Fix up OVERRIDES documentation (some bits from OE) and also add forcevariable OVERRIDE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 15:06:14 +01:00
Richard Purdie
9ef9b5e1a7 bitbake/build.py: Note when calling functions that don't exist. Should probably error
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:44:07 +01:00
Richard Purdie
36e81a844b bitbake/cooker: Make sure no locks are held before we start forking workers
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:32 +01:00
Richard Purdie
e4c1c8c92e utility-tasks.bbclass: Use python functions for do_clean instead of os.system, remove pointless [dirs] flag
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:31 +01:00
Richard Purdie
19be6b407c lib/oe/path.py: Add copytree function that works
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:31 +01:00
Joshua Lock
a5884df90d lib/oe: support wildcards in path.remove
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-12 14:41:31 +01:00
Richard Purdie
dfd7e1f76b bitbake/build.py: Set the current taskname in the BB_CURRENTTASK variable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:31 +01:00
Richard Purdie
a525b27d00 relocatable.bbclass: Cover libexecdir
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:30 +01:00
Richard Purdie
9e9d45124a bitbake.conf: Set PKG_CONFIG_LIBDIR
If this isn't set, pkg-config will use its inbuilt paths which mean it can
end up looking in the native sysroot.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:30 +01:00
Richard Purdie
889c8ed31a sato-icon-theme: Make sure the native icon mapping script is found and used correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:30 +01:00
Richard Purdie
6124cccddf bitbake.conf: Always specific the sysroot in TOOLCHAIN_OPTIONS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:30 +01:00
Richard Purdie
9e2600b6b9 gcc-package-cross: Make the libexec symlinks use relative paths so they're reclocatable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:29 +01:00
Richard Purdie
53f22c9b8b gdb: Make sure expat is not accidentally included
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-12 14:41:29 +01:00
Joshua Lock
f05fd8dc5c meta-ide-support: A dummy recipe to install everthing for target development
Move the environment-setup script generation into a separate class and adapt
meta-toolchain to use it.

Add a new dummy target, meta-ide-support, to install an appropriately
configured script to TMPDIR and ensure all of the required packages for target
development are available.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-11 18:04:52 +01:00
Richard Purdie
69ac39b90e kernel.bbclass: do_deploy should use ${B}, not ${S} (which is what ${B} defaults to)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-11 11:14:43 +01:00
Joshua Lock
cb67b6d236 kern-tools-native: add scc
Add scc to the list of installed programs, as it's required by updateme

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-10 17:15:39 +01:00
Richard Purdie
15bf2d5d31 gcc: Fix 4.5.0 patch rejects
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-10 15:51:07 +01:00
Richard Purdie
a0dd61eb2b package.bbclass: Use --preserve-dates option when stripping kernel modules
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-10 15:36:29 +01:00
Qing He
c33529794a pciutils: upgrade to version 3.1.5
from 3.0.3

changes:
  - rebased patch configure.patch and pcimodules-pciutils.diff
  - fix a bug in parameter order in config that causes invalid
    search path and library version
  - remove unnecessary kernel version reference in configure
  - use DESTDIR mechanism for build and installation
  - pciutils should RDEPENDS on pciutils-ids
  - enable shared library build and package a new package series,
    libpci
  - conceive a new patch to fix shared library build, default build
    would embedd invalid library dependencies
  - add another patch to fix build on arm
  - fix a bug in previous do_install_depends that used invalid
    installation mode
  - symbolic link /usr/sbin/pciutils to /usr/bin, so non-root user
    can use it as well

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-10 15:31:19 +01:00
Richard Purdie
650319cd74 kernel.bbclass: Exclude scripts/dtc object files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-10 15:29:43 +01:00
Richard Purdie
6ef17f4b31 poky-default.inc: Make gcc 4.5.0 the default but not for mips and powerpc yet
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-10 15:09:33 +01:00
Nitin A Kamble
1842635ee8 gcc-4.5.0: import some ppc & mips fixes from oe recipes
for ppc glibc build failes with -os (optimize for size) gcc option. so
 the fix disables this gcc options on ppc.

MIPS fix is added in the hope of helping webkit-gtk build failure (gcc
seg fault).

And fix the PR bumps for all affected recipes

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-10 15:02:09 +01:00
Nitin A Kamble
8fd7cc38b5 gcc-4.5.0: newer patch for svn revision 162697
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-08-10 15:02:09 +01:00
Richard Purdie
d3630f8174 kernel/package.bbclass: Handle kernel module stripping centrally
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-10 14:47:41 +01:00
Richard Purdie
708db1ef52 kernel.bbclass: Clean up kernel packaging output
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-10 12:02:04 +01:00
Qing He
f25d26de77 js: fix configure
use autoconf to generate jsautocfg.h instead of preparing
different headers for different archs

size_of and align_of tests also work under cross-compilation.

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-10 15:51:59 +08:00
Richard Purdie
15ecd98c54 linux-wrs: perf needs python and perl at runtime, not buildtime
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-09 18:04:09 +01:00
Richard Purdie
a52dc8a26a linux-wrs: Make sure install_perf runs before do_package
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-09 17:27:05 +01:00
Richard Purdie
e710b42a00 linux-wrs: Make sure install_perf happens for do_package
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-09 17:21:57 +01:00
Bruce Ashfield
7994c9a00e kern_tools: update default revision
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-09 17:20:36 +01:00
Bruce Ashfield
a924ea57ff perf: performance analysis tools for Linux
Performance counters for Linux are a new kernel-based subsystem
that provide a framework for all things performance analysis. It
covers hardware level (CPU/PMU, Performance Monitoring Unit) features
and software features (software counters, tracepoints) as well.

To enforce the coupling between userspace and kernel, this
commit introduces perf as a subpackage of the linux-wrs tree.

perf is built directly inside the kernel tree (and hence picks
up all appropriate patches), but is packaged as a separate
utility that can be added to the rootfs and used to analyze
the kernel.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-09 17:20:36 +01:00
Bruce Ashfield
55011c1f4b kern_tools: add updateme and patchme
Adding new kern_tools to allow the compilation of a meta series
and the patching of a kernel tree.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-09 17:20:36 +01:00
Bruce Ashfield
eaacd258d8 kernel: add dynamic configuration and patching
This change adds the ability to dynamicaly modify a git based
linux repo during the do_patch and do_configure changes.

The bulk of the work is done by the kern_tools, and the recipe
simply needs to add createme and modifyme scripts to go along
with the existing configme.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-08-09 17:20:35 +01:00
Qing He
601464b497 nfsroot: allow nfsroot to survive netbase init
The patch adds a script in /etc/network/if-pre-up.d,
the script returns 1 (effectly skip the ifup on the iface) iff:
  1. there is a "* / (nfs|nfs4) *" entry in the /proc/mounts
  2. the addr field in that entry is routed using $IFACE

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-09 16:54:08 +01:00
Richard Purdie
bca283671f pseudo: Only build 32 bit lib version if 32 bit development headers are available
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-09 12:13:24 +01:00
Qing He
0025bbb903 acl: add new package
version 2.2.49

  - reuse attr build system include file
  - the default build will add attr's rpath into libacl.so, a
    hack is used here to prevent that hardcode. The hack is ugly
    but simple, without the need to do considerable autoconf hacks.
    An alternative approach is to use chrpath, but it doesn't have
    support for multilib thus not usable in its current state.
  - manual fix to .la

Singed-off-by: Qing He <qing.he@intel.com>
2010-08-06 22:21:48 +01:00
Kevin Tian
607709f78d xserver-xf86-config: add qemux86-64 xorg.conf
copy from qemux86 to make xserver works on qemu x86-64 platform. However
full GUI doesn't pop up yet due to other keycode/theme problems in matchbox.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-06 18:33:51 +01:00
Kevin Tian
f4cb0870ac module-init-tools: fix depmod caused segfault issue
memset is required after malloc in grab_module, or else random segfault
may happen. The fix is from Mark Hatle <mark.hatle@windriver.com>.
Upstream bug is reported as:
https://bugzilla.kernel.org/show_bug.cgi?id=16528

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-06 18:33:15 +01:00
Richard Purdie
45d237b3bf quote/cwautomacros: Move to meta-lsb
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-06 18:32:16 +01:00
Zhai Edwin
8f284e4c05 bc: add 1.06 version as new recipe
Simple function test done.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-06 18:28:28 +01:00
Dongxiao Xu
0cc9ac7b72 quota: Add new recipe
Introduce quota version 3.17 to poky.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-06 18:28:28 +01:00
Dongxiao Xu
a9d468c98d cwautomacros: Add new recipe.
cwautomacros is a set of m4 files, and package "which" will use it.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-06 18:28:28 +01:00
Dongxiao Xu
bdcf666d5b enchant: Upgraded to version 1.6.0
Move enchant from meta-moblin to meta
Remove "S" since it is same as default path.
Also fix the metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-08-06 18:28:27 +01:00
Qing He
662f136795 udev: enable udev-extras
changes:
  - enable extras, this includes pci/usb and acl related utilities
  - pci.ids automatic search doesn't work, specifying manually
  - package udev glib binding into libgudev{,-dev,-dbg}
  - libudev RDEPENDS on udev, this is somehow counter-intuitive:
    libudev is the library to access udev information
  - should RRECOMMENDS usbutils-ids and pciutils-ids

bug: RDEPENDS (RRECOMMENDS) on a specific version still doesn't work

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-06 18:28:27 +01:00
Qing He
0bb1016de1 usbutils: upgrade to version 0.86
from 0.72

changes:
  - package new usbutils.pc
  - move binaries into /usr/{bin,sbin} as default. udev uses only
    usb.ids instead of binaries
  - remove DEFAULT_PREFERENCE
  - symbolic link /usr/sbin/lsusb to /usr/bin, lsusb can be used by
    non-root, inspired by Debian
  - separate usb.ids to a new package usbutils-ids, for finer grained
    control, inspired by pciutils, also usbutils RDEPENDS on
    usbutils-ids
  - don't rm ${S}/libusb any more, since usbutils now doesn't bundle
    an included libusb

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-06 18:28:27 +01:00
Qing He
680f8bf8ae attr: various improvements
changes:
  - separate the build system to ea-acl.inc, it is also used by
    upcoming acl (ea stands for extended attributes)
  - the .so.* is moved to /lib, so it can be used by packages like
    udev
  - change absolute symbolic links to relative path, code inspired
    by udev
  - manual fix to .la

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-06 18:28:26 +01:00
Qing He
28d52a2f7a js: upgrade to version 1.8.0~rc1
from 1.5
use version string 1.7.0+1.8.0rc1
aka. spidermonkey

changes:
  - rebase jsautocfg.h to add JS_HAVE_LONG_LONG, fixing the build
    failure
  - document the limitation of jsautocfg.h
  - jskwgen is a host script, and should be built by BUILD_CC
  - remove dependency of readline. readline or editline is only
    used in standalone js command line, which is not shipped in
    package. Removing the dependency to avoid any concern of
    GPL3-ization
  - set BUILD_OPT=1 for optimized build

Note on version choice:
   js is known to have long rc cycles. e.g. the version 1.5:
     js-1.5-b1:   12/16/1999,  js-1.5-rc1:     03/17/2000,
     js-1.5-rc6a: 06/16/2004,  js-1.5 release: 10/22/2005

   Current release version is 1.7.0: 10/19/2007, latest version
   1.8.0-rc1: 03/09/2009, so 1.8.0-rc1 is used.

Note on standalone js vs. xulrunner:
   xulrunner also includes a js version, that is more updated than
   standalone spidermonkey. It also uses autotools so jsautocfg.h
   patch may not be necessary. However the version of xulrunner is
   different from js, and it's difficult to identify the mapping
   between them. It needs further investigation on xulrunner's
   bundled js

Signed-off-by: Qing He <qing.he@intel.com>
2010-08-06 18:28:26 +01:00
Zhai Edwin
56bbb27bb0 pcmanfm: re-update it to 0.9.7
Previous update was reverted due to some reason. This commit re-introduce the
update after following efforts:

* rebase owl-window-menu.patch - Translate the menu of gtk_ui_manager to
  original gtk menu, to enable owl feature.

* fix cross-compile issue - 0.9.7 use a temp binary, built from its own source
  code, to optimize the data file size. This binary for target can't run on
  build system. As this size optimization only gain 0.2K improvement for one
  data file(used for about dialog), disable it to work around this issue. No
  perf drop found after this fix.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-08-06 18:28:26 +01:00
Mark Hatle
2c2e5dc146 pseudo: Enable dual 32-bit and 64-bit support
On an x86_64 host, both 32-bit and 64-bit libraries need to be generated.
It is fairly common that a user will have at least a few 32-bit programs
on their x86_64 host system, so a pseudo wrapper for 32-bit is required
to allow those programs to be successfully wrapped.

Signed-off-by: Mark Hatle <Mark.Hatle@windriver.com>
2010-08-06 06:56:03 -07:00
Mark Hatle
4e2c84f6b4 pseudo: Change pseudo integration to better support local DBs
Change the pseudo integration:
  * Uprev to latest open source version
  * Restructure the patches to allow for many local DBs, as well as
    pseudo specific lib dirs.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-04 15:40:56 -07:00
Mark Hatle
aed7ee04fd base.bbclass: Enable fakeroot (pseudo) usage during install and packaging
Use the virtual fakeroot program when installing a package and also
during packaging.  This is important as it allows us to track full
permissions, owners, groups and special files generated by packages.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-08-04 10:40:49 -07:00
Richard Purdie
f4322c6adb package_ipk.bbclass: Fix variable name
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 18:18:48 +01:00
Richard Purdie
16d299c6ce cooker.py: Fix case of -b option with a full filepath
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 16:12:46 +01:00
Bernhard Reutner-Fischer
8105d4381f *: Fix typo in documentation
s/dictonary/dictionary/

(Bitbake rev: 0cc632761e75f66a8ce5ca2fe370f7551ccbfdf0)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 16:12:39 +01:00
Joshua Lock
9383074deb gcc: Fix dynamic linker location for x86_64
gcc hard codes the linker path to lib64 for x86_64 machines, update our
64bithack patch to change this to lib.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-04 11:43:12 +01:00
Joshua Lock
1fbcd2ca17 lib/oe: sync with OE.dev
Most notable change is the move to creating symlinks to patches in the metadata
tree rather than copying them.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-04 11:43:12 +01:00
Richard Purdie
7b74364120 icu: Make sure changes apply to Makefile and Makefile.in to fix build failure
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 11:43:12 +01:00
Richard Purdie
12f88767bc package_ipk: Clean up initial variables
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 11:43:12 +01:00
Richard Purdie
0f516fe9a0 bitbake/build.py: Add support for pre and postfuncs for tasks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 11:43:12 +01:00
Richard Purdie
b83179c87e kernel.bbclass: Simplify shell syntax so pysh can cope with it
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 11:43:12 +01:00
Richard Purdie
f6ae8a4b3e packaged-staging: Fix architecture of nativesdk and cross-canadian packages. Also remove now unneeded path from native packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-04 11:43:12 +01:00
Richard Purdie
ec8f5299d9 cross-canadian: Move binaries into a subdirectory of bin to allow multimachine installs and update users accordingly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-03 20:04:33 +01:00
Richard Purdie
b3e41b5d1e packaged-staing.bbclass: Make sure python function is marked as such
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-03 14:32:32 +01:00
Bernhard Reutner-Fischer
ad8c5b61a4 utils: Fix number of arguments to bb.msg functions
the 'fn' argument of them is not used, should be removed anytime:
sed -i -e
'/^def.*fn/s/,[[:space:]]*fn[[:space:]]*=[[:space:]]*None[[:space:]]*)/)/g'
lib/bb/msg.py

(Bitbake rev: 1cb72e371322c271ee7f2d008c6f7899fb38b4fd)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-03 14:07:11 +01:00
Bernhard Reutner-Fischer
0e3fc6dff2 *: cosmetic whitespace removal
(Bitbake rev: 2ed36a3d57de25e1af31d657a7b0b14857e5056a)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-03 14:06:40 +01:00
Chris Larson
191a288349 Add pysh, ply, and codegen to lib/ to prepare for future work
(Bitbake rev: d0a6e9c5c1887a885e0e73eba264ca66801f5ed0)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-03 14:06:07 +01:00
Chris Larson
e6b6767369 Let the runqueue find the user selected scheduler dynamically
Searches the module (bb.runqueue) for any new style classes which are
instances of RunQueueScheduler, and uses the one whose 'name' attribute
matches the value of BB_SCHEDULER.

(Bitbake rev: 6497cedf9cfc03201250af816995dd2bd85c36ef)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-03 14:03:41 +01:00
Joshua Lock
29b4c2945f apt: fix builds with modern GCC
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-02 18:08:30 +01:00
Joshua Lock
fa8c028fd0 scripts: add qemux86-64 support to the qemu scripts
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-08-02 17:54:20 +01:00
Kevin Tian
d9b1d4312c mesa-dri: fix x86-64 target compilation
mesa-dri first generates glsl compiler and then use it to compile GL
shader sources. Target glsl compiler can't run on build system, and
thus port from openembedded by introducing a native recipe dedicated
to creating a native glsl-compiler.

This has to be an explicit -native recipe since its un-native sibling
is already part of mesa-dri

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-08-02 16:33:51 +01:00
Saul Wold
a235e4195e hal: PR needs to be bumped for change to take effect
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-07-31 00:18:13 -07:00
Nitin A Kamble
983b094ed0 opkg: take out the bad patch on crack
opkg_unarchive.patch: This patch was trunkating the filenames silently
for no reason. took it out.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-31 00:03:13 +01:00
Nitin A Kamble
fe69012c2c libgcrypt: upgrade from 1.4.5 to 1.4.6
This resolves the build issue on mips while compiling with gcc-4.5.0

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-31 00:02:25 +01:00
Nitin A Kamble
24132e4cf1 libmad: fix for building on mips with gcc-4.5.0
added a patch:
 fix_for_mips_with_gcc-4.5.0.patch

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-31 00:02:24 +01:00
Nitin A Kamble
4460087b83 enchant: fix a dependancy issue affecting the build
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-31 00:02:24 +01:00
Saul Wold
40f50303c5 emenlow: Add BASE_PACKAGE_ARCH and modification to hal.inc for emenlow
[BUGID #171] [Netbook] Xserver version mismatch makes mouse/keyboard not work

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-07-30 14:53:37 -07:00
Richard Purdie
54bb4b4abd site/x86_64: Add entries to allow various programs to compile
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-30 18:11:06 +01:00
Scott Garman
ba6a07b76c local.conf.sample: Use ?= when setting SDKMACHINE
This is a more sensible default which is also needed when using our
autobuilder configuration, which changes SDKMACHINE between builds by
setting an environment variable.

Also made spacing around = more consistent for a couple of other
variables.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-30 14:52:18 +01:00
Jeff Dike
e4d743e0da xserver-xf86-config: netbook - merge the two ServerFlags sections
A previous commit added AutoAddDevices as a separate ServerFlags
section. This is apparently overridden by the one at the end of the
file, so they need to be merged.

[BUGID #141]

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-30 14:50:31 +01:00
Yu Ke
71bf22d9db distro tracking field: iputils, mktemp, xinetd, cracklib
these four are new packges. so add basic tracking filed first.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-30 14:50:31 +01:00
Kevin Tian
8f756a7bfd distro-tracking: for new packages
gzip
	iptables
	ethtool
	net-tools
	shadow
	coreutils
	libuser
	bc
	ed
	pax
	quota
	which
	watchdog

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-30 14:50:31 +01:00
Kevin Tian
b8589c9fde iptables: new package 1.4.8
Create a new recipe based on openembedded 1.4.7 with cleanup suitable
for poky acceptance.

The tricky thing is to figure out which set of kernel modules are
recommended for a basic iptable functions

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-30 14:50:31 +01:00
Kevin Tian
754c54818d pam: use volatile to avoid /var/run population in do_rootfs
also disable doc rebuild to reuse existing man pages.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-30 14:50:31 +01:00
Dexuan Cui
8362a98b8e tcf-agent: fix the init script: remove the "-s SSL:" option
[BUGFIX#158] tcf-agent launched with misleading options
In the commit 90e80aafbd, with the image built by
poky-image-sdk(MACHINE=qemux86), tcf-agent is launched automatically with
the option "-s SSL:" in script /etc/init.d/tcf-agent, which is misleading to
users. This option tells the agent to use SSL instead of TCP for communication.
Because tcf-agent is not built with the SSL option enabled (libssl is not
installed in the target), the agent will fall back to TCP.

This could be misleading to users, so we may as well remove it.

Thanks Lianhao Lu for reporting the bug and clarifying it.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-30 14:50:31 +01:00
Dexuan Cui
cdece36231 distro tracking: add distro_sdk_tools.inc, add lttng-ust
Add conf/distro/include/private/distro_sdk_tools.inc;
Move some sdk tools from distro_x11_libs.inc to the new .inc file;
Add tracking info for lttng-ust.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-30 14:50:31 +01:00
Qing He
5fba534b15 dhcp: fix $PATH environment for dhclient-script
CLIENT_PATH is the only environment variable of dhclient-script,
change it to include major run path, [BUGFIX#132]

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-30 14:50:31 +01:00
Nitin A Kamble
1acae1c500 libmusicbrainz: fix a build issue with gcc 4.5.0
Added a new patch
   fix_build_issue_for_gcc_4.5.0.patch

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-30 14:50:31 +01:00
Nitin A Kamble
620aece563 gcc-4.5.0: import an arm fix patch from OE
And bump PRs of affected recipes

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-30 14:50:31 +01:00
Nitin A Kamble
7325781e35 gcc-4.5.0: apply the lib64 path 64bithack.patch
Bump the PR for all the affected recipes

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-30 14:50:30 +01:00
Nitin A Kamble
067863d38d distro tracking: add tracking for libmpc
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-30 14:50:30 +01:00
Yu Ke
8658f478b7 rootfs_ipk.bbclass: add keyword "Collected errors" for log error check
Once ipk meet errors, the log will show "Collected errors:\n xxxx ".
so keyword "Collected errors" is more general to catch errors.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-30 14:50:30 +01:00
Yu Ke
16877ce14b avahi: fix the /var/run conflict with other package
avahi will create an empty /var/run dir, which will conflict with base-files package.
This patch fix this by using populate-volatiles.sh approach recommended by OE handbook.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-30 14:50:30 +01:00
Jeff Dike
ae035f151f emenlow - boot to a GUI
Here are a couple of small fixes that allow an emenlow image to boot
to a GUI.

The X server now RDEPENDS on the packages that need to be in the
image.

xserver-xorg-video-psb needed a name change to depend on
libdrm_poulsbo.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-30 14:50:30 +01:00
Zhai Edwin
d9f22d4024 binutils: Fixed cross-compile issue for 64b build + arm target
Incoportate RP's patch, which seems to be lost when update.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-30 14:50:30 +01:00
Richard Purdie
da1332a7dd bonono/orbit2: Move to meta-extras
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-30 14:43:47 +01:00
Richard Purdie
7f8c1bfb08 libjana: Drop duplicate copy from meta-openmoko
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-30 14:41:46 +01:00
Richard Purdie
049aaa0233 staging: Remove now unused legacy staging code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-30 14:41:45 +01:00
Jeff Dike
ab37f53c7b xserver-xf86-config: Add a netbook xorg.conf with an extra option
The X server on some netbooks don't interact well with HAL with their
keyboard or mouse and consequently one or both is unusable.  This
patch adds AutoAddDevices = False to a new netbook-specific
xorg.conf.  If this breaks any systems which currently work, we'll
have to figure out what's really going on with hotplug and the X
server.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-27 22:51:34 -07:00
Jeff Dike
9d4a4295db emenlow: linux - add enough config options to boot a live image
USB_STORAGE is needed to see a USB key in the first place.
BLK_DEV_INITRD and RD_GIP are needed to read the initrd in the image.
BLK_DEV_RAM and BLK_DEV_LOOP enable the ramdisk and loop devices used
during boot.
NLS_CODEPAGE_437 and NLS_ISO8859_1 are needed by vfat in order to
mount the filesystem on the key.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-27 22:51:34 -07:00
Kevin Tian
637ad7ef8c bitbake.conf: change inode calculation for genext2fs [BUGFIX#138]
genext2fs 1.4.1 creates minimal inode number based on specified rootfs
directory. This is desired in some embedded devices as storage/memory
are precious. However it's not suitable in development phase where target
rootfs may be changed heavily on the fly (remote debug, test, ...).
Sometimes this may even cause "No space on device" error due to limited
free inodes exhaulted at the 1st boot.

Here a new option is added to allow falling back to original 1.3 behavior,
i.e caculating inode number based on specified bytes-per-inode parameter.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-27 22:51:34 -07:00
Kevin Tian
218e441dd5 utility-tasks.bbclass: miscellaneous fix
Fix parse error with packages such as spectrum-fw whose name has no
version string. Later we may have per-recipe option to disable automatic
check for those known with troubles, to reduce complexity in this part.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-07-27 22:51:34 -07:00
Kevin Tian
ea3cfbaf26 cmake: only search root directory for FIND_***
default cmake behavior for FIND_***, is to first search listed directories prefixed
with CMAKE_FIND_ROOT_PATH, and if not found then go to unprefixed directories. This
is not desired as build system may be referenced.

this commit refine the search path only on prefixed directories, and thus fix
libmusicbrains build failure on some systems

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-27 22:51:34 -07:00
Dexuan Cui
106de1f41c distro tracking: add tcf-agent
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-27 22:51:33 -07:00
Dexuan Cui
90e80aafbd tcf-agent: add the latest version 0.3.0+svnr1078
install a proper script /etc/init.d/tcf-agent
make it autostart in runlevels 3 and 5

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-27 22:51:33 -07:00
Richard Purdie
c62be5367c site/x86_64: Add missing site config for glib-2.0
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-27 22:45:41 -07:00
Richard Purdie
fb10983b99 qemux86-64: Add new emulation machine for 64bit x86
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-27 22:45:41 -07:00
Richard Purdie
752435eb3b x86-64: Fix up COMPATIBLE_HOST defintions for x86-64
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-27 22:45:41 -07:00
Richard Purdie
4a51ea5508 xspb-glx: Fix libdrm naming issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 18:15:22 +01:00
Richard Purdie
95e40d33f1 libdrm-poulsbo: Fix naming to be consistent
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 18:14:26 +01:00
Richard Purdie
b01f7d73aa libva: Add missing DEPENDS on libxext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 16:49:19 +01:00
Richard Purdie
faf6b2d33e cross-canadian.bbclass: Tweak secondary toolchain path component to account for multimachine
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 15:42:56 +01:00
Richard Purdie
2685863618 rm_work.bbclasS: Don't remove the pseudo database as it causes problems with meta-toolchin
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 15:27:16 +01:00
Richard Purdie
78292128a6 emenlow.conf: All tune-atom users need to share the same TARGET_ARCH, fix. Need to revisit this issue later
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 15:20:58 +01:00
Richard Purdie
7a18558925 gcc: For 64 bit targets don't use lib64
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 15:04:35 +01:00
Richard Purdie
43b8e66467 Revert "pcmanfm: Update to 0.9.7"
This reverts commit d6ba72ac34.

This recipe is not cross compile safe and failes on non0x86 builds.
2010-07-25 13:40:17 +01:00
Richard Purdie
7edde59de4 bitbake: cache: If one virtual of a recipe is uncached, remove all versions from the cache
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 11:33:11 +01:00
Richard Purdie
36cfff8ed5 bitbake: fetch: Only mark srcrev recipes as uncached when outside of SRCREV caching mode
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 11:32:42 +01:00
Richard Purdie
0babe2c507 cross-canadian.bbclass: Add in the target compiler paths as well as the sdk compilers
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 01:37:53 +01:00
Richard Purdie
0b60744a00 gcc-configure-sdk.inc: Remove hardcoded util paths
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 01:37:06 +01:00
Richard Purdie
42df9e99a4 cross-canadian: Fix toolchain path
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 01:12:06 +01:00
Richard Purdie
3a526152d9 gcc-runtime: Fix stashed libs path for nativesdk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 00:41:45 +01:00
Richard Purdie
ae2836692f pseudo: Fix path length issues and resulting chdir issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-25 00:33:30 +01:00
Richard Purdie
ff0e858780 gcc-cross: Remove obsolete hacks from 4.5 version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 23:08:04 +01:00
Richard Purdie
2e5df820ce nativesdk.bbckass: Fix toolchain path
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 23:07:07 +01:00
Richard Purdie
53b11611e1 pseudo: Make sure log/pid/lock/socket files are covered by data directory moves
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 10:55:51 +01:00
Richard Purdie
bcba4515e5 binutils: Remove zlib DEPENDS as it causes circular references
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 09:50:38 +01:00
Jeff Dike
c28cbe7fed emenlow: Change libdrm-poulsbo to libdrm_poulsbo
It turns out to be a lot easier to generate library names with
underscores than with dashes.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-24 02:01:59 +01:00
Nitin A Kamble
17326346ff elfutils: add nativesdk target
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-24 01:38:36 +01:00
Nitin A Kamble
c7c5c34188 gcc family : upgrade to 4.5.0
Imported OE patches into the poky recipes.
	- Use elfutils instead of libelf

Converted OE's svn source into tar ball & a patch.

Added a patch to revert the baseversion to 4.5.0

Merge OE & poky extra_oeconf_options

Fix the zlib (inside gcc)  make issue by providing the --with-system-zlib switch in EXTRA_OECONF

Found out that some header file dirs were soft linked to non-existing
locations like c_std. Changed the configure options to point them to
existing locations like c_global.

gcc-cross-canadian_4.5.0: fix configure issue

Thanks to Saul Wold for providing poky gcc patches rebased to the 4.5.0
sources.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-24 01:38:36 +01:00
Nitin A Kamble
722e27e448 libmpc: bring for gcc 4.5.0
Import the recipe from OE
Upgrade from 0.8.1 to 0.8.2, and it solved the build failure
Cleaned up the libmpc-native recipe for poky tree
Add nativesdk target for gcc-cross-canadian_4.5.0

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-24 01:38:36 +01:00
Mark Hatle
4f19548bfb prelink: Add prelink-native
Add the new cross prelink support as the prelink-native integration.

Set the prelinker to use the prelink-cross.git repository as the upstream.

Note: libiberty.a is required on the host at this time

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-07-24 01:23:53 +01:00
Mark Hatle
5e3da1b94e elfutils: add elfutils native
Add elfutils native, also change the binaries being installed to be
prefixed with 'eu-' to avoid conflict with binutils

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-07-24 01:23:53 +01:00
Richard Purdie
33ee4079a2 binutils: Add native version and tweak
Enable use of BBCLASSEXTEND to generate a native verison of binutils for the
libiberty, libbfd and libopcodes libs.

Also stop installing useless libs in the cross-canadian recipe.

Partially based on a patch by Mark Hatle <mhatle@windriver.com>.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 01:07:54 +01:00
Richard Purdie
8b3f94e27d binutils: Set DEPENDS correctly and remove unneeded PACKAGES setting
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 00:57:29 +01:00
Richard Purdie
7069fb8542 binutils: Drop FILESPATHPKG, its no longer needed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 00:53:15 +01:00
Mark Hatle
62540b2a15 meta/conf/bitbake.conf: Configure pseudo to not expand symlinks
When using the fake chroot ability of pseudo, it will expand absolute
symlinks to their full non-fake path by default.  The simple change disables
that behavior, as it is undesired when generating a rootfs.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-07-24 00:50:10 +01:00
Mark Hatle
d668b80e86 meta/classes/rootfs_rpm.bbclass: re implement base on rpm5
Re implement the rootfs generation using rpm5.  This also gets rid of the
need for yum, and handles all dep resolving internal to the script itself.

The new file scripts/rootfs_rpm-extract-postinst.awk comes from the original
yum integration work.  It has been unchanged, but since yum is no longer used
we needed to move the script somewhere else.

Signed-off-by: Mark Hatle <mhatle@windriver.com>
2010-07-24 00:46:57 +01:00
Joshua Lock
8760cde94a rpm: switch to using RPM 5
Switch to RPM5 as our rpm provider of choice and update the recipe to the latest
stable release.

Signed-off-by: Joshua Lock <josh@linux.intel.com>

Modify the package_rpm.bbclass to understand the macro and command line changes
present in rpm5.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-07-24 00:46:57 +01:00
Joshua Lock
60fa21d157 beecrypt: upgrade to version 4.1.2
Add new patches to fix visiblity of C++ methods and to disable running a
program to detect the ICU version.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-24 00:46:57 +01:00
Joshua Lock
9fcba301fe libpcre: move from meta-moblin to meta and update to 8.10
Move the libpcre from meta-moblin, update to the latest release and enable
native build.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-24 00:46:57 +01:00
Joshua Lock
a4fb2c9666 pseudo: Enhancements
Enable changing the data directory on the fly from the environment and then use
this feature within poky to confine pseudo usage to each WORKDIR.

This fixes issues that could be seen under heavy inode reusage e.g.
with rm_work.

Work based mainly off a patch from Joshua Lock but finished by Richard
Purdie.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-24 00:39:58 +01:00
Saul Wold
7de5081857 task-poky-basic: Enable at and tar for basic image
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-07-24 00:07:34 +01:00
Scott Garman
ac5a021032 tar: New recipe additions 1.17 and 1.23
* tar 1.23 is GPLv3
* tar 1.17 is latest GPLv2

Recipes and patches dervied from OpenEmbedded and Debian

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-07-24 00:07:31 +01:00
Scott Garman
80986444aa at: New recipe additions 3.1.10.2 and 3.1.12
* at 3.1.12 is GPLv3
* at 3.1.10.2 is latest GPLv2

Recipes and patches derived from OpenEmbedded

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-07-24 00:07:31 +01:00
Zhai Edwin
d6ba72ac34 pcmanfm: Update to 0.9.7
New dependency on libfm & menu-cache, which are added in previous commits

following patches are removed as they either don't apply or this new version
has no those problems:
	desktop.patch
	no-fam.patch
	no-warnings.patch
	pcmanfm-mips-fix.patch

the pending one is aowl-window-menu.patch, which need more work as the sources
have changed a lot. So far w/o this patch it still works. but we need more
verification later

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-24 00:07:31 +01:00
Qing He
cbea4ae33f udev: upgrade to version 158
older versions are kept untouched for now

changes:
  - udev has diverged a lot, the udev.inc was based on a quite dated
    version, thus doesn't reflect current status of udev, create a
    new include file udev-new.inc to adapt
  - separate libudev{,-dev,-dbg} apart from udev
  - --with-udev-prefix is removed. change ${libexecdir} to
    ${base_libdir}/udev, which is described in INSTALL file.
  - udev.pc is provided in ${datadir}/pkgconfig, since it's used
    to indicate the existence of udev itself instead of development
    headers and libs, pack it in udev instead of udev-dev
  - udev-extras is disabled since we are missing libacl, this also
    means gudev is missing as for now
  - other cleanups, e.g. do_stage, do_install, EXTRA_OEMAKE

todo:
  - udev-extras
  - remove old udev versions
  - rebase udev-145 on udev-new.inc as well

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-24 00:07:30 +01:00
Zhai Edwin
3a1c456172 webkit-gtk: Update to 1.3.2
* Update the following files with 1.3.2 version in upstream:
    GNUmakefile.am
    Makefile
    Makefile.shared
    autogen.sh
    configure.ac

* Update the .bb with the one in openembeded(91eefa1e)

* inherit pkgconfig and remove dolt stuff according to RP's comments

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-24 00:07:19 +01:00
Scott Garman
b0b3468b95 tar: New recipe additions 1.17 and 1.23
* tar 1.23 is GPLv3
* tar 1.17 is latest GPLv2

Recipes and patches dervied from OpenEmbedded and Debian

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-07-24 00:01:28 +01:00
Scott Garman
0d333290a5 at: New recipe additions 3.1.10.2 and 3.1.12
* at 3.1.12 is GPLv3
* at 3.1.10.2 is latest GPLv2

Recipes and patches derived from OpenEmbedded

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-07-24 00:01:28 +01:00
Saul Wold
6da4a6688c meta-lsb: Add basic infrastructure to create lsb image
Move tar and at to meta-lsb

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-07-24 00:01:28 +01:00
Scott Garman
18b33a2ce5 distro tracking: Additional core command packages
New file for tracking the following new packages:

* at
* cpio
* cronie
* crontabs
* grep
* mailx
* openssh
* tar

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-07-24 00:01:27 +01:00
Dongxiao Xu
36186e8dd6 distro_tracking: fix tracking field for db
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-24 00:01:27 +01:00
Kevin Tian
0ff62b0462 expat: use gzip-native for unpack
expat 2.0.1 archive is generated with DOS format, which causes CRC
error for some version of gzip (<1.4), e.g. on Unbuntu 10.04. This
commit adds do_unpack dependency to gzip-native, and thus to use
local compiled binary to address this issue. Since 1.4 is a known
version solving this issue, also specify a default version for
gzip-native

also move most lines into expat.inc as cleanup

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-24 00:01:23 +01:00
Kevin Tian
f23b594087 gzip: new package
borrow from OE gzip 1.3.13 after some cleanups:
  - no ${S} redefinition
  - configure.patch is not required

also add native support

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-24 00:01:11 +01:00
Yu Ke
d91b4f5c36 opengl: audit the bb file
- repleace SRCREV with SRCPV in PV definition
- Fix the "patch=1" style

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-23 23:53:31 +01:00
Qing He
d007137a04 distro-track: update hal, udev et al
libusb, libusb1, libusb-compat
  remove libusb, upgrade libusb1 and libusb-compat. libusb-compat
  now provides libusb

util-linux
  update the latest version to 2.17.2

hal
hal-info
udev
dhcp

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:31 +01:00
Qing He
95bb97aeb6 dhcp: upgrade to 4.1.1-P1
from version 4.1.0

changes:
  original .bb file is based on dhcp3, whose build system differs from
  dhcp 4.x, add a new dhcp4.inc and preserve dhcp3.inc for reference,
  this should fix the conf file location bug of dhclient/dhcpd 4.1.0

  - defining _PATH_DHC{LIENT,PD}_CONF in make parameter no longer works,
    put these definition to includes/site.h
  - delete upstream version of conf files, which are not used, and
    with an installation path hardcoded to ${sysconfdir}
  - similar thing happen for leases file, use new configure option to
    specify
  - RANLIB, LIBDIR, etc. as make parameter are no longer necessary

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:30 +01:00
Qing He
00a42b73b6 util-linux: upgrade to version 2.17.2
from 2.17

changes:
  - clarify license. the package does contains a standalone utility
    called lscpu that is under GPLv3+, fortunately it's note packaged
    as for now
  - the installation path of getopt has changed

todo:
  - move libblkid and libuuid into separate packages

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:30 +01:00
Qing He
ec6705a488 hal-info: upgrade to version 20091130
from 20090414

changes:
  - consolidate hal-info.inc and hal-info_git.bb, git version is used
    as a reference and is not preferred
  - preferred version updated to 20091130

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:30 +01:00
Qing He
8bad275174 hal: upgrade to version 0.5.14
from 0.5.13

changes:
  - udev rules dir has been changing to /lib/udev/rules.d in udev
    upstream, add an override to stay in /etc/rules.d for compatibility
  - consolidate hal.inc and hal_git.bb, hal_git.bb is used as a
    reference thus should have a negative preference
  - change preferred version of hal to 0.5.14
  - remove hal_0.5.11+0.5.12rc1
  - remove RRECOMMENDS on udev-utils, the package is to be removed

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:30 +01:00
Qing He
63d5652355 libusb-compat: upgrade to version 0.1.3
from 0.0.9, also remove libusb recipe (see below)

changes:
  - remove some unnecessary logics derived from libusb-0.1
  - now PROVIDES libusb
  - bluez4 depends on libusb instead of libusb-compat

libusb-0.1 vs. libusb-compat

libusb-compat is intended to be a drop-in replacement of libusb-0.1,
building on top of libusb-1.0 (which has different API from -0.1).

Few known packages don't work with libusb-compat, notable example
is libmtp. Since most packages work very well with libusb-compat,
and libusb-compat doesn't suffer from power consumption issue of
libusb-0.1 (which is often very important for embedded systems),
drop libusb-0.1 and move to libusb-compat completely. If we see
any problems in the future, either the package should be fixed
or we can add back libusb-0.1 as needed.

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:29 +01:00
Qing He
74388f763a libusb1: upgrade to version 1.0.8
from 0.9.2

changes:
  - the previous recipe was derived from libusb-0.1 and thus had many
    inconsistencies, e.g. binconfig and lib_packages are not necessary,
    libusb1 doesn't provide libusb++, etc. Remove these legacies
  - remove the patch 0.9.0-gcc3.4-compat-fix

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-23 23:53:29 +01:00
Zhai Edwin
6b1dae9a03 distro tracking: Updated version info for oh-puzzles, dates, contacts...
Also add tracking fileds for menu-cache and libfm after adding them

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-23 23:53:29 +01:00
Zhai Edwin
623017e9bb libfm: Add 0.1.12 as new recipe
Required when updating pcmanfm to 0.9.7

[with cleanup from Richard Purdie]

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 23:42:04 +01:00
Zhai Edwin
e1a6b7394f menu-cache: add 0.3.2 as new recipe
required when adding libfm

[with cleanup from Richard Purdie]

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 23:41:45 +01:00
Richard Purdie
cf3f5debc0 startup-notification: Drop unneeded do_configure_prepend
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 23:24:50 +01:00
Dexuan Cui
e7dc96abd5 distro tracking: add xcb-util and startup-notification, fix xorg-minimal-fonts
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-23 23:19:53 +01:00
Dexuan Cui
4129415ef7 startup-notification: upgrade to the latest version 0.10
updated DESCRIPTION, BUGTRACKER, LIC_FILES_CHKSUM;
updated the comment (sn-utils.c -> sn-util.c);
reset PR to "r0";
updated DEPENDS: added xcb-util.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-23 23:19:53 +01:00
Dexuan Cui
e4f98097bc xcb-util: add the latest version 0.3.6
startup-notification_0.10 depends on xcb-util, so I add this package.

xcb-util.inc and xcb-util_0.3.6.bb are based on recipes from OpenEmbedded;
The changes I made are: updating HOMEPAGE,BUGTRACKER,LICENSE and
LIC_FILES_CHKSUM, and changing "include xcb-util.inc" to
"require xcb-util.inc", and using the latest version 0.3.6.

add gperf dependency and remove do_staging

Signed-off-by: Saul Wold <Saul.Wold@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-23 23:19:53 +01:00
Richard Purdie
39d8556e04 gst-meta-base: Fix vorbis plugin reference
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 23:16:20 +01:00
Richard Purdie
a167678d14 gaku: Fix plugin name
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 22:59:54 +01:00
Richard Purdie
c0a63c58cd gst-plugins: Fix module splitting
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 22:52:32 +01:00
Richard Purdie
95454d710d linux-wrs: Bump PR and fix some quoting
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 22:32:49 +01:00
Richard Purdie
4c373043e4 webkit: Bump PR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 22:28:47 +01:00
Richard Purdie
066535608e binutils: Disable libbfd and remove unneeded copies of tools in dangerous paths. gcc now has symlinks to handle this
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 18:06:15 +01:00
Richard Purdie
28f8e3034c binutils.inc: This bug has since been fixed, drop the hack
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 18:05:33 +01:00
Richard Purdie
66d7b58f22 bitbake.conf/cross.bbclass: Inject MULTIMACH_TARGET_SYS into the toolchain paths to prevent multimachine cross contamination
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 18:04:59 +01:00
Richard Purdie
bf8023237c gcc-package-cross.inc: Setup symlinks in the libexec directory to our cross tools so the toolchain finds them correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 18:03:54 +01:00
Richard Purdie
ab82312433 gcc-cross-intermediate.inc: Make sure libgcc goes into the target sysroot
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 18:03:09 +01:00
Richard Purdie
23f94ad59d gcc-cross-initial/intermediate: Drop now unneeded symlink hacks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 18:02:14 +01:00
Richard Purdie
989d2f794f gcc-cross: Use MULTIMACH_TARGET_SYS instead of TARGET_SYS in staging path
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 17:58:00 +01:00
Richard Purdie
3f5d3d7b99 gcc-configure-common.inc: Disable multilib for now
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-23 17:58:00 +01:00
Joshua Lock
b98e3e9c3f poky-env-internal: re-add OEROOT to the whitelisted environment variables
We don't want Bitbake to clean OEROOT from the environment as users may have
old layer configurations which require it set.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-23 12:50:25 +01:00
Richard Purdie
fbf2022c9a sanity.conf: Update layer version after the last commit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 23:56:36 +01:00
Richard Purdie
2efba78f9b Add meta-emenlow to the default layers list
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 23:28:24 +01:00
Richard Purdie
f887d02527 bitbake.conf: Increase the image generation free space
The current free space doesn't leave much room for using the image,
increase it. Patch from Saul Wold with tweaks.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 23:22:33 +01:00
Richard Purdie
dbc8892b09 latencytop: Move from meta-moblin to meta
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 23:19:30 +01:00
Jeff Dike
833390e533 libdrm-poulsbo: Provide libdrm-poulsbo instead of libdrm
In order to allow this package to be build alongside the regular
libdrm, it was made to export libdrm-poulsbo and its users make to use
libdrm-poulsbo instead of libdrm. libva and xserver-psb were make to
build against libdrm-poulsbo. While I was in there, I changed a couple
of misspellings of COMPATIBLE and removed a bunch of ';patch=1'.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-22 23:18:26 +01:00
Richard Purdie
b18f1216b0 package_deb.bbclass: Make sure the controldir is always cleaned out
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 18:26:54 +01:00
Nitin A Kamble
7459068915 scripts/poky-env-internal: preserve the git proxy env var
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-22 17:11:54 +01:00
Joshua Lock
0d18597ae7 rootfs_ipk: error when dependencies cannot be satisfied
Per bpo#109 dependency failure during rootfs generation did not cause an error
despite that it would cause errors later on in the process. This patch updates
the key phrases searched for in the log checking function.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-22 17:04:39 +01:00
Richard Purdie
c017d0eeb9 eds-dbus: Add missing DEPENDS on gperf-native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 16:15:43 +01:00
Kevin Tian
b4cc2b7829 pkgconfig_staging.bbclass: remove it
this is one existing for stale reason when package's own Makefile doesn't
handle .pc correctly. After previous commits to remove unnecessary inheritage
on it (sqlite3, libpng), the only remaining is libgcrypt. Libgcrypt itself
doesn't ship a .pc and poky generates one. In this case, simply move the
manual installation to its own do_install.

Then it's safe to remove this class file

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-22 15:57:31 +01:00
Dexuan Cui
1808105808 distro tracking: fix font-alias
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-22 15:57:31 +01:00
Dexuan Cui
b7be3bab5b font-alias: fix metadata
Pull a upstream commit to fix COPYING.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-22 15:57:31 +01:00
Yu Ke
5eb1eece2f distro tracking data: fix gconf-dbus, vte, xserver-nodm-init, qemugl, spectrum-fw
per the checking result of distro tracking tool

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-22 15:57:31 +01:00
Dongxiao Xu
671f05a07f distro_tracking: Fix tracking fields for networkmanager, networkmanager-applet, and glibc
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-22 15:57:31 +01:00
Zhai Edwin
23707b04a4 distro tracking: Updated version info for oh-puzzles, dates, contacts...
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-22 15:57:31 +01:00
Kevin Tian
33911454d2 distro-tracking: fix two typos
below 2 are actually upgraded to latest version:
  psplash, icu

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-22 15:57:31 +01:00
Joshua Lock
408f124c86 handbook: update SDK paths
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-22 15:47:41 +01:00
Joshua Lock
410fc8dde8 meta-toolchain: set appropriate compiler flags in the environment script
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-22 15:47:01 +01:00
Richard Purdie
c9602c5feb emenlow: Set COMPATIBLE_MACHINE where needed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 15:26:48 +01:00
Richard Purdie
e35762d971 xpsb-glx: Add missing dependency on makedepend-native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 15:26:03 +01:00
Richard Purdie
90ac746dcd xserver-xf86-config: Fix emenlow append to coexist with existing users
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 15:24:43 +01:00
Richard Purdie
dc54b7787f meta-emenlow/formfactor: Make sure the files work well with the existing recipe files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 15:21:33 +01:00
Richard Purdie
83cc54944e poky-env-internal: Print some further information for the user
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 13:21:13 +01:00
Richard Purdie
9832fd3e22 poky-env-internal: Cleanup after the recent layer improvements
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 13:19:24 +01:00
Richard Purdie
c2f71a86f5 poky-env-internal/runqemu: Move BUILD_SYS handling which is runqemu specific into runqemu
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 13:14:24 +01:00
Richard Purdie
2b84008bc9 moblin.conf: Collapse to an overlay of poky.conf
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:29:24 +01:00
Richard Purdie
7af8cb9d02 poky.conf: gcc 2.95 died a long time ago, thankfully
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:28:52 +01:00
Richard Purdie
6d3a5ac679 meta/layer.conf: Fix PATH to use POKYBASE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:24:56 +01:00
Richard Purdie
ade4c8a3b2 meta-moblin: Remove now unneeded moblin POKYMODE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:20:28 +01:00
Richard Purdie
7219087e6a Move less useful xorg-app and xorg-data to meta-extras
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:15:29 +01:00
Richard Purdie
d977cb25e5 meta-extras: Remove obsolete android goldfish code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:13:26 +01:00
Richard Purdie
3073a73214 mc: 4.6.0 -> 4.7.3 with significant recipe cleanups and updates
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 12:10:48 +01:00
Richard Purdie
c9076342fc meta-moblin: Remove old psb driver
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 11:53:01 +01:00
Richard Purdie
897a8b5abc stagemanager: Move functionality into the scripts directory
Since scripts is now in PATH thanks to the layer functionality there is
no longer any need to have this recipe full of special cases, the scripts
can just be placed there.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 11:44:28 +01:00
Richard Purdie
dc807f54f8 Finally deprecate all legacy do_stage functions. This changes the existing warning
into a fatal error if any legacy do_stage functions are found.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 11:44:28 +01:00
Joshua Lock
5c63f8a249 poky-env-internal: unbreak existing build setups
Many users have an existing build confifured using OEROOT, re-enable exporting
of this variable to unbreak their builds.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-22 10:42:47 +01:00
Kevin Tian
d9babfed3c latencytop: add dependency on gtk+ and bump PR
or else latencytop may be built earlier than gtk+...

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-22 09:30:15 +01:00
Kevin Tian
ba8fad4058 opkg-utils: add do_install after NATIVE_INSTALL_WORKS
NATIVE_INSTALL_WORKS implicates an explicit do_install required or else
its binaries are not installed to sysroot, which result in error like:
   sh: opkg-build not found

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-22 09:30:15 +01:00
Richard Purdie
b02be74889 Drop old broken menlow machine (replaced by emenlow)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-22 09:22:15 +01:00
Richard Purdie
c358150799 emenlow: Make sure the provider of virtual/kernel is set
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-21 22:50:24 +01:00
Richard Purdie
595bdde07c opkg-utils: Set NATIVE_INSTALL_WORKS otherwise we'd use legacy staging which is not correct
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-21 22:48:48 +01:00
Richard Purdie
bbdc79881f linux-wrs: Add COMPATIBLE_MACHINE definition to stop parsing errors on unsupported machines
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-21 22:48:16 +01:00
Jeff Dike
e8e3ac9b1e meta-emenlow: Layer for eMenlow-based systems.
This layer provides a kernel suitable for booting on eMenlow-based systems,
plus support for Poulsbo graphics.  The Poulsbo support includes a
kernel patch for the graphics driver, a couple of libraries, the 2D
and 3D X drivers, and a properly configured X server.

The closed portions of this support are in the 3D driver, xpsb-glx.
This package contains the binaries for the libraries that communicate
with the kernel driver and a mesa library which uses those libraries.

There is a README in meta-emenlow/ describing how to enable this layer.

Where possible, the recipes use bitbake's new .bbappend facility in
order to avoid copying recipes from meta/.

There are checksums and license information for all of the new packages.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-21 22:39:43 +01:00
Saul Wold
0c3b1aa0a5 scripts/runqemu: Path fixes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-21 21:49:09 +01:00
Kevin Tian
1df4e34d14 distro-tracking: correction for previous recipes
libpng
  module-init-tools
  apmd
  prism-firmware
  initramfs-live-boot

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:47 +01:00
Kevin Tian
d8db718b89 sqlite3: no need to inherit pkgconfig_stage
since its makefile does right steps to install .pc now

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
b376a803ca module-init-tools: upgrade to 3.12
[Patches]
  KEEP    _ignore_arch_directory_: ignore /etc/modprobe.d/arch, not sure reason now.
                                   keep it and to be verified later
  REMOVE  _module-init-tools-remove-index.patch_: in upstream
  NEW     _disable_man.patch_: a simpler patch to replace below removed two
  REMOVE  _manpagesopt_: due to above new patch
  REMOVE  _no_man_rebuild_: ditto
  KEEP    _modutils_extension_: poky has its own name convention and thus need such knowledge
                                in code

[Recipe]
  - adjust indention
  - remove some old lines like ${S} and EXTRA_OECONF

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
8a251accbf libpng: upgrade to 1.2.44
although the latest version is 1.4.3, some API changes happen which are not
compatible to some packages (such as libmatchbox using png_check_sig which
is abandoned in 1.4 version). I didn't check fully about other broken places,
and then be conservative to choose 1.2.44 as the target instead atm.

[Patches]
  REMOVE    _makefile_fix.patch_: a specific fix for libtool2.2.2. with 2.2.10, it's
                                  not required then
[Recipe]
  - add license checksum
  - remove old do_install and do_package
  - clean up package split
  - remove inherit pkgconfig_stage, since its own Makefile handles it well

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
d86e127ea0 libidn: upgrade to 0.6.14(GPLv2), and 1.19 (GPLv3)
libidn changed to GPLv3 since 2007 (its 1.0 release), so this upgrade includes two:

0.6.14 (GPLv2):
  - change SRC_URI as original doesn't work
  - remove original do_configure_prepend, which doesn't make any sense when inheriting
    autotools
  - this version includes a local copy of AC_USE_SYSTEM_EXTENSIONS which conflicts with
    latest autoconf. Actually it's not necessary and remove all references to local version

1.19 (GPLv3):
  - split a new package 'idn' for command line tools, which are licensed under GPLv3.
    keep other bits in libidn licensed under LGPLv2.1

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
856769b001 gperf: upgrade to 3.0.4
[Patches]
  REMOVE    _autoreconf.patch_: no need to duplicate acinclude.m4 in every subdirectory

[Recipe]
  - Keep original 3.0.3 version for GPLv2 requirement. 3.0.4 has bumped to GPLv3+
  - add gperf.inc for common lines
  - instead of duplicating acinclude.m4 in every subdirectory, use " -I ${S}" to
    ensure acinlude.m4 successfully found by m4_include

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
98cdb30558 dbus-glib: add license checksum
it's missing in last upgrade

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
afdebdb0c7 dbus: add license checksum
it's missed in last upgrade.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Kevin Tian
75fff51661 apmd: upgrade to 3.2.2-14
[Patches]
  KEEP    _unlinux.patch_: remove reference to build system paths
  DISABLE _libtool.patch_: this patch adds a "--tag=CC" to be compatible with libtool2.2.4.
                           however with latest 2.2.10 libtool, w/o this patch it still works. From
                           the manual, CC is the default tag actually. So disable it for now, and once
                           same error happens again, it'll be re-neabled and if necessary push to upstream
  DISABLE _workaround.patch_: a SIGUSR1 is hooked to signal suspend event as a so-called 'workaround'.
                              however no exact commit is found for exact usage case. So disable it.
  REMOVE  _debian.patch_: in upstream

[Recipe]
  Add license checksum

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-21 21:44:37 +01:00
Richard Purdie
cb249ed2f0 cmake.bbclass: Make sure EXTRA_OECMAKE has a sane default
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-21 21:43:38 +01:00
Jeff Dike
0e0830109c libproxy: Disabled webkit support
This package changed from autoconf to cmake during the last recipe
upgrade.  This made the existing EXTRA_OECONF, which disabled wekbit
support among other things, non-functional, which in turn, broke the
build.

This patch disables webkit in a CMAKE way by adding EXTRA_OECMAKE to
the cmake class description, and setting it to "-DWEBKIT=no" in the
libproxy recipe and also reproduces the EXTRA_OECONF settings.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-21 21:23:21 +01:00
Joshua Lock
314fbb1c05 gcc-cross-canadian/meta-toolchain: Fix C++ compiler location and path issues
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-21 20:21:22 +01:00
Yu Ke
1d0d3e4462 distro tracking: gconf-dbus, elfutils, spectrum-fw and sqlite3
update the distro tracking field.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-21 16:01:00 +01:00
Yu Ke
929169be0f sqlite3: upgrade to 3.6.23.1
also remove the cross-compile.patch and ldflags.patch,
since they are no longer used.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-21 16:01:00 +01:00
Yu Ke
12c929683f spectrum-fw.bb: Change SRC_URI to somewhere fetchable.
Borrow code from open embedded spectrum-fw.bb

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-21 16:00:59 +01:00
Yu Ke
f193588428 elfutils: upgrade to version 0.148
reuse the open embedded elfutils_0.143.bb recipe to fix
the cross compiling issue.

Also pick patches from debian elfutils-0.148-1 pkg

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-21 16:00:59 +01:00
Yu Ke
6cb27d8b5b gconf-dbus: upgrade to SVN r705
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-21 16:00:59 +01:00
Dongxiao Xu
9f5e302741 distro_tracking: Add tracking field for db, opkg, and opkg-utils
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:59 +01:00
Dongxiao Xu
cb1a0a46c9 opkg-utils: Upgraded to revision 4747
Update the default revision for opkg-utils in poky-default-revisions.inc
Remove "inherit autotools" since opkg-utils is not autotools based
Fix recipe metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:58 +01:00
Dongxiao Xu
36bc4592f4 opkg: Upgraded to version 0.1.8
Use stable release as default recipe.
Remove logfix.patch since the logic is already in latest version package
Also fix the metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:58 +01:00
Zhai Edwin
21fae7e2ec distro tracking: Update fileds for gnome-vfs, avahi, libassuan, liboil...
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:58 +01:00
Zhai Edwin
7dcb5a2ea6 gpgme: Update to 1.3.0
gpgme 1.3.0 requires gpgconf&g13 from gnupg, otherwise got configure failure.
Adding gnupg need a lot of efforts and still has issue:g13 only exist in
development branch. So add a patch to disable the check error, just like
non-cross-compile environment.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:58 +01:00
Zhai Edwin
3668c10acb libassuan: Update to 2.0.0
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:57 +01:00
Zhai Edwin
4c2bb35fe1 libgpg-error: Update to 1.8
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:57 +01:00
Zhai Edwin
9618d56c29 liboil: Fix the meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:57 +01:00
Zhai Edwin
2601e6d383 avahi: Update to 0.6.27
Add "--disable-gtk3" to fix build error

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:57 +01:00
Zhai Edwin
1763f004bb gnome-vfs: Update to 2.24.3
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:56 +01:00
Dexuan Cui
3deb487daa distro tracking: update distro tracking field for font-alias and liberation-fonts.
font-alias: change the RECIPE_STATUS to green as the license issue is clarified.
liberation-fonts: add "# OK" to indicate we don't update it from 1.04 to 1.05.2.20091019 for now.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:56 +01:00
Dexuan Cui
6b2eec3657 linux: 2.6.33.2: turn on CONFIG_OPROFILE and CONFIG_LATENCYTOP for netbook and qemux86
profile/profileui and latencytop need the kernel supports.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:56 +01:00
Dexuan Cui
31c0972265 distro tracking: add distro tracking field for oprofileui, powertop, latencytop.
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:56 +01:00
Dexuan Cui
fcabff2f2f task-poky-tools: add latencytop into RDEPENDS_task-poky-tools-profile
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:56 +01:00
Dexuan Cui
912a5c9c6a latencytop: upgrade from 0.4 to the latest version 0.5
Add BUGTRACKER
Rebase the patch latencytop-makefile.patch and update the patch folder's name
Add LIC_FILES_CHKSUM
Reset PR to "r0"

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:55 +01:00
Dexuan Cui
61d808bf4a powertop: upgrade from 1.10 to the latest version 1.11
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:55 +01:00
Dexuan Cui
e2fa1ec4e9 oprofile: fix metadata
Add HOMEAPGE,BUGTRACKER
Fix LICENSE and add LIC_FILES_CHKSUM
Update PREFERRED_VERSION_oprofile

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:55 +01:00
Dexuan Cui
47a60ccef0 oprofileui: upgrade from r194 to the latest version r197
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:55 +01:00
Dexuan Cui
fb92046d99 task-poky-tools: fix RDEPENDS_task-poky-tools-profile_qemux86
Change
RDEPENDS_task-poky-tools-profile_qemux86 += "valgrind"
to
RDEPENDS_append_task-poky-tools-profile_qemux86 = "valgrind", or else
RDEPENDS_task-poky-tools-profile would be overriden and only holds valgrind,
as a result, the 5 packages oprofile/oprofileui-server/powertop/... aren't
built into the target image at all.

Thanks Kevin a lot for tracking the issue down.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-21 16:00:54 +01:00
Zhai Edwin
ce8cb734a0 Distro tracking: Update the eds-dbus, jpeg, webkit-gtk....
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:54 +01:00
Zhai Edwin
b8b678f010 jpeg: Update to 8b
Original patch status:

ldflags.patch:
paths.patch:
libtool_tweak.patch:
    Dropped as the issues got fixed in 8b

debian.patch:
    This patch comes from debian distro. Original version can't apply, so
    replace it by latest version

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:54 +01:00
Zhai Edwin
37eb35995f eds-dbus: Update to 2.30.2 from git repo
Also backport a patch from upstream(f001953f7d60) to compile imapx provider
optionally, which is the default behavior of current version. Else we get build
error when compiling imapx.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:54 +01:00
Zhai Edwin
2d63185175 web-webkit: Update to 110
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:53 +01:00
Zhai Edwin
dc5bcf7f94 oh-puzzles: Fix the meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-21 16:00:53 +01:00
Dongxiao Xu
521edcf978 distro_tracking: valgrind, formfactor, makedevs, and bluez-dtl1-workaround.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:53 +01:00
Dongxiao Xu
5f3e66d5c2 valgrind_3.5.0.bb: Fix recipe metadata
Fix LICENSE information
Add BUGTRACKER and LIC_FILES_CHKSUM

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:53 +01:00
Dongxiao Xu
c7c3b48486 makedevs_1.0.0.bb: Fix recipe metadata
Fix LICENSE information

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:52 +01:00
Dongxiao Xu
69c907d39e formfactor_0.0.bb: Fix recipe metadata
Add LICENSE information

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-21 16:00:52 +01:00
Mark Hatle
ad0ac0ecd3 pseudo: Uprev to the latest git version
Uprev pseudo to the latest head version to resolve a number of issues
on older hosts such as RHEL 5.  In addition sqlite was changed to link
statically into pseudo to avoid a potential LD_LIBRARY_PATH issue.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-07-21 15:43:15 +01:00
Joshua Lock
971907567c Enable build dir outside of the poky directory
You need to first set up the build directory by sourcing the poky build script,
after that builds can be run in that directory so long as bitbake is in $PATH
removing the need to source the init script for each build.

i.e:
$ . poky-init-build-env ~/my-build
$ bitbake some-image
<<later, in a different shell>>
$ cd ~/my-build
$ export PATH=/path/to/bitbake/bin:$PATH
$ bitbake an-image

This patch also removes use of OEROOT in recipes, etc.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-21 15:39:53 +01:00
Joshua Lock
50629b3746 bitbake.conf: move PSTAGE_DIR and DL_DIR with build output
Having PSTAGE_DIR be a top level directory by default doesn't make sense, move
it to be a child of the build directory so that it lives with all other built
output. Also move DL_DIR to a child of the build directory for the use case of
an unwriteable $OEROOT.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-21 15:39:52 +01:00
Bruce Ashfield
df563f0d28 linux_wrs: update SRCREVs for 2.6.34.1 2010-07-21 15:24:54 +01:00
Bruce Ashfield
f5495cf973 linux_wrs: remove duplicate PV
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-21 15:24:54 +01:00
Richard Purdie
4dc54a274d layer.conf: Set BBPATH correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-20 14:20:04 +01:00
Bruce Ashfield
d39ae18df2 qemu/mips: arrange for vmlinux to be bootable
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-19 11:59:51 -04:00
Bruce Ashfield
ae6c323a0b qemu: update kernel mapping to return x86 for i586 TARGET_ARCH
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-19 11:59:51 -04:00
Bruce Ashfield
9ee1fbb720 qemu machines: Switch to use linux-wrs
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-19 11:59:51 -04:00
Bruce Ashfield
f0af0ba94a kernel: create base recipe for Wind River Linux kernel building
This base recipe implements support for building a git based
Wind River Linux kernel repository.

There are several restrictions in this first import:

  - no patching (needs guilt)
  - missing Wind River features (config audit, etc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-19 11:59:51 -04:00
Bruce Ashfield
15624d13d0 kern_tools: wrs kernel manipulation tools
These tools are largely unused at the moment, but represent
a baseline set of functionality for working with a Wind River
Linux kernel.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-19 11:59:38 -04:00
Bruce Ashfield
3e86c5e644 linux-libc-headers: create a libc-headers based on Wind River kernel
Put PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers-wrs"
in your configuration, and this package will be used to generate a
set of kernel headers from the -standard branch of the Wind River kernel.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-19 11:03:13 -04:00
Yu Ke
68974e8e9f vte: upgrade to 0.24.3 to fix security vulnerability
The detail of the security vulnerablility is in
http://secunia.com/advisories/40635

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-19 12:29:02 +01:00
Nitin A Kamble
6915c7e8be cpan-base.bbclass: fix perl version finding function
Now perl version is in two digits like 12 in 5.12.1. Fix the old
function to work with multi digit version strings.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:38:12 +01:00
Qing He
a30162bac9 distro-track: update fields for base section
new upgrades:
  genext2fs
  pcmciautils
  pkgconfig
  shared-mime-info

add missing:
  util-linux
  libusb1

misc:
  latest version typo in libusb
  add # OK flag to openssl
  clarify tinylogin

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-16 16:25:17 +01:00
Qing He
549a171917 rsync: upgrade to version 3.0.7
from 2.6.9
2.6.9 is also preserved as the last known GPL2 version

changes:
  - 3.0.7 has some new change to the autotools scripts, it uses
    and configure.sh and checks its existence in Makefile, adapt
    this by adding do_configure_{prepend,append}
  - aclocal.m4 now also contains custom m4 macros, add acinclude.m4
    in the files/
  - add popt as build dependency. Besides, rsync can also link to
    libacl and libattr. Possibly need to add them in the future, for
    now, document the dependency

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-16 16:25:17 +01:00
Qing He
dd05d05044 pcmciautils: upgrade to version 017
from 014

changes:
  - put LEX=flex into EXTRA_OEMAKE, from openembedded project
  - add RDEPENDS only to ${PN}, from openembedded project
  - remove modalias_update patch, it's in upstream
  - rebase the other two patches
  - starting from 017 (or maybe 016), two helper binaries are put
    into /usr/lib/udev instead of /sbin, adapt this change by adding
    the new path into package

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-16 16:25:17 +01:00
Qing He
e17f8f7e40 shared-mime-info: upgrade to version 0.71
Signed-off-by: Qing He <qing.he@intel.com>
2010-07-16 16:25:17 +01:00
Qing He
46039a37ab pkgconfig: upgrade to version 0.25
from 0.23

changes:
  - remove sysrootfix patch, it's now in upstream
  - use external popt instead of the included one

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-16 16:25:17 +01:00
Qing He
231f58590e genext2fs: upgrade to version 1.4.1
from version 1.3

changes:
  - autotools adaption
  - remove the patches since their base 1.3 diverges considerably
    from the latest version

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-16 16:25:17 +01:00
Yu Ke
aff51932d1 distro tracking field: fix xserver-xf86-config version
the trailing comments is not compatible with tracking tool,
so remove it

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-16 16:25:17 +01:00
Yu Ke
b3e901c78c xserver-nodm-init: fix distro tracking data
the trainling comment is not compatible with tracking tool,
so remove it.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-16 16:25:17 +01:00
Yu Ke
5e53061c13 xf86-input-vmmouse: upgrade to 12.6.9
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-16 16:25:17 +01:00
Yu Ke
8078a305aa distro tracking: add distro tracking field for qemugl, vte and web-webkit
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-16 16:25:17 +01:00
Dongxiao Xu
84efdfb16a distro_tracking: Add/change tracking fields for glibc, tremor, libproxy
Add "# OK" to indicate the recipe is not upgraded to the latest version

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-16 16:25:17 +01:00
Dongxiao Xu
e4f0d88caf wpa-supplicant: Upgraded to version 0.7.2
Removed local patches since the changes have accpeted in latest version
Rename wpa-supplicant-0.5.inc to wpa-supplicant-0.7.inc
Modify ${S} since the new code structure is changed
Also fixed recipe metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-16 16:25:17 +01:00
Dongxiao Xu
397793a0a4 libproxy: Upgraded to version 0.4.2
Remove the patch since build tool has changed from autotool to cmake
Export poky variable to system environment since cmake needs it
Also fix the metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-16 16:25:17 +01:00
Dongxiao Xu
d47fc7a107 cmake-native: Upgraded to version 2.8.2
Also fix the metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-16 16:25:17 +01:00
Dexuan Cui
a6ba63c70e Distro Tracking: update distro tracking field for recipes of Graphics libs
libxsettings-client: the latest version should be "0.10" rather than "0.1";
font-util: the license has been updated;
xorg-minimal-fonts: the license has been updated;
randrproto: fix the latest version: it should be "1.3.1" rather than "0.11";
libxfont: the package has been upgraded from "1.4.1" to "1.4.2" recently;
libxcalibrate: fix the git version's format.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-16 16:25:17 +01:00
Dexuan Cui
0ba8e6f951 xorg-minimal-fonts: fix metadata
There is no explicit license info in the local directory.

I used "fontforge" to open the fontdata file (.pcf.gz file) in the
xorg-minimal-fonts/misc/ and found fontforge's menu
"Element->Other Info->BDF info" says the "COPYRIGHT" is
"Public domain font. Share and enjoy. Actually
"cat *.pcf.gz | gunzip | strings | grep 'Public domain'" also shows
the same string.
So I think the license of xorg-minimal-fonts should be Public Domain.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-16 16:25:17 +01:00
Nitin A Kamble
2df46a3609 distro_tracking: note devel upgrades so far
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
648d76bda3 mpfr: upgrade from 2.3.1 to 3.0.0
Change SECTION to devel

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
41e668e781 gmp: upgrade from 4.2.4 to 5.0.1
Change SECTION to devel
Rebased the configure patch to the newer code.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
227fd49276 distro_tracking: add gmp & mpfr packages in the devel tracking file
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
4661367660 python-pygobject: upgrade from 2.16.0 to 2.21.1
python-pygobject-native: upgrade from 2.16.0 to 2.21.1

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
77dff5267b python-pygtk: upgrade from 2.10.4 to 2.17.0
Rebased this patch to the newer code
	nodocs.patch

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
1d1a559aa1 python-scons: upgrade from 0.97 to 1.3.0
python-scons-native: upgrade from 0.97 to 1.3.0

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
1564ef9c7a python-pyrex: upgrade from 0.9.8.5 to 0.9.9
python-pyrex-native: upgrade from 0.9.8.5 to 0.9.9

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
692065dc7d python-iniparse: upgrade from 0.2.3 to 0.3.2
python-iniparse-native: upgrade from 0.2.3 to 0.3.2

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
9710898615 python-imaging: upgrade from 1.1.6 to 1.1.7
Rebased the path.patch to the newer code

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
97e7eed13a python-dbus: upgrade from 0.83.0 to 0.83.1
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Nitin A Kamble
f828c0f290 yum-metadata-parser : upgrade from 1.1.2 to 1.1.4
yum-metadata-parser-native : upgrade from 1.1.2 to 1.1.4

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-16 16:25:16 +01:00
Joshua Lock
29d5edffb0 Use pseudo rather than fakeroot for fake root privileges
Make use of the ability to configure the fake root provider and use Wind
River's pseudo utility.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-16 15:40:32 +01:00
Joshua Lock
1b6535dc2e pseudo: various enhancements to integrate with Poky
Pseudo defaults to storing state files in ${prefix}/var/pseudo, we want them in
$(localstatedir) so a quick hack (path-munge.patch) makes pseudo use a data
directory specified with --data, and defaults to pseudo's way if it's not set.

Touching LD_LIBRARY_PATH can confuse the system into running Python against a
staging python library. When these two are sufficiently diverse in version
significant breakage can occur.

HOMEPAGE and LIC_FILES_CHKSUM are handy metadata variables to have defined.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-16 15:40:32 +01:00
Joshua Lock
f23aa92f08 staging: fix staging of empty directories and add localstatedir
If a program creates an empty directory during its build it's probably for a
good reason, so if it exists it seems sensible to stage it.
Some programs require localstatedir to operate so we should be sure to stage
it.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-16 15:31:04 +01:00
Richard Purdie
63e6ba8567 bitbake: Add support for .bbappend files (see mailing lists for detais)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 15:10:40 +01:00
Bernhard Reutner-Fischer
c4fde248b1 *: use print() as a function
to make python3 happy

(Bitbake rev: c82926ccdd4ec4e3ad6e78a381dacb96adf9b409)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 15:10:40 +01:00
Richard Purdie
2fc283c52d gst-meta-base: Update ivorbis plugin name
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 14:01:15 +01:00
Richard Purdie
5e34400d57 gaku: Fix ivorbis plugin name
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 13:35:00 +01:00
Richard Purdie
6598f98ba8 bitbake: runqueue: Allow passing of success/failure handlers to runqueue_process_waitpid()
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:20 +01:00
Richard Purdie
8c23850453 bitbake: runqueue: Allow taskname to be passed to check_stamp_task()
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:20 +01:00
Richard Purdie
009343b2a2 bitbake: runqueue: Make child process error scary so user is less likely to ignore
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:20 +01:00
Richard Purdie
2d263840b0 bitbake: runqueue: Fix number of running tasks accounting (include failed tasks)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:20 +01:00
Richard Purdie
3cd042f505 bitbake: runqueue: Remove unneeded exception catching from fork_off_task()
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:19 +01:00
Richard Purdie
5c44f9a78d bitbake: runqueue: Separate out task forking code into a new function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:19 +01:00
Richard Purdie
8a5b5080a2 bitbake: runqueue: Combine the waitpid result handling code into a function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:19 +01:00
Richard Purdie
90db9f3074 bitbake: Remove two layers of unnecessary functions from task execution
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-16 12:31:19 +01:00
Nitin A Kamble
2fa0c30375 libtool: update patches
As per discussion with RP remove dolt patches.
Merge Gary Thomas's patch into trailigslash.patch

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 13:46:06 +01:00
Nitin A Kamble
23363c990c insane.class: print the recipe name in the warning.
Now Warning includes the package name like zlib is printed bellow:

WARNING: zlib: Recipe file does not have license file information
(LIC_FILES_CHKSUM)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-15 13:46:06 +01:00
Jeff Dike
2295705918 sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a
The sulogin compile checked for /usr/lib*/libcrypt.a to decide whether
to add -lcrypt to the final compile.  However, the recipe puts LCRYPT
in the environment, so crypt-lib.patch makes the Makefile check for
this before looking at the host /usr/lib.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-07-15 13:44:56 +01:00
Jiajun Xu
fd1d661b39 test: add automation framework and sanitytest
Automation test is disabled by default. User need set TESTCLASS
to qemu in conf/local.conf and run bitbake command "bitbake
poky-image-xxx" or "bitbake poky-image-xxx -c qemuimagetest" to
trigger it. Currently only the sanity test with two testcases are
added.

To run the test, user need prepare a testing environment:
1) "expect" should be installed on system
2) NOPASSWD should be set for user to run bitbake

Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
2010-07-15 12:48:25 +01:00
Richard Purdie
bd19169a60 poky-qemu-internal: Use 128MB memory for qemumips/qemuppc
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 12:29:35 +01:00
Bruce Ashfield
21949128eb qemu-scripts: Add support for mips and powerpc machines, update qemuarm
For mips, the malta platform emulates a cirrus chipset. With the udpated
2.6.34 kernel options, we can now enable framebuffer boot for
the qemumips platform.

We need to pass a valid cpu (603e) and do a -nographic boot to
make it all the way to a prompt so graphics is disabled for now
for ppc.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-15 11:19:10 +01:00
Bruce Ashfield
88dd324d41 qemu-native/powerpc: add qemu 0.12.4 powerpc support
In order to force 0.12.4 to allow a powerpc system boot, we need
a patch to qemu, and a new powerpc (not ppc) ROM.

This configuration supports non-graphical booting only, since the
ROM does not have support to pass a graphics device via the
device tree yet.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-07-15 11:19:01 +01:00
Richard Purdie
868617258a binutils: Drop old versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 11:17:11 +01:00
Kevin Tian
0f19ae1b00 binutils-cross: fix '-fPIE' on mips platform
Current binutils generates problematic relocation table for executable
compiled with '-fPIE', such as dbus-daemon. That way ld.so.1 falls into
segmentation fault when accessing bad reloc entry. This pulls back one
fix from binutils CVS repo (1.267) to add PIE support back.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 10:22:09 +01:00
Richard Purdie
baf69e6a92 binutils/gcc-crosssdk: Fix hardcoded path layout assumptions for cross toolchains
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 10:19:12 +01:00
Richard Purdie
c50e585588 gcc-cross-canadian: Don't build target libs as we don't use them
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 10:18:02 +01:00
Richard Purdie
ab4ee45ba4 cross-canadian: Fix sysroot path
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 10:16:57 +01:00
Richard Purdie
cc86905780 bitbake.conf: Add base_libdir_nativesdk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 10:14:49 +01:00
Richard Purdie
3b154ffbb6 crosssdk.bbclass: Ensure target layout variables are set correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-15 10:14:27 +01:00
Joshua Lock
04472ecf9d insane.bbclass: move license check to after configure
Only checking the license at packaging time means we don't check native builds,
so move the check to after do_configure

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-15 09:54:48 +01:00
Richard Purdie
8fe2bb0123 glibc: Ensure libc is built in the correct directory by setting slibdir
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-14 17:40:21 +01:00
Richard Purdie
f9262fabad bitbake.conf: Update sdk build flags after layout changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-14 17:39:49 +01:00
Richard Purdie
f60aa088b3 Revert "file: upgrade to version 5.04"
This reverts commit 21d586b47c as it breaks rpm-native.
2010-07-14 17:38:34 +01:00
Richard Purdie
abf39a181a sanity.bbclass: Fix SDKMACHINE sanity check. We need to check the SDK_ARCH variable, not SDKMACHINE directly.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-14 12:54:44 +01:00
Richard Purdie
3b25e33054 gaku: Fix gst plugins names
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-14 10:03:09 +01:00
Dongxiao Xu
f0ebbd2158 atk: Fix the PREFERRED_VERSION
Since the atk version has been bumped to 2.30.0

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-14 09:55:55 +01:00
Dongxiao Xu
d673ad0299 gdk-pixbuf-csource-native: Fix multiple providers warning
Override PACKAGES_DYNAMIC in gdk-pixbuf-csource-native_2.12.7.bb since
it requires gtk+_${PV}.bb where PACKAGES_DYNAMIC has already been
defined

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-14 09:55:55 +01:00
Dongxiao Xu
e1ed3900fa gst-plugins: fix multiple providers warning
Rename all the sub-plugin to eliminate the inclusion by all plugins set
This can fix the multple providers warning

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-14 09:55:55 +01:00
Scott Garman
e388cb142a gcc: Add patch to fix sparseset.o rule
Fix a missing config.h dependency when building sparseset.o to prevent
"conflicting types for 'strsignal'" error, which can intermittently crop
up for high values of make -j.

Thanks to Richard Purdie and Jeff Dike for their help in tracking this
down.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-14 09:52:12 +01:00
Richard Purdie
9522930256 gst-plugins-bad: Disable apexsink since we don't have openssl in DEPENDS causing build failures
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-14 09:48:53 +01:00
Richard Purdie
2592f1c215 psplash: Update to svn revision 424
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-13 15:22:55 +01:00
Kevin Tian
8994ce33d8 distro-fixed.inc: create as last means for package version check
Some packages are not feasible for automatic version check. This commit
adds a weak list of version information for those packages before they
are carefully auditted.

Also there're 14 packages out of tracking so far. Add simple information
for them too.

This is the last one to be assorted, so use weak assignment "?="

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-07-13 15:21:45 +01:00
Kevin Tian
bdcecea903 distro-tracking: use correct override format
fix typos where *_pn- should be used instead of *_pn+

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-13 15:21:45 +01:00
Kevin Tian
78f2a2c406 python-pygobject: add glib-2.0 dependency
or else glib-2.0 may not be build before building python-pygojbect

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-13 15:21:45 +01:00
Kevin Tian
168bf73c8e distro-tracking: update tracking fields based on current progress
along with recipe upgrade, previous identified issues are solved, and thus
it's time to update status now:

    expat
    dbus
    dbus-glib
    busybox
    prism-firmware
    base-files
    base-passwd
    module-init-tools

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-13 15:21:45 +01:00
Kevin Tian
41acb50c3b dbud-glib: upgrade to 0.86
[dbus-glib-Ptches]
  REMOVE    _run-with-tmp-session-bus.patch_: test is not built by default
  DISABLE   _fix_asneeded.patch_: not sure why we need change expat link order. Disable it
                                  but keep for a while
  KEEP      _no-examples.patch_: don't build examples

[dbus-glib-recipe]
  - remove native and old recipes
  - remove tweak on dbus-glib-bindings.h, since it will be generated correctly after passing
    correct config options linking to native dbus-binding-tool and dbus-bus-introspect.xml
  - remove preferred versions in poky-fixed-revisions.inc with similar reason as dbus

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-13 15:21:45 +01:00
Kevin Tian
67eeb71308 dbus: upgrade to 1.2.24
[Patches]
  REMOVE    _cross.patch_: fixed in upstream
  KEEP      _tmpdir.patch_: disable tmpdir test in build system
  UPDATE    _fix-install-daemon.patch_: use automake for binary install instead of manual
                                        tweaks. extend it to cover dbus-daemon-launch-helper

[Recipe]
  - remove native recipes and old versions
  - install to STAGING_DATADIR_NATIVE directly
  - remove manual tweak on dbus-daemon-launch-helper install
  - remove stale config options
  - adjust indention
  - enable dbus in runlevel 3 since networkmanager has requirement at that level
  - remove preferred versions in poky-fixed-revisions.inc. Based on discussion with Josh,
    the preferred version is there just because dbus is not carefully tested before

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-13 15:21:45 +01:00
Zhai Edwin
85d83ab01b Distro tracking fields: Update some info after package update
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:45 +01:00
Zhai Edwin
be1279fdc8 libgnome-keyring: Fix the dependency to avoid compile error sometimes.
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
0e7e3ae68a gtk+: Update to 2.20.1
gtk+ previously has 2 versions: 2.14.2(preferred), and 2.18.5(latest). This
upgrade is from 2.18.5 to 2.20.1, so some patch(like entry-cairo.patch) in
2.14.2 is abandoned.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
b64111f53b libgnome-keyring: Add 2.30.1 into poky
libgnome-keyring's function was built in gnome-keyring(e.g. 2.26.1), and then
separated as an independant lib. So add this new recipe to help the
gnome-keyring update, else package depends on this lib(such as libsoup-2.4)
would have compile error.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
7a5eeeb58e libxslt: Update to 1.1.26
Also removed the doublefix.patch(removeing duplicated code), as there is no
this issue in 1.1.26

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
b4a1dc580b libsoup-2.4: Update to 2.31.2
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
bb2c55765b pcmanfm: Update to 0.5
latest pcmanfm(0.9.7) separate the core functionality to create an independent
library named libfm, which is not in poky repo. To keep it simple, just update
to stable release 0.5. Also updated some of the patches.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
73914a8190 hicolor-icon-theme: Update to 0.12
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
c66a05ac05 gnome-keyring: Update to 2.31.4
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
4cbef85afe matchbox-wm: Update to 1819
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:44 +01:00
Zhai Edwin
de590e0e74 matchbox-stroke: Update to 1820
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Zhai Edwin
718510f541 matchbox-keyboard: Update to 2075
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Zhai Edwin
7a92d3208c matchbox-panel-2: Update to 2109
Also add a patch to fix the upstream compile error caused by a typo.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Zhai Edwin
14e900213c matchbox-config-gtk: Update to 2081
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Zhai Edwin
13a8dc5903 gtk-sato-engine: Update to 0.3.2
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Zhai Edwin
608909d026 libglade: Update to 2.6.4
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Zhai Edwin
92bc5616ee gnome-common: update to 2.28.0
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-13 15:21:43 +01:00
Dexuan Cui
689eecf577 Distro Tracking: add distro tracking field for recipes of Graphics libs
They are:

libx11
libx11-trim

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-13 15:21:43 +01:00
Dexuan Cui
da28607833 libx11-trim: upgrade to the latest version 1.3.4
Updated the SRC_URI;
Added LICENSE and LIC_FILES_CHKSUM;
Reset PR to "r0";
Updated preferred-xorg-versions.inc.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-13 15:21:43 +01:00
Dexuan Cui
fb02061ece libx11: upgrade to the latest version 1.3.4
Rebased the 3 patches x11_disable_makekeys.patch, nodolt.patch and
include_fix.patch; since the patches are also used by other recipes of lower
versions, I created a new directory libx11-1.3.4/ to hold the rebased
patches (the original patches are still kept unchanged);

Updated LICENSE and LIC_FILES_CHKSUM, and reset PR to "r0";

Removed "patch=1" in SRC_URI as by default a patch is applied;

Updated preferred-xorg-versions.inc.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-13 15:21:43 +01:00
Dexuan Cui
40421c1024 librsvg: upgrade to the latest version 2.26.3
The latest stable releases of the package moved
from http://svn.gnome.org/svn/librsvg/ to
http://ftp.gnome.org/pub/GNOME/sources/librsvg/, so I removed the overrided
SRC_URI and use gnome.bbclass's, and I also changed the recipe file's name,
removed the explicit PV and removed the unnecessary S.

Reset PR to "r0".

Add LIC_FILES_CHKSUM info.

Remove SRCREV_pn-librsvg in poky-default-revisions.inc and add
PREFERRED_VERSION_librsvg in  poky-fixed-revisions.inc.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-13 15:21:43 +01:00
Dongxiao Xu
cd890ce6b4 glibc: Upgraded to version 2.10.1
remove tls_i486.patch and glibc-2.9-use-_begin.patch since they have already
been in new version of package

Also fix metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-13 15:21:43 +01:00
Joshua Lock
119b8bf270 epdfview: add epdfview recipe from OE by Manuel Teira
Poky Bugzilla #70 is a patch by Manuel Teira <manuel.teira@telefonica.net> to
add epdfview for sato. This patch updates the recipe to use the latest epdfview
and refreshes the patch for libowl change.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-13 12:39:50 +01:00
Nitin A Kamble
9b7907fae2 libtool family: fix build failure caused by previous libtool commit.
prefix.patch was removed from the target libtool recipe. But still part
of it is needed to build the man pages. So split the patch into two. One
for just fixing the man page building issue.

Also tweaked the install of libtool-nativesdk recipe as per prefix patch
changes.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-09 23:15:53 +01:00
Richard Purdie
4e80041a4f libtool: Only apply prefix.patch to the non-target versions of libtool
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-09 13:19:47 +01:00
Nitin A Kamble
b34271293a python-gst: upgrade from 0.10.8 to 0.10.18
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-08 22:05:20 -07:00
Nitin A Kamble
d42466ea43 libtool family: upgrade from 2.2.6 to 2.2.10
This upgrades these recipes:
 libtool_2.2.6.bb -> libtool_2.2.10.bb
 libtool-native_2.2.6.bb -> libtool-native_2.2.10.bb
 libtool-cross_2.2.6.bb -> libtool-cross_2.2.10.bb
 libtool-nativesdk_2.2.6.bb -> libtool-nativesdk_2.2.10.bb
    Also fixes build failure caused by having aclocal.m4 built with older version
    of libtool.

Rebased these patches for the newer version sources
 add_dolt.patch
 cross_compile.patch
 dolt.m4

Changed this patch to fix documentation building for non-x86 archs
 prefix.patch

Rebased and changed to fix the building of ncurses recipe:
 trailingslash.patch

Also updated metadata variables like LICENSE & LIC_CHKSUM_FILES

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-08 22:05:20 -07:00
Nitin A Kamble
f516cfcac0 siteinfo.bbclass: add mips-common to mips targets
siteinfo_get_files() was broken for mips. It was missing the mips-common
site config file for all the mips targets. Fixed it by adding it.

This will also fix building of flex recipe on mips.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-08 22:05:20 -07:00
Nitin A Kamble
e18aba581c python: upgrade from 2.6.2 to 2.6.5
python-native: upgrade from 2.6.1 to 2.6.5

Also removed these older version files:
	python_2.5.2
	python-native_2.5.1

Rebased the patches to the newer code.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-08 22:05:20 -07:00
Nitin A Kamble
936a73eae5 gdb family: upgrade from 6.8 to 7.1
upgraded gdb, gdb-cross & gdb-cross-canadian recipes.

ignore_whitespace_changes.patch : this patch is not needed anymore
because the newer version fixed the issue differently.

rebased other patches to the newer version of the source code.

Added the --with-libelf line in the gdb-common.inc to fix a
configure faulre.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-08 22:05:20 -07:00
Yu Ke
da46e7f705 xf86-intel-video: upgrade to 2.12.0
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-08 21:59:41 -07:00
Yu Ke
24ea9ad1f7 distro tracking field: add graphics core distro tracking filed
for mesa and xserver-xf86-dri-lite

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-08 21:19:46 -07:00
Yu Ke
c0a3d22076 vte: upgrade to 0.24.2
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-08 21:19:46 -07:00
Yu Ke
f7a98901d9 xserver-xf86-dri-lite: upgrade to 1.8.99.904 (1.9 RC4)
Also update the releated x driver PR value, since they
need recompile to match the new xserver ABI

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-08 21:19:45 -07:00
Yu Ke
3e9592e9da libxfont: upgrade libxfont to 1.4.2
Note: xorg-server 1.8.99.904 require libxfont >= 1.4.2

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-08 21:19:45 -07:00
Yu Ke
d1993fab7c mesa: upgrade to 7.8.2
upgrade from 7.4 to 7.8.2

the mesa-dri 7.5 & 7.7 is still kept since it is used by moblin distro.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-08 21:19:45 -07:00
Qing He
7b46397e3a distro-track: update for nfs-utils related pkgs
new packages added:
    attr
    libcap
    libnfsidmap
    libevent

upgraded:
    nfs-utils

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:14:00 -07:00
Qing He
3451dc8187 nfs-utils: upgrade to version 1.2.2
from 1.0.6

changes:
  - there are several new dependencies: tirpc, libcap libgss,
    libnfsimap, libevent and libwrap. disable tirpc, libgss, libwrap
  - several changes are in upstream now, include the bzero change
    and stat-include change, remove the patches
  - a new build system is used, custom macros are now moved to aclocal/,
    acinclude and rpcgen fixes are not necessary any more
  - rebase uclibc patch
  - enable nfsv41, nfsv3 and nfsv4 are default turned on
  - do_compile is no longer needed
  - the install target has changed a lot, instead of updating the file
    list manually, try to use oe_runmake install for installation.
    Several files are built against build environment, they are removed
    from the packages.

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:14:00 -07:00
Qing He
5bd2ba7e23 libnfsidmap: add new package
version 0.23
as a dependency of nfs-utils

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:14:00 -07:00
Qing He
8f033f5d29 libevent: add new package
version 1.4.14b-stable
as a dependency of nfs-utils

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:14:00 -07:00
Qing He
bbd9ebf321 libcap: add new package
version 2.19
as a dependency of nfs-utils

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:14:00 -07:00
Qing He
23dd7251a8 attr: add new package
version 2.4.44

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:14:00 -07:00
Qing He
a604cb78cc distro-track: update for base section
libnss-mdns
findutils

gnutls: reinstate a patch
startup-notification: removed since transfered to x11 apps

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:11:00 -07:00
Qing He
424278c7bc gnutls: upgrade to version 2.8.6
from 2.4.2
add homepage and bugtracker
clarify licensing to GPL & LGPL for different sub packages

changes:
  - use EXTRA_OECONF to explicitly specify libgcrypt path
  - remove multiple aclocal.m4s and distributed libtool m4
    scripts to produce sanity environment, otherwise it may
    complain about libtool version mismatch at compilation
  - rebase configure_madness.patch to adapt new autotools
    scripts, change libgnutls.pc.in and libgnutls-extra.pc.in
    to fix pkg-config issues
  - rebase the other patches
  - remove duplicated inheritence
  - depends explictly on libgcrypt (>= 1.4.2), or configure
    fails
  - use standalone version of libtasn1, and add it as a build
    dependency on libatsn1
  - add --disable-rpath in EXTRA_OECONF to avoid the rpath
    pollution by --with-<pkg>-prefix=

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:11:00 -07:00
Qing He
8a556a8ca5 syslinux: use /usr/lib/syslinux as AUXDIR
instead of the upstream /usr/share/syslinux. This happens
at some point between 3.36 to 3.86

The reason is unknown, stick in /usr/lib/syslinux for
consistency for now

Bump the PR as well

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:11:00 -07:00
Qing He
72210f8a6a libnss-mdns: upgrade to version 0.10
from 0.7

changes:
  - add avahi as build dependency and avahi-daemon as runtime dependency
  - eliminate LEAD_SONAME warning and configure warning

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:11:00 -07:00
Qing He
62136a869a findutils: upgrade to version 4.2.31 and 4.4.2
from 4.2.29
4.2.31 is the last known GPL2 version

changes for 4.4:
  - pulled upstream patch to fix bug #27017, #28824 and #28872
  - using a workaround to address bug #27299, this was fixed in
    development branch 4.5.3 by using a new version of gnulib.
    however, upgrading gnulib needs too much effort here.

changes for 4.2:
  - 4.2.31's gnulib/m4/extension.m4 won't work with autoconf 2.65,
    fix it by removing gnulib's AC_USE_SYSTEM_EXTENSIONS

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-08 21:10:59 -07:00
Kevin Tian
90ceeff258 utility-tasks.bbclass: add automatic version check for GIT/SVN proto
both git/svn supports remote information query: 'git ls-remote', and
'svn info'. With them, now upstream version will be automatically
checked for git/svn packages.

In the meantime, manual latest version tagged in distro tracking
fields are also compared as one alternative if upstream check fails.
Also such check is one indicator whether tracking field is missing.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-08 21:08:19 -07:00
Kevin Tian
43bd793679 fakeroot: upgrade to 1.14.4
[Patches]
  KEEP    _absolutepaths.patch_: solve python link issue
  REMOVE  _configure-libtool.patch_: an old patch, not required now

[Recipe]
  manually create build-aux since its own bootstrap contains more than we want

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-08 21:05:41 -07:00
Kevin Tian
59df5a4b2d pam: upgrade to 1.1.1
[Patches]
  KEEP   _disable_crossbinary.patch_

[Recipe]
  fix SRC_URI and EXTRA_OECONF indention

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-08 21:05:41 -07:00
Kevin Tian
5dcefd18d6 expat: upgrade to 2.0.1
[Patches]
  KEEP    _autotools.patch_: avoid using expat's own libtool.m4. add comment

[Recipe]
  - fix SRC_URI format
  - no need to export LTCC, as the default will be ${CC}
  - no need to touch libtool.m4

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-08 21:05:40 -07:00
Kevin Tian
cf3796f663 base-passwd: upgrade to 3.5.22
[Patches]
  UPDATE  _nobash.patch_: use /bin/sh instead of /bin/bash. disable root password
                          as we have no /etc/shadow
  KEEP    _root-home.patch_: set home of root to /home/root instead of /root
  DISABLE _mysql.patch_: poky doesn't have mysql pacakge. no need to set password
                         for it then. but keep for a while
  REMOVE  _configure.patch_: in upstream now

[Recipe]
  - add license checksum
  - reduce line wraps

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-08 21:05:40 -07:00
Richard Purdie
fae8d5e985 insane.bbclass: Relax fatal errors for now until we get have time to work through the backlog
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-08 23:51:06 +01:00
Richard Purdie
ee4fc42908 Revert "meta/site/common: Globally disable rpath option for all gettext packages"
This reverts commit da9f079481 which turned out to
cause more problem that it fixed with libtool failures of:

| i586-poky-linux-libtool: link: unsupported hardcode properties
| i586-poky-linux-libtool: link: See the libtool documentation for more information.
| i586-poky-linux-libtool: link: Fatal configuration error.

as the hardcoded test result breaks libtool internal assumptions about linking on
Linux.
2010-07-08 23:47:05 +01:00
Joshua Lock
4e3cb2adf5 Merge branch 'tk/master' 2010-07-08 12:45:02 +01:00
Richard Purdie
da9f079481 meta/site/common: Globally disable rpath option for all gettext packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-08 10:34:51 +01:00
Richard Purdie
b44d32ef41 insane.bbclass: Portions of code were not running, fix this and sync with OE.dev. Also add tests for bad sysroot rpaths in binaries
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-08 10:24:15 +01:00
Nitin A Kamble
2e04ea8754 prelink: upgrade from 20061027 to 20100106
This need change to elfutils. elfutils changes are added in separate commit.

Removed the patch arm_eabi.patch, as it is included in the new sources

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-07 17:14:03 +01:00
Qing He
7fa2815605 libtasn1: upgrade to version 2.7
from 1.7
update homepage, clarify license

changes:
  - because the utilities are licensed under GPLv3+, separate them
    out to a new package libtasn1-bin
  - libtasn1-bin now RRPLACES libtasn1 (<< 2.7)

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:14:03 +01:00
Qing He
69a86f98a3 disto-track: update fields for base groups
tzdata
dropbear
js
unzip
popt
less
file
libpthread-stubs
v86d
rsync

zip: added, it's in sato-poky because glib now depends on it
strace: update metadata to reflect its status
vte: removed since it should be in graphics section
tinylogin: marked as yellow for future replacement

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:14:02 +01:00
Qing He
fd8cf68a01 v86d: upgrade to version 0.1.9
from 0.1.5

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:14:02 +01:00
Qing He
37e6594c7c libpthread-stubs: upgrade to version 0.3
from 0.1

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:14:02 +01:00
Qing He
f481c5dd39 zip: upgrade to version 3.0
from 2.32

update S in 3.0

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:13:58 +01:00
Qing He
21d586b47c file: upgrade to version 5.04
from 4.18

changes:
  - remove native-fix.patch and sed line in do_configure_prepend,
    AM_CONDITIONAL(IS_CROSS_COMPILE, ...) works well
  - fix the bug of not packaging ${datadir}/misc/magic.mgc,
    without this file, this utility isn't very useful
  - add zlib as explicit build dependency

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:56 +01:00
Qing He
71466ea8b3 less: upgrade to version 436
from 418

use original download site since gnu's mirror doesn't keep
updated

the package is dual licensed under GPLv3+ or less license,
since less is a permissive license, no GPLv2+ versions are
preserved (<< 418)

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:55 +01:00
Qing He
9e8ffdcda9 popt: upgrade to version 1.16
add license checksum

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:55 +01:00
Qing He
0976252a53 unzip: upgrade to version 6.0
from 5.52  (552 in poky)
update license

changes:
  - bump PE so that 1:6.0 >> 552

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:13 +01:00
Qing He
01af31aec2 strace: fix metadata
add license checksum

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:12 +01:00
Qing He
0f8810e6be dropbear: upgrade to version 5.02
from 0.49
clarify license

changes:
  - rebase allow-nopw.patch, some fields in the original file are renamed
  - rebase urandom-xauth-changes-to-options.h.patch, urandom change is
    already in upstream

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:12 +01:00
Qing He
47b2545009 tzdata: upgrade to version 2010j
from 2009s

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-07 17:12:12 +01:00
Kevin Tian
b56df3f573 busybox: upgrade to 1.16.2
[Patches] (add comments for kept patches)
  REMOVE    _0000-wget-no-check-certificate.patch_: in 1.16.2 now
  KEEP      _B921600.patch_: add 921600 speed serial line
  REMOVE    _ash_fix_redirection_of_fd_0.patch_: in 1.16.2
  REMOVE    _fdisk_lineedit_segfault.patch_: not used even in 1.15.3
  REMOVE    _fix_: not used even in 1.15.3
  KEEP      _get_header_tar.patch_: fix tar problem with exact 100 bytes filename
  REMOVE    _r24785.patch_: not used even in 1.15.3
  KEEP      _run-parts.in.usr-bin.patch_: solve confliction with debianutils. Though
                                          the later is not in poky, keep it for safety
  KEEP      _udhcpscript.patch_: fix warning message
  REMOVE    _xargs-double-size.patch_: not used even in 1.15.3
  KEEP      _busybox-appletlib-dependency.patch_: solve paralle make issue. Move away
                                                  from files/.
  KEEP      _udhcpc-fix-nfsroot.patch_: support nfsroot

[Files]
  UPDATE    _defconfig_: adapt to new 1.16.2 config options

[Recipe]
  - adapt to new 1.16.2 config option
  - remove old OEMAKE_apend on "CROSS" which has been replaced by "CROSS_COMPILE"
    since 2006

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-07-07 17:12:11 +01:00
Kevin Tian
330e32da12 netbase: upgrade to 4.41
The upgrade is smooth with only one tweaks on update-inetd, which
has been moved out of netbase (since 4.27) to be a standalone
package. So remove related lines from netbase recipe.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-07 07:24:08 -07:00
Richard Purdie
4d4b7922b1 package_*.bbclass: Only set pkg in overrides. These are the only values we're interested in expanding and this makes sure we obtain the expected data
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-07 12:53:46 +01:00
Richard Purdie
1497af07fa Revert "classes/package_ipk|_deb|_rpm.bbclass: Fix setting of OVERRIDES when packaging"
This reverts commit 3abe7a0624 which was incorrect
in some assumptions about OVERRIDE handling order.
2010-07-07 12:15:11 +01:00
Joshua Lock
a644cd15eb preferred-xorg-versions: fix some versions
liblbxutil and libxscrnsaver have been updated but not had their
PREFERRED_VERSIONS increased.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-06 13:27:30 +01:00
Enric Balletbo i Serra
d0eabcb633 local.conf.sample: add igep0020 and igep0030 as supported machines.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:33 +01:00
Enric Balletbo i Serra
053e64e14a igep0030: add new OMAP3 IGEP module.
The IGEP module is a low-power, high performance production-ready
system-on-module (SOM) based on TI's OMAP3 family.

The IGEP module solution based upon TI OMAP3 provides a low-power/low-cost
platform for a variety of consumer/industrial/medical devices.

Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
2010-07-05 15:49:33 +01:00
Enric Balletbo i Serra
e5520e20ab igep0020: add MACHINE_EXTRA_RRECOMMENDS on linux-firmware-sd8686.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:33 +01:00
Enric Balletbo i Serra
34e45d5e28 linux-igep2: drop linux-igep2 in favour to generic linux-igep recipe.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:33 +01:00
Enric Balletbo i Serra
d42035d226 igep0020: use linux-igep for preferred kernel provider.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:33 +01:00
Enric Balletbo i Serra
a367934c68 linux-igep: Add common 2.6 Linux Kernel for all IGEP based platforms.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:33 +01:00
Enric Balletbo i Serra
f594a1145e mtd-utils: update to 1.3.1 to allow UBI support.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:32 +01:00
Enric Balletbo i Serra
1d22846b48 linux-firmware: add firmware files for use with Linux kernel (based on OE.dev)
A collection of firmware files are provided for this git repository,
this recipe can provide multiple packages for every group of firmware
files needed for every device. For now, only the SDIO libertas firmware
is packaged.

The SDIO libertas firmware is used on various OMAP3 based boards.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:32 +01:00
Enric Balletbo i Serra
912e9d234e igep0020: set default TARGET_FPU to 'hard'.
Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2010-07-05 15:49:32 +01:00
Yu Ke
d4a6c9ef8b distro tracking field: add distro tracking filed for graphic core/app
they are:
xf86-input-evdev
xf86-video-vmware
xrandr
cairo
python-pycairo
xserver-nodm-init
xserver-xf86-config
pango

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:48 +01:00
Yu Ke
52759ea577 pango: upgrade to version 1.28.0
when upgrade to 1.28.0, the local patch no-introspect.patch
is removed, since it is already in 1.28.0 upstream.

this patch also fix the meta data, and change the field order
according to the style guide.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:48 +01:00
Yu Ke
8f88fd5483 xrandr: upgrad to version 1.3.2
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:48 +01:00
Yu Ke
cd7a91e968 xf86-input-evdev: upgrade to version 2.4.0
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:47 +01:00
Yu Ke
45684232a5 xf86-video-vmware: upgrade to version 11.0.1
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:47 +01:00
Yu Ke
669491b423 python-pycairo: upgrade to version 1.8.8
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:47 +01:00
Yu Ke
7ccf7af572 cairo: upgrade cairo to 1.8.10
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-07-05 13:29:47 +01:00
Nitin A Kamble
020022ad41 distro-tracking: correct the latest for perl
Instead of the devel (Odd) pick stable (Even) latest

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-05 13:29:46 +01:00
Nitin A Kamble
6a5a351c7d qmake2-cross: update the 2.10a recipe
The source tarball filename has changed.
Rebased the 0001-fix-mkspecs.patch to the newer code.
The versions of the qmake2 is still 2.10a

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-05 13:29:46 +01:00
Dongxiao Xu
a60863a0a6 distro_tracking: Adding tracking fields for upgraded recipes
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 17:14:25 -07:00
Dongxiao Xu
763be1f0f5 nektworkmanager-applet.bb: Fix recipe metadata
Add HOMEPAGE and BUGTRACKER information
Fix LICENSE information
Fix recipe format

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:32:48 -07:00
Dongxiao Xu
614b28d52b networkmanager_svn.bb: Fix recipe metadata
Fix HOMEPAGE and LICENSE information
Add BUGTRACKER information
Fix recipe format

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:32:47 -07:00
Dongxiao Xu
9bd229b8d3 libproxy_0.2.3.bb: Fix recipe metadata
Fix LICENSE and add BUGTRACKER information

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:32:47 -07:00
Dongxiao Xu
128a2f7f51 kexec-tools: Upgraded to version 2.0.1
Removed kexec-arm-atags.patch kexec-tools-arm.patch and recentheader.patch
since they are already contained in the latest package

Also fix the metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:32:47 -07:00
Dexuan Cui
15c9e54368 preferred-xorg-versions: update versions after latest recipe bumps
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:47 -07:00
Dexuan Cui
819a34a452 Distro Tracking: add distro tracking field for recipes of Graphics libs
They are:

libpciaccess
xkeyboard-config
util-macros
fontconfig
freetype
librsvg

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:47 -07:00
Dexuan Cui
82597d379c librsvg: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:47 -07:00
Dexuan Cui
322b26ae11 liberation-fonts: fix metadata
update DESCRIPTION, HOMEPAGE, BUGTRACKER;
fix tab/space issue in do_install() and fix the trailing space.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:47 -07:00
Dexuan Cui
ee97395865 xorg-minimal-fonts: fix metadata
LICENSE and LIC_FILES_CHKSUM haven't been updated yet.
Will keep to try to find the origination.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:47 -07:00
Dexuan Cui
2836e04d60 font-alias: fix metadata
LICENSE and LIC_FILES_CHKSUM haven't been updated yet.
Will keep to try to find the origination.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:46 -07:00
Dexuan Cui
e02887802f freetype: upgrade to the latest version 2.3.12
rename freetype-2.3.5/ to freetype-2.3.12/;
remove configure.patch as it's not used at all;
remove fix-x86_64-build.patch as 2.3.12 has been integrated the patch;
update the licence from "freetype" to "FreeTypeLicense | GPLv2+".

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:46 -07:00
Dexuan Cui
efdb82b4b5 fontconfig and fontconfig-native: upgrade to the latest version 2.8.0
fontconfig-native requires fontconfig, so upgraded both recipes;
renamed the patch directory from fontconfig-2.6.0 to fontconfig-2.8.0;
slightly rebased fix-pkgconfig.patch;
added HOMEPAGE, BUGTRACKER, LICENSE and LIC_FILES_CHKSUM;
updated LICENSE from "BSD" to "MIT-style & MIT & Public Domain";
reset PR to "r0".

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:46 -07:00
Dexuan Cui
95bc479d92 util-macros: upgrade to the latest version 1.10.0
Deleted the patch unbreak_cross_compile.patch since upstream has fixed the issue:

commit 5d7f8c2638a3b2c3bba8deb01e94703310b62cc4
Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Date:   Thu Mar 25 18:10:00 2010 -0500

doc: add XORG_CHECK_SGML_DOCTOOLS to detect xorg-sgml-doctools

Trying to find X11/defs.ent with AC_CHECK_FILE does not work when
cross-compiling, and the check assumed that xorg-sgml-doctools is
installed to the same prefix which need not always be the case.

xorg-sgml-doctools 1.4 provides a pkg-config file which we can use
instead, fixing both those cases.  This macro is provided in util-macros
instead of with xorg-sgml-doctools, otherwise the latter would become a
hard dependency just to run autoreconf.

Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>

BTW: the repository is at:
git clone git://anongit.freedesktop.org/git/xorg/util/macros
and the above commit can be viewed via
http://cgit.freedesktop.org/xorg/util/macros/commit/?id=5d7f8c2638a3b2c3bba8deb01e94703310b62cc4

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:46 -07:00
Dexuan Cui
d6615c2940 xkeyboard-config: upgrade to the latest version 1.9
Updated SRC_URI because from version 1.9 on, the link changed to a new place.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:46 -07:00
Dexuan Cui
d1b1378e9d libpciaccess: upgrade to the latest version 0.11.0
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-07-02 15:32:46 -07:00
Qing He
f76cd262c3 rpm: fix metadata
add bugtracker, clarify license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:46 -07:00
Qing He
5d1a64a298 shared-mime-info: fix metadata
add description and homepage, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:46 -07:00
Qing He
c3a20314c2 tzdata: fix metadata
add homepage, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
788ffb75e7 vte: fix metadata
add bugtracker, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
f0c66927ae strace: fix metadata
add homepage, fix license from GPL to BSD

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
ffa0f7973b unzip: fix metadata
add homepage

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
471892e200 pcmciautils: fix metadata
add license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
dfe9854f48 js: fix metadata
add homepage, fix description
update license, it's actually tri-licensed

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
715e03329b libusb-compat: fix metadata
update homepage, add bugtracker
update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
d65c8276e7 avahi: fix metadata
add bugtracker
update license to relect that part of the package is under GPL
rather than LGPL

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
4e71fc76ad hal-info: fix metadata
add bugtracker

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:45 -07:00
Qing He
06ecb32bf3 hal: fix metadata
add bugtracker, update license
The detail license is very complex and not easy to be expressed
in a single LICENSE line. Adopt a simple notation here, and will
describe details when the package is actually being upgraded.

hal_git doesn't use hal.inc, need further cleanups.

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
5061f7be7d nfs-utils: fix metadata
add homepage, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
912f5b12de rsync: fix metadata
add homepage and bugtracker
update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
4d160902f8 file: fix metadata
add homepage, slight re-order

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
64e5dd1aac findutils: fix metadata
add homepage and bugtracker
update license to clarify the transition of GPLv3+

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
2cfe0ca27f genext2fs: fix metadata
add homepage, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
bbd41f4b96 less: fix metadata
update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
47cc37d2d5 pkgconfig: fix metadata
add bugtracker, list license as GPLv2+

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:44 -07:00
Qing He
1478977ac3 gconf-dbus: fix metadata
update license from GPL to LGPLv2+

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:43 -07:00
Qing He
9bb0fa9c1e libpthread-stubs: fix metadata
add bugtracker, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:43 -07:00
Qing He
b649f5c971 startup-notification: fix metadata
clarify license

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:43 -07:00
Qing He
54f41e239e popt: fix metadata
add homepage

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:43 -07:00
Qing He
bd6b465ab9 libnss-mdns: fix metadata
license is LGPLv2.1+, not GPL

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:43 -07:00
Qing He
0f321c8027 distro-track: update track info of base packages
The status of recipes are marked red to flag that they
need further upgrading.

 - libusb-compat was classified as base utils, put it to base libs
 - rpm was not in poky-image-{sato,sdk}, but since we are in transition
   to rpm based packaging, include it as well
 - libsoup should be handled together with libsoup-2.4
 - tinylogin has been merged into busybox

33 recipes to go

Signed-off-by: Qing He <qing.he@intel.com>
2010-07-02 15:32:43 -07:00
Kevin Tian
9f2b765e4f distro-tracking: add overrides for previous packages
libpng
libidn
base-files
base-passwd
apmd
gperf

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:43 -07:00
Kevin Tian
bac29db14c libidn: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:43 -07:00
Kevin Tian
adcfc07f13 libpng: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:43 -07:00
Kevin Tian
dd0760a38f gperf: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
a234ac09c1 apmd: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
b1c741031d base-passwd: fix metadata, indention and patch parameters
another fix is to remove ${docdir} appending to FILES_${PN}-doc,
since it's already included by FILES_${PN}-doc

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
5d4ab79e81 base-files: fix indention
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
22e877d882 libgpg-error: fix SRC_URI indention
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
46140e8c01 module-init-tools: fix SRC_URI indention
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
c19e4d220e dbus: fix SRC_URI indention
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:42 -07:00
Kevin Tian
31180a56d1 glib-2.0: upgrade to 2.24.1
(borrow from OE 2.24.0, with study about reason for detail changes)
[Patches-Poky]
    KEEP     _configure-libtool.patch_: fix cross-build env
    REMOVE   _glibconfig-sysdefs.h_: introduced in glib-1.2.10, which is actually
                                     not valid today
    KEEP     _glib-gettexize-dir.patch_: another quite old patch added before 2.10.3
                                         add history info, and mark for upstream
[Patches-OE]
    NOTAKE   _gio.patch_: a private extension for a window matching library (wncksync)
    NOTAKE   _gvavriant.patch_: in 2.24.1 now
    NOTAKE   _gasync.patch_: in 2.24.1 now
    TAKE     _60_wait-longer-for-threads-to-die.patch: said to fix anonying warning
    TAKE     _gatomic-proper-get-cast.patch_: fix error about type casting. Instead of
             using OE's patch, I found a better one from latest repo
    NOTAKE   _g_once_init_enter.patch_: in OE since 2.22.1, not quite sure of its purpose,
             also it's not in upstream yet

[Recipe]
    - fix metadata
    - keep glib-2.inc which is for python optimization
    - remove PRIORITY since 'optional' is the default
    - no need to specially install glibconfig.h in ad hoc path, which is only relied
      by 'obexpush' which poky doesn't have and can be fixed in 'obexpush' itself as
      what OE does
    - no need to manually create glib2.0/glib, which is handled by current code
    - remove 'acpaths' which only applies to versions before 2.12.4
    - below lines are not taken from OE
        * glib-mkenums tweaks, which exists in OE for a long time but never in poky.
          since there's no way to find out original commit, keep poky's style instead.
        * host libtool check. not sure about its purpose, and it's also in OE for quite
          long time

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:32:28 -07:00
Kevin Tian
6b81c6dbb5 sudo: upgrade to 1.7.2p7
Old 1.6.8p12 is quite old, even w/o source available now (only cached in pokylinux).
[Patches-Poky]
    KEEP     _autofoo.patch_: deal with bunch of autotool warnings/errors, more about
                              underquotes. In 1.7.2p7, those error conditions disappear.
                              But the underquotes fix is still valid to remove a bunch
                              of autoconf warnings

    REMOVE   _autofoo1.patch_: copy of autofoo.patch. no one uses it. REMOVE.

    KEEP     _noexec-link.patch_: use "-module" to avoid libtool complaining about not
                                  starting with "lib". Add comment to the patch file.

    DISABLE  _nostrip.patch_: it's wrong to strip target binaries on build host. Borrow
                              from OE to use 'sed' instead of patch, but keept it for
                              remind to upstream

    REMOVE   _nonrootinstall.patch_: handle mode/owner population at install. It's not
                                     requried at all since there's pkg_postinst to handle
                                     it at right stage

Other misc stuff:
    - update metadata information
    - no need to use ${S} in 1.7.2p7
    - fix idention
    - use sed to disable strip
    - changes from OE:
        * disable PAM as our pam doesn't include necessary config files and plugs
        * no need to special sudo_cv_uid_t_len tweak in the recipe. It's already there
          in poky site files for a long time
        * move sudo_cv_func_unsetenv_void to meta/site/common. Stdlib.h is common across
          architectures in our libc headers, which conforms to POSIX standard

(borrow from openembedded 1.7.2p4)
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 10:35:11 -07:00
Richard Purdie
14df571486 bitbake: Fix handling of empty variables in local config files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
04b2a78837 Add a warning if a BBFILE_PATTERN doesn't match any bb files
Likely cause is, of course, typo in the pattern or incorrect BBFILES, so we
should warn the user about this.

(Bitbake rev: b781317b5006bc047a59e7fa3c93344115e78ccb)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
ecbd5ca720 3.0 prep
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
ef1de9ecaf Apply some 2to3 refactorings
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
20dc452614 Drop a couple usages of readlines
(Bitbake rev: 40925230781ddd550bf21d90714c5349f9240a51)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
b9f8af16f4 Until the interactive mode is fixed, kill it from the valid options, to avoid confusion
(Bitbake rev: 65a51bb20677148a29b9e472f6d9d0a97798f024)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
aa538a405e Fix syntax error in shell.py
(Bitbake rev: 1bddc77268e57e236c274fd91c889ea00a13891b)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
fe9172ed55 Add missing 'return False' to the SystemExit handler in runAsyncCommand
(Bitbake rev: 966490c555cbdc09f52e1dcc68d3772c28ad9cee)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
526837e1c1 Move serverConnection.terminate() back into the finally
(Bitbake rev: 58e1b0a5dbd0f1ca137ad7ed1bd7ad9975a20fb7)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
2f0a485bd4 Limit the traceback length in the default exception handler
(Bitbake rev: 2b9dc5b55e24b4946ff03bf30ca52a48547caaad)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:37 +01:00
Chris Larson
56f083ad13 Switch from our own 'dummywrite' class to StringIO
(Bitbake rev: f5b7e16adf86950d91a88a343031e71beb0f08a6)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
6be4fa575a Switch a fatal usage to SystemExit ("T" not set)
This failure is one the *user* needs to see, as it may have to do with their
setup, but where they don't need to see a traceback and all, since they're not
developers, so I think SystemExit is appropriate here.

(Bitbake rev: e3cc9bc7b6ef1a2eca78235790a051329bceb9a4)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
ce42c24d70 Resurrect the excepthook, this time just sending the info with bb.fatal
(Bitbake rev: 07757a1bf1129cc6a967a7cf1815d3d46a6bbdcf)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Cliff Brake
6c338660e8 remove return in finally statement
causes exceptions to not be handled after the finally statement

(Bitbake rev: 1a04610dea376340b9ea4c109f64995b4fd6ad02)

Signed-off-by: Cliff Brake <cbrake@bec-systems.com>
Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
39f6ec5f63 cooker: Kill __getitem__ usage on exception objects (python 3 prep)
(Bitbake rev: 1239df8b82ddcd607630da5a888ca83051a22fa8)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
ef835bf33a Handle SystemExit and KeyboardInterrupt sanely when executing a command
(Bitbake rev: 17f40d036814e4abf6d87363fff7823c8c85c298)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
562fd5f2a7 Drop unnecessarly duplicated messages wrt FuncFailed
(Bitbake rev: 9ec9c0e560d4fa6df74a90f598f9db92713525a2)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
6092312acc knotty: use the future division to prep for 3.x
(Bitbake rev: bd0edc19f691146e748b91255be7a5788a070de6)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
8a9a4748c9 Kill the unnecessary setVarFlag debugging message
(Bitbake rev: ef8475796fbab4f76a72bbc106da4c35e3afe2e1)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
dabe4a3943 knotty: stop freaking out and dying when bb.build has removed the empty logfile
(Bitbake rev: 2197182fe5837d74f1499c644e882e87cf035238)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
e886ec2a2b Use bb.utils.mkdirhier in bb.cache to shut up the pending deprecation warning
(Bitbake rev: 0c885752d69e4108e2960d59ec1bd6c911dd141a)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
8f9bdd68de Use PendingDeprecationWarning for functions moved from bb to bb.utils
This is necessary, as there has not yet been a release with the bb.utils
versions in place.  We can't show them a deprecation warning when they can't
safely change it yet.  Show a PendingDeprecationWarning until 1.10 releases
and OE requires it, then we can move to DeprecationWarning.

(Bitbake rev: 43700fa1ca1d2635de4ed46110057cb164ee82d1)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
0c5b5b21f7 Start ditching fatal() calls in favor of raising appropriate exceptions
(Bitbake rev: 681b73fcc04e22e692ed61650ad53c800b64cace)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
77a6052e39 Drop the non-debug traceback suppressor, at this point I think it does more harm than good
(Bitbake rev: 2c66ddc2713061ba31363ea69c24944f4a7cd3a8)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Ryan Phillips
40d7de8f06 Change wget fetcher to use the runfetchcmd
* Fixes proxy support to honor standard proxy environment variables.
* Quote environment variables

(Bitbake rev: f84f382f340d6db15b9e5afb8c7c93969249a958)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
88a257634a Show a traceback when a task fails due to an exception
(Bitbake rev: 5bb24832761bd518cb0249125f67939e0cbd0998)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Bernhard Reutner-Fischer
c63278bf34 parser: fix harmless typo in variable name
s/absolsute/absolute/

(Bitbake rev: 837c84ce47c298316b941a5f3d2479bd2643686b)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:36 +01:00
Chris Larson
3beecc66e9 Fix the silent exit when the specified task doesn't exist
(Bitbake rev: 2b64afa107dc24db510d0001b6eb58f0d5913d2f)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Chris Larson
7e53a3b5cf Move the output of no provider and multiple provider messages into the UI
(Bitbake rev: 36b980c16bf74b3c2066cc120f9f27e11f189a63)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Chris Larson
75d49840cf Reorganize the main exception handling so an attribute exception raised in the ui isn't misinterpreted
(Bitbake rev: 49b8bab706c59e93287f8540187b62ba3ece0a11)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Chris Larson
1b6af2787e Make knotty ignore the NoProvider event
(Bitbake rev: e07f759dae96c0819c35bb67e1da18ca361bb584)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Chris Larson
4fac507dfb Don't tell the user we're sending SIGINT to the remaining 0 tasks
(Bitbake rev: 0b963e52eca0447d5bbfc87d826ad662fe940381)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
186f857466 cooker: use time.strftime() instead of spawing sh with date
time.strftime() defaults to using time.localtime(), use that instead
of spawning "sh -c 'date +<FMT>'"

(Bitbake rev: ec1f2773b4811b3beb52710120bb5a9b215c174e)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Chris Larson
0405011734 Adjust the exception handling based on Cliff Brake's patch
Rather than printing the exception ourselves, might as well re-raise and let
the default exception handler do it for us.

(Bitbake rev: acca7eb8450cbe30d65b5b266f1a642e7965df8a)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Robert P. J. Day
6ab1dbbb7c Fix a couple typos in the CVS Fetcher section.
"DL_DIRS" -> "DL_DIR"
Remove superfluous trailing ">" after CVSDIR.

(Bitbake rev: 34f396e749303367e657911bf10c43086dff7552)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
16553b8826 cache: do not chdir unnecessarily
previously we called chdir() twice for every target, this patch reduces
the amount of chdir() calls via openembedded master from some 16000 to
4.

(Bitbake rev: fa45f5625e13a82bec70d5f10815f52fbe705166)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
726802b980 persist_data: cache connection and use cursor
Store database connection to persistent database in fetcher.

(Bitbake rev: 8a6876752b90efd81d92f0947bfc9527d8260969)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
30216c65e5 cache: use a set() for __depends
to make updating depends easier/more intuitive/eventually faster

(Bitbake rev: f7c69462b8ba726861898817cc5b13174c78e35a)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
cf79cf127b cache: use max() to determine newest_mtime
(Bitbake rev: c0cf85beda4cf8748fd270c037442cde7b98146b)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
81d13cbebe cache: use os.path ops instead of stat
(Bitbake rev: 09fe0d403c75229931c10eabc7eecc0dc60058fe)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Chris Larson
9d32ff0c87 Make the file not found error actually useable.
(Bitbake rev: 1cfcbee014478eb129ed382c13622317412b036e)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
85ca18f60a fetch: commentary typo fix in fetcher_init()
(Bitbake rev: b786f1f60fb50565295e7c8e979b471327d924f3)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
6c37c32773 cache: fix typo in error message of cacheValidUpdate()
(Bitbake rev: 9937d5992d72104c670e069f4c46cc62a490e18f)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:35 +01:00
Bernhard Reutner-Fischer
a7ad7cfb2f fetch: documentation typo fix
s/initilize/initialize/

(Bitbake rev: 1497dd0d5bc0cca0de7d0ee9d314287000a0c34d)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Khem Raj
f7e6c5ad2b fetch: Check for existence of tar file along with md5 signature
(Bitbake rev: a5b1c0605328660de15bb8127b6f7d798c664d32)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
50006b49fc Revert "In expand, drop the unnecessary second regular expression match"
This reverts commit 05462fa7908fc22988b3dc9d376798d0a46ccb5a.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
d217bedd32 Don't emit vars starting with __, as those are internal
(Bitbake rev: 211f44ce0e15c7c419606e9ef3568d9cea6775b7)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
d00b54b948 In expand, drop the unnecessary second regular expression match
(Bitbake rev: 05462fa7908fc22988b3dc9d376798d0a46ccb5a)

Signed-off-by: Imran Mehmood <imran_mehmood@mentor.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
e07a5b1909 Simplify _findVar a bit
(Bitbake rev: b017acd39b811a00305002a8044e7d02e79f41d7)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
66d66cb487 Fix major bug that slipped in when moving update_data
The root cause is, I was testing the use of renameVar() from finalize, in
order to get flags copied over when an override is applied, but renameVar
removes the original, whereas the old code did not do so.  Going back to the
old method, will revisit the override/flags later on.

(Bitbake rev: 2f7c498abcf675e5b8de197d8056a0581670c2bd)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
4802a9d07a Move a var definition in cooker.parse_next
(Bitbake rev: 1b378ddf3dc9b2aa5384e8b28945b63fc623a6a4)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
8bc7ebb4ae Enhance the expansion exception message
(Bitbake rev: 1cc11164a85a5b30d6b9184cb5a8f7f7ac1aaff2)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
1e7a03cb58 For ${@}, run str() on the result
(Bitbake rev: cf1a51eab11f645c95e5fa278221f78c129b9dd1)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
15248f3e7d Allow emission of non-string objects in emit_var, instead running str() on it first
(Bitbake rev: 5b09e28cb4a2c6c99ad58e71fb803160922a7e1e)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
9d3f301423 emit_env: clean up, iterate once
(Bitbake rev: db718ec6f67c7c0d0efb4ba0b5b24384f707dcf5)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
6f52061844 Fix the debug level check in print_exception
(Bitbake rev: 9cb52edf9198fe6db735abbb61d0c4026c97a8d9)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
c3eae29efa Don't try to expand non-string values
(Bitbake rev: fe36a726b9f930bbd6fd758c0aee78559e95f02b)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
214d1f7433 Move the python version check into the python package
This ensures the check is run for anyone using the package, including
setup.py, though it's sad that it's necessary, since all it really wants is
__version__.

Ideally, we'd avoid the version check entirely in favor of checking for
functionality, but that's rather difficult with language constructs like
context managers, so this'll do for now.

(Bitbake rev: f936f1c0edf70860ea0f39ec1a500ba43b56f289)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
231d3a534c Drop an unnecessary second python version check and use the less ugly sys.version_info
(Bitbake rev: 8f4b7b10f8740a41c085beeca5105f15204b0979)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
bdbeaf4760 Bump version to 1.11.0
(Bitbake rev: 6c89c332664a7789d02a701e7e530838ab778264)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:34 +01:00
Chris Larson
51864054da Move the python version check before the module imports, in case the modules utilize the newer python features
(Bitbake rev: 87c15dfcbeb10e7cafb14726209e4954671b3dbe)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
c04cee7ce8 Search up the directory tree for bblayers.conf
(Bitbake rev: 1c6b31c649474b4c2b63ef9d9311e61de20bc8c2)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
3238125138 Add a hack to avoid the req that all vars using LAYERDIR be immediately expanded
See the comment in the code for details.

(Bitbake rev: 849dbd63244cbc4eaca0f1beedbb67baca024629)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
dc39ebe91e Move the unset BBPATH sanity check after the bblayers processing
This way we can fully utilize bblayers, you can do everything in bblayers.conf
and avoid setting any environment variables at all.

(Bitbake rev: 5def1c8c31432968349f9b29d6333d7962260a8b)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
22a2179905 Kill unnecessary usages of the types module
types.IntType -> int
types.StringType -> basestring
...

Also moves our ImmutableTypes tuple into our own namespace.

(Bitbake rev: 83674a3a5564ecb1f9d2c9b2d5b1eeb3c31272ab)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
1180bab54e Apply some 2to3 transforms that don't cause issues in 2.6
(Bitbake rev: d39ab776e7ceaefc8361150151cf0892dcb70d9c)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
5b216c8000 Add __contains__ to COWDictMeta
(Bitbake rev: b3b314aade1f0a04e888361e1ac946e5195e1509)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
d5927a70bb Drop unused bb.data.expandData function
(Bitbake rev: 188af3ef5fdb5cd86b74147bf5eafc085ac489be)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
ba6df176e3 Ignore deprecation warnings for now
(Bitbake rev: 661fe59445161c5bc6a2e73b7fcbf9d20c492e27)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
bcd9c57a96 Switch some references to moved functions
(Bitbake rev: ddea2978cb969cf1381cfee5c055de0c9e56a4e3)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
c770c62fdc Add a missing import of print_function
(Bitbake rev: 30ae747cc5c733512e417c61fca23c0cd15b0e44)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
ad543e2e41 Apply the 2to3 print function transform
(Bitbake rev: ff2e28d0d9723ccd0e9dd635447b6d889cc9f597)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
978b5c9466 Deprecate the usage of certain objects via certain modules
As an example, this displays a deprecation warning for the use of
"bb.encodeurl" when you should be using "bb.fetch.encodeurl".  It includes a
convenience function for this purpose.  It should be of use when moving
objects between modules permanently, changing the API the user sees.

(Bitbake rev: 78f56049ba863b2e585b89db12b32697eb879bbc)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
cbc8140c77 Exception handling fixups
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
cf58d41af8 Add some missing docstrings
(Bitbake rev: 20b6f2d1d2d4541e612e8cffbdf1ca4822a3e394)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
0b4ad7062b Drop __all__ usage
(Bitbake rev: b4983cc7bfe5300c1d2904f34fb03d4fb2f41d90)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:33 +01:00
Chris Larson
266f416446 Drop some unused functions
(Bitbake rev: eb83df5bc7077685f314df01949cf06850e4693c)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
bbc565e825 Drop some unused classes
(Bitbake rev: 5cc47a49518c69c94f8b78e9dda6d542ba17b1e8)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
51f5346f29 Drop some unused vars
(Bitbake rev: b79ca5f1cc2d262de877047769ce25279ba26672)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
1c74fd768f Import fixups
(Bitbake rev: 4fa052f426e3205ebace713eaa22deddc0420e8a)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
7acc132cac Formatting cleanups
(Bitbake rev: 2caf134b43a44dad30af4fbe33033b3c58deee57)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
bbf83fd988 Drop doctest, as we aren't utilizing it
We should add back in some proper unit testing.  Doctest is rather limited,
and we haven't actually made use of it since the original implementation of
the datastore when the project started, as far as I'm aware.

(Bitbake rev: 3a11c2807972bbbddffde2fa67fc380d159da467)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
8306ba50db Don't run metadata event handlers for bb.msg events
(Bitbake rev: 297305b3742323d09d9ca58e958c4f18e945a148)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
6623d79ada Stop using functions via 'bb' that were moved from there to other modules
(Bitbake rev: 03a6c26f8da226f442c3cab557e4733f7cd6eeac)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
1569c1ac85 Add a function to get the debug level, without poking into debug_levels manually
(Bitbake rev: 6ccc01a1a72ec354de52fef2bf5620384b8461ce)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
c8498f59ec Fix invalid logging domain warning
(Bitbake rev: 8441fab6f27191fcc3c153a10753871e6aef08b1)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
316ab4bb2b Bump minimum python version check to 2.6.
(Bitbake rev: 85c000cc7db47cfd489cf282c58db2dab0d87908)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
350c3126e1 Make the default domain a proper domain, not a string
This lets you do -l Default on the commandline to bump the debug level of
messages with no domain, without bumping the level of everything else.

(Bitbake rev: bef33dfc36713d8c93e38e63ddac2e4f9858e787)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
943ece8610 Implement bb.msg.domain as a named tuple, drop the Enum class
Also fixes some bb.msg references from within bb.msg.

(Bitbake rev: db95af590f742c8186e84046ad9704fae1733720)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
9f2d7d816c Fix an error in the ncurses UI
(Bitbake rev: 90c68238cb62afa1c39e1d4fff1f418c9ec047e5)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
a91d123ef4 Display python warnings via bb.msg
(Bitbake rev: 648415a562d92109c4945cb3cc98ed2ec44667a7)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:32 +01:00
Chris Larson
146046bcda Immediately display messages if no UI handlers are installed yet
(Bitbake rev: 17c414d0c050c42d4beb3f1dd84573020aacb392)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
21a9692c7d Use __import__ for the ui rather than exec
(Bitbake rev: 7d00bab300961431f9960cf6759966f608580bc0)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
8c5108fa21 Fix the task event handling in the ncurses UI
(Bitbake rev: 50b7b817d418532583da3bad62a36fcefe3637a2)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
87f62d7c8d Ensure we always utilize the correct messaging domains
(Bitbake rev: 92a2e2e90981c0615171abe03645a772d84f6986)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
ac170b0c34 bb.event: NotHandled and Handled are on the way out
(Bitbake rev: ed35b30f8e09b0bfc15102fa6483c55d6b7d61de)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
0d25a516b4 Rename the finalise method for consistency
Apparently the finalise spelling is becoming less common in British English.

(Bitbake rev: 47449b2fc433e5725839ca4f7e9bca931a475838)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
c9c230b14a Move update_data into the DataSmart class as a finalize() method
(Bitbake rev: ff801397785567cb84b3615de86bff764d65decf)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
00e3915ca6 Initialize pkgs_to_build in the BBConfiguration constructor
(Bitbake rev: 69a3e4895b88110fd3a25167aa16cf7c00463175)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
a21841fb75 Drop doctest, as we aren't utilizing it
We should add back in some proper unit testing.  Doctest is rather limited,
and we haven't actually made use of it since the original implementation of
the datastore when the project started, as far as I'm aware.

(Bitbake rev: 3a11c2807972bbbddffde2fa67fc380d159da467)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Enrico Scholz
ca9a956abc Made '-b' work with BBCLASSEXTEND
When BBCLASSEXTEND is set, '-b' builds usually failed with messages
like

| ERROR: Parsing error data_fn virtual:native:<recipe>.bb and fn
<recipe>.bb don't match
|
|   File ".../bb/providers.py", line 47, in sortPriorities
|     priority = dataCache.bbfile_priority[f]
| KeyError: 'virtual:native:<recipe>.bb'

This patch fixes it and allows to specify the alternative class in a
way like

| ./bitbake -b virtual:native:<recipe>.bb

This patch was written to be so minimal as possible; variables should be
probably renamed to reflect their new meaning.

(Bitbake rev: f1c7fe9fc12161ceb3fe201cde370b929b208729)

Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
a7f05ea4af Resurrect the old bb.vercmp as bb.utils.vercmp, and its deps
This is just for compatibility.  We may drop it in the future, or rewrite it,
as it's not particularly pythonic.

(Bitbake rev: c4e31d7fe1d15a1e3ef2a453e7c7812d403d22cb)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
2cd161171a Pass the config metadata into the Cache constructor rather than the cooker
Cache only uses the config metadata from the cooker, no need for the cooker itself.

(Bitbake rev: bf58d43444642d31293a341ce72292003ca5c162)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
c926e87f47 Resurrect merged anonfunc execution
(Bitbake rev: 0c2ed40277e157406ea25c858f14c3cebb73c21b)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
3995546222 Add & utilize a simple_exec utility function
(Bitbake rev: 5ead16f14f996bcbb2fb14277b8ce5a9317b8160)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
94b60d1247 Consolidate the exec/eval bits, switch anonfunc to better_exec, etc
The methodpool, ${@} expansions, anonymous python functions, event handlers
now all run with the same global context, ensuring a consistent environment
for them.  Added a bb.utils.better_eval function which does an eval() with the
same globals as better_exec.

(Bitbake rev: 424d7e267b009cc19b8503eadab782736d9597d0)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
eb16773704 Pass an empty locals dict in expansion, since list comprehensions apparently leak their '_' helper variable
(Bitbake rev: 97da0cebbaf4dd1b46e58bd2e80cab6c007ae7c9)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Chris Larson
d8c8612d92 Two minor changes to the way python snippet expansion happens
- Use a single dictionary for the context, both global & local, since for some
  reason it chokes wanting a global "d" rather than a local in the metadata.
- First compile the string into a code object before running eval, so we can
  include the variable name in an evaluation error.

(Bitbake rev: 49534d928a37e0804ca84eed186cd22363023b2e)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 15:41:31 +01:00
Nitin A Kamble
f8a8ec5ceb linux-libc-headers: upgrade from 2.6.33 to 2.6.34
added a new patch to fix glibc build issue on powerpc
  ppc_glibc_build_fix.patch

Added attribution to the hayes-gone.patch.

And updated the metadata variables like LICENSE & LIC_CHKSUM_FILES

And removing all the older recipes and related files

Change the linux-libc-header version inpoky-default.inc

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-02 15:28:54 +01:00
Kevin Tian
4d5ad73238 dbus: fix metadata
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:28:54 +01:00
Kevin Tian
63ca9079c3 libgpg-error: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:28:54 +01:00
Kevin Tian
c927c50d9b module-init-tools: fix metadata
Signe-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 15:28:54 +01:00
Dongxiao Xu
610f5609dc distro_tracking: Adding tracking fields for upgraded packages
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:28:54 +01:00
Dongxiao Xu
2b533d04bd libmusicbrainz: Upgraded to 3.0.2
Removed the autofoo.patch since the latest version uses cmake instead
Remove gcc43_fix.patch since the code is not in latest package
Change SRC_URI to be more generic
Also fix the metadata

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:28:54 +01:00
Dongxiao Xu
b82851ad38 neon: Upgraded to 0.29.3
Change local directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:28:54 +01:00
Dongxiao Xu
057d630962 ppp: Upgraded to version 2.4.5
Removed some patches since they are already in latest package
Rebased some patches to fit ppp-2.4.5

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-02 15:28:54 +01:00
Zhai Edwin
4cf7528910 distro-tracking: update tracking fields for previous recipes after fixing metadata
pcmanfm
gtk+
gnome-common
webkit-gtk
eds-dbus
gnome-keyring
gtk-sato-engine
hicolor-icon-theme
jpeg
libfakekey
libglade
libsoup-2.4
libxslt
matchbox-config-gtk
matchbox-keyboard
matchbox-panel-2
matchbox-stroke
matchbox-wm

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:54 +01:00
Zhai Edwin
61326bf8ff matchbox-wm: Fix the meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:54 +01:00
Zhai Edwin
680f615991 matchbox-stroke: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:54 +01:00
Zhai Edwin
ea1f53d2f3 matchbox-panel-2: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:54 +01:00
Zhai Edwin
b2a2e197e8 matchbox-keyboard: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:54 +01:00
Zhai Edwin
0768dffa27 matchbox-config-gtk: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
ab6fd579c7 libxslt: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
437fb07240 libsoup-2.4: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
c2ba02cff9 libglade: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
6db5edd0d0 libfakekey: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
c9e06594ed jpeg: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
00844cd065 hicolor-icon-theme: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
8a48d66950 gtk-sato-engine: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
bc41e6596c gnome-keyring: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
60bb010355 eds-dbus: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
ad0f64583c webkit-gtk: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
8a2b4e2a5e gnome-common: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
5f1f17f076 gtk+: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Zhai Edwin
d29f2cceaf pcmanfm: Fix the metadata
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-07-02 15:28:53 +01:00
Nitin A Kamble
17b2ce5bc2 distro_tracking: update latest release for prelink
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-02 15:28:52 +01:00
Richard Purdie
061df5abaf meta-toolchain: Improve layout
* Switch from /usr/local/poky to /opt/poky
* Use a sysroots directory for both the "native" sdk binaries and the target
* Drop the meta-toolchain extras packages. These are replaced with packaged-staging.
* Change the nativesdk layout to match our usual filesystem layout
* Clean up various hardcoded prefix references

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 14:35:08 +01:00
Richard Purdie
4e0ee648b4 image.bbclass: Don't perform mapping renaming until we're running the task itself.
Need to extend bitbake to provide this information rather than refer to a bitbake
internal variable.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 14:34:14 +01:00
Kevin Tian
e0a1238b22 siteinfo.bbclass: remove duplicated 'common' appendent
'common' site file is already appended in get_siteinfo_list. No need
for another duplication later

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-07-02 17:28:00 +08:00
Kevin Tian
e96dc90ba4 populate-volatile.sh: add "clearcache" cmdline option
Sometimes /etc/volatiles.cache is corrupted when Qemu gets crashed. Current logic
is to always execute cache file as long as it exists. When it's currupted, this
causes core volatile files/directories not created and then prevent many important
services from starting. Automatic check on cache goodness is one option. However
it's not easy since the currupted file could be various states. In one form,
it's full of zeros. In another form, some commands are truncated.

Here allow a cmdline option to force removing volatiles.cache file, since it's
easy for user to check whether the cache file is mal-formed. Usually you'll observe
typical directories like "/var/log/" or "/var/run" not found error.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-07-02 17:27:10 +08:00
Richard Purdie
968d00de15 package_deb.bbclass: Fix packaging functions to use versioned dependency package functions correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02 00:06:50 +01:00
Richard Purdie
8a02043265 bitbake: providers.py: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-01 22:24:26 +01:00
Joshua Lock
3abe7a0624 classes/package_ipk|_deb|_rpm.bbclass: Fix setting of OVERRIDES when packaging
The OVERRIDES variable was being incorrectly set with the end result of the
runtime dependencies of the package not being encoded in it's package metadata.

This broke opkg-native in meta-toolchain.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-01 16:14:21 +01:00
Joshua Lock
934bb71c9d preferred-xorg-versions: update versions after latest recipe bumps
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-01 15:23:53 +01:00
Joshua Lock
fc663f9c63 poky.conf: define PREFERRED_PROVIDER_opkg-nativesdk to silence a warning
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-01 15:22:41 +01:00
Dongxiao Xu
d92a3c09f3 libpcap: Upgraded to version 1.1.1
Remove config-fixes.patch and ldflags.patch since the change is already in the
latest version
Remove shared.patch since it is not being used.
Rebase aclocal.patch according to the latest package version
Also contains Metadata fix

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-07-01 14:13:07 +01:00
Nitin A Kamble
64b82f8acd bison: upgrade from 2.3 to 2.4.2
Fixed a configure issue by adding acpaths line in the recipe.

fix_cross_manpage_building.patch: Created this patch to avoid the build
issue for non-x86 targets.

Rebased the m4.patch for the latest code, by removing duplicate
functionality.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-01 14:13:07 +01:00
Nitin A Kamble
87381753d4 elfutils: add a patch to fix latest prelink build
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-07-01 14:13:06 +01:00
Nitin A Kamble
7e01b2f759 nasm: upgrade from 0.98.38 to 2.07
Fixed the build issue by adding do_configure_prepend line to the recipe.
Updated metadata variables like LICENSE & LIC_CHKSUM_FILES

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:28 -07:00
Nitin A Kamble
ea7fbed643 tcl: upgraded from 8.4.19 to 8.5.8
patche changes:
tcl-add-soname.patch: rebased to the newer release code

Also added metadata variables, LIC_FILES_CHKSUM

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
31c0e3df13 quilt: upgrade from 0.47 to 0.48
Also update metadata variables like LICENSE & LIC_CHKSUM_FILES

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
3881d4ce5c oprofile: upgrade from 0.9.4 to 0.9.6
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
d5903339a1 lttng-viewer: upgrade from 0.8.83 to 0.8.84
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
38bf4fc828 lttng-control: upgrade from 0.67 to 0.87
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
c2289c5471 lsof: upgrade from 4.78 to 4.83
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
03837afa10 intltool: upgrade from 0.40.5 to 0.40.6
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:27 -07:00
Nitin A Kamble
5cfe04d572 gnu-config: upgrade from 20050701 to 20080123
Rebased this patch for newer version:
 gnu-config/config-guess-uclibc.patch

Removed this patch as it's included in the new source:
 gnu-config/avr32.patch

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:26 -07:00
Nitin A Kamble
d74cf86d1e flex: upgrade from 2.5.31 to 2.5.35
These patches removed from the recipe
 flex-lvalue.diff: already in the source
 fix-gen.patch: already in the source
 include.patch: already in the source

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:26 -07:00
Nitin A Kamble
f2f0e69ede diffstat: upgrade from 1.39 to 1.47
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-30 23:30:26 -07:00
Kevin Tian
2422400c19 distro-tracking: add tracking fields for previous recipes
pam
libgpg-error
gpgme
expat
dbus
dbus-glib
busybox
module-init-tools
fakeroot
prism-firmware

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-30 15:44:29 -07:00
Kevin Tian
391e6d6ec8 dbus-glib: fix metadata
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-30 15:44:29 -07:00
Kevin Tian
81a16e51dc expat: fix metadata
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-30 15:44:29 -07:00
Kevin Tian
e957ffe972 gpgme: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-30 15:44:29 -07:00
Kevin Tian
2136f753eb fakeroot: fix metadata
also no need for patch parameter if it's suffixed with .patch.

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-30 15:44:29 -07:00
Kevin Tian
0093d520c9 pam: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-30 15:44:21 -07:00
Kevin Tian
2bed076889 busybox: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-30 11:37:09 -07:00
Zhai Edwin
ed252e7f8b Distro Tracking: add distro tracking field for Graphics Apps
owl-video
xtscal
xrestop
gnome-mime-data
libmatchbox
libowl
libowl-av
matchbox-desktop
matchbox-desktop-sato
matchbox-session
matchbox-session-sato
matchbox-terminal
matchbox-theme-sato
sato-icon-theme
tslib
xcursor-transparent-theme
screenshot
tasks
contacts
dates
libcroco
leafpad
atk

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 11:12:49 -07:00
Richard Purdie
6aa746cc0b encodings: Specify encodingsdir as the default was being detected incorrectly resulting in an empty package
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-30 15:02:00 +01:00
Dongxiao Xu
9f3e0c10ac distro-tracking: update tracking fields for previous upgraded recipes
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:14 +01:00
Dongxiao Xu
bb860ee98d speex: Upgraded to version 1.2rc1
Remove ${S} since it is not needed in new version recipe file
Adding LIC_FILES_CHKSUM information
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:14 +01:00
Yu Ke
a5b6355100 distro_tracking_fields: add meta data for graphic core and app
including:
libdrm
xauth
python-pycairo
libxfontcache
xdpyinfo
xhost
xinit
xkbcomp
xmodmap
xprop
xset
xwininfo

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-30 13:19:14 +01:00
Dexuan Cui
372f7f10ac Distro Tracking: add distro tracking field for recipes of Graphics libs
They are:

dri2proto
xcb-proto
xextproto
xf86vidmodeproto
xproto
liberation-fonts
libfontenc
libxfont
libice
libsm
libxau
libxcalibrate
libxcb
libxcomposite
libxrandr
libxrender
libxres
libxt
libxv
libxvmc
libxxf86misc
libxxf86vm
libxcursor
libxdamage
libxdmcp
libxext
libxfixes
libxft
libxkbfile
pixman
xtrans
libxmu

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:14 +01:00
Dexuan Cui
dbfc18fa3c libxmu: upgrade to the latest version 1.0.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:13 +01:00
Dexuan Cui
b51a4a605b xtrans: upgrade to the latest version 1.2.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:13 +01:00
Dexuan Cui
c648850285 pixman: upgrade to the latest version 0.18.2
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:13 +01:00
Dexuan Cui
f04f7f8ebc libxkbfile: upgrade to the latest version 1.0.6
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:13 +01:00
Dexuan Cui
c4f3c3e68a libxft: upgrade to the latest version 2.1.14
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:12 +01:00
Dexuan Cui
e114928419 libxfixes: upgrade to the latest version 4.0.4
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:12 +01:00
Dexuan Cui
84664ef8a1 libxext: upgrade to the latest version 1.1.2
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:12 +01:00
Dexuan Cui
903097f2e7 libxdmcp: upgrade to the latest version 1.0.3
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:12 +01:00
Dexuan Cui
a683a28097 libxdamage: upgrade to the latest version 1.1.2
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:11 +01:00
Dexuan Cui
3536e9912e libxcursor: upgrade to the latest version 1.1.10
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:11 +01:00
Dexuan Cui
743d7e126e libxxf86vm: upgrade to the latest version 1.1.0
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:11 +01:00
Dexuan Cui
9a77ba2fe0 libxxf86misc: upgrade to the latest version 1.0.2
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:11 +01:00
Dexuan Cui
68e66b838f libxvmc: upgrade to the latest version 1.0.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:10 +01:00
Dexuan Cui
ba45b0614f libxv: upgrade to the latest version 1.0.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:10 +01:00
Dexuan Cui
e3d0810474 libxt: upgrade to the latest version 1.0.8
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:10 +01:00
Dexuan Cui
7383d319bb libxres: upgrade to the latest version 1.0.4
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:10 +01:00
Dexuan Cui
11f2a1227d libxrender: upgrade to the latest version 0.9.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:09 +01:00
Dexuan Cui
6704e49289 libxrandr: upgrade to the latest version 1.3.0
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:09 +01:00
Dexuan Cui
e125dd087b libxcomposite: upgrade to the latest version 0.4.1
Remove the ";patch=1" in SRC_URI since by default a .patch file is applied.
Update change-include-order.patch to apply it to 0.4.1.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:09 +01:00
Dexuan Cui
aa7c1959dd libxcb: upgrade to the latest version 1.6
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:09 +01:00
Dexuan Cui
c858c1f73f libxcalibrate: upgrade to the latest version 209d83af61ed38a002c8096377deac292b3e396c
Remove the ";patch=1" in SRC_URI because by default a .patch file is applied.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:08 +01:00
Dexuan Cui
f902292305 libxau: upgrade to the latest version 1.0.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:08 +01:00
Dexuan Cui
5c2e6fa2dd libsm: upgrade to the latest version 1.1.1
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:08 +01:00
Dexuan Cui
0012b7c117 libice: upgrade to the latest version 1.0.6
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:08 +01:00
Dexuan Cui
fa9c8a0fdc libxfont: upgrade to the latest version 1.4.1
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:07 +01:00
Dexuan Cui
3cbc9dee6b libfontenc: upgrade to the latest version 1.0.5
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:07 +01:00
Dexuan Cui
50dbbec5b2 xproto: upgrade to the latest version 7.0.17
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:07 +01:00
Dexuan Cui
6f5ebf13ac xf86vidmodeproto: upgrade to the latest version 2.3
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:07 +01:00
Dexuan Cui
76a6828622 xextproto: upgrade to the latest version 7.1.1
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:06 +01:00
Dexuan Cui
fa23bdfca8 xcb-proto: upgrade to the latest version 1.6
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:06 +01:00
Dexuan Cui
b007125dc3 dri2proto: upgrade to the latest version 2.3
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-30 13:19:06 +01:00
Kevin Tian
d480304694 distro-tracking: update tracking fields for previous upgraded recipes
iproute2
glib-2.0
netbase

Signd-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-30 13:19:06 +01:00
Kevin Tian
17a0eba886 netbase: fix metadata
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-30 13:19:05 +01:00
Kevin Tian
4057e1a811 insane.bbclass: allow reporting all md5 mismatch warnings
instead of exiting when once one md5 mismatch is seen. This would be
helpful to save time on filling md5sum for multiple license check
files.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-30 13:19:05 +01:00
Qing He
3b78d2e0a2 distro-track: upgrade base_{utils,libs}_2
libgcrypt
gnutls
lzo
libtasn1
openssl
curl
zlib
libxml2
readline
bash
syslinux
sysvinit
sysfsutils

signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:05 +01:00
Qing He
47c3dd441e curl: upgrade to version 7.21.0
from 7.20.0

add homepage and bugtracker, update license

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:05 +01:00
Qing He
c4713d040a openssl: upgrade to version 0.9.8o
from 0.9.8g
update bugtracker and license

1.0.0 and 1.0.0a are available, but introduce some interface
changes. Stick on 0.9.8 versions for now for stability (0.9.8
branch is still updated for security fixes)

changes:
  - add perl-native as build dependency
  - include /usr/lib/ssl/* in the package
  - break down debian.package into separate patches under
    directory debian. Original monolithic patch is >1000 lines,
    and not very maintainable.
    Verbatim copy the debian patches, among which two are not
    needed, but still included with apply=no to increase
    readability
    The new patches are ~700 lines. Most that was in the
    monolithic patch but not here have already been fixed in
    upstream.
  - fix-md5-x86_64.patch is in upstream and thus removed
  - rebase shared-libs.patch

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:05 +01:00
Qing He
7ec15f4775 lzo: upgrade to version 2.03
from 2.02
update license info

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:04 +01:00
Qing He
d6b8b66d5c libgcrypt: upgrade to version 1.4.5
from 1.2.4
add homepage and tracker
clarify license terms

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:04 +01:00
Qing He
e1cac2f249 sysfsutils: upgrade to version 2.1.0
from 2.0.0
clarify licensing: sysfsutils is under GPLv2, and libsysfs is
under LGPLv2.1

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:04 +01:00
Qing He
10cce8e1f7 sysvinit: upgrade to version 2.88dsf
from 2.86
update to new homepage and download site

changes:
  - rebase install.patch
  - remove dated 2.86 patch

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:04 +01:00
Qing He
60255c8d28 syslinux: upgrade to versin 3.86
from version 3.36
partly based on the recipe from openembedded project

changes:
  - add cross-build.patch to use poky toolchain
  - mangle LDFLAGS so $LD invocation works
  - use precompiled version of $BTARGET for target (OE)
  - stick on ${sbindir} instead of OE's ${base_sbindir}

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:03 +01:00
Qing He
e7bcb1210e bash: upgrade to version 4.1
from 3.2
version 3.2 is kept because it's the latest version
under GPLv2+

changes:
  - use 3.2.48 as base instead of 3.2
  - include upstream patches up to 051 for 3.2 and 007 for 4.1

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:03 +01:00
Qing He
6d275f7667 readline: update to version 6.1
from 5.2
version 5.2 is still kept since it's the latest version
under GPLv2+.

changes:
  - change autotools_do_configure and use do_configure_prepend
  - similar to do_install_append

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:03 +01:00
Qing He
90747bcf00 libxml2: upgrade to version 2.7.7
from 2.6.29
add homepage and bugtracker, update license

changes:
  - remove libxml-nanohttp.patch since it's already upstream
  - add ${libdir}/xml2Conf.sh into FILES_${PN}-dev

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:03 +01:00
Qing He
afe4dec809 zlib: upgrade to version 1.2.5
from 1.2.3
update homepage and license

changes:
  - remove 1.2.3.3 patch
  - breakdown autotools.patch to configure.ac and Makefile.am, update
    src in Makefile.am and use do_configure_prepend instead
  - remove README from LIC_FILES_CHKSUM because it duplicates zlib.h
    and also causes checksum to change for every release
  - remove visibility.patch: the purpose of the patch was to change
    "<type> ZEXPORT" to "ZEXPORT <type>", however:
     1. the use of ZEXPORT and ZEXTERN have been changed a lot in
        zlib, there is no changelog to indicate which version was
        the patch based on and its rationale
     2. zlib used to set default visibility to `hidden'
        (-fvisibility=hidden), and override external symbols with
        `default' visibility, it had caused a lot of problems on
        different platforms. But starting from 1.2.5, default
        visibility is now `default', `hidden' visibility override
        has effect only for the correct GCC versions, most visibility
        related issues should have already been fixed

  http://mail.madler.net/pipermail/zlib-devel_madler.net/2010-April/002045.html

     3. as for now, ZEXPORT is used in Win/BeOS only, and can expand
        to WINAPI or __declspec(dllexport), both of which should be
        put behind return type, so there is no need to patch

     In conclusion, the patch is not applicable for the current release,
     so it's removed

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-30 13:19:02 +01:00
Dongxiao Xu
86171831d6 distro_tracking_fileds: Update metadata
Update connectivity and multimedia part of tracking fileds

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:02 +01:00
Dongxiao Xu
12c692d9fe xvideo-tests_svn.bb: Fix recipe metadata
Fix LICENSE and add LIC_FILES_CHKSUM

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:02 +01:00
Dongxiao Xu
2478c71757 xvideo-tests: Change the version to 270
The latest upstream for xvideo-tests is 270, not 272

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:02 +01:00
Dongxiao Xu
5304abed42 gaku_svn.bb: Fix recipe metadata
Change LICENSE and add LIC_FILES_CHKSUM
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:01 +01:00
Dongxiao Xu
2848e5ebef gaku: Upgraded to version 399
Change the default revision in poky-default-revisions.inc
Reset PR to "r0"

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:01 +01:00
Dongxiao Xu
546926ac06 tremor_20100422.bb: Fix recipe metadata
Add LIC_FILES_CHKSUM information
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:01 +01:00
Dongxiao Xu
0bcc994c95 tremor: Upgraded to version 20100422
No other changes except bb file rename and PR reset

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:01 +01:00
Dongxiao Xu
6daa344f8c alsa-lib_1.0.23: Fix recipe metadata
Change LICENSE information
Add BUGTRACKER and LIC_FILES_CHKSUM
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:00 +01:00
Dongxiao Xu
f7ae2c8381 alsa-lib: Upgraded to version 1.0.23
Commented for local patch
Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:00 +01:00
Dongxiao Xu
258974ca89 alsa-utils_1.0.23.bb: Fix recipe metadata
Change LICENSE information
Add BUGTRACKER and LIC_FILES_CHKSUM

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:00 +01:00
Dongxiao Xu
7f1d42b044 alsa-utils: Upgraded to version 1.0.23
Rebased ncursesfix.patch to 1.0.23 and commented for it
Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:19:00 +01:00
Dongxiao Xu
74221a4987 bluez4_4.66.bb: Fix recipe metadata
Fix LICENSE information
Add HOMEPAGE and LIC_FILES_CHKSUM
Adjust variables order according to styleguide
Use blank space to replace tab

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:18:44 +01:00
Dongxiao Xu
a5af9cfb4c bluez4: Upgraded to version 4.66
Change the local file directory name to ${PN}-${PV}
Comment for local patches

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:18:01 +01:00
Dongxiao Xu
342c016356 gst-plugins.inc: Fix recipe metadata
Add HOMEPAGE and BUGTRACKER information

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:18:01 +01:00
Dongxiao Xu
384be68897 gst-plugins-bad_0.10.19.bb: Fix recipe metadata
Add LICENSE and LIC_FILES_CHKSUM information
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:17:58 +01:00
Dongxiao Xu
fcb88ea659 gst-plugins-bad: Upgraded to version 0.10.19
The new feature vdpau in the latest package breaks the build
Add --disable-vdpau to disable it

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:17:35 +01:00
Dongxiao Xu
d7d147b98d gst-plugins-ugly_0.10.15.bb: Fix recipe metadata
Add LICENSE and LIC_FILES_CHKSUM information
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:17:31 +01:00
Dongxiao Xu
3bd948b1bc gst-plugins-ugly: Upgraded to version 0.10.15
No other change except bb file rename

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:16:53 +01:00
Dongxiao Xu
833366fc0e gst-plugins-good_0.10.23.bb: Fix recipe metadata
Add LICENSE and LIC_FILES_CHKSUM information
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:16:48 +01:00
Dongxiao Xu
b5077b1146 gst-plugins-good: Upgraded to version 0.10.23
No other change except bb file rename and PR reset

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:15:26 +01:00
Dongxiao Xu
eb3cff6ff7 gst-plugins-base_0.10.29.bb: Fix recipe metadata
Add LICENSE and LIC_FILES_CHKSUM information
Adjust variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:15:22 +01:00
Dongxiao Xu
33087803d9 gst-plugins-base: Upgraded to version 0.10.29
No other change except bb file rename and reset PR

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:35 +01:00
Dongxiao Xu
037cc59722 gstreamer_0.10.29.bb: Fix recipe metadata
Change LICENSE and HOMEPAGE information
Add LIC_FILES_CHKSUM and BUGTRACKER information
Adjust the variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:34 +01:00
Dongxiao Xu
2c2b1e5d3a gstreamer: Upgraded to version 0.10.29
Rebase check_fix.patch
Remove po-makefile-fix.patch since it is not being used
Remove do_configure_prepend since ${S}/common/m4/lib-link.m4 is not exist in the latest version
Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:34 +01:00
Dongxiao Xu
52f5ad8ec7 mpeg2dec_0.4.1.bb: Fix recipe metadata
Change LICENSE information and add LIC_FILES_CHKSUM
Adjust the variables order according to styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:34 +01:00
Dongxiao Xu
6b58719a8c mpeg2dec: Upgraded to version 0.4.1
Change variable ${S} due to version upgrade

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:34 +01:00
Dongxiao Xu
1407c7dfe3 libogg_1.2.0.bb: Fix recipe metadata
Add HOMEPAGE, BUGTRACKER, and LIC_FILES_CHKSUM
Change the variables order according to the styleguide

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:34 +01:00
Dongxiao Xu
408008ac09 libogg: Upgraded to version 1.2.0
Remove m4.patch since the change has already in the upstream
Change SRC_URI because version 1.2.0 doesn't exist in the old address

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:33 +01:00
Dongxiao Xu
9f3641cc00 libvorbis_1.3.1.bb: Fix recipe metadata
Add HOMEPAGE, BUGTRACKER, and LIC_FILES_CHKSUM
Adjust the variables order according to the styleguide
Use blank space to replace the tab

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:33 +01:00
Dongxiao Xu
0411d6786e libvorbis: Upgraded to version 1.3.1
Remove m4.patch since the change is already in the latest version
Change SRC_URI since the version 1.3.1 doesn't exist in the old address

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:33 +01:00
Dongxiao Xu
6dc309fbed flac_1.2.1.bb: Fix recipe metadata
Fix DESCRIPTION and LICENSE information
Add HOMEPAGE, BUGTRACKER, and LIC_FILES_CHKSUM
Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:14:28 +01:00
Dongxiao Xu
eda72fba0f flac: Upgraded to version 1.2.1
Acquire flac-gcc43-fixes.patch from OE to fix a build issue
Rebase disable-xmms-plugin.patch
Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:13:52 +01:00
Dongxiao Xu
923f141efe lame_3.98.4.bb: Fix recipe metadata
Fix DESCRIPTION and LICENSE information
Add HOMEPAGE, BUGTRACKER, and LIC_FILES_CHKSUM
Use blank space to replace the tab

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:13:47 +01:00
Dongxiao Xu
b639d303de lame: Upgraded to 3.98.4
Removed Makefile-lm.patch since the code is not contained in latest version
Rebased no-gtk1.patch and commented for it
Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:13:09 +01:00
Dongxiao Xu
71ba0a8536 irda-utils_0.9.18.bb: Fix recipe metadata
Fix LICENSE information
Add HOMEPAGE, BUGTRACKER, and LIC_FILES_CHKSUM
Use blank space to replace the tab

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:12:54 +01:00
Dongxiao Xu
a1fb73e588 irda-utils: upgraded to version 0.9.18
Removed irdadump patches configure.patch and m4.patch because the new version
doesn't use autotool for irdadump.

Change the local file directory name to ${PN}-${PV}

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-30 13:11:28 +01:00
Zhai Edwin
01c5b29bf8 atk: Update to 1.30.0
Also fix meta data

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:27 +01:00
Zhai Edwin
98155951d1 leafpad: Update to 0.8.17
Also fix meta data

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:27 +01:00
Zhai Edwin
db444206ca libcroco: Update to 0.6.2
Also fix meta data

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:27 +01:00
Zhai Edwin
c25e992763 dates: update to 0.4.11
Also fix meta data

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:27 +01:00
Zhai Edwin
75bd3e60cc contacts: Update to 0.12 from git
Also fix the meta data, and add GPLv3 license for src/contacts-dbus.c

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:26 +01:00
Zhai Edwin
fd32855dda tasks: update to 0.16
Also fix the meta data, and add a patch from upstream to fix the compilation

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:26 +01:00
Zhai Edwin
53556dd293 screenshot: Update to svn_r292
Also fix the meta data

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-30 13:11:26 +01:00
Richard Purdie
99d883f81a classes/package_ipk|_deb.bbclass: Make sure versions correctly make it into output packages
The version information part of package dependency strings was not ending up
in the output packages correctly. This patch fixes this and ensures the version
information isn't lost.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-30 09:48:59 +01:00
Richard Purdie
9a543b75ca bitbake: Add bb.utils.join_deps to handle creation of dependency strings with versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-30 09:47:36 +01:00
Kevin Tian
b180d7f488 iproute: upgrade to 2.6.34
(borrow from OE 2.6.34 recipe)
[Patches-poky]
    REMOVE _iproute2-2.6.15_no_strip.diff_: not required now
    REMOVE _new-flex-fix.patch_: not required now
[Patches-OE]
    TAKE   _configure-cross.patch_: don't invoke gcc directly
[Recipes]
    - Add metadata
    - fix SRC_URI for new version
    - no {S} now
    - use alternative to enable 'ip' instead of using busybox
    - move shared documents to right destination
    - not take from OE:
        * no need for specific do_configure

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 17:13:38 +01:00
Zhai Edwin
7510eb1061 xcursor-transparent-theme: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:38 +01:00
Zhai Edwin
3dc7be6746 tslib: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:38 +01:00
Zhai Edwin
779c58db9f sato-icon-theme: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:38 +01:00
Zhai Edwin
15da3d0702 matchbox-theme-sata: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
58d1a6efcd matchbox-terminal: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
0b4a869d16 matchbox-session-sato: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
43cec004f5 matchbox-session: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
4bf6605924 matchbox-desktop-sato: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
1f8a50fb1c matchbox-desktop: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
eb25db6892 libowl-av: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
486d52c624 libowl: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
3f7790dae8 libmatchbox: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
4f95e0b443 gnome-mime-data: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
1633f680e3 xrestop: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
2038319df1 xtscal: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Zhai Edwin
8ff65f31e3 owl-video: Fix meta data
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-29 17:13:37 +01:00
Kevin Tian
53afb95be3 distro-tracking: update tracking fields for previous upgraded recipes
pax-utils
sudo
blktool
libdaemon

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 17:13:37 +01:00
Kevin Tian
15bb70550b libdaemon: upgrade to 0.14
Also fix metadata information. Remove unavailable "--disable-doxygen" option

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 17:13:37 +01:00
Kevin Tian
14767a3987 blktool: upgrade to 4-6
Unlike the big jump in version (4 -> 4-6), blktool is actually quite stable since
version 4 (2005). All the changes in 4-6 are about typo fix and debian package
control enhancement.

Fixed metadata accordingly.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 17:13:37 +01:00
Kevin Tian
3627ee3d7f pax-utils: upgrade to 0.2.1
- update metadata. license checksum is skipped, as pax-utils is depended by do_package task itself.
  I.e. the 1st do_package will be run after pax-utils-native is built. So far checksum verification
  is included in do_package task
- no need to override {S} since {S} uses {BPN}
- no need to define "_GNU_SOURCE" which has been included by source
  tar ball. Also remove do_compile override accordingly
- remove recipe internal md5sum, which is not used by Poky

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 17:13:37 +01:00
Yu Ke
f91911a0e0 xwininfo: upgrade to latest version 1.0.5
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
b20f72598f xset: upgrade to latest 1.1.0
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
7189a0f5d2 xprop: upgrade to latest version 1.1.0
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
6abf79dbf6 xmodmap: upgrade to latest version 1.0.4
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
d0fcdab99b xkbcomp: upgrade to latest version 1.1.1
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
10f2beba8e xinit: upgrade to latest version 1.2.1
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
876c8df1da xhost: upgrade to latest version 1.0.3
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
1572a23705 xdpyinfo: upgrade to latest version 1.1.0
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
ec68b8ac04 xauth: upgrade to latest version 1.0.4
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
dccc9dddb7 xorg-app-common.inc: add BUGTRACKER
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
34ba2c6486 libxfontcache: upgrade to latest version 1.0.5
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
5e2162039e libdrm: upgrade to latest version 2.4.21
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
663fddca98 libdrm: meta data update
add the description, homepage,
and change the variable order according to the style guide

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:36 +01:00
Yu Ke
2987e508ac distro_tracking_field: add distro tracking field for graphic core and app receips
they are:
    mkfontdir
    mkfontscale
    bigreqsproto
    evieext
    libxxf86dga
    x11-common
    xf86-input-keyboard
    xf86-input-mouse
    xf86-input-vmmouse

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-29 17:13:35 +01:00
Dexuan Cui
74c5ebf239 Distro Tracking: add distro tracking field for recipes of Graphics libs
They are:

libxsettings-client
settings-daemon
encodings
font-alias
font-util
xorg-minimal-fonts
calibrateproto
compositeproto
damageproto
dmxproto
fixesproto
fontcacheproto
fontsproto
glproto
inputproto
kbproto
libdmx
libxi
libxinerama
libxp
libxtst
printproto
randrproto
recordproto
renderproto
resourceproto
scrnsaverproto
trapproto
videoproto
xcmiscproto
xf86bigfontproto
xf86dgaproto
xf86driproto
xf86miscproto
xf86rushproto
xineramaproto

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-29 17:13:35 +01:00
Dexuan Cui
5b74118447 font-util: fix LICENSE to "BSD & MIT-style & Unicode"
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-29 17:13:35 +01:00
Joshua Lock
6ca31b0522 xorg-xserver: move older xserver's to meta-extras
Move xservers which are only used by retired machines to meta-extras

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-29 15:20:33 +01:00
Joshua Lock
b6fcd71cb5 linux: move some older kernels to meta-extras
Move kernels for retired machines to meta-extras

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-29 15:20:33 +01:00
Joshua Lock
5dab2c9aa7 Move some machines which no longer build to meta-extras
om-gta01, om-gta02, nokia700, nokia800 and mx31litekit no longer build and we
don't have a maintainer for them so move them to meta-extras

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-29 15:20:33 +01:00
Jeff Dike
6418d0492a bitbake: create cooker object after cleaning the environment
Previously, the cooker object was created before the environment was
cleaned, saving everything that was in the environment and dumping
into the run scripts.

The patch ensures that the cooker gets a cleaned environment when it's
created.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-29 13:33:24 +01:00
Jeff Dike
f9d7e9e3be bitbake: Move the logger initialization from cooker to utils
In order to move the environment cleaning, which wants to log a
message, before cooker creation, the logging facility initialization
needs to happen earlier.  So, it is now in init_logger in utils.py and
called from bitbake before the creation of the data object.

It also seems more correct to initialize a global facility like this
from a more global context than the creation of an object, of which
there could theoretically be many.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-29 13:32:04 +01:00
Enric Balletbo i Serra
132122e313 busybox: fix unexpected "done" in /etc/udhcpc.d/50default script.
Run udhcpc results in

 udhcpc (v1.15.3) started
 /etc/udhcpc.d/50default: line 37: syntax error: unexpected "done" (expecting "fi")
 run-parts: /etc/udhcpc.d/50default exited with code 2

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-29 12:38:02 +01:00
Kevin Tian
0f806dfec8 qemux86/xorg.conf: no DefaultDepth for VMware SVGA driver
VMware SVGA driver needs to have same depth between the host and the guest. Or put in
other word, the depth read by the guest is the value read from host. The guest is not
allowed to change virtual depth to other value. With DefaultDepth option xorg.conf,
vmware driver rejects to work with suggestion "Please do not specify a depth on the
command line or via the config file".

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 12:34:42 +01:00
Kevin Tian
9207cd4015 qemu: fix VMware VGA depth calculation error
VMware SVGA presents to the guest with the depth of the host surface it renders
to, and rejects to work if the two sides are mismatched. One problem is that
current VMware VGA may calculate a wrong host depth, and then memcpy from virtual
framebuffer to host surface may trigger segmentation fault. For example, when
launching Qemu in a VNC connection, VMware SVGA thinks depth as '32', however the
actual depth of VNC is '16'. The fault also happens when the host depth is not
32 bit.

Qemu <4b5db3749c5fdba93e1ac0e8748c9a9a1064319f> tempts to fix a similar issue, by
changing from hard-coded 24bit depth to instead query the surface allocator
(e.g. sdl). However it doesn't really work, because the point where query
is invoked is earlier than the point where sdl is initialized. At query time,
qemu uses a default surface allocator which, again, provides another hard-coded
depth value - 32bit. So it happens to make VMware SVGA working on some hosts,
but still fails in others.

To solve this issue, this commit introduces a postcall interface to display
surface, which is walked after surface allocators are actually initialized.
At that point it's then safe to query host depth and present to the guest.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-29 12:34:38 +01:00
Richard Purdie
bb3e4dda5d gcc: Add patch to allow disabling of libstdc++ linkage and hence fix gcc-runtime which was having broken configure tests due to the linker failures and assuming maths primitives were not in libm
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-29 00:35:02 +01:00
Joshua Lock
43f0d63237 bitbake: allow fakeroot functionality to be provided by an alternative program
If the variable FAKEROOT is set its value will be used, otherwise we default
to fakeroot.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-25 14:54:51 +01:00
Joshua Lock
4f14e0a240 pkgconfig: add patch to disable legacy scripts such as glib-config
On an F13 host with glib-config installed pkgconfig-native can get into a
horrible state with recursive calls between pkg-config and glib-config.
The patch adds a configure time option to disable legacy script support in
pkgconfig and makes use of the option for Poky.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-25 14:54:40 +01:00
Joshua Lock
c27b951109 handbook: PR should always be set, even if to 0
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-25 14:54:30 +01:00
Joshua Lock
b8e16403fa cross-canadian: ensure package dependencies are generated correctly
cross-canadian packages need to look for their SOLIBS in the nativesdk
sysroot so that dependencies are correctly picked up and meta-toolchains are
correctly built.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-25 14:54:20 +01:00
Joshua Lock
0d62b8d9b7 handbook: update the required dependencies list
The dependencies list in the introduction was missing chrpath and mercurial.
Also adds a note about the packages required to build qemu-native.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-25 14:54:11 +01:00
Richard Purdie
824895f14e qemu: Enable ppc system emulation and fix ppc build
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-24 08:19:58 +01:00
Joshua Lock
01e54ffb42 gdb-cross-canadian: build with the host-triplet prefix
Our cross-canadian tools our built with the host-triplet prefix, gdb should do
similar.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-23 18:43:45 +01:00
Scott Garman
698dab0109 kernel.bbclass: Remove additional binaries from staging
* Remove additonal binaries known to cause "strip command failed"
  errors during do_package on cross platforms.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-06-23 18:43:45 +01:00
Joshua Lock
c9e77c18aa qemu: fix sloppy merge
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-23 18:01:23 +01:00
Jeff Dike
8ce85086f6 qemu: Work around the crash seen on Ubuntu.
Due to different stack contents in sdl_display_init on Ubuntu vs other distros,
an uninitialized structure is causing a crash.  Zeroing the structure makes the
behavior uniform across distros, avoiding the Ubuntu crash, but doesn't fix the
underlying bugs, notably:
the return value of SDL_GetWMInfo needs to be checked, as it's currently
failing silently
the underlying reason for the failure of SDL_GetWMInfo needs to be found -
there is a GetWMINfo method in the internal SDL structure which is NULL, and
the reason for this needs to be found.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-06-23 17:32:12 +01:00
Dexuan Cui
a1d913a7fc linux-omap: fix build failure with gcc-4.3.3
Pull time.h patch from upstream Linux kernel
(commit 38332cb98772f5ea757e6486bed7ed0381cb5f98)

The patch fixes the following build failure:
  LD      .tmp_vmlinux1
kernel/built-in.o: In function `timespec_add_ns':
    undefined reference to `__aeabi_uldivmod'
kernel/built-in.o: In function `do_gettimeofday':
    undefined reference to `__aeabi_uldivmod'
    undefined reference to `__aeabi_uldivmod'
kernel/built-in.o: In function `timespec_add_ns':
    undefined reference to `__aeabi_uldivmod'
    undefined reference to `__aeabi_uldivmod'
kernel/built-in.o: more undefined references to `__aeabi_uldivmod'

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-23 14:41:25 +08:00
Joshua Lock
3ceb99937d binutils: add newer versions for crosssdk and cross-canadian
These providers seem to have slipped under the radar in the recent upgrade of
binutils.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-18 10:33:44 +01:00
Joshua Lock
3939b9c02b linux-libc-headers: delete include/scsi/scsi.h, it's not for userspace
include/scsi/scsi.h is not userland parsable and research indicates this is
because the header should not be exposed to userspace. Therefore remove it
in the install.

Research done by Tom Rini <tom_rini@mentor.com> in OE commit
91d3d92a626da89dfe13d63e68a90dbafdbaef1d

This has been the case since kernel 2.6.31

Bump glibc and uclibc PR's so that users have sane <scsi/scsi.h>

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-18 10:33:21 +01:00
Saul Wold
d2920a042a Distro Tracking: move to private directory and split into sections
This is a squash of all the other changes made to the distro tracking files
Below is a summary of all the changes in this squash

Signed-off-by: Saul Wold <Saul.Wold@intel.com>

distro-track: update track of base libs and utils

libusb
libnl
grub
yum
update-modules
udev-extraconf (no .bb changes)
update-rc.d

Signed-off-by: Qing He <qing.he@intel.com>

distro_tracking_fields.inc: add eggdbus
distro_tracking_fields.inc: add overrides for previous recipes

Some recipes are fully local scripts. There's then no updates for
their metadata, and just add overrides for tracking purpose here.
Also fixes some patch information from previous overrides.
now each catetory has its own tracking .inc file, which is further
included by original global file

Signed-off-by: Kevin Tian <kevin.tian@intel.com>

distro_tracking_fields.inc: add some package info

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>

distro_tracking_fields: update diffstat fields
distro tracking: update latest for lttng-control

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-17 23:16:43 +01:00
Kevin Tian
181455c2f7 base-files: fix LICENSE from 'GPL' to 'GPLv2'
the license information is acquired from:
        "Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:43 +01:00
Kevin Tian
2233d2e389 opkg-config-base: add LICENSE as 'MIT'
the license information is acquired from:
        "Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:43 +01:00
Kevin Tian
14bb154571 network-suspend-scripts: fix LICENSE from 'GPL' to 'GPLv2'
the license information is acquired from:
        "Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:43 +01:00
Kevin Tian
86568bcf5a initscripts: fix LICENSE from 'GPL' to 'GPLv2'
the license information is acquired from:
        "Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:43 +01:00
Kevin Tian
bb1c803c31 initramfs-live-install: add LICENSE as 'MIT'
the license information is acquired from:
        "Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:42 +01:00
Kevin Tian
2e82436244 initramfs-live-boot: add LICENSE as 'MIT'
the license information is acquired from:
        "Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:42 +01:00
Kevin Tian
f4ceddf6d9 initramfs-boot: add LICENSE as 'MIT'
the license information is acquired from:
	"Richard Purdie <rpurdie@linux.intel.com>"

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:42 +01:00
Kevin Tian
4c9946bca7 e2fsprogs: fix sub-pacakge license fields
also change to use new patch parameter

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:42 +01:00
Kevin Tian
8decbce383 icu: fix metadata
also change to use new patch parameter

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:41 +01:00
Qing He
0ff5ca89bf portmap: use NO_TCP_WRAPPER instead of local patch
use NO_TCP_WRAPPER=1 in EXTRA_OEMAKE to disable -lwrap
also remove the redundent oe_compile()

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:41 +01:00
Qing He
db74847423 update-rc.d: fix metadate
update license fields
adjust ordering
change to use new patch parameter

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:41 +01:00
Qing He
1e04b2d9eb update-modules: fix metadata
trivial ordering update

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-17 23:16:41 +01:00
Qing He
eb5ed41f9e yum: fix metadata
update license and url
change to use new patch parameter

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:40 +01:00
Qing He
d0ebebd664 grub: fix metadata
update license fields
change to use new patch parameter

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:40 +01:00
Qing He
6c6ae8db0a libnl: fix metadata
update homepage and license
change to use new patch parameter

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:16:40 +01:00
Qing He
dac5590fa8 libusb: fix metadata
update homepage
change license to reflect GPL|BSD dual licensing of the header
update description to reflect the legacy version
change to use new patch parameter

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:15:06 +01:00
Yu Ke
3d4e130e85 xf86-input-vmmouse: add license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:37 +01:00
Yu Ke
4bf8a29f75 xf86-input-mouse: add license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:37 +01:00
Yu Ke
c848d6d803 xf86-input-keyboard: add new license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:37 +01:00
Yu Ke
e66624a69b mkfontscale: add license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:36 +01:00
Yu Ke
3f12612d90 mkfontdir: add license check
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:36 +01:00
Yu Ke
b57e551ec1 x11-common: change license from GPL to GPLv2
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:36 +01:00
Yu Ke
50b99d9e1b libxxf86dga: add license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:36 +01:00
Yu Ke
f419cbbba3 evieext: add description and license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:36 +01:00
Yu Ke
630fd09808 bigreqsproto: add description and license checksum
Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-17 23:13:35 +01:00
Dongxiao Xu
81f5a4148b task-poky-x11-sato: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:35 +01:00
Dongxiao Xu
139b4f2d58 task-poky-apps-x11-pimlico: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:35 +01:00
Dongxiao Xu
b9c5f24072 gst-meta-base: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:35 +01:00
Dongxiao Xu
5c215587e9 task-poky-tools: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:34 +01:00
Dongxiao Xu
0db46a31af task-poky-nfs: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:34 +01:00
Dongxiao Xu
b82e9a3746 task-poky-boot: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:34 +01:00
Dongxiao Xu
6aa28180c4 task-base: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:34 +01:00
Dongxiao Xu
3e83969482 bluez-dtl1-workaround: fix metadata
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-17 23:13:34 +01:00
Dongxiao Xu
239cf34d59 wireless-tools: fix metadata
Also change to use new patch parameter

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:33 +01:00
Dexuan Cui
7c4501824c xineramaproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:33 +01:00
Dexuan Cui
7704eab884 xf86rushproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:33 +01:00
Dexuan Cui
f8f89f2dd0 xf86miscproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:33 +01:00
Dexuan Cui
731c4a71dd xf86driproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:33 +01:00
Dexuan Cui
37d11224ba xf86dgaproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:32 +01:00
Dexuan Cui
30bbb590aa xf86bigfontproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:32 +01:00
Dexuan Cui
23a4a96f34 xcmiscproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:32 +01:00
Dexuan Cui
1173f6b665 videoproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:32 +01:00
Dexuan Cui
2f340b0a74 trapproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:31 +01:00
Dexuan Cui
12903e40c5 scrnsaverproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:31 +01:00
Dexuan Cui
0815a691a5 resourceproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:31 +01:00
Dexuan Cui
ab12524199 renderproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:31 +01:00
Dexuan Cui
94a9669492 recordproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:31 +01:00
Dexuan Cui
65a8a578ae randrproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:30 +01:00
Dexuan Cui
d1564ab556 printproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:30 +01:00
Dexuan Cui
6ae9b353df libxtst: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:30 +01:00
Dexuan Cui
0fae559a9b libxp: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:30 +01:00
Dexuan Cui
f5e0b36c1e libxinerama: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:29 +01:00
Dexuan Cui
1a1d6e6b62 libxi: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:29 +01:00
Dexuan Cui
8fe708e2a6 libdmx: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:29 +01:00
Dexuan Cui
e4c3b7e5ce kbproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:29 +01:00
Dexuan Cui
f02f19dcb5 inputproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:29 +01:00
Dexuan Cui
2b8d3756b4 glproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:28 +01:00
Dexuan Cui
e7e5947210 fontsproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:28 +01:00
Dexuan Cui
47da7e78ad fontcacheproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:28 +01:00
Dexuan Cui
45df656b8a fixesproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:28 +01:00
Dexuan Cui
aee6d6df11 dmxproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:27 +01:00
Dexuan Cui
03f52897be damageproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:27 +01:00
Dexuan Cui
dc98b21dcc compositeproto: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:27 +01:00
Dexuan Cui
7132e90e93 calibrateproto: fix metadata
Also change to use new patch parameter

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:27 +01:00
Dexuan Cui
52e12bd760 xorg-proto-common.inc: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:26 +01:00
Kevin Tian
f0c12ae751 module-init-tools: fix metadata
Also change to use new patch parameter

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:26 +01:00
Kevin Tian
6f80a528c3 psplash: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:26 +01:00
Kevin Tian
54bf2b7a78 polkit: fix metadata
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:26 +01:00
Kevin Tian
2fab4c6180 eggdbus_0.6.bb: fix metadata
change to use new patch parameter

Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:26 +01:00
Dexuan Cui
ed1d07d058 font-util: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:25 +01:00
Dexuan Cui
5ada684e03 encodings: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:25 +01:00
Dexuan Cui
f3bc4cb826 xorg-font-common.inc: fix metadata
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-06-17 23:13:25 +01:00
Dexuan Cui
31bc90f71f settings-daemon: fix metadata
Also change to use new patch parameter

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
2010-06-17 23:13:25 +01:00
Dexuan Cui
f879d7df27 libxsettings-client: fix metadata and add MIT-style-license
One tricky issue for license part. This package doesn't ship with its own COPYING file and autotools will install a GPLv2 one instead of the actual MIT-style license here. So create a MIT-style license on the fly to reflect the fact.

Use new patch parameters.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-06-17 23:13:24 +01:00
Nitin A Kamble
cea3fe7d6e binutils: remove older versions
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-17 23:13:05 +01:00
Dike, Jeffrey G
30e98b4a0d linux-libc-headers: Remove ioctls for deleted driver
2.6.33 removed the Hayes ESP driver.  The presence of these ioctls
makes setserial believe that ESP support should be built in, breaking its
build.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-06-17 12:33:10 +01:00
Joshua Lock
c87bf0cfc6 qemu: Fix linking of the native package on Fedora 13
Fedora 13 switched the default behaviour of the linker to no longer
indirectly link to required libraries (i.e. dependencies of a library
already linked to). Therefore we need to explicitly pass the depended on
libraries into the linker for building to work on Fedora 13.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-15 12:33:11 +01:00
Joshua Lock
5101076eab handbook: Fix stylesheet
Some sizes where defined without units (in our case px) causing display of the
header of the handbook to be broken.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-14 14:33:07 +01:00
Joshua Lock
c350927b22 sanity.bbclass: Fix test for i686 SDKMACHINE
The 'is' keyword tests for object identity, returning True if the variables are
both referencing the same object. Changed the test to use the equality
operator, which compares the values of the objects.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-14 12:53:48 +01:00
Joshua Lock
5735f03d18 handbook: Fix typo in last commit
Managed to mangle the command...

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-14 12:12:55 +01:00
Joshua Lock
45a26b92e3 handbook: fix extraction command
We ship bzipped tarballs now so we need to pass j to tar, not z

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-14 12:07:03 +01:00
Joshua Lock
85982ab6cd handbook: fix version reference
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-14 12:05:50 +01:00
Joshua Lock
c3e09804e5 handbook: Fix references to the stable release
The handbook was still talking about the purple release, we're green now

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-14 12:05:17 +01:00
Richard Purdie
71d24f5d1a Merge branch 'distro/master' of ssh://git.pokylinux.org/poky-contrib 2010-06-11 18:06:27 +01:00
Joshua Lock
d9062199b4 handbook: Fix generation of HTML handbook
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-11 15:27:23 +01:00
Joshua Lock
da8139499d Update version after Green release 2010-06-11 14:43:58 +01:00
Joshua Lock
c7f6eab8b1 packaged-staging.bbclass: fix typo in scan_cmd
it's PSTAGE_TMPDIR_STAGE, not PSTAGE_TMDPDIR_STAGE spotted by Chris Larson
<chris_larson@mentor.com>

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-11 14:43:58 +01:00
Richard Purdie
836bddc71e xserver-kdrive: Disable dolt to fix build failures
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-11 11:37:33 +01:00
Joshua Lock
ee13bb0b1a linux-moblin-2.6.33.2: Enable trackpads for netbooks
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-11 11:28:39 +01:00
Richard Purdie
11d8097053 site/powerpc: Add popt site options
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-11 11:10:21 +01:00
Richard Purdie
2e62c640e7 gnome-keyring: Add missing DEPENDS on gconf
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-11 11:09:58 +01:00
Richard Purdie
d6bda454f8 qemuppc: Add ppc603e to PACKAGE_EXTRA_ARCHS, fixing image builds
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-11 10:27:02 +01:00
Scott Garman
b5fc6abac9 poky.bbclass: Add second fall-back sources mirror
* Green and newer releases can now use http://autobuilder.pokylinux.org/sources/

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2010-06-11 10:19:03 +01:00
Richard Purdie
155770a597 task-poky-tools: Disable kexec for powerpc
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-11 09:31:37 +01:00
Scott Garman
482b3ef78c gypsy: Fix broken SRC_URI
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-11 09:18:41 +01:00
Kevin Tian
c32daf4554 icu-native: LD_LIBRARY_PATH is required
Back to commit ea45876d7b, LD_LIBRARY_PATH
is disable for cross-build, however it's required for native version. So
force noldlibpath.patch for non-native case only

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-11 11:57:22 +08:00
Saul Wold
fc2e5e0807 Fix my own type of BPV -> BPN
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-06-10 19:56:09 -07:00
Nitin A Kamble
fd4924087c Add an entry for ${BPN} in the handbook
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 17:34:57 -07:00
Saul Wold
10a23e8618 Fixed bzip SRC_URI with ${BPN}
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-06-10 16:31:17 -07:00
Nitin A Kamble
c18e886380 Revert LICENSE fields for binutils recipe files
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:32 -07:00
Nitin A Kamble
b43fd541d3 scripts/create_pull_request fix a typo
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:32 -07:00
Nitin A Kamble
1d64687d13 update create_pull_request for distro/master
With this change the create_pull_request will be able to generate pull
requests to master as well as distro/master branch.

Some documentation is added in the Usage messange of the script.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:32 -07:00
Nitin A Kamble
046ed7e775 update distro tracking fields for libtool recipe
a new release just went out.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:32 -07:00
Nitin A Kamble
177a69639c Add distro tracking fields for gnu-config recipe
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:31 -07:00
Nitin A Kamble
04b3026451 gnu-config recipe: fix SECTION field
the SECTION is changed from base to devel.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:31 -07:00
Nitin A Kamble
31e522c582 Add distro tracking fields for more recipes
Added fields for these recipes
python-pyrex
python-scons
python-urlgrabber
python
yum-metadata-parser
quilt
tcl
unifdef
qmake-cross

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:31 -07:00
Nitin A Kamble
9a50a58591 Add distro tracking fields for more recipes
Added fields for these recipes:
python-dbus
python-gst
python-imaging
python-iniparse
python-pycairo
python-pycurl
python-pygobject
python-pygtk

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:31 -07:00
Nitin A Kamble
172944c3dd Add distro tracking fields for some recipes
distro tracking fields are filled for these recipes:

binutils
gcc
autoconf
automake
bison
diffstat
exmap-console
flex
gdb
gtk-theme-torturer
intltool

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:31 -07:00
Dongxiao Xu
a40c5e7cae Fix metadata for libmad
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-10 16:30:31 -07:00
Dongxiao Xu
6f4ef9d3d9 Fix metadata for libid3tag
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-10 16:30:31 -07:00
Dongxiao Xu
ecfeed0476 Fix metadata for liba52
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-10 16:30:31 -07:00
Dongxiao Xu
e3e37fdc1c Fix metadata for libical
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-10 16:30:31 -07:00
Dongxiao Xu
1d8873df39 Fix metadata for hostap-utils
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-10 16:30:30 -07:00
Dongxiao Xu
c655e048eb Fix metadata for lrzsz
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
ab26892544 Add distro tracking for previous metadata fixes
time
gdbm
pth
python-pycurl
bzip2
portmap

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
f2cab62f0c fix metadata for portmap
update license and homepage

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
68de40addd fix metadata for bzip2
update license and homepage
use $PN and $PV instead of literals

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
42881b8921 fix metadata for python-pycurl
update homepage, license and ordering

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
5c92b1050f fix metadata for pth
update license fields

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
e24d833c66 fix metadata for gdbm
update license and homepage

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:30 -07:00
Qing He
db28428efe fix metadata for time
update license related fields
slight ordering change
no version update

Signed-off-by: Qing He <qing.he@intel.com>
2010-06-10 16:30:29 -07:00
Nitin A Kamble
94a06edc56 add distro tracking fields for more recipes
Added files for these recipes:

make
run-postinsts
staging-linkage
nasm
oprofile
perl
prelink

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:29 -07:00
Nitin A Kamble
df1127390f lttng-viewer_0.8.83.bb: Fix SRC_URI
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:29 -07:00
Nitin A Kamble
f8acca9ade Add distro tracking fields for more recipes
Distro tracking metadata for these recipes is added

libtool
linux-libc-headers
lsof
lttng-control
lttng-viewer

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:29 -07:00
Nitin A Kamble
3d5e9f0a04 flex.inc : update HOMEPAGE metadata field
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 16:30:29 -07:00
Nitin A Kamble
2dcd8612c0 make 2.20.1 as new default version for binutils
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 15:02:50 -07:00
Nitin A Kamble
7c9ec39bb9 binutils: upgrade to version 2.20.1
Added a entry for bugtracker.
updated LICENSE
updated LIC_FILES_CHKSUM

The x86 build of binutils is working fine.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 15:02:50 -07:00
Nitin A Kamble
75ea847862 distro_tracking_fields.inc: new file for tracking
distro tracking fields are filled for these recipes:

binutils
gcc
autoconf
automake
bison
diffstat
exmap-console
flex
gdb
gtk-theme-torturer
intltool

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-10 15:02:50 -07:00
Kevin Tian
3421414377 Add distro overrides for previous metadata fixes
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-10 15:02:50 -07:00
Kevin Tian
cf01e506ed Fix metadata for e2fsprogs
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-10 15:02:50 -07:00
Kevin Tian
50d8843757 Fix metadata for dbus-wait
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-10 15:02:49 -07:00
Richard Purdie
57c7dda03e js: Fix mips build and other architecture inconsistency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 22:12:55 +01:00
Richard Purdie
ea45876d7b icu: Fix LD_LIBRARY_PATH corruption causing build failures
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 22:04:20 +01:00
Richard Purdie
beef002bb4 lib/oe/patch.py: Fix patch application failure interaction handling
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 20:22:41 +01:00
Joshua Lock
453ee8d573 poky-env-internal: fix a typo
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-10 15:59:11 +01:00
Richard Purdie
d92a12f761 poky-evn-internal: Add some documentation about the config file and commonly used build targets
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 15:51:36 +01:00
Joshua Lock
b5a370970f opkg: ensure the data directory is created
We need to ensure the data directory (/usr/lib/opkg) is created and shipped in
the package as it's used by opkg to create a lock file.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-10 15:04:38 +01:00
Joshua Lock
eb3c93f401 rootfs_ipk.bbclass: ensure the package manager can create lock files
The opkg package manager uses /usr/lib/opkg to store lock files in, modify the
remove_package_data_files() function to create an empty directory once the data
files are removed so that the lock can be created.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-10 14:49:50 +01:00
Richard Purdie
12a9dea241 qemu-nativesdk: Make sure the compiler prefix is set fixing cross sdk builds
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 12:05:38 +01:00
Joshua Lock
6a7549ff00 packaged-staging.bbclass: Use a differnet opkg.conf for each TARGET_ARCH
Assembling an appropriate opkg.conf in the pstage_helper is difficult when
building for multiple target architectures in one Poky directory, work around
this by generating an appropriate opkg.conf for the TARGET_ARCH and using an
${TARGET_ARCH}-opkg.conf for packaged staging.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-10 11:36:23 +01:00
Richard Purdie
8273262ae6 qemu-helper-nativesdk: Fix after file:// url handling changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 10:55:43 +01:00
Richard Purdie
07b4e14734 m4: Set further site entries
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 10:42:21 +01:00
Richard Purdie
80878dae5b LICENSE: Clarify the license recipe source code is under
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-10 10:13:18 +01:00
Joshua Lock
24ace6b45d linux-2.6.33.2: Ensure enable QEMU network drivers for qemux86
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-10 09:59:43 +01:00
Joshua Lock
2e0e24e849 scripts: Fix setting up links to cc and gcc in runqemu
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-09 17:32:01 +01:00
Richard Purdie
61a730184b kernel.bbclass: Drop code which is duplicated later in the function, fixing older kernel builds
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 14:27:13 +01:00
Richard Purdie
f38160b367 bootcdx86: This is dropped in favour of netbook iso images
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 12:58:46 +01:00
Richard Purdie
9b60f0d0b7 poky-image-sato-cd: This has been replaced by the -live image
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 12:58:06 +01:00
Richard Purdie
8eea156e9f xserver-kdrive-xomap: Bandaid for configure issues and modern autotools
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 12:56:21 +01:00
Richard Purdie
3ff78923ba gcc-4.3.3: Drop unused patches
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 12:50:17 +01:00
Joshua Lock
c2569a7405 udev: bump PR after cache fixes
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-09 12:07:59 +01:00
Yu Ke
1c803f3ffb Fix the boot process udev warning
Phenomena: there is udev warning in boot process
        tar: can't open '/etc/dev.tar': Read-only file system

The reason is that the init script /etc/rcS.d/S04udev will try to tar the /dev as cache to speed up udev at next boot time. Unfortunately, S04udev is too early and the filesystem is not writable yet.

To fix it, this patch split the cache action to another init script, and register it as /etc/rcS.d/S36, which is after the S35mountall, and the filesystem is already writable.

Signed-off-by: Yu Ke <ke.yu@intel.com>
2010-06-09 12:04:51 +01:00
Richard Purdie
efc47a8999 pciutils: Stop build breakage if HOST is set in the environment
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 11:29:30 +01:00
Richard Purdie
26a6079237 curl: Fix configure issue on mips
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 11:12:49 +01:00
Joshua Lock
99954dae46 linux: bump PR of linux-2.6.3243.2 after the fix for RTC
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-09 10:22:58 +01:00
Joshua Lock
52de67497f busybox: bump the PR after the syslog fix
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-09 10:22:24 +01:00
Zhai Edwin
aa913534e4 Fix the syslog starting failure
Should use "-Cxx" instead of "-C xx" as command line for syslog in busybox

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-09 10:20:44 +01:00
Zhai Edwin
2e54470a0b Fix the issue of /dev/misc/rtc missing from hwclock.sh
Build RTC driver into kernel by default on qemux86 to avoid missing of /dev/misc/rtc

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
2010-06-09 10:20:43 +01:00
Richard Purdie
6f28a05ccc m4: Drop broken custom do_configure which stops site cache taking effect (amongst other issues) and drop duplicate PR setting
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 10:12:40 +01:00
Richard Purdie
247da0351e site/common-glibc: Add entries for m4
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-09 10:11:52 +01:00
Richard Purdie
fa64e20621 linux-moblin: Drop old versions (2.6.31.5 and 2.6.29.1)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 21:04:38 +01:00
Richard Purdie
3a8ee5864d gcc: Drop 4.2.3 as its unused
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 21:03:12 +01:00
Joe Sauer
47e5d86aad metadata_scm.bbclass: Make errors quiet if we're not in a git based scm
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 20:54:26 +01:00
Richard Purdie
f47eeddbd6 gcc-runtime: Various bug fixes
* Use the -nostdinc++ to CXX fixing libstdc++
* Generate libgcc in gcc-cross, save the result and use in gcc-runtime
* Fix the layout of the crt*.o files so the SDK compiler can find them

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 20:33:16 +01:00
Richard Purdie
d579b7c746 gcc-configure-sdk.inc: local-prefix should be in SDKPATH, not a build patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 20:32:44 +01:00
Richard Purdie
e77506b171 gcc-configure-cross.inc: local-prefix should be the target exec_prefix
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 20:32:01 +01:00
Richard Purdie
a06a85ab9b cross/cross-canadian.bbclass: Save target_exec_prefix variable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 20:30:26 +01:00
Joshua Lock
fcd220b4fd handbook: document the LAYERDIR variable
LAYERDIR is one of the few variables which requires immediate expansion and is
worth documenting explicitly.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-08 17:53:25 +01:00
Joshua Lock
49df0b84fa .gitignore: Ignore the built bsp-guide
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-08 17:29:56 +01:00
Joshua Lock
79f330c6c9 handbook: point out required Python version
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-08 17:29:56 +01:00
Joshua Lock
3a6948a2af handbook: add documentation for layers
Collections and overlays are deprecated in favour of layers, a much cleaner and
non-intrusive way of extending Poky with custom recipes, classes and
configuration.

This patch updates the Extending Poky section of the handbook to show how to
use layers to tailor Poky while dropping  the existing section on using
collections.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-08 17:29:56 +01:00
Joshua Lock
6a9312cccc sanity.bbclass: Check for Python 2.6 or newer
In relocatable.bbclass and utility-tasks.bbclass we depend on functionality
that was only introduced with Pytrhon 2.6, so we now check that the build
system has it in the sanity class.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-08 17:29:46 +01:00
Joshua Lock
8f34dcfdbc handbook: Use new style patch application syntax
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-08 17:07:03 +01:00
Richard Purdie
40b0d41fd1 task-poky-standalone-sdk-target: Add libgcc-dev and libstdc++-dev to allow compiling in meta-toolchain to work
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-08 13:13:18 +01:00
Dongxiao Xu
f8c0b93562 gcc-cross: Fix install path typo.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2010-06-08 17:09:33 +08:00
Richard Purdie
1a53b52071 linux-moblin: Fix defconfig-netbook
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-07 23:29:58 +01:00
Richard Purdie
2f7b3e3f31 gcc-runtime: Make sure multiple target builds work correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-07 23:09:00 +01:00
Richard Purdie
6118da2a7f syslinux: Fix native install to use the correct paths
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-07 21:58:21 +01:00
Richard Purdie
2160dddcc1 base.bbclass: Fix after bb.decodeurl was fixed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-07 21:16:16 +01:00
Joshua Lock
c4a0b5463d sanity.bbclass: version each of the files in the build/conf/ directory
We already have versioning of the local.conf file but it's entirely plausible
for the bblayers.conf and site.conf to change incompatibly so we should version
those too.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-07 16:16:35 +01:00
Saul Wold
cab1009b08 Fixes for Qemu to use VGA and Touch Screen
Added usb tablet options to poky-qemu-internal script, and adjusted the
xorg.conf script for x86 to use VGA screen and tablet input device

Signed-off-by: Saul Wold <saul.wold@intel.com>
2010-06-07 16:13:00 +01:00
Jeff Dike
bf59d217a8 qemu: Update to 0.12.4
Renamed the recipe to 0.12.4.

Moved the patches directory to qemu-0.12.4 - when it was named
qemu-0.12, bitbake silently ignored the patches, and only failed when
it came time to apply them.

Added a FILESDIR to the git recipe and changed its PV to 0.12.4 so it
can use the same patches as the normal recipe for now.

Removed the series file - it wasn't needed.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-06-07 16:10:19 +01:00
Nitin A Kamble
fc81ca7d2d insane.bbclass: Throw better error if path is bad
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-07 16:05:12 +01:00
Nitin A Kamble
c3682bf89b bitbake decodeurl: fix the file:// url handling
Without this patch decoding a url of this kind file://dir/filename gives
path=/filename host=dir.
With the patch it decodes as path=/dir/filename host=""

Probably nobody stumbled on this issue yet because nobody used
file:// urls with directory names in the path.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-07 16:05:00 +01:00
Jeff Dike
807e983632 e2fsprogs: Remove all mention of anything associated with uuids
--disable-libuuid is added to the configure command line.  This has
the effect of disabling the compilation of uuidgen and libuuid.so.

These two are specified as making up their own packages, which turn
out to be empty, and thus aren't created in the first place.  The
error which manifests itself is at the final creation of the rootfs
when the global package depends on the e2fsprogs-uuidgen and libuuid,
which turn out not to exist, because they weren't created.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-06-07 16:04:00 +01:00
Jeff Dike
42e7e4f3e2 wpa-supplicant: Don't run populate-volatile.sh on the build system
Move the populate-volatile.sh call to below the offline check.
Otherwise, it will try to run during the build, on a system which
likely doesn't have populate-volatile.sh.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-06-07 16:03:45 +01:00
Joshua Lock
8f367b6930 packaged-staging: Add the correct architectures to the opkg conf
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-04 20:02:09 +01:00
Joshua Lock
1ccbc1549e handbook: use XML catalogues to make building work on all(?) distros
Thanks to Damien's pointers we should now be able to generate the handbook
regardless of host distro

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-04 20:02:06 +01:00
Joshua Lock
f5d0471541 busybox: Fix redirection of fd 0 in ash interactive
Backported change from the 1.16.1 ash patches.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-04 20:02:01 +01:00
Jeff Dike
fe4e6fc997 module-init-tools: Don't cross-build static binaries
When building the native version, I get errors from ld complaining
about not being able to find a static libc.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-06-03 12:28:10 +01:00
Kevin Tian
3161c9b15a utility-tasks.bbclass: automatic upstream version check
Automatic upstream version check can be triggered by "bitbake xxx -c checkpkg".
The rationale behind is to find a automatic way for version comparison between
current in-use one and upstream progress. The tricky thing is how to find out
useful version string from mass diverse information. Fortunately now it mostly
work for wget based protocol, except some sites (e.g. sourceforge) not providing
a directory service. Repo (git/svn/cvs) based protocols are handled in a very
simple manner, by always tagging as update required. This will be further
improved later. Use 'world' target to retrieve a full version check for all
active recipes.

Along with version check, other package information is also collected from
existing fields in .bb file

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-06-03 12:23:22 +01:00
Richard Purdie
50224b5afa libtool-cross: Allow the compile to run else we can generate invalid (unpatched) libtool files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-03 09:05:03 +01:00
Joshua Lock
9d9b64aaf0 bitbake.conf: Remove util-linux from ASSUME_PROVIDED
We need to build our own util-linux now

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-02 16:15:15 +01:00
Joshua Lock
17f3c548ca util-linux: bump to 2.17 based on OE recipe
Needed to increase version to one which includes libuuid and change do_install
for building a native version.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-02 16:14:54 +01:00
Joshua Lock
c4476f7914 e2fsprogs: add util-linux to depends
e2fsprogs requires libuuid to build and we have disabled its built in version
in favour of the one in util-linux, therefore we need util-linux in the DEPENDS

Drop old configure option --enable-dynamic-e2fsck

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-02 15:25:23 +01:00
Joshua Lock
7ada79de07 sanity.bbclass: check for invalid characters in OEROOT
Some characters in the path for OEROOT are known to cause issues, so check for
them in the sanity checker.
Currerently we warn on +'s and spaces.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-02 15:25:00 +01:00
Richard Purdie
9ea69b17f7 utility-tasks: Remove unneeded addtask parameter
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-02 14:07:59 +01:00
Nitin A Kamble
6b82b70c93 Handbook: Documentation for DISTRO_PN_ALIAS
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com
2010-06-02 14:06:03 +01:00
Nitin A Kamble
682983b548 xset: Defining DISTRO_PN_ALIAS for distro_check
This recipe has different names in the different distros. So defining
these aliases for the distro_check task use.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-02 14:06:03 +01:00
Nitin A Kamble
2ccd2e67c5 Handbook: Documentation for LIC_FILES_CHKSUM
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-02 14:06:02 +01:00
Nitin A Kamble
5ae3f65531 do_distro_check: Recipe exists in other distros?
This adds a new task (distro_check) for each recipe.
The task generates the source package list for Fedora OpenSuSE
Ubuntu Debian & Mandriva Linux distros.

As one recipe or source package can generate multiple target packages
the recipe name is compared with the source package name list of LInux
distributions.

Thread locking is used to avoid multiple threads racing for the
package list update.

Then the recipe name (PN) is checked if it exists in the package
list of distros. And if the DISTRO_PN_ALIAS then it is used to copmare
pacakge_name instead of the PN variable. Just for example the
DISTRO_PN_ALIAS can be defined in the recipe (.bb) files like this

In the file xset_1.0.4.bb:

DISTRO_PN_ALIAS = "Fedora=xorg-x11-server-utils;\
   Ubuntu=x11-xserver-utils; Debian=x11-xserver-utils;Opensuse=xorg-x11"

The final results are stored in the tmp/log/distro_check-${DATETIME}.result
file.

FYI this command will generate the results for all recipies:
bitbake world -f -c distro_check

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-02 14:06:02 +01:00
Nitin A Kamble
8514bcf5f8 iproute2: fix an issues with DATETIME
The DATE variable in this bb files was distrubing the DATETIME variable
used by the distro_check task.
Renamed the DATE variable to SRCDATE

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-02 14:06:02 +01:00
Nitin A Kamble
2ddc6c4b03 bitbake.conf: add the LOG_DIR variable
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-06-02 14:06:02 +01:00
Richard Purdie
648290d5bf libtool: Make sure ltmain.sh is always regenerated. We can't just remove it since it has to be present to run configure 2010-06-02 11:57:49 +01:00
Richard Purdie
420b1d8488 initscripts: Tweak checkroot to work with recent versions of busybox
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-02 11:45:59 +01:00
Richard Purdie
5b1c702566 e2fsprogs: Upgrade 1.41.5 -> 1.45.12
* The no-hardlinks patch is no longer required
* There was an autoconf macro issue which required a new patch (details in patch)
* libuuid was disabled, this should be provided by util-linux on modern systems
* Not providing libuuid is useful for the -native tools as it stops library symbol
  confusion with those from the host system.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-01 22:13:35 +01:00
Richard Purdie
fe37d679e0 gcc-configure-runtime: Make sure the sysroot is configured
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-01 17:52:53 +01:00
Richard Purdie
7dcf1e47b7 sanity.bbclass: Check for SDKMACHINE=i686 and error if found
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-01 17:25:05 +01:00
Joshua Lock
7f0181202a dropbear: don't apply no-password patch
The patch.bbclass changes default to applying listed patches without an
apply/patch parameter. Set the apply parameter to no.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-01 15:17:12 +01:00
Joshua Lock
e2598fefaa busybox: disable mdev, we use udev
The import from OE had included some mdev configuration, whereas Poky switched
to udev and a static (tarred) dev some time ago.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-01 15:17:12 +01:00
Joshua Lock
09536a7592 patch.bbclass: Merge patch enhancements from OE by Chris Larson
Chris made some interesting changes to the patch handling in OE. Firstly the
patch and pnum parameters have been renamed, to better reflect their function,
to apply and striplevel. The apply parameter now takes either yes or no as its
value.

Therefore a patch line would be changed from:
file://some.patch;patch=1;pnum=2
to:
file://some.patch;apply=yes;striplevel=2

Secondly the apply parameter is inferred if not defined. Entries in SRC_URI
with diff or patch filename extensions will be automatically applied as patches
if the apply parameter is not set to no (or an unknown value).

Note: We have disabled the warnings when using the old style parameters for now

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-06-01 15:17:12 +01:00
Richard Purdie
1f2646981f pm-utils: Upgrade to 1.3.0 and fix SRC_URI not to point at SCM generated tarballs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-01 15:14:26 +01:00
Richard Purdie
3cbbd0b002 eds-dbus: Disable parallel make
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-06-01 12:45:07 +01:00
Joshua Lock
2700a620d0 qemu: add some extra ldflags to make it link succesfully
qemu-native was failing to link on my 64bit Fedora 13 machine with this error:

| /usr/bin/ld: libqemu.a(helper_opengl.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
| /usr/bin/ld: note: 'dlsym@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line
| /lib64/libdl.so.2: could not read symbols: Invalid operation

So I did as the linker told me and added -ldl to the linker flags

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-28 15:32:42 +01:00
Joshua Lock
138df217ef Drop vm_mmap_min_addr checks from scripts and sanity class
QEMU 0.12.x is relocatable so we no longer need these tests, which is good
because it doesn't work reliably with modern kernels.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-28 15:32:41 +01:00
Joshua Lock
32a85c1570 qemu: reduce duplication, use an inc file and share common patches
There's no need to carry around two copies of the same patches for qemu-git and
qemu-0.12 so drop the qemu-git directory and update the git recipe to use the
qemu-0.12 directory for patches.

Move common code from the two recipes to an inc file.

Signed-off-by: Joshua Lock <josh@linux.intel.com>

fweh
2010-05-28 15:31:54 +01:00
Jeff Dike
3d6e7e7d0c qemu: Update the static recipe to 0.12.0
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-05-27 15:22:50 -04:00
Jeff Dike
4de4707213 qemu: updated the glflags patch, which is needed by qemusdk.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
2010-05-27 13:16:59 -04:00
Richard Purdie
1de1ac2eb2 lib/oe/patch.py: Fix datastore references in error paths
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-27 15:58:00 +01:00
Richard Purdie
d630317b6b handbook: Add alpha verison of a BSP specification
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-26 15:26:09 +01:00
Jeff Dike
a49e605a52 qemu: Updated to 0.12.0
Updated the metadata in the recipe, changed the git revision in
poky-default-revisions.inc, and pulled the qemu patches forward.
2010-05-26 14:14:48 +01:00
Joshua Lock
eb69ecdfcc poky-default.inc: Bump linux-libc-headers to 2.6.33
Now that we have a Busybox (and strace) which we can build we can use the same
kernel-headers version as our default kernel version.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-25 15:38:28 +01:00
Joshua Lock
f24f8360bc strace: bump from 4.15.18 to 4.15.20
The old version didn't build with the older linux-libc-headers

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-25 15:37:33 +01:00
Joshua Lock
615a98ed9a busybox: bump to 1.15.3 from OE
Import the 1.15.3 recipe from OpenEmbedded and tweak to match Poky style

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-25 15:36:14 +01:00
Joshua Lock
cd62d697e1 relocatable.bbclass: reduce the amount of output
Disable the last bb.note call, it's a bit spurious. Only really useful for
debug.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-24 17:25:28 +01:00
Joshua Lock
9210ae6f1a poky-default.inc: roll-back preferred linux-libc-headers to 2.6.30
Our current Busybox version doesn't support 2.6.33 headers.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-24 17:25:02 +01:00
Joshua Lock
9f23e3e491 Update directdisk images to use common inc files
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-24 12:05:25 +01:00
Richard Purdie
6bf1f8c76e kernel.bbclass: Simplify the current external module code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-24 11:14:56 +01:00
Scott Garman
78988bb014 eggdbus: Disable PARALLEL_MAKE
* Fixes eggdbusenumtypes.h gen/use errors

Signed-off-by: Scott Garman <sgarman@zenlinux.com>
2010-05-24 10:35:01 +01:00
Scott Garman
4bcf9c7220 xserver-kdrive-glamo: Fix broken SRC_URI
Signed-off-by: Scott Garman <sgarman@zenlinux.com>
2010-05-24 10:34:49 +01:00
Scott Garman
ae9174ef53 kernel.bbclass: Stop staging binaries within scripts/
* Preserves scripts/ directory but excludes binaries known to cause
  "strip command failed" errors during do_package on cross platforms

Signed-off-by: Scott Garman <sgarman@zenlinux.com>
2010-05-24 10:34:40 +01:00
Joshua Lock
5bec733fb1 kernel.bbclass: tidy up staging of headers
The changes merged from upstream used the ASMDIR variable even when it might
not have been set. These changes may be incorrect but at the very least I can
now build a QEMU image (including v86d) with the 2.6.33 kernel now.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-20 16:09:39 +01:00
Joshua Lock
d887296baa linux-libc-headers: add 2.6.33 headers
Add kernel headers to match our preferred/default kernel version and set them
as the preferred version for the Poky and Moblin distributions.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-20 15:50:16 +01:00
Joshua Lock
2c3437d0ae kernel-arch.bbclass: merge improved arch detection from OE.dev
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-20 15:15:55 +01:00
Joshua Lock
769cf0b6b0 kernel.bbclass: Package Kernel firmware
Merged change from OE.dev to create packages of the kernel firmware

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-20 14:16:26 +01:00
Joshua Lock
3da120a872 linux-kernel-base.bbclass: merge version detection updates from upstream
Kernels after 2.6.33 store the utrelease.h file, used to detect the kernels
version, in a different location.

Merged from oe.dev

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-20 14:14:22 +01:00
Joshua Lock
e30c5a29d2 kernel.bbclass: match x86 header installation to other architectures
The header installation for x86 was slightly different as to that employed
for other architectures, change them to match for consistency.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-20 12:58:25 +01:00
Joshua Lock
7a4f1adcbc linux: Bump to 2.6.33.2
Use the same kernel version as the moblin distro so that we provide a similar
kernel for all QEMU machines and the netbook machine.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-19 12:20:17 +01:00
Joshua Lock
5e8c7c54a9 linux-moblin: add 2.6.33.2 kernel from MeeGo 1.0
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-19 12:20:16 +01:00
Joshua Lock
5e07bc9128 kernel.bbclass: fix installing of kernels 2.6.34 and above
Changes merged from upstream to cope with changes to directory structures in
recent kernels when building for x86

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-19 12:20:08 +01:00
Joshua Lock
53d98d76fd Move all QEMU machines to use a common kernel recipe set and version
The different kernel recipes encapsulate functionality groups for machines,
therefore it makes sense to have all the QEMU machines using the same kernel
recipe.

Switch the QEMU machines to default to the "linux" recipes for their kernel
and bump the latest recipe from linux-2.6.32 to 2.6.33.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-18 14:22:27 +01:00
Nitin A Kamble
bad2fe6498 add a new scripts create-pull-request
This is the 1st version of create-pull-request script.
Using specified local commit-id or branch-name it
generates a short description of the changes;
and using poky-contrib branch-name it generates the
URL where these changes are already pushed
and are available for review and git-pull.

I prepared this script as per the input from Richard Purdie.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-05-17 13:47:40 -07:00
Nitin A Kamble
ebed56190e Add recipe for X vesa driver package
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-05-17 10:51:57 -07:00
Nitin A Kamble
c74035a2ad Add recipe for moblin-image-netbook.directdisk
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-05-17 10:47:20 -07:00
Nitin A Kamble
b2c4aee283 poky-qemu-internal Add -show-cursor to qemux86
Without this option the need to do the blind guesswork about the
position of the pointer.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-05-14 11:57:27 -07:00
Richard Purdie
f71a4b9be8 handbook: Add section to Poky manual about contributions and certificate of origin
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-14 11:17:54 +08:00
Richard Purdie
a722741e32 Merge branch 'tk/head' of ssh://git.pokylinux.org/poky-contrib 2010-05-14 06:36:56 +08:00
Richard Purdie
dfd1472eda Merge branch 'nitin/lic1' of ssh://git.pokylinux.org/poky-contrib 2010-05-14 04:12:35 +08:00
Joshua Lock
505c26951b linux: Ensure we have buildable kernel recipes for each machine
Fix various kernels to build with our toolchain, this includes well known fixes
for:
* sumversion.c: compilation failing with a 'PATH_MAX' undeclared (fixed by
    adding limits.h to sumversions includes
* a patch taken from oe.dev to stop GCC >= 4.3 from optimizing a loop which
    causes compilation to fail
* Fixing the KERNEL_OUTPUT for mx31 and nokia800 kernel recipes

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-13 16:55:26 +01:00
Richard Purdie
ad136ddeef Revert "poky-env-internal: Disable automatic adding of meta environments to BBPATH"
This reverts commit ba804d1729 which is a valid
change but isn't working for some reason which needs further investigation.
2010-05-13 17:07:17 +08:00
Kevin Tian
5a3f17ee6b poky-env-internal: unset variables to avoid disturbing new GIT clone
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2010-05-13 16:27:01 +08:00
Nitin A Kamble
8825d4d455 License Checking: convert an error into warning
If license file md5 information (LIC_FILES_CHKSUMS variable) is
missing in the recipe then just throw a warning instead of the build
failure.
  Once enough recipes' LIC_FILES_CHKSUMS are filled then this warning
will be reverted back to the the fetal error.
  If LIC_FILES_CHKSUMS field is present but invalid then the it still
causes a fetal build error.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-05-12 10:54:05 -07:00
Richard Purdie
b6c6913212 mtd-utils: Fix mtd-utils-native do_install task to install binaries into the correct place rather than using hardcoded paths
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-12 19:30:58 +08:00
Richard Purdie
ba804d1729 poky-env-internal: Disable automatic adding of meta environments to BBPATH
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-12 15:28:54 +08:00
Nitin A Kamble
2ca1f78a95 License Change checking:
Added a new variable in recipe : LIC_FILES_CHKSUM

It is a required field for every recipe.

It describes license text location in the source files. And also stores
md5sum of that license text. Any change in this license text triggers build
error. Which enables developer to review any changes in the license and
update the license fields in the recipe accordingly.

For Example: contents of zlib_1.2.3.bb
LICENSE = "zlib"
LIC_FILES_CHKSUM = "file://README;md5=ae764cfda68da96df20af9fbf9fe49bd \
  file://zlib.h;beginline=1;endline=30;md5=6ab03f03a5ee92d06b809797d4d5586d "

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-05-11 16:25:39 -07:00
Joshua Lock
c89362c767 openssl: Fix build of openssl-native on x86_64 with recent binutils
Apply a patch from upstream that fixes the build, patch should be able to be
dropped when we update openssl version.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-07 00:45:38 +01:00
Joshua Lock
229c80ad19 xf86-input-vmmouse: bump version to 12.6.6
There was a bug in 12.6.5 whereby it was depending on symbols no longer
available in the X server.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-06 17:07:53 +01:00
Joshua Lock
cd8de7b443 moblin: drop moblin.conf and inherit poky for mirror configuration
Doesn't make any sense to duplicate the mirror configuration, and all that the
moblin class contained was minimal mirror config. So let's drop it.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-06 15:54:55 +01:00
Richard Purdie
3b9ac3f017 pax-utils: Sync with OE.dev fixing native version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 15:10:46 +01:00
Gary Thomas
28ca131ebe Fix build problem with GCC-4.3.3 on PowerPC
Signed-off-by: Gary Thomas <gary@mlbassoc.com>
2010-05-06 14:52:08 +01:00
Gary Thomas
e150e90f0a Latest versions of GCC are safe on PowerPC
Signed-off-by: Gary Thomas <gary@mlbassoc.com>
2010-05-06 14:52:04 +01:00
Joshua Lock
e7fa3529f3 Update classes to use lib/oe
Adapt modifications from upstream to make Poky classes use lib/oe for the
common Python functionality.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-06 12:53:16 +01:00
Joshua Lock
ac023d775b lib/oe: Import oe lib from OE.dev
This library moves the common Python methods into modules of an 'oe' Python
package.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-05-06 12:48:05 +01:00
Richard Purdie
14196cb031 base.bbclass: Sync minor layout changes with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 12:22:44 +01:00
Richard Purdie
89497d8057 xfce.bbclass: Fix SRC_URI (from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 12:03:31 +01:00
Richard Purdie
753b4a3187 poky-default-revisions.inc: Add linux-omap3-pm revision to ensure offline builds at least parse even if the revision is invalid
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 10:29:14 +01:00
Richard Purdie
37858f5fac handbook: Add new FAQs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 10:29:14 +01:00
Richard Purdie
d37f26525b unifdef-native: Fix staging reference in do_install (noticed from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 10:29:14 +01:00
Richard Purdie
d0f555cb5c unifdef-native: Fix staging reference in do_install (noticed from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-05-06 10:16:57 +01:00
Joshua Lock
d425fac6d1 sanity.bbclass: fix typo in earlier commit
Commit fbe3d41eb0 left a trailing bracket which
cause an interpretation error

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-30 20:15:56 +01:00
Joshua Lock
70a930f30e Remove meta-cross-linkage recipe, we no longer have a cross directory
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-30 16:25:48 +01:00
Joshua Lock
fbe3d41eb0 Version the build configuration directory
The addition of BBLAYERS changes the build/conf directory to be incompatible
with the "old way" in the Purple release.

As such things are likely to occur in future we should bersion the build/conf
directory through local.conf

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-30 16:25:41 +01:00
Joshua Lock
69d788ad5e Fix sanity check for new abi
current_abi is the abi of the tmp directory, not the current abi specified in
the abi file...

Now the sanity check should work sanely.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-29 10:25:39 +01:00
Joshua Lock
19a81653b7 Bump the ABI to alert people that cross has gone
Since we've change the tmpdir layout quite a bit we're going to bump ABI and
force a rebuild.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-28 17:48:08 +01:00
Joshua Lock
6458da896f Fix references to CROSS_DIR now that it has been removed
CROSS_DIR is no longer removed so fix up classes, packages and documentation
which refer to it.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-28 16:47:14 +01:00
Joshua Lock
29813a43b5 cross.bbclass: inherit relocatable to post-process cross binaries
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 18:29:57 +01:00
Joshua Lock
c22ab5fc9f Install cross-packages into the native sysroot
Cross is no longer required so can go away, we now install cross packages into
the native sysroot and use them from there.

This patch includes updates to classes and some recipes which reference
CROSS_DIR. Others still need fixing an image can be built and run with this
patch applied.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 18:29:57 +01:00
Joshua Lock
00c5c97442 gcc: Fix packaging of cross for PPC
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 18:26:29 +01:00
Joshua Lock
4d1f39af75 autotools: deprecate autotools_stage class
Move the functionality into autotools and ensure all our Poky recipes are no
longer using it.
Keep the autools_stage class around for OE compatability but just have it
inherit autools.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 17:11:28 +01:00
Joshua Lock
95f2dd7dc8 poky-default.inc: set PPC preferred version for gcc-runtime
We use an older toolchain for PPC so we need to set the PREFERRED_VERSION for
gcc-runtime too.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 17:11:28 +01:00
Joshua Lock
5fb1069e47 conf/poky-default.inc: Fix PPC preferred binutils
At some stage the PPC preferred binutils seems to have been changed, we still
need 2.19 for now.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:43 +01:00
Joshua Lock
d2c6f3ef36 scripts/pstage-scanner: new script to sanity test the contents of pstage
Currently the script will scan all packages in the pstage directory and log
packages which contain destinations outside of the native sysroot.
The script currently ignores pkgdata, stamps and deploy but does trigger the
work dir for packages with a package-split file, this may well be a false
positive.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:43 +01:00
Joshua Lock
23ff2e0819 relocatable.bbclass: Normalise the generated path
The generated path we create for the binaries RPATH can have a lot of directory
separators in. Use os.path.normpath() to tidy it up and only include the
required directory separators.

This patch is purely to appease my personal sense of niceness...

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:42 +01:00
Joshua Lock
d1f413ff30 sanity.bbclass: handle lack of permission to read /proc/sys/vm/mmap_min_addr
Patch from OE.dev by Martin Jansa to workaround that we on modern Linux we can
no longer read this file.

We need a better fix but best option will be to update to a newer, relocatable,
QEMU release.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:42 +01:00
Joshua Lock
6763d7506f polkit: fix DEPENDS, requires intltool
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:42 +01:00
Joshua Lock
7f019514d8 Move STAGING_BINDIR_CROSS into target sysroot, instead of native
Cross scripts now live in sysroot/$arch-distro-os/crossscripts, this conveys
that they are no longer native system dependant and emphasises their purpose.

Bump the staging ABI and implement a simple migration from ABI 3 to ABI 4.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:42 +01:00
Joshua Lock
e866ea68c7 packaged-staging.bbclass: Fix architecture field
The packages architecture field is incorrect, this patch changes it to:
native - build machine architecture
cross - build and target machine architectures
target - target machine architecture

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:42 +01:00
Joshua Lock
6727d5ad6c poky-image-sato-directdisk: directdisk variant of Sato image
New recipe to create a directdisk Sato disk image.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 16:58:42 +01:00
Joshua Lock
4c00f55f7a pixman: explicitly disable Gtk+ tests
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-27 11:29:09 +01:00
Joshua Lock
36652f51ab qemu_git: Ensure we have the required dependencies for a native build
qemu-native requires a libGL and the SDL development headers to build with our
GL "emulation". This patch adds a check before configure for the native package
to ensure that the sdl.pc file and GL so files exist and bombs out otherwise.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-15 17:49:49 +01:00
Joshua Lock
d3fbb56c2f relocatable.bbclass: Actually skip symlinks
The previous patch to do so was badly merged and didn't actually skip all
symlinks, only ones which where not an absolute path...

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-12 15:56:45 +01:00
Richard Purdie
4f1ec3194d gpgme: STAGING_DIR_HOST != STAGING_DIR/HOST_SYS and this causes subtle cross contamination between certain machines. Fix.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-04-12 12:11:54 +01:00
Joshua Lock
1ac0a1aebe relocatable.bbclass: ignore symlinks
If this links to a file created by the package install we already handle it
when we process the sysroot. By ignoring symlinks here we don't cause a build
to fail when the symlink is to somewhere in the host OS.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-08 16:41:24 +01:00
Joshua Lock
10b6d14062 relocatable.bbclass: Handle files which don't have read/write permissions
It's possible to have files in our sysroot which don't have the write (or in
some cases even the read) bit set. Test for these and if they are not set
temporarily set them so that we can chrpath the binaries.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-08 16:41:24 +01:00
Joshua Lock
572f86ce5b packaged-staging.bbclass: Remove hardcoded paths in binfiles for target packages
Amend the default PSTAGE_SCAN_CMD, as used when scanning target packages, to
include binconfig scripts in the results and remove their hardcoded paths.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-08 16:41:24 +01:00
Enric Balletbo i Serra
aa1931498b igep0020: Rename files for IGEP v2 boards, prepare for support Hw rev. B and rev. C
Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
2010-04-07 10:20:53 +01:00
Enric Balletbo i Serra
c45c86003c linux-igep2: update to latest stable version 2.6.28-3
Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
2010-04-07 10:20:53 +01:00
Richard Purdie
eb8be4555b psuedo: We don't use lib64
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-04-06 15:27:46 +01:00
Richard Purdie
43b5d13c63 psuedo: Add missing install function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-04-01 15:57:21 +01:00
Joshua Lock
b43b80c760 relocatable: Handle directories having subdirectories of binaries
Make the processing of directories less naive so that it can handle a directory
with children that are directories. We now scan for and process binaries in all
directories below the scanned paths rather than only the top-level directory.

This patch moves the meat of the post-processing into a separate function which
is fed paths, process_dir (). Then when the function finds a subdirectory of
the passed path which is itself a directory it recursively calls itself.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-04-01 11:53:29 +01:00
Richard Purdie
cf929499aa gcc-cross-initial/gcc-cross-intermediate: Add missing EXTRA_OECONF variables
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 17:28:08 +01:00
Richard Purdie
18bdffa955 python-pycurl: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 15:36:12 +01:00
Richard Purdie
bcdfa2a468 encdev-updater: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 15:33:21 +01:00
Richard Purdie
369f4dc1a9 liblbxutil: Fix cross compile issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 15:30:10 +01:00
Joshua Lock
9b6287c7b1 python-pycurl: Fix building
Add python to DEPENDS and ensure the required environment variables are
available at build time.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-31 14:50:50 +01:00
Richard Purdie
0f4202fa20 gcc: Don't create links in base-libdir
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 14:28:27 +01:00
Richard Purdie
715b0a859f gcc-crosssdk: Remove bogus require
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 14:14:50 +01:00
Richard Purdie
50022b12ef poky-moblin.inc: Set provider for virtual/TARGETcompilerlibs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 14:12:23 +01:00
Richard Purdie
2fc8da52f7 gcc-runtime: Add 4.2.3 version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 14:06:33 +01:00
Richard Purdie
eca7e8c9bf gcc-crosssdk: Create common include files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 13:53:07 +01:00
Richard Purdie
c155b71ba4 gcc-cross.inc: Move do_compile
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 13:46:20 +01:00
Richard Purdie
70abb2e3e8 gcc-cross: Use NATIVEDEPS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 13:43:09 +01:00
Richard Purdie
fb5b562837 gcc: Move -native dependencies into the base gcc version configuration file and create and use EXTRA_OECONF_INITIAL and EXTRA_OECONF_INTERMEDIATE variables
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 12:09:14 +01:00
Richard Purdie
5b5a069e16 gcc-cross-kernel: Remove unneeded requires
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 11:22:25 +01:00
Richard Purdie
95fd994366 gcc-runtime: Move core code to the main include file
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 11:19:54 +01:00
Richard Purdie
ccebaa67df gcc-cross: Simplify require statements
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 11:19:24 +01:00
Richard Purdie
e9522df693 gcc: Drop 4.1.2 as its unused
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 10:32:57 +01:00
Richard Purdie
cc0bd4bed2 gcc: Drop 3.4.4/3.4.6 and gcc-native as all are now unused
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-31 10:32:08 +01:00
Richard Purdie
4821286d0a gcc-csl: Drop old version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-30 14:23:15 +01:00
Richard Purdie
9c77464538 gcc-runtime: Handle libgcc headers correctly and set c++ include patch for packages correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-30 14:14:34 +01:00
Richard Purdie
c75c0d68c2 gcc-runtime: Fix c++ include path
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-30 12:26:20 +01:00
Richard Purdie
0cf4a98244 gcc-package-cross.inc: Only stage gcc-runtime headers for gcc-cross
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-30 10:43:15 +01:00
Richard Purdie
847324b79b classes/conf: Update to handle gcc-runtime
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-29 22:28:49 +01:00
Richard Purdie
cdaf6c804b gcc-runtime: Add initial recipe
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-29 22:27:13 +01:00
Richard Purdie
7a7c2341c7 gcc-4.3.3: Add patch for issue PR35942 to fix libstdc++ build issues with certain host cross compile combinations
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-29 22:24:50 +01:00
Richard Purdie
fcfbc7b1e7 autotools.bbclass: Allow extraction of the configure arguments for use in strange testcases
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-29 17:04:13 +01:00
Joshua Lock
93f357d657 relocatable.bbclass: we need to process library files too
The .so files we ship also have a RPATH encoded so should be post-processed for
a relocatable RPATH too.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 14:24:58 +00:00
Joshua Lock
1ee88638a2 rootfs_rpm: Explicitly add runtime dependencies to depends
Python RDEPENDS are tricksy beasts and the runtime dependencies of Yum aren't
being pulled in for the RPM rootfs so explicitly add them to depends.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 12:23:11 +00:00
Joshua Lock
34a24c2d9d createrepo: Fix dependencies, yum at runtime and libxml2 at build
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
ad07d796fe .gitignore: Add packaged staging directory to ignore list
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
5eb169bb6a python-urlgrabber: Update to 3.9.1 with extra patches from Fedora
Add a couple of extra patches from Fedora to make the latest createrepo package
work.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
811497111b python-native: Fix DEPENDS by adding sqlite3
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
678537c684 pyton-pycurl: Add new recipe from OE.dev
Add python-pycurl_7.19.0 from OE.dev with some tweaks to enable a native
version. This package is a dependancy of newer Yum

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
a2d5806f5d curl: Bump to 7.20
Newer libcurl is needed by newer pycurl which is needed by newer yum

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
555f60faa0 yum: Fix installation of python modules
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
9b3a51fbd8 handbook: Update links to Anjuta plugin
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Joshua Lock
72af5b2f92 fakechroot: Fix patch application
We listed the Debian patch but never actually asked BitBake to apply it.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-26 10:29:18 +00:00
Richard Purdie
d3d36d9f44 bitbake/event.py: Run class eventhandlers in the task context but ensure UI handlers run in the server context
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:33:41 +00:00
Richard Purdie
871f731e57 bitbake/cooker.py: Finishing the command needs to happen after the BuildCompleted event else the cooker can shutdown first
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:31:23 +00:00
Richard Purdie
fb245be03d cache.py: Bump the cache version after the BBVERSIONS update
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:28:34 +00:00
Richard Purdie
881caec450 bb.manifest: Drop, its unused and obsolete. No point in having dead code around
(Bitbake rev: 69374497b557a5e99ffc7cbe5e075d63e2d9cfaa)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:26:30 +00:00
Chris Larson
19d5f2b067 BBFILES: use a set to remove duplicates when collecting.
(Bitbake rev: b1b06133da4ca379a60775552d481f7fbf77e999)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:26:02 +00:00
Chris Larson
adbfce3958 bb/command was importing bb and accessing some of its own classes indirectly as bb.command.<class>
(Bitbake rev: 4b2a268ce8dad63d21619c1b9acc1de86d222d93)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:26:00 +00:00
Chris Larson
1e2f64abc7 Why is bb/__init__.py importing bb?
(Bitbake rev: 3eb01a20cbbb2e7a2f6278089bcc9bb70021738f)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:59 +00:00
Chris Larson
964085f701 data_smart: be explicit about what we make available to eval'd python code
(Bitbake rev: 6a73dda60f50e9b3e5513795d1ec7207d1446de2)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:58 +00:00
Chris Larson
6028daedcb Fix 7 references to undefined variables, as spotted by pyflakes
(Bitbake rev: e1e4ccf203e38070eeafd31a622671996cff61a1)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:56 +00:00
Chris Larson
c6940a9795 bb.utils: remove old portage remnants
The following utility functions were removed.  Note that in this particular
case we're bypassing a proper deprecation process, as these functions are
clearly not utilized, are obvious remnants of old ways of doing things, and
some of which do not even function properly.

- tokenize
- evaluate
- flatten
- relparse

- ververify
- isjustname
- isspecific
- catpkgsplit
- pkgsplit
- pkgcmp
- dep_parenreduce
- dep_opconvert

(Bitbake rev: 62983ad9b151ee8d51e8cf9a31c736c7813edf16)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:54 +00:00
Chris Larson
ec3f908948 bb.utils: utilize string.letters and string.digits
(Bitbake rev: 7af05cba87ec9f3ea5e53689b3d9f0a63784d1b5)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:51 +00:00
Chris Larson
80a52e7ad6 bb.which: fix broken direction/reverse argument
(Bitbake rev: 4725d83f532cad96168aa9affdedb33b6fc897b7)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:50 +00:00
Chris Larson
b5f8ce02b7 crumbs: fix hassattr typo
(Bitbake rev: 5593de13a18792e36d15dfd2a9579b36284e4d67)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:49 +00:00
Chris Larson
c244243274 Implement BBVERSIONS
This implements a feature similar to BBCLASSEXTEND, but for generating
multiple versions of a given recipe.  For example: BBVERSIONS = "1.0 2.0 git".

In addition to the above, one can utilize [a-b] style patterns, and can have a
:<basever> postfix, which allows you to essentially name the range of
versions.  Both the current version and the basever end up in OVERRIDES, and
the basever gets placed into the BPV variable.  The default BPV, if none is
specified, is the original PV of the recipe, before bbversions processing.

In this way, you can do things like:
BBVERSIONS = "1.0.[0-6]:1.0.0+
              1.0.[7-9]:1.0.7+"

SRC_URI_append_1.0.7+ = "file://some_extra_patch.patch;patch=1"

Or you can create a recipe per range, and name the recipe file as such: nano_1.0.7+.bb.

(Bitbake rev: 4ee9a56e16f1eb3c1649eaa3127b09ab0e93d1ec)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:45 +00:00
Richard Purdie
cefeeb1aa3 usermanual.xml: Add documentation on bblayers.conf
(Bitbake rev: 879229d12c2830dba9e0cb794e61e3c698b8dcc7)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:25:30 +00:00
Enrico Scholz
5060280a7a Expand PREMIRRORS
When not expanding PREMIRRORS, the functions fails/does not work correctly
when PREMIRRORS is not a plain string (e.g. contains ${...} or a ${@...}
statements).

(Bitbake rev: d612d22b073f68b8cf1bb7344e0487820040d80d)

Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:17:12 +00:00
Bernhard Reutner-Fischer
5d90d90358 utils: improve wording of error message
(Bitbake rev: b2486ec57c6a7adf09d0960fdf6727881b324d2f)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:15:28 +00:00
Richard Purdie
c328f161f8 bootimg.bbclass: Fix dependency name
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 17:09:15 +00:00
Richard Purdie
5cda1b7660 parted: Add BBCLASSEXTEND native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 14:09:24 +00:00
Richard Purdie
f89cd3158a bootimg/boot-directdisk.bbclass: Update afer syslinux changes, fix mbr.bin location and fix dependencies
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 14:09:06 +00:00
Richard Purdie
91f093a2b2 syslinux: Convert to BBCLASSEXTEND, clean up recipe and staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 14:08:12 +00:00
Richard Purdie
7ccc046732 scm-revisions: Always use ??= operator
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:59:12 +00:00
Richard Purdie
679746595e meta-openmoko: Add layer configuration
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:56:08 +00:00
Richard Purdie
00d0202a75 meta-moblin/layer.conf: Fix layer location
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:52:31 +00:00
Richard Purdie
4e821de9e2 meta-extras: Add layer configuration
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:48:44 +00:00
Richard Purdie
e941ff652a poky-image-minimal-directdisk: Add directdisk image example
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:45:13 +00:00
Richard Purdie
027c167878 boot-directdisk.bbclass: Add direct disk image creation class
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:44:25 +00:00
Richard Purdie
f30bf93e14 bootimg.bbclass: Improve documentation
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-25 11:36:40 +00:00
Richard Purdie
589df80ca1 bitbake: Gross hack to fix packaged-staging with BBCLASSEXTEND packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-23 22:33:02 +00:00
Richard Purdie
0449c26e97 packaged-staging.bbclass: Revert accidental damage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-23 21:59:06 +00:00
Richard Purdie
9ce619897c packaged-staging.bbclass: Fix mkdir to actually create the destination directory
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-23 21:56:21 +00:00
Richard Purdie
ae04c7f11d encdev-native: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-23 16:57:33 +00:00
Joshua Lock
ff5e6f4b4d yum: Update yum and createrepo to latest version
Also switch Yum to using BBCLASSEXTEND rather than having separate native and
host recipes.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-23 14:51:10 +00:00
Joshua Lock
1a1361040f .gitignore: ignore bblayers.conf
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-23 14:51:09 +00:00
Joshua Lock
d02c604d31 linux-nokia800_2.6.21: Remove legacy staging function
The recently added kernels for the N800 include legacy staging functions,
update them to follow the new world order.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-23 14:51:09 +00:00
Joshua Lock
e78c12d136 u-boot: remove legacy staging
A recent commit seems to have introduced a legacy staging function, remove it

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-23 14:51:09 +00:00
Joshua Lock
e3c4237fd7 fakechroot: Update to 2.9 and add a patch from Debian
This update includes a refresh of our existing readlink patch and a (trimmed)
copy of the patch Debian are shipping in their package which includes
unreleased fixes from SVN for building against more recent glibc.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-23 14:50:50 +00:00
Richard Purdie
1d05e3aa30 pseudo: Add recipe
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 23:54:41 +00:00
Richard Purdie
006510ceda layer.conf: Fix filename conflict
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 23:40:15 +00:00
Richard Purdie
d158569aa9 Move default SCM versions into separate meta directory specific files to improve maintainability
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 23:35:48 +00:00
Richard Purdie
90040ce7b5 Switch to bblayers configuration
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 18:11:41 +00:00
Richard Purdie
666c753d4b bitbake/cooker.py: Add support for a bblayers.conf file
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 17:48:31 +00:00
Richard Purdie
a4008b883c utility-tasks.bbclass: Remove unneeded base_ prefix since we don't EXPORT these functions any longer
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 17:12:38 +00:00
Richard Purdie
70141cbcc8 bitbake/providers: Fix merge error
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 15:09:07 +00:00
Bernhard Reutner-Fischer
04263dc426 cooker: bail out early if no files to build
This prevents a misleading backtrace:
ERROR: no files to build.
Command execution failed: Traceback (most recent call last):
  File ".../bitbake/build/lib/bb/command.py", line 83, in runAsyncCommand
    self.cooker.updateCache()
  File ".../bitbake/build/lib/bb/cooker.py", line 779, in updateCache
    if not self.parser.parse_next():
  File ".../bitbake/build/lib/bb/cooker.py", line 969, in parse_next
    cooker.bb_cache.sync()
UnboundLocalError: local variable 'cooker' referenced before assignment

(Bitbake rev: 060ef3d957615b7eb1209dc0d01ebeb53f8c4edc)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 15:03:46 +00:00
Chris Larson
2f9e15afbe Fix issues with BBCLASSEXTEND set by anonymous python, and rename some variables to improve code clarity
(Bitbake rev: 3062e96181fe845cfd286990b0216888ddd3d228)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 15:03:21 +00:00
Chris Larson
57044b9a62 Implement ??= operator
??= is a lazy, conditional assignment.  Whereas a ?= immediately assigns to
the variable if the variable has not yet been set, ??= does not apply the
default assignment until the end of the parse.  As a result, the final ??= for
a given variable is used, as opposed to the first as in ?=.

Note that the initial implementation relies upon finalise() to apply the
defaults, so a "bitbake -e" without specifying a recipe will not show the
defaults as set by ??=.  Moving application of the default into getVar adds
too large a performance hit.  We may want to revisit this later.

(Bitbake rev: 74f50fbca194c9c72bd2a540f4b9de458cb08e2d)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 15:02:59 +00:00
Chris Larson
ada2a8494a Avoid unnecessary calls to keys() when iterating over dictionaries.
dict objects provide an __iter__ method for the iteration which gives you the
keys, so calling keys directly is unnecessary, and isn't really a best
practice.  The only time you really need to call the keys is if there's a
danger of the dict changing out from underneith you, either due to external
forces or due to modification of the iterable in the loop.  Iterations over
os.environ are apparently subject to such changes, so they must continue to
use keys().

As an aside, also switches a couple spots to using sorted() rather than
creating a temporary list with keys() and sorting that.

(Bitbake rev: 5b6ccb16c6e71e23dac6920cd2df994d67c2587b)

Signed-off-by: Chris Larson <clarson@mvista.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 15:01:59 +00:00
Bernhard Reutner-Fischer
9d9b47bae4 knotty: tweak failure phrase
..to make copy and paste of the logfile easier.

(Bitbake rev: 446cc0cebd4daff7f849717f4cb89ac1b4c6b755)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:58:57 +00:00
Chris Larson
a7d5f73134 Fix ud.basecmd error introduced by the FETCHCMD_git commit
(Bitbake rev: 0bbcbe3548f39ca46c5aa3bf1a8681026e51cbf0)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:58:41 +00:00
Tom Rini
dea828c744 Add initial 'repo' fetcher
(Bitbake rev: f68406e864c9837feb56cbec993b620481445cc2)

Signed-off-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:58:15 +00:00
Chris Larson
d8b12d4eea Re-getVar BBCLASSEXTEND after finalise()
This ensures that an anonymous python function is able to manipulate the
BBCLASSEXTEND contents, and, therefore, amend.inc files are able to add to it.

(Bitbake rev: c7d038d404afaf4ce3735af5134163759da6f6ef)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:56:16 +00:00
Chris Larson
73a12b9184 Error early if BBPATH is unset, rather than falling back to share/bitbake
Better to error as early as possible rather than experience strange behavior
resulting from the use of the largely useless stock bitbake.conf/base.bbclass.

(Bitbake rev: 641e6cf3ec3ab4d26929cf4d2a3704ff07eed4d6)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:56:00 +00:00
Chris Larson
9998b454bb Kill unused projectdir in bb package.
(Bitbake rev: 79b93e6929c5feeb1ad05bd17f589c69f00b77f6)

Signed-off-by: Chris Larson <clarson@mvista.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:55:18 +00:00
Chris Larson
8f83be3338 Fix msg usage in the moved utility functions.
(Bitbake rev: 686288444d22091dee66e20ec49b9c53f8c980b7)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:54:57 +00:00
Chris Larson
f8c6db95d7 Move most utility functions from bb into bb.utils.
(Bitbake rev: ff720ec59b30671c951dbf3b96df10ef56b8b505)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:54:42 +00:00
Chris Larson
b7d175a18a Move compat imports in the bb package to avoid circular dep issues.
(Bitbake rev: b66c129edc7d78fed9d41b0c634744ec81931b21)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:54:26 +00:00
Chris Larson
ac392b66a5 Move encodeurl, decodeurl into bb.fetch.
(Bitbake rev: 867d36f9afce2d298874ac7563e5b3852ef04659)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:54:10 +00:00
Chris Larson
a3012e1ca9 Move MalformedUrl, VarExpandError into appropriate modules.
(Bitbake rev: e616483b237dafff7f90ba1c09e9ee7c383a2e47)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:53:55 +00:00
Martyn Welch
9a0da388ce Add FETCHCMD parameter for git
The Git fetcher currently hardwires the git command to "git". Allow the
path and any additional wrappers to the Git command to be provided via
FETCHCMD functionality, as with some of the other fetchers.

If FETCHCMD_git is not define in bitbake.conf, the fetcher defaults to "git".

(Bitbake rev: f3afb79ecac30d973a3c62ff6baf28d8b7388a24)

Signed-off-by: Malcolm Crossley <malcolm.crossley@ge.com>
Signed-off-by: Martyn Welch <martyn.welch@ge.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:53:26 +00:00
Richard Purdie
e17a0bd6c0 sanity.bbclass: Add a note about using dpkg-reconfigure
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22 14:33:56 +00:00
Richard Purdie
9c5386c1fd base.bbclass: Split up as per the patch in OE.dev by Chris Larson making code more readable and modularised
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-19 23:12:06 +00:00
Richard Purdie
185cb38f13 base.bbclass: Really drop siteinfo by default
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-19 22:53:21 +00:00
Richard Purdie
a30f6e968c base.bbclass: Don't inherit siteinfo in base.bbclass [based on an OE patch from Chris Larson] 2010-03-19 18:08:35 +00:00
Richard Purdie
8d5f122cbb .gitignore: Add handbook generated files to the ignore list
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-19 17:50:36 +00:00
Joshua Lock
6cd2b264ad xcmsdb: Add libxdmcp to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 15:26:53 +00:00
Joshua Lock
d296df4397 claws-mail: Fix building with new automake
Having the same file listed multiple times in Makefile.am breaks with new
Autotools

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 14:59:49 +00:00
Joshua Lock
34e1b3ef1c poky-fixed-revisions: Bump twitter-glib to a buildable version
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 13:01:57 +00:00
Joshua Lock
8659148e14 poky-fixed-revisions: Align Clutter revisions with Moblin distro
Primarily to pull in a newer Clutter, which works fixes a build error, but new
versions of software are nice anyway...

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:30:22 +00:00
Joshua Lock
6526d31492 clutter: Fix building version 0.8
Fix building of Clutter with new Automake

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:30:14 +00:00
Joshua Lock
98d29b86c8 syncevolution: Fix DEPENDS
Add eds-dbus and gnome-keyring

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:29:54 +00:00
Joshua Lock
2060121d7c libsynthesis: Fix DEPENDS
Add sqlite3 and zlib

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:29:45 +00:00
Joshua Lock
c00070d19f luit: add libxdmcp to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:29:30 +00:00
Joshua Lock
380346e4fc libxscrnsaver: bump version to 1.2.0
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:29:22 +00:00
Joshua Lock
b7783b335f liblbxutil: Bump version and fix dependencies
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 12:29:11 +00:00
Joshua Lock
62cd0ea1a5 handbook: remove OpenedHand contact information
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-19 10:23:23 +00:00
Richard Purdie
5b5f1ba099 handbook: Add a section on extending images using packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 23:47:48 +00:00
Richard Purdie
b3f5e554d0 handbook: Publishing tweaks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 23:31:35 +00:00
Richard Purdie
d2805818aa handbook: Add missing tag
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 23:23:25 +00:00
Richard Purdie
de9c12bea2 handbook/faq: Add entry about building on NTFS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 21:40:11 +00:00
Richard Purdie
c21aed8add task-poky: No longer need to exclude pcmanfm on powerpc
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 21:33:02 +00:00
Gary Thomas
757fd87314 pcmanfm: Allow package to build on PowerPC
Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 21:30:51 +00:00
Graeme Gregory
e844f9bef6 zoom2.conf : switch to using the TI integration tree for kernel
Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 20:59:14 +00:00
Graeme Gregory
af1488eaba linux-omap-zoomsync_2.6.32.bb : add kernel from TI zoom2 integration tree
This is the latest code from dev.omapzoom.org and is also what OE is using
for zoom2 machine.

Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 20:59:04 +00:00
Richard Purdie
61423e1a79 bison: 2.0 -> 2.3
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 20:58:34 +00:00
Joshua Lock
1eb093938b handbook: Correction, we're building QEMU x86 not QEMU Arm image
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-18 16:10:42 +00:00
Joshua Lock
208f6a9ec0 handbook: update references of stable version number
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-18 16:10:42 +00:00
Richard Purdie
ffb5db2c57 handbook: Clean up OpenedHand references
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 15:50:08 +00:00
Richard Purdie
05324ae0cd handbook: Various tweaks for recent fop/pdf generation
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 15:37:59 +00:00
Richard Purdie
4c07b33f14 poky-doc-tools: Update to work with fop >= 0.95
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-18 15:36:58 +00:00
Richard Purdie
701e5bd37a eds-dbus: Add parallel make fixes from Pango
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16 11:36:00 +00:00
Richard Purdie
d59a1a1808 task-poky: Disable pcmanfm on powerpc (until confirmed it works)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-15 17:18:38 +00:00
Richard Purdie
8ddb3067e6 Add i686 SDK machine
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-15 13:00:46 +00:00
Richard Purdie
382a630e78 bitbake fetch/__init__.py: Failing urls should raise errors, not fatal exceptions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-15 12:55:47 +00:00
Joshua Lock
28f7dd3ca7 packaged-staging: tweak previous fix to accomodate possible changes to CROSS_DIR
This change, suggested by Chris Larson, ensures that the fix works even if the
definition of CROSS_DIR changes.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-05 08:35:46 +00:00
Joshua Lock
538087d203 packaged-staging: Fix packagaging of cross packages
packagedstaging_fastpath() was only copying the contents of CROSS_DIR to
PSTAGE_TMPDIR resulting in the folders contents being packaged and then
installed incorrectly at the top level of CROSS_DIR rather than in HOST_ARCH
specific sub directories.

This patch fixes that issue by copying the directory and its contents rather
than just the directory contents.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-04 16:53:00 +00:00
Joshua Lock
211f928e08 packaged-staging: Fix typo, grep not qrep ...
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-03 17:43:40 +00:00
Enric Balletbo i Serra
424375b94e xf86-video-omapfb: Bump revision.
Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-03 14:26:52 +00:00
Enric Balletbo i Serra
b8637a9ab1 xserver-xf86-config: Do not set default depth to 16 for IGEP v2.
Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-03 14:26:47 +00:00
Enric Balletbo i Serra
80f1baf525 xserver-xf86-lite: Fix compilation break for ARM architecture.
This patch syncs the patches used in xserver-xf86-dri-lite and adds
a new patch that fixes a compilation break for ARM architecture.

(http://www.mail-archive.com/xorg-devel@lists.x.org/msg04137.html)

Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-03 14:26:41 +00:00
Enric Balletbo i Serra
bda8282653 gcc: Fix fail to compile since they can't find limits.h include.
With gcc package on my build machine gcc can't find limits.h include.

$ cat x.c

$ gcc -M x.c
In file included from x.c:1:
/usr/include/limits.h:125:26: error: no include path in which to search for limits.h

This patch adds missing includes to gcc package.

Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-03 14:25:24 +00:00
Richard Purdie
07207b0ac5 liboil: 0.3.14 -> 0.3.17
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-03 13:00:37 +00:00
Richard Purdie
bb594646aa eds-dbus: Disable parallel make build problem
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-03 10:01:34 +00:00
Joshua Lock
c02ea00db1 tasks: Bump to version 0.15
The Owl patch has gone in upstream but requires a different configure switch so
soft assign in the .inc and set appropriately in the 0.15 recipe.

0.16 is out but doesn't build with Poky's Gtk+ version.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-03-01 17:23:10 +00:00
Gary Thomas
12eed15a31 gdb-cross: Allow to build after recent gettext changes
Signed off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-26 17:13:23 +00:00
Joshua Lock
cb8ae04ebe packaged-staging: post-process non-binary files to fix paths in native packages
Extend the existing libtool hack so that native packages (native, cross, sdk)
have all non-binary files scanned and the STAGING_DIR fixed up.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-26 12:33:34 +00:00
Joshua Lock
fce742aac6 handbook: tmp/staging was renamed to tmp/sysroots - update references
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-26 12:31:31 +00:00
Joshua Lock
3e39dac1cc preferred-xorg-versions: Bump versions to match available recipes
The PREFERRED_VERSIONS for makedepend and xorg-cf-files where set for versions
which we no longer carry recipes for. Increase them to make BB happy.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-26 12:30:39 +00:00
Richard Purdie
28d90659b4 linux-omap: Build fix
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 22:42:59 +00:00
Richard Purdie
185819ad66 poky-moblin.inc: Move to meta-moblin
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 19:47:07 +00:00
Richard Purdie
d9d4540609 glibc: Allow 2.9 to work with binutils 2.20 (patch from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 19:18:06 +00:00
Richard Purdie
2bbf5cedf2 poky/moblin: Switch to binutils 2.20
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 17:30:58 +00:00
Richard Purdie
8d382809b3 binutils: Add 2.20 (patchset from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 17:30:19 +00:00
Richard Purdie
2baf8bbf8b libpcap: Update to 1.0.0 and sync with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 15:19:41 +00:00
Richard Purdie
75fbd88ad5 portmap: Sync with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 14:59:23 +00:00
Richard Purdie
32a44f4775 a52dec: Clean up CFLAGS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-23 14:57:44 +00:00
Richard Purdie
e3eb1286e1 perl: Update to work with native binary relative path locations
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-22 22:30:26 +00:00
Richard Purdie
7a60d379e8 relocatable.bbclass: Clean up indentation
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-22 14:23:26 +00:00
Richard Purdie
df76efbdee relocatable.bbclass: Handle symlinks correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-22 14:20:26 +00:00
Joshua Lock
814c3efb5c cross.bbclass: Note that relocatable binaries disabled for a reason
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-18 10:57:08 +00:00
Joshua Lock
de2138b474 linux: Enable linux-2.6.32 for qemux86 and qemuppc
The qemux86 configuration is simply a copy of the qemux86-defconfig from
linux-rp with make oldconfig and mostly default answers.

Configuration for qemuppc already exists but DEFAULT_PREFERENCE was not set in
the recipe.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-18 10:38:40 +00:00
Joshua Lock
ef246b44b9 relocatable.bbclass: Enhancements to rpath replacement algorithm
This patch removes the hard coded number of parent directory operators ( /..)
placed into the rpath and instead fully dynamically generates the rpath entries
based on the current rpath.

Theoretically this patch means we can now make cross packages relocatable but
this is *not* enabled as chrpath can only set a new rpath of the same length
or shorter than the existing rpath. Due to the amount of parent directory
jumps we need to encode in the rpath this can easily fail when TMPDIR is in a
short namespace (e.g. /usr/poky).

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-18 10:38:29 +00:00
Richard Purdie
b694d3c3f9 bitbake: Revert "providers.py: sort eligible providers by DEFAULT_PREFERENCE"
This breaks preferred providers functionality

This reverts commit ee9afccf33b220a21b74fab279925eeb4771249b.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-16 15:40:12 +00:00
Richard Purdie
a88950c477 eggdbus: Add missing dbus-glib DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:44:30 +00:00
Richard Purdie
ba60f7ba3b qmake-naitve: Fix do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:32:19 +00:00
Holger Freyther
defa54dea0 bitbake: [cache] copy instead of deepcopy in sync
We only intend to modify the dict, no need to copy all
elements.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:58 +00:00
Chris Larson
f03769280c bitbake: [parse] In ast, make StatementGroup inherit list, and add a AstNode base class.
(Bitbake rev: 7ea31b2842b45ffe1ca688f55207f8676442a108)

Signed-off-by: Chris Larson <clarson@mvista.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:57 +00:00
Chris Larson
c675bfd5bf bitbake: [parse] Use bb.which in resolve_file
(Bitbake rev: 3cd06ed487ee0617892f154cff461379a323a1fb)

Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:56 +00:00
Holger Freyther
7b57ad901a bitbake: [parser] Make resolve_file only resolve the path
Do not attempt to open the file in the resolve_file method
(a lot like bb.which... maybe bb.which can be used). This way
we don't need to open/close a file which we have already parsed.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:55 +00:00
Holger Freyther
83ec5eaed4 bitbake: [parser] Cache parsed .inc and .bbclass files for a parse speedup
Have a growing dict with .inc and .bbclass'es. This avoids to reparse
files we have already seen.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:54 +00:00
Holger Freyther
c011d42eda bitbake: [parser] prepare to cache some .bbcclass and .inc files
Our parser is shit but instead to replace it now we will see
how long we can drive the wave by caching parsed files. This
will not go through the feeder again but we can just reevaluate
the StatementGroup.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:53 +00:00
Holger Freyther
793c88dd92 bitbake: [parser] Remove the "data" from feeder, evaluate after parsing a file
Evaluate the statements after having parsed one file. This is
referred to as "entwirren" and we can remove the direct evaluation
and postpone a bit, in the future we can use a cached copy instead
of parsing the original.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:51 +00:00
Chris Larson
3eb2e6cf02 bitbake: [parse] Move vars_from_file from bb.parse.BBHandler into bb.parse.
(Bitbake rev: fda0707d772e0964a0185d4ec4d016522f6972f3)

Signed-off-by: Chris Larson <clarson@mvista.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:50 +00:00
Chris Larson
6f52a1521e bitbake: [parse] Don't use relative import of parse_py.
(Bitbake rev: 0a2bb3dd790e3e40867195f14f4e174f98f8a47c)

Signed-off-by: Chris Larson <clarson@mvista.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:49 +00:00
Holger Freyther
3f1ca0a086 bitbake: [parse] Move the last method to the AST...
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:48 +00:00
Holger Freyther
baf2395900 bitbake: [parser] Move more methods to the ast scheme
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:48 +00:00
Holger Freyther
d84b7c5555 bitbake: [parser] Move one more item to the ast
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:47 +00:00
Holger Freyther
a5bb5d625e bitbake: [parser] Move methodflags over to the ast
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:46 +00:00
Richard Purdie
7cfe3a5e15 bitbake: [parser] Build fix
(Bitbake rev: 9c97696f37499b4d0ec5c034c51e4cf6bc425ba2)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:45 +00:00
Holger Freyther
8eaaf663ba bitbake: [parser] Move more statements over the two phase AST
Create the data first, then evaluate on the data dict

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:44 +00:00
Holger Freyther
d2bf3f00ea bitbake: [parse] Change handling include through the AstNode
Disable the recursively evaluating the statement for now
as it is causing problems.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:43 +00:00
Holger Freyther
8072cf0846 bitbake: [parser] Call eval and remove non ast code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:42 +00:00
Holger Freyther
118161f46b bitbake: [parser] Call eval immeditaley to test this code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:41 +00:00
Holger Freyther
a20105868f bitbake: [parser] Prepare to cease out getFunc
getFunc is now a method of the data node, hopefully we can kill the other
version soon.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:40 +00:00
Richard Purdie
269d4d58a9 bitbake: [parser] Preserve include vs. require behaviour
(Bitbake rev: 6073a5b8e4ca8af8e1a8e0234fad7b08baf76c99)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:20 +00:00
Holger Freyther
71a19386a3 bitbake: [parser] Firs set of AST nodes with construction and eval
First set of ConfHandling with AST nodes. The include can
use a speed up and things might need to be migrated... into
this class.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:07:07 +00:00
Holger Freyther
df8f7706a6 bitbake: [parser] Add documentation about usage of this code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:06:59 +00:00
Holger Freyther
4320386deb bitbake: [parser] Move the finalise into the ast as well
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:06:55 +00:00
Holger Freyther
4b25b519ae bitbake: [parser] Cary a Statement Node through the parsing
When parsing we will collect a number of statements
that can be evaluated...The plan is to be evaluate
things twice (old+new) and then compare the result,
it should be the same.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:06:50 +00:00
Holger Freyther
5bac3403d7 bitbake: [parser] Move evaluating into the ast class...
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:06:36 +00:00
Bernhard Reutner-Fischer
e9d8dd2abf bitbake: providers.py: sort eligible providers by DEFAULT_PREFERENCE
(Bitbake rev: ee9afccf33b220a21b74fab279925eeb4771249b)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:03:50 +00:00
Bernhard Reutner-Fischer
de7c939a7f bitbake: runqueue.py: improve printing dependent tasks
Print names instead of Task-IDs (and not mentioning they're task ids).

Previously we printed e.g.:
Dependency loop #1 found:
  Task 89 (/there/src/oe/openembedded/recipes/busybox/busybox-native_1.15.2.bb, do_configure) (depends: Set([88, 282, 92, 87]))

Now we say
Dependency loop #1 found:
  Task 89 (/there/src/oe/openembedded/recipes/busybox/busybox-native_1.15.2.bb, do_configure) (dependent Task-IDs ['busybox-native, do_patch', 'update-rc.d, do_populate_staging', 'busybox-native, do_populate_staging', 'shasum-native.bb, do_populate_staging', 'busybox-native, do_unpack'])

(Bitbake rev: 00eaf76fdc32eb515995b47dfa69eb90ca904b37)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:03:47 +00:00
Bernhard Reutner-Fischer
e39d89e934 bitbake: taskdata.py: fix typo in debug message
(Bitbake rev: 457fb59f10ed59269b8bda3ee53bbeded5d33eb5)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15 17:03:07 +00:00
Joshua Lock
da10a2af54 sanity.bbclass: Add chrpath to the required utilities
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-15 16:43:38 +00:00
Joshua Lock
7b4e80b98e relocatable.bbclass: Tidy up class
There was a hard coded path and a spurious variable left in before the last
commit. Whoops ...

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-12 17:39:08 +00:00
Joshua Lock
12325e3c56 chrpath: Only set the chrpath binary for the native package
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-12 15:00:44 +00:00
Joshua Lock
f1a87fadc7 relocatable.bbclass: Improve logic and style
The initial pass at this class was pretty lame and broke on a lot of native
packages. This rewrite makes the code a lot more dynamic, removing use of hard
coded paths and improving the logic.

The class now runs a chrpath -l over the binary to determine what rpaths are
currently set. It then munges the output and determines relative versions of
each component of the rpath and uses chrpath -r to set them.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-12 15:00:44 +00:00
Richard Purdie
62c103ce0e bitbake: utils.py: Don't error if an exported environment variable is unset (i.e. None)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-12 13:50:19 +00:00
Joshua Lock
6e1cc7ca10 relocatable.bbclass: remove hard-coded rpaths from native binaries
The relocatable path will pre-process built binaries in SYSROOT_DESTDIR and
replace any harcoded dynamic link rpaths with relative paths.

Add an inherit of class in native.bbclass to make our native packages
relocatable and tweak the chrpath recipe so that the native package can make
itself relocatable with the just built chrpath binary.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-11 16:21:09 +00:00
Richard Purdie
a0795895e3 xserver-nodm-init: Make sure kdrive servers have the console keyboard enabled
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 16:09:49 +00:00
Richard Purdie
e49fcdcc8b xserver-kdrive: Add keyboard fix (partially from OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 16:06:46 +00:00
Richard Purdie
6054d36e7a preferred-xorg-versions: Update xserver-kdrive version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 12:18:55 +00:00
Richard Purdie
216f9f05b4 xserver-xf86: Drop old versions and update xserver-xf86-lite version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 12:18:25 +00:00
Richard Purdie
25e0acc952 xserver-kdrive: Add 1.7.99.2
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 12:15:06 +00:00
Richard Purdie
2146902ae4 calibrateproto: Add missing length fields to X_Replies
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 12:10:39 +00:00
Richard Purdie
c33fa352b8 sharp-flash-header: Convert from leagacy staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 09:51:55 +00:00
Richard Purdie
633e0ff5e3 binutils: Apply cross compiling changes to libtool since we don't autoreconf
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 09:51:23 +00:00
Richard Purdie
6877acce5a keymaps: Use RDEPENDS_${PN}
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-11 09:50:34 +00:00
Joshua Lock
0307f8002e linux-libc-headers: extend nativesdk for 2.6.29
2.6.29 is the PREFERRED_VERSION of linux-libc-headers for ditro=poky but there
was no buildable recipe for that version. Fix this with a simple BBCLASSEXTEND

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-11 09:32:48 +00:00
Joshua Lock
bc1ae94d25 preferred-xorg-versions.inc: bump preferred util-macros
We no longer have a recipe for 1.5.0 so bump to 1.6.0

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 22:51:14 +00:00
Khem Raj
99b4b10dc1 bitbake: BBHandler: pass lineno and fn to handleMethod
* lineno and fn are needed in handleMethod
  to restore the functionality as it was before.

(Bitbake rev: ac6792045959cfee56279c1c4597521e990848e7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chris Larson <clarson@kergoth.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:43:06 +00:00
Martin Jansa
d5519d4ad9 bitbake: parse_py/ConfHandler.py: missing colon after else
(Bitbake rev: d520ae0764016906ff61ec33b14eabc908aa8408)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:38:33 +00:00
Richard Purdie
7a4579e7cb bitbake: ConfHandler: Fix require vs. include behaviour
(Bitbake rev: 824a032672c8673cae28e492aa916a4750b94efa)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:38:00 +00:00
Holger Freyther
fb918a7582 bitbake: [parser] Move more stuff out the feeder
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:37:43 +00:00
Holger Freyther
b045ab3222 bitbake: [parse] Move inherit handling to method
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:32:28 +00:00
Holger Freyther
7477c0d89a bitbake: [parsers] Move out more functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:32:14 +00:00
Holger Freyther
e3c9a340dc bitbake: [parser] Move more stuff out to separate methods...
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:32:00 +00:00
Holger Freyther
169e719456 bitbake: [parser] Move the handling of a method to a function
We want to convert this into a proper AST. So move all
such operations to methods... Later change them to generate
a node... and create that node from here.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:31:48 +00:00
Holger Freyther
913e78898e bitbake: [parse] Unify opening a file...
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:31:33 +00:00
Holger Freyther
242a03607d bitbake: [parser] Kill obtain/localpath from the parser
With obtain it was possible to use an existing fetcher to
download a bb or config file. In practive no one has used it
and it was likely broken in regard to depends_cache... Remove
it for now, simplfiy the code.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:31:19 +00:00
Theodore A. Roth
bf6a4fd658 bitbake: usermanual.xml: Add section for ?= var setting.
(Bitbake rev: df8309c11a43a9488ca25ec114a2dd3d49b041ff)

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-10 16:25:35 +00:00
Joshua Lock
6ae3907433 distros: set xserver-xf86 as default PREFERRED_PROVIDER for virtual/xserver
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 14:34:15 +00:00
Joshua Lock
bf422fcfff qemux86: fix setting of preferred provider for virtual/xserver
Change the virtual/xserver preferred provider in qemu.inc to a soft assign and
set preferred provider in qemux86 before the require so that the value is retained.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 14:34:15 +00:00
Joshua Lock
62ab7dac39 moblin-fixed-revisions: bump libdrm version
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 14:34:15 +00:00
Joshua Lock
0ff3de8ebf preferred-xorg-versions: increase various components to match Moblin distro
Switch to using xserver-xf86-dri-lite 1.7.99.2 and the updated dependencies it
requires by default.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 14:34:14 +00:00
Joshua Lock
2c2994718c libdrm: bump version to 2.4.17 as required by mesa 7.7
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 14:34:02 +00:00
Joshua Lock
391fda5150 poky-default: bump preferred glibc version to 2.9 for Poky distro
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-10 13:33:16 +00:00
Joshua Lock
8a8094a10b ofono: bump to 0.17
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-09 17:03:24 +00:00
Joshua Lock
f1ee04bd15 connman: bump to 0.48
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-09 17:03:24 +00:00
Joshua Lock
109f750d17 eds-dbus: Fix DEPENDS, add gnome-keyring and use libsoup-2.4 not libsoup
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-09 17:02:45 +00:00
Joshua Lock
e8241d7bba libpcap: Fix PR
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-09 16:14:20 +00:00
Joshua Lock
6895486d05 libpcap: fix configure with newer autofoo and fix inherit
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-09 15:56:44 +00:00
Richard Purdie
b81b391cd2 xorg-macros: 1.5.0 -> 1.6.0
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-09 14:10:26 +00:00
Richard Purdie
466043e096 moblin-panel-myzone: Add DEPENDS on libical
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 16:03:10 +00:00
Richard Purdie
6d2b2b2dbc libical: Add from OE.dev with cleanup
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 15:58:21 +00:00
Richard Purdie
e93ccce413 eds-dbus: Pull from git, not svn
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 15:57:59 +00:00
Richard Purdie
96cdddcdd7 moblin-bleeding: Don't enable a browser for now
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 15:56:45 +00:00
Richard Purdie
f19bbd5c8b task-moblin-x11-netbook: Allow browser choice to be overridden
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 15:55:16 +00:00
Richard Purdie
bb1427f0b9 moblin-floating-revisions: Use mx branch for moblin-web-browser
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 14:50:56 +00:00
Richard Purdie
851267d2af mesa-dri-git: Handle cross compiling of the glsl utils
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 14:08:37 +00:00
Richard Purdie
173f02f3e8 moblin-fixed-revisions.inc: Update libsocialweb revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 12:54:32 +00:00
Joshua Lock
52cbb07423 bitbake: fix invalid method and logic
The previous bitbake change included an invalid method call and inverted logic.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-05 12:41:08 +00:00
Joshua Lock
ec92133d6f bitbake: Test premirrors and mirrors in checkstatus()
checkstatus() is used to ensure we can fetch a copy of each file, so it makes
sense to also test PREMIRRORS and MIRRORS in the method.

This patch adds calls to try_mirrors() to the Fetch.checkstatus() method and
changes the try_mirrors() method to take a check argument, which is False by
default. When check is True try_mirrors() will call a fetchers checkstatus()
with the replaced uri.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-05 12:19:05 +00:00
Richard Purdie
b5965307e9 bognor-regis: Add missing bickley DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 12:14:46 +00:00
Richard Purdie
e5be3728a3 mesa-dri: Use master branch for git versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 12:14:21 +00:00
Richard Purdie
8886fa1145 xserver-xf86-dri-lite: Update git recipe for latest versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 12:13:47 +00:00
Richard Purdie
03890f3fc0 makedepend/xorg-cf-files: Upgrade to new point releases
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 12:12:55 +00:00
Richard Purdie
ce6ae6753d util-macros: 1.4.1 -> 1.5.0
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-05 12:12:21 +00:00
Richard Purdie
219b89e556 python.inc: Disable parallel make
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 19:28:20 +00:00
Richard Purdie
3a15c0e1e0 dpkg: Make sure the -native version doesn't have strange RDEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 19:19:52 +00:00
Richard Purdie
f6f10668ca libjana: Use gnome git, not svn
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 17:31:58 +00:00
Richard Purdie
422c5f7c6a tracker: 0.6.95 -> 0.7.18
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 16:51:45 +00:00
Richard Purdie
4dd0575af7 moblin-panel-git: Update DEPENDS for libsocialweb
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 16:35:06 +00:00
Richard Purdie
def39679df Add libsocialweb
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 16:31:12 +00:00
Richard Purdie
780d2186dc clutter-gst: Update revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 14:24:43 +00:00
Joshua Lock
c9fd126f64 bitbake: Fix try_mirrors() logic, was only trying the first mirror.
The logic in try_mirrors() was buggy such that only the first entry in the
mirrors list was tried.

This patch fixes this. Thanks to Richard for the review.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-04 14:08:34 +00:00
Richard Purdie
72495b5f37 task-moblin-standalone-sdk-target: Update clutter-gst/-gtk dependencies
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 13:20:42 +00:00
Richard Purdie
32f61e544c hornsey: Update DEPENDS of recent git versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 13:17:21 +00:00
Richard Purdie
5b3397a2a0 Tweak gettext usage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:52:59 +00:00
Richard Purdie
5af4d6a607 gmime: Add from OE.dev with tweaks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:52:35 +00:00
Richard Purdie
893bc3e8f2 gamin: Add from OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:46:10 +00:00
Richard Purdie
42d72759b4 tracker: Add from OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:44:16 +00:00
Richard Purdie
fa2470c846 clutter-gst/clutter-gtk: Add API versions to the package names and update to the latest code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:41:16 +00:00
Richard Purdie
99e23d64fc pango-1.22.2: Fix autoconf/automake issue with double header reference
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:08:53 +00:00
Richard Purdie
1556e81158 poky-default: Upgrade binutils to 2.19
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 12:01:46 +00:00
Richard Purdie
71b1add233 moblin-floating-revisions: Fix missing quote
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-04 11:59:00 +00:00
Joshua Lock
afe12428a9 bitbake: if PREMIRRORS set test for local file in FetchData.setup_localpath
When we are using PREMIRRORS it's possible a mirror in the local namespace
(some filesystem path, i.e. an NFS share) provides read-only files.
This is a perfectly valid scenario so this patch fixes bitbake so that for
such a scenario locapath is set to the files path rather than some child
of DL_DIR.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-04 00:18:29 +00:00
Joshua Lock
b571168ac7 bitbake: Enhance the fetchers' support for local mirrors
Modify the try_mirrors() function to return the localpath of the fetched file
and update the data dictionary to reflect this.
Secondly the metadata files, lock and md5, should always be stored relative to
the ${DL_DIR} as it is possible that the localpath is a read-only directory,
for example in the scenario where there is a read-only file:// mirror.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-04 00:18:29 +00:00
Joshua Lock
095347fc69 poky.bbclass: Use pokylinux.org stashes as PREMIRRORS for vcs'
Check the tarball stash on pokylinux.org before hitting the upstream
version control systems. This is friendlier to the upstream repositories than
us hammering their bandwidth.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-04 00:18:29 +00:00
Joshua Lock
8235389fd1 conf: remove references to SRC_TARBALL_STASH
SRC_TARBALL_STASH is deprecated, the same functionality can be acheived
with PREMIRRORS, so remove references to it from configuration files.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-04 00:18:29 +00:00
Joshua Lock
0737552c1d bitbake: unify mirror support and make it independant of the fetcher
This patch serves two purposes. Firstly it unifies the concept of mirrors into
PREMIRRORS and MIRRORS. PREMIRRORS are tried before the SRC_URI defined in the
recipe whereas MIRRORS are tried only if that fails.
The tarball stash was conceptually inline with a PREMIRROR only with special
handling within the wget fetcher and therefore only worked with certain
fetch types.
Secondly the patch removes the need for individual fetch implementations to
worry about mirror handling.

With this patch, the base fetch implementation will first try to use a
PREMIRROR to fetch the desired object, if this fails the native fetch method
for the object will be tried and if this fails will try to fetch a copy from
one of the MIRRORS.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-02-04 00:18:29 +00:00
Richard Purdie
0b52537f5c twitter-glib: Drop merged patch and update revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-03 14:52:15 +00:00
Richard Purdie
d19b1145aa moblin-fixed-revisions: Update moblin-app-installer version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-03 14:49:40 +00:00
Richard Purdie
ef670e0ea5 xorg-proto: Always depend on util-macros, update gettext dependencies to be inherits
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-03 09:23:55 +00:00
Richard Purdie
4cb58790da xorg: Bulk version upgrades
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-03 00:29:41 +00:00
Richard Purdie
5daaa63bdb hornsey: Add mixxing xtst DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 22:38:10 +00:00
Richard Purdie
28a8d1503c mozilla-headless: Add missing autoconf patch hunk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 19:54:56 +00:00
Richard Purdie
4d80441aae mx: Disable gesture support
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 17:56:14 +00:00
Richard Purdie
4f0499f6e0 autoconf: Add missing patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 17:50:55 +00:00
Richard Purdie
29d1df5b97 autoconf/automake: Switch to 2.65 and 1.11.1
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 17:36:55 +00:00
Richard Purdie
fa9f3991d5 libtool: Add missing patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 17:29:56 +00:00
Richard Purdie
3813e33c7f mozilla-headless: Add patch to enable builds with recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 17:29:08 +00:00
Richard Purdie
11044cbd74 xserver-xf86-dri: Fix for recent autoconf+automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 16:22:41 +00:00
Richard Purdie
9d225568d3 kexec-tools: Fix synatx error with recent autoconf+automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 16:21:56 +00:00
Richard Purdie
18ba0bc495 libatomics-ops: Fix with recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 16:21:05 +00:00
Richard Purdie
625ae518a3 libtool: Fix a bug where trailing slash characters could break path comparisions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 16:19:09 +00:00
Richard Purdie
80c7c52592 twitter-glib: Add fix for recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 14:35:34 +00:00
Richard Purdie
99643e58b5 taglib: 1.5 -> 1.6.1 (and apply autoconf/automake fixes)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 14:32:39 +00:00
Richard Purdie
dd5269c329 parted: 1.88 -> 1.9.0 (works with recent autoconf/automake)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-02 14:31:30 +00:00
Richard Purdie
10b89e872c m4: 1.4.12 -> 1.4.13
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 15:02:03 +00:00
Richard Purdie
ca51dda506 libsndfile1: Add infinite recursion fix for recent autotools
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 15:01:18 +00:00
Richard Purdie
5cf94e1d1e libtelepathy: Fix double referenced file causing autoconf/automake issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 13:54:29 +00:00
Richard Purdie
769baa1143 autoconf-2.65: Ensure autoconf sees our site cache
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 12:47:29 +00:00
Richard Purdie
09ab7da4f9 autoconf-2.65: Drop unneeded patches
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 11:57:59 +00:00
Richard Purdie
daabf19115 e2fsprogs: Fix configure quoting to work with recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 11:48:50 +00:00
Richard Purdie
89bee8abf2 Add *~ to .gitignore
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 11:03:45 +00:00
Richard Purdie
bb217b62b7 libxslt: Fix double defintion problem which breaks recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 11:02:59 +00:00
Richard Purdie
da21a63d48 gettext: Apply upstream fix to work with recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 11:02:26 +00:00
Richard Purdie
116e25e86d bzip2: Fix double defintion problem which breaks recent autoconf/automake
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 11:01:46 +00:00
Dennis.Yxun
be2a5dfc21 task-poky-tools: kexec-tools don't support mips|mipsel, so make it optional
Signed-off-by: lan.yi.xun <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 10:42:33 +00:00
Dennis.Yxun
2e84247aac pcmanfm: support mips|mipsel
Signed-off-by: lan.yi.xun <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 10:42:13 +00:00
Dennis.Yxun
301744df4d site/mipsel-linux: add eds-dbus variables
Signed-off-by: lan.yi.xun <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 10:39:00 +00:00
Dennis.Yxun
9999f0a9d3 site/mipsel-linux: add popt variables
Signed-off-by: lan.yi.xun <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 10:38:15 +00:00
Dennis.Yxun
0c4ead0ce9 site/mipsel-linux: add glib-2.0 variables
Signed-off-by: lan.yi.xun <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 10:36:26 +00:00
Richard Purdie
413f235827 udev: Add DEPENDS on glib-2.0 after recent changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 09:33:53 +00:00
Richard Purdie
b604fe9048 networkmanager: Fix polkit dependency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-01 09:20:33 +00:00
Richard Purdie
dfcc15e7b6 autoconf: Don't use 2.65 yet
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 16:04:50 +00:00
Richard Purdie
08f4cc94d6 automake: Add 1.11.1 using BBCLASSEXTEND (not default)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 16:02:06 +00:00
Richard Purdie
50d9304068 autoconf: 2.63 -> 2.65 (not default)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 16:00:31 +00:00
Richard Purdie
4420ddc284 autoconf: 2.63 -> 2.65 (not default)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:54:18 +00:00
Richard Purdie
1c870f000b moblin-fixed-revisions.inc: Bump clutter-1.0 revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:53:12 +00:00
Richard Purdie
c6afdeb503 xf86-video-intel: 2.7.1 -> 2.10.0
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:52:34 +00:00
Richard Purdie
1e4ec6242e pkgconfig: Add SCM version for testing purposes (not default)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:51:05 +00:00
Richard Purdie
2f280c1681 packagekit: Use 0.5.6 and gnome-packagekit 2.28.2
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:22:36 +00:00
Richard Purdie
7e38b6f73b devicekit: Add 003 release and devicekit-power (from OE.dev with fixes/improvements)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:21:04 +00:00
Richard Purdie
c18b2b599b policykit: Rename to polkit to match upstream and upgrade
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:20:02 +00:00
Richard Purdie
ecc9880c9d udev: Enable gudev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:18:56 +00:00
Richard Purdie
e5c96dd507 eggdbus: Add from OE.dev with dependency fixes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 15:18:27 +00:00
Richard Purdie
058b96d839 mutter-moblin-git: Add missing require
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 12:45:07 +00:00
Joshua Lock
50ffb99417 packaged-staging: basic support for pulling staging packages from a mirror
Add simple support for trying to fetch staging packages from a http, https  or
ftp mirror if they do not already exist in PSTAGE_DIR.

As documented in local.conf.sample
"Poky can try and fetch packaged-staging packages from a http, https or ftp
mirror. Set this variable to the root of a pstage directory on a server."

If the PSTAGE_MIRROR variable is not set, or the package cannot be found on
the mirror it will be built as usual.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-29 12:33:46 +00:00
Joshua Lock
0e4111c7d9 bitbake.conf: quieten wget fetches
Add the q switch to wget fetches and resumes to reduce stdout noise.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-29 12:33:46 +00:00
Joshua Lock
b2c8430898 packaged-staging: Move packaged staging directory outside of DEPLOY_DIR
Rename DEPLOY_DIR_PSTAGE to PSTAGE_DIR and move it outside of deploy.
Do soft assignment of a default variable inside bitbake.conf as
${OEROOT}/tmp/pstage.
Use a separate directory, PSTAGE_WORKDIR, to store transient packaged
staging files such as the stamp files and opkg.conf

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-29 12:33:45 +00:00
Joshua Lock
9ff304510e packaged-staging: fix up handling of crosssdk packages
The packaged-staging class already special cases native packages for ensuring
the package is only reused if the path doesn't change.

This patch ensures the special casing is also done for crosssdk packages.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-29 12:33:45 +00:00
Richard Purdie
9737011e5f opkg: We must always include a valid arch.conf file
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 12:21:32 +00:00
Richard Purdie
eb6d6f3dc1 opkg: Fix header problem
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 11:36:52 +00:00
Richard Purdie
6ca0e13033 packagekit: 0.4.9 -> 0.6.0 (with fixes for opkg)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-29 11:36:06 +00:00
Richard Purdie
db39d570e6 mesa: Add 7.7
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 22:44:50 +00:00
Richard Purdie
f020fe5baf libx11-trim: Update patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 22:30:22 +00:00
Richard Purdie
aa49e73ded poky-external-eabi: Rename to poky-external-default
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 22:14:41 +00:00
Richard Purdie
589a797e98 conf/distro/poky: Rename poky-eabi to poky-default to make more sense
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 22:12:58 +00:00
Richard Purdie
3ce2be9e77 conf/distro/include: Drop poky-eabiX files, they no longer serve a purpose
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 22:04:55 +00:00
Richard Purdie
e3090243c1 poky-eabi.inc: Massive cleanup
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 22:03:00 +00:00
Richard Purdie
3697f64c1e poky-moblin: Set gcc version correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 21:49:44 +00:00
Richard Purdie
db99dabc66 gcc: Drop 4.3.1 and 4.3.2
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 21:49:10 +00:00
Richard Purdie
23d8841f28 gcc: Make sure target_* variables are set, fixing gcc search path issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-28 21:46:51 +00:00
Richard Purdie
6793dca934 opkg: Fix native and nativesdk configuration options
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-27 14:44:27 +00:00
Richard Purdie
fdf134abfb bitbake/build.py: No need for this gross hack now
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-27 12:40:02 +00:00
Richard Purdie
c6868ce84e libdrm: Create a common include file and att virtual/libx11 to DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-27 12:11:11 +00:00
Richard Purdie
4340e3e974 qemu.inc: Set xserver preferred provider correctly
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-27 11:52:32 +00:00
Richard Purdie
19805550bd bitbake.conf: Add virtual/xserver to MUTLI_PROVIDER_WHITELIST
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-27 11:52:32 +00:00
Joshua Lock
39d8c0fc4a opkg: add openssl to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-27 10:58:00 +00:00
Richard Purdie
67fbc5c871 opkg: Update to latest svn and apply patch to enable readable logfiles
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-26 23:19:09 +00:00
Richard Purdie
6391725f94 libdrm: 2.4.7 -> 2.4.15
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-26 23:19:09 +00:00
Richard Purdie
91066e8c25 site/mips-linux: Add entry for eds-dbus
Signed-off-by: Richard Purdie <richard@rex.(none)>
2010-01-26 17:55:46 +00:00
Richard Purdie
fd34f26511 insane.bbclass: Since we have no legacy packaging, no need to repeatedly scan staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-26 16:00:13 +00:00
Richard Purdie
684d263e75 linux-moblin: Add 2.6.31.5
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-26 15:59:18 +00:00
Richard Purdie
3a32c2c6e9 yum: Fix DEPENDS (no python-shlex)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-26 13:46:50 +00:00
Richard Purdie
5790800fe3 yum: Fix DEPENDS (no python-bzip)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-26 13:30:58 +00:00
Richard Purdie
b623ced116 bitbake.conf: Add virtual/libintl-nativesdk to MULTI_PROVIDER_WHITELIST
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-25 17:26:44 +00:00
Richard Purdie
75f682d1f6 fakeroot: Stop setting LD_LIBRARY_PATH as it breaks things (see patch description)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-23 22:46:19 +00:00
Richard Purdie
b9d958c186 bitbake: Don't import xmlrpc server unless needed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-22 16:15:50 +00:00
Richard Purdie
aedf7d3205 bin/bitbake: Add import server
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-22 09:00:49 +00:00
Richard Purdie
7e8025459e bitbake/cooker: Drop unneeded import
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-22 00:04:18 +00:00
Richard Purdie
37f8e24ce3 bitbake: Fix UI failure exception handling with python 2.6
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 23:49:50 +00:00
Richard Purdie
5ebad0d500 knotty: Improve task failure message handling using the uihelper code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 23:49:17 +00:00
Richard Purdie
5c62833766 runqueue.py: Use fcntl to make the worker pipes non-blocking
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 23:46:20 +00:00
Richard Purdie
fd42ffa273 bitbake/event: If the server disappears, we just exit too
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 16:00:12 +00:00
Richard Purdie
d7c9b7d8b9 runqueue: When a task fails, make sure the server still processes events from other workers
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 15:58:56 +00:00
Richard Purdie
867b01c3ca bitbake/__init__.py: Fix bb.plain and bb.warn function, initial patch from Petri Lehtinen <petri.lehtinen+bitbake-dev@inoi.fi>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 10:44:34 +00:00
Martin Jansa
c69797d89c bitbake/git: remove repodir usage (from bitbake master)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 10:30:37 +00:00
Richard Purdie
573f6125e6 bitbake/runqueue: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-21 10:25:54 +00:00
Richard Purdie
22c29d8651 bitbake: Switch to bitbake-dev version (bitbake master upstream)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-20 18:46:02 +00:00
Richard Purdie
1bfd6edef9 bitbake-dev: Sync with bitbake upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-20 18:39:00 +00:00
Richard Purdie
d6c7a44b94 gcc-cross-canadian: Fix include paths and hence c++ compiler issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-20 15:56:35 +00:00
Richard Purdie
3139368254 bitbake.conf: Add virtual/libintl-native to MUTLI_PROVIDER_WHITELIST
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-20 15:24:22 +00:00
Richard Purdie
b65e8ec593 bitbake-dev: Sync again with upstream after fixes from Poky bitbake 1.8 were merged
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-19 15:34:01 +00:00
Joshua Lock
43788606bd linux-2.6.32: Add defconfig for qemuppc
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-19 15:09:38 +00:00
Joshua Lock
c94707a679 qemuppc: Add qemuppc machine
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-19 15:09:26 +00:00
Joshua Lock
92df15ec76 poky-eabi: Temporarily add non-standard PREFERRED_VERSIONS for PowerPC
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-19 15:09:18 +00:00
Joshua Lock
f97e68456f u-boot-mkimage: Update 2009.08 recipe
Remove legacy staging function and enable native install

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-19 15:09:10 +00:00
Esben Haabendal
b731a08ebf linux-2.6.32 (for mpc8313erdb) 2010-01-19 15:09:02 +00:00
Esben Haabendal
bd375075bd u-boot-mkimage-2009.08 (and BBCLASSEXTEND native nativesdk) 2010-01-19 15:08:45 +00:00
Esben Haabendal
3d3053e6cc Add crosssdk and cross-canadian gcc 4.2.3 recipes 2010-01-19 15:08:30 +00:00
Esben Haabendal
306756be65 glibc-2.6.1: add BBCLASSEXTEND nativesdk 2010-01-19 15:08:21 +00:00
Esben Haabendal
48007a047e linux-libc-headers-2.6.20 fixed headers_install path and extend as nativesdk 2010-01-19 15:08:11 +00:00
Esben Haabendal
8fa52fb8cd lzo: fix building for powerpc 2010-01-19 15:08:02 +00:00
Joshua Lock
0bddf1ce2c task-poky-tools: kexec-tools doesn't work on Mips so make it optional
Use a variable to soft-assign a value for kexec-tools and set it empty for
Mips as it's not supported on that architecture.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-19 14:54:30 +00:00
Richard Purdie
22a271aaa9 bitbake-dev: Sync with upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-19 14:48:19 +00:00
Joshua Lock
cefe87fc3c pcmanfm: Add COMPATIBLE_HOST line for arch's with inotify/fam
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 15:51:13 +00:00
Joshua Lock
fd165bb9c0 tasks/task-poky: make the file manager a conditional part of the task
mips doesn't support pcmanfm so make it a conditional part of the task by
creating a variable, FILEMANAGER, set to pcmanfm by default and empty for mips

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 15:44:20 +00:00
Joshua Lock
e77bc0b848 kexec-tools: Set COMPATIBLE_HOST as mips is unsupported
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 15:31:34 +00:00
Joshua Lock
ba66481c9d site/mips-linux: add readline
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 15:22:42 +00:00
Joshua Lock
b0bda60d77 qemu: build mips system support in qemu
Add mips to the target-list configuration option and add a dummygl for mips.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 15:11:56 +00:00
Joshua Lock
dfe72318ed distros: fix mistake in opkg-native PREFERRED_PROVIDER
PREFERRED_PROVIDER for opkg-native should be a native
package...

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 13:44:03 +00:00
Joshua Lock
b02a125cae preferred-xorg-versions: bump util-macros version
The util-macros version has been bumped, update
PREFERRED_VERSION accordingly.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 11:07:58 +00:00
Joshua Lock
e081a82966 distros: Fix some warnings by setting PREFERRED_PROVIDER's
opkg-native needs a PREFERRED_PROVIDER for moblin and poky

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-15 11:07:49 +00:00
Richard Purdie
22aadfc3b8 glib-2.0-native: Fix DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-15 09:28:41 +00:00
Richard Purdie
60251ac9e1 pango: Disable PARALLEL_MAKE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-15 09:11:46 +00:00
Richard Purdie
170e071460 dpkg: Add missing -native DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 23:30:12 +00:00
Richard Purdie
f00e5cf964 bitbake-dev: Sync with upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 23:29:31 +00:00
Richard Purdie
a7740492af poky-eabi.inc: Use glibc 2.9 for mips
Signed-off-by: Richard Purdie <richard@rex.(none)>
2010-01-14 18:54:45 +00:00
Richard Purdie
feed2e22f4 cross.bbclass: Set BASEPKG_HOST_SYS to a sane value
Signed-off-by: Richard Purdie <richard@rex.(none)>
2010-01-14 17:19:02 +00:00
Richard Purdie
2debb77ab2 libx11-git: Disable dolt
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 17:05:32 +00:00
Richard Purdie
b07628bf26 util-macros: 1.3.0 -> 1.4.1
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 16:39:57 +00:00
Richard Purdie
50d9ca76b4 qemu: Add small fix to gl patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 16:37:56 +00:00
Joshua Lock
24c24ecf0d gnome-terminal: temporarily disable scrollkeeper
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-14 13:42:16 +00:00
Joshua Lock
6816e5a653 empathy: append to EXTRA_OECONF, don't override
Previous commit overrode EXTRA_OECONF rather than appending

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-14 13:42:16 +00:00
Joshua Lock
7b41d2b3d1 scripts/runqemu: Fix some typos
Fix typo in help message (we default to ext3 not ext2 now)
and a typo whereby moblin-image-sdk wouldn't be autofound.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-14 13:42:16 +00:00
Richard Purdie
ce687c223f package_ipk.bbclass: Tweak handling for all/any/noarch and nativesdk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 13:16:13 +00:00
Richard Purdie
adede582cd package_ipk.bbclass: Add handling for all/any/noarch and nativesdk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 12:36:37 +00:00
Joshua Lock
9bad53754d empathy: Remove stale package and fix build
Temporarily disable scrollkeeper to fix the build.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-14 12:23:47 +00:00
Richard Purdie
46a26dc357 poky-fixed-revisions: Update clutter gst/gtk/mozembed revisions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 12:14:06 +00:00
Richard Purdie
94006b88fa poky-fixed-revisions: Update moblin revisions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 12:03:36 +00:00
Richard Purdie
2634976634 gnome-terminal: Apply patch from upstream to fix doc build issues
Signed-off-by: Richard Purdie <richard@rex.(none)>
2010-01-14 11:56:19 +00:00
Richard Purdie
ed2be0f349 insane.bbclass: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 11:37:56 +00:00
Richard Purdie
9604ad0ddf cross-canadian: Fix gettext issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 11:25:42 +00:00
Richard Purdie
5afaf16714 gdb-cross-canadian: Add missing gettext-nativesdk DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 10:50:53 +00:00
Richard Purdie
0b724f9083 gcc-cross-canadian: Add gettext-nativesdk DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 10:48:56 +00:00
Richard Purdie
58ef914d0c binutils-cross-canadian: DEPEND on gettext-nativesdk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 10:21:45 +00:00
Richard Purdie
523439fda4 gcc-crosssdk: Fix DEPENDS for gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-14 09:19:06 +00:00
Richard Purdie
07046f300b dpkg: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 23:25:08 +00:00
Richard Purdie
5c0a06b85f openssl: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 23:19:27 +00:00
Richard Purdie
441006cc6f db: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 23:04:55 +00:00
Richard Purdie
705fe2f2f8 glib-2.0: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 22:59:46 +00:00
Richard Purdie
a717961f6e opkg: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 22:06:25 +00:00
Richard Purdie
357282e211 freetype: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 22:06:24 +00:00
Richard Purdie
88872c05b5 gcc-crosssdk-intermediate: Add missing gettext-native dependency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 21:55:51 +00:00
Richard Purdie
f911c26cd3 xkeyboard-config: Merge recipes (and fix DEPENDS)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 21:52:49 +00:00
Richard Purdie
89ab1a22e3 meta-moblin:Tweak PVs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 17:27:11 +00:00
Richard Purdie
6baeede3c6 meta-moblin: Update to Moblin 2.1 released versions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 17:07:59 +00:00
Richard Purdie
3fce6c2d7e libx11_git: Update PV
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 15:47:04 +00:00
Richard Purdie
9a66ae02cb mutter: Add 2.28.1 release
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 15:46:30 +00:00
Richard Purdie
813e135dee gupnp-av: 0.5 -> 0.5.2 and add 0.4
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-13 15:45:30 +00:00
Richard Purdie
3ef9c4c9a3 nbtk: Add 1.2.3 release
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-12 21:20:08 +00:00
Richard Purdie
4108af2ac7 carrick: Add 1.1.13 release version and prefer over the git version for moblin
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-12 20:32:43 +00:00
Richard Purdie
cf91cfaaa2 bitbake: Apply modified version of a patch from Martin Jansa <martin.jansa@gmail.com> to allow wildcards at the end of PREFERRED_VERSION strings
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-12 20:31:18 +00:00
Joshua Lock
5ab442890d gettext: extend nativesdk
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-08 12:41:01 +00:00
Richard Purdie
b8e0c83dda claws-plugins: Add missing gettext inherits
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-08 10:57:17 +00:00
Richard Purdie
2a30f28c88 gupnp-tools: Fix filename
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-08 10:55:29 +00:00
Richard Purdie
7ae983c9ee aspell: Add missing gettext inherit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 18:13:39 +00:00
Richard Purdie
2491731121 claws-mail: Add missing gettext inherit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 18:13:06 +00:00
Richard Purdie
fbf9d75d7c coreutils: Add missing gettext inherit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 18:12:48 +00:00
Richard Purdie
a06263e7d5 make: Add missing gettext inherit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 18:12:34 +00:00
Richard Purdie
1b20976cfc gcc: Use DEPENDS += to preseve gettext dependency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 18:11:38 +00:00
Richard Purdie
2f78c4d28b xkeyboard-config: Add DEPENDS on glib-2.0 (for glib-gettext)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:10:38 +00:00
Richard Purdie
957863bf9e rpm-native: Add DEPENDS on gettext-native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:09:51 +00:00
Richard Purdie
795e22ccf8 moblin-menus: Add DEPENDS on glib-2.0 (for glib-gettext)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:08:49 +00:00
Richard Purdie
d702e01051 blktool: Add missing DEPENDS on glib-2.0
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:06:39 +00:00
Richard Purdie
ace4de10e0 bognor-regis: Add missing gupnp and gupnp-av DPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:04:11 +00:00
Richard Purdie
1f343e2130 gupnp: Update to latest releases
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:03:42 +00:00
Richard Purdie
4863664ca6 Merge branch 'master' of ssh://gitserver@git.pokylinux.org/poky 2010-01-07 17:01:35 +00:00
Richard Purdie
7111f8318b diffutils: Add missing gettext dependency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-07 17:01:13 +00:00
Joshua Lock
d273811c5b site/mips-linux: add popt variables
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 15:52:16 +00:00
Joshua Lock
9f73ec3288 libxcb: add xcb-proto-native to DEPENDS
A code generation tool used during build is run using the
native Python and needs a module built by xcb-proto.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 15:52:16 +00:00
Joshua Lock
5504082a09 xcb-proto: support building native packages of each version
Move the BBCLASSEXTEND="native" to the inc file from the
git recipe.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 15:52:16 +00:00
Joshua Lock
fc20223097 qemumips: Use the linux-rp kernel by default
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 15:52:16 +00:00
Joshua Lock
e4f4259365 linux-rp: Support a 2.6.29 kernel for qemumips
Modify the linux-rp-2.6.29 to enable building a kernel for
qemumips with a defconfig taken form OE.dev's linux kernel

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 15:52:16 +00:00
Joshua Lock
955c7aaf51 qemumips: Add qemumips machine from OE.dev
Site and machine configuration for Mips architecture and
a qemumips target from Openembedded.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 15:52:16 +00:00
Joshua Lock
aef159c70c insane.bbclass: Fix multiline string
Earlier commit had created a multiline string without
updating the python string quotation (""" for multiline).

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 13:18:18 +00:00
Joshua Lock
aee835ba8f insane.bbclass: enhance gettext error message
Point the user at gettext.bbclass which handles adding the
correct gettext to DEPENDS.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 09:32:41 +00:00
Joshua Lock
4dac8ed6d7 pam: fix inherit, add gettext and change autotools
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 09:17:00 +00:00
Joshua Lock
b1b5194dc2 libidn: fix inherit, add gettext and change autotools
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-06 09:16:52 +00:00
Richard Purdie
1ce4a018b1 gst-plugins-ogg/bad/ugly: Add missing inherit gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-06 00:54:40 +00:00
Richard Purdie
a1e9d39ef8 avahi: Add missing inherit gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-06 00:54:08 +00:00
Richard Purdie
7cbbccffb3 parted: Add missing inherit gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-06 00:53:53 +00:00
Richard Purdie
e83d48c67d gst-plugins-base: Inherit gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-05 21:12:01 +00:00
Richard Purdie
c37037df65 gettext.bbclass: Set the gettext dependencies correctly for target, cross and native packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-05 21:10:47 +00:00
Richard Purdie
f3092747b4 tzcode/tzdata: Drop unneeded gettext DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-05 20:27:23 +00:00
Joshua Lock
8a7fd14ad4 insane.bbclass: special case gettext as it can't depend on itself
Only run the gettext section of the QA configure sanity check if
the package is not gettext as the gettext tools, shipped with
gettext, use the macro employed in the sanity check.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:34:00 +00:00
Joshua Lock
91d2e7d1bc gcc: add gettext to dependencies
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:34:00 +00:00
Joshua Lock
69f7bf8482 sed: add gettext to dependencies
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:59 +00:00
Joshua Lock
eb27ddfc02 python: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:59 +00:00
Joshua Lock
ccf2e8c603 gdbm: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:59 +00:00
Joshua Lock
5522e485ba update-rc.d: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:59 +00:00
Joshua Lock
5ad2aa2923 ofono: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:58 +00:00
Joshua Lock
e3f37d65ed mutter: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:58 +00:00
Joshua Lock
2d82287f4d loudmouth: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:58 +00:00
Joshua Lock
a15166ceaf libpng: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:58 +00:00
Joshua Lock
dc415f5dcc jpeg: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:57 +00:00
Joshua Lock
3e12340abf gnutls: add gettext to dependencies
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:57 +00:00
Joshua Lock
67883ba391 connman: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:57 +00:00
Joshua Lock
e33839b65b clutter: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:57 +00:00
Joshua Lock
dc07c33580 binutils: add gettext to depends
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:56 +00:00
Joshua Lock
4965a74fc5 nbtk: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:56 +00:00
Joshua Lock
8c3f5542d7 mx: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:56 +00:00
Joshua Lock
cf33df3059 libccss: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:56 +00:00
Joshua Lock
588e1c1640 clutter-imcontext: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:56 +00:00
Joshua Lock
97173220ec check: remove unneeded gettext dependancy
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-01-04 10:33:56 +00:00
Joshua Lock
2be65803cb insane.bbclass: Fix gettext test
The previous gettext check was broken resulting in many false positives.
This improved version works as follows:
* Adds to the existing os.walk() and builds a list of configure.in and
  configure.ac files
* Tests whether DEPENDS includes an appropriate gettext
* If not greps the configure files in the list for instances of AM_GNU_GETTEXT
* If if an instance is found we bb.fatal with an appropriate message

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-21 10:51:50 +00:00
Richard Purdie
52b821a384 tzdata: 2008b -> 2009s
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 14:55:12 +00:00
Richard Purdie
a4ba37ee2d tzcode: 2007h -> 2009r
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 14:54:46 +00:00
Richard Purdie
fe55fe7a41 base.bbclass: Fix missing argument
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 12:13:32 +00:00
Richard Purdie
1ec852688b base.bbclass: Fix indentation error 2009-12-18 12:11:42 +00:00
Joshua Lock
70a3946956 ofono: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:49:13 +00:00
Joshua Lock
5bc6539b22 nbtk: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:49:00 +00:00
Joshua Lock
daae258e26 mx: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:48:52 +00:00
Joshua Lock
c52ad72e00 mx: Add Mx based on nbtk recipe
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:48:42 +00:00
Joshua Lock
e1baebdb72 nbtk: update fixed revision to 1.2.3 git tag
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:48:05 +00:00
Joshua Lock
a1c4e3be10 handbook: Minor tweaks
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:47:52 +00:00
Joshua Lock
8904028db1 ofono: Initial recipe for ofono
Based on the connman recipe, add ofono.inc for generic recipe components
and use it from ofono_git.bb and tracking a fixed git revision and
ofono_0.12.bb packaging the latest release.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:47:44 +00:00
Joshua Lock
69027cda38 Remove use of gconnman as it's no longer maintained nor used
Also update the carrick fixed revision

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-18 11:47:22 +00:00
Richard Purdie
9f5e04a04b taskdata.py: Improve error message if a task dependency has an incorrect format
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 11:41:44 +00:00
Richard Purdie
dbd66fc808 bitbake/BBHandler: Only add do_ prefix to tasks if its not already present
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 11:41:44 +00:00
Richard Purdie
29ae46a866 kernel.bbclass: Use B, not S in KERNEL_VERSION
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 11:41:44 +00:00
Richard Purdie
e90771c6ae glibc-package.inc: Remove hardcoded path reference (from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 11:41:44 +00:00
Richard Purdie
9a2f361a59 devshell.bbclass: Merge tweaks from OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 11:41:44 +00:00
Richard Purdie
22429b6137 base.bbclass: Partially sync branch/scm handling functions with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-18 11:41:43 +00:00
Joshua Lock
b28aa01ac8 glib-2.0: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:46:52 +00:00
Joshua Lock
26d20714df xorg-util: add gettext to DEPENDS where required
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:45:46 +00:00
Joshua Lock
5fda6f9667 xorg-proto: add gettext to DEPENDS where required
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:45:36 +00:00
Joshua Lock
b54602dece xorg-libs: Add gettext to DEPENDS where required
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:45:27 +00:00
Joshua Lock
41f43e1b98 python: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:45:19 +00:00
Joshua Lock
4ae547d05d telepathy-glib: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:45:10 +00:00
Joshua Lock
eb12b0416d telepathy-glib: Update 0.9.0 -> 0.9.2 2009-12-17 17:44:56 +00:00
Joshua Lock
8076573fe8 update-rc.d: add gettext to DEPENDS 2009-12-17 17:44:32 +00:00
Joshua Lock
f35aab2e94 mutter: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:44:17 +00:00
Joshua Lock
b703ee6a72 loudmouth: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:43:19 +00:00
Joshua Lock
674c9e52ed libpng: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:43:10 +00:00
Joshua Lock
d6cbbec747 jpeg: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:42:50 +00:00
Joshua Lock
7188bb4a26 gdbm: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:42:39 +00:00
Joshua Lock
fc2ba9acb4 connman: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:42:00 +00:00
Joshua Lock
5cd6d10807 connman: Updates and a recipe for the latest release
Split much of the recipe into connman.inc and created a recipe for the
latest 0.47 release.
Update the fixed revision and dropped unneeded patches.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:41:46 +00:00
Joshua Lock
2aa6a8aaf7 poky-fixed-revisions.inc: Fix preferred version for dbus-glib
Preferred version for dbus-glib was set to a version which we no longer
ship in Poky

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:39:24 +00:00
Joshua Lock
2286ffbb46 clutter: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:39:03 +00:00
Joshua Lock
fb34cbdca7 nbtk: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:37:48 +00:00
Joshua Lock
508dacc3a3 libccss: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:36:16 +00:00
Joshua Lock
29a65ece8b check: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:36:06 +00:00
Joshua Lock
33e137893f clutter-imcontext: add gettext to DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 17:35:53 +00:00
Joshua Lock
4859945b11 insane.bbclass: Handle native packages in the gettext test
When the package we are checking is a native package we need to check
for gettext-native rather than gettext in the DEPENDS.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-17 10:26:05 +00:00
Richard Purdie
459861b9c0 bitbake/data_smart.py: Fix error where update-rc.d would not get added to the dependency tree
If there was a variable such as:

X_${Y}_append = "Z"

The "Z" would be lost if X_${Y} was unset. This was due to a bug in the renameVar
function used by expandKeys().

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-16 08:39:47 +00:00
Joshua Lock
71e21a72cd insane.bbclass: Check whether gettext is required but not in DEPENDS
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-15 21:07:14 +00:00
Joshua Lock
aa65b67722 chrpath: Add chrpath 0.13 based on recipe from OE.dev
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-15 13:16:13 +00:00
Richard Purdie
dd2a0e06f5 console-tools: Add missing gettext dependency
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-15 12:46:39 +00:00
Joshua Lock
ceb91f7b2b scripts: preserve BB_NUMBER_THREADS when sanitising environment
It's pretty useful to be able to define BB_NUMBER_THREADS on the cli when
executing bitbake. Add it to the extra whitelist defined in the
poky-env-internal script.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-14 17:46:59 +00:00
Richard Purdie
51497a7436 kernel.bbclass: Sync with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-14 15:55:03 +00:00
Joshua Lock
62ab23e067 insane.bbclass: Skip arch check for Cross Canadian
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2009-12-14 11:56:01 +00:00
Joshua Lock
61d608e518 local.conf: Fix cross canadian variable, it's SDKMACHINE not SDK_ARCH 2009-12-11 17:33:55 +00:00
Richard Purdie
1183aff5e9 bitbake/git.py: Typo fix
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 17:20:06 +00:00
Richard Purdie
b80f6d8ac4 bitbake/git.py: Add support for fullclone parameter
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 17:12:53 +00:00
Richard Purdie
a94737f611 bitbake/git.py: Move variable init into the localpath function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 17:12:53 +00:00
Richard Purdie
7d937f0f4a qemugl: Only directly install for -nativesdk version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 15:27:01 +00:00
Joshua Lock
bf69b8b737 local.conf: mention the Canadian Cross variable; SDK_ARCH 2009-12-11 14:34:20 +00:00
Joshua Lock
30b6c9b58b local.conf: use qemux86 as default target 2009-12-11 14:24:45 +00:00
Joshua Lock
2c5ae3eb9b handbook: point people at purple in the introduction 2009-12-11 14:22:46 +00:00
Richard Purdie
cb8684f9bc bitbake/cooker.py: Fix handling of extra configuration files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 12:48:49 +00:00
Richard Purdie
c02e38901b git.py: Improve command failure error messages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 12:48:14 +00:00
Richard Purdie
72327cb070 moblin-web-browser: Fix xpidl patch to make sure idl include files are found
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 10:24:14 +00:00
Richard Purdie
d5ad4877f2 mozilla-headless: Fix xulrunner version references
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 09:42:15 +00:00
Richard Purdie
1805dbd849 dbus-glib: 0.78 -> 0.82
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 09:33:21 +00:00
Richard Purdie
12691f24e5 mozilla-headless: Set PKG_CONFIG_ALLOW_SYSTEM_LIBS to avoid host libraries being found
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-11 00:37:26 +00:00
Richard Purdie
ac397328a0 moblin-floating-revisions: Set fixed revision for bisho
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 22:38:40 +00:00
Richard Purdie
fd2e201742 moblin-app-installer: Fix syntax error
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 22:32:25 +00:00
Richard Purdie
d2e8c1f0ef moblin-app-installer: Update patch against latest git
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 21:46:17 +00:00
Richard Purdie
386d564b20 moblin-fixed-revisions: Bump clutter revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 21:33:30 +00:00
Richard Purdie
507dcf9dbe meta-moblin: Switch to gtk+ 2.18.5
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 18:17:15 +00:00
Richard Purdie
db2e750c3a gtk+: Add 2.18.5
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 18:16:40 +00:00
Richard Purdie
bd874faabb poky-fixed-revisions.inc: Update glib-2.0 revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 18:09:45 +00:00
Richard Purdie
35e8e3fd56 gtk-doc: Update gtk-doc.m4
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 18:07:49 +00:00
Richard Purdie
eee88f3abc glib-2.0: 2.20 -> 2.22
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 18:07:26 +00:00
Richard Purdie
e5a21c4dd9 moblin-web-browser: Update patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 17:17:42 +00:00
Richard Purdie
57bf2cf3b6 clutter: Fix locked down revision patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 16:59:56 +00:00
Enric Balletbo i Serra
5386327d34 udev: Add local.rules for the IGEP v2 to symlink the first framebuffer to /dev/fb
Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 16:51:01 +00:00
Richard Purdie
9bd948e18b bognor-regis: Add missing DEPENDS on libnotify
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 15:12:09 +00:00
Richard Purdie
8caa290d89 rpm: Update for python 2.6
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 14:15:01 +00:00
Richard Purdie
13ee301416 moblin-floating-revisions: Enable floating revisions for mozilla-headless
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 14:01:08 +00:00
Richard Purdie
7ab7ad82f4 mozilla-headless: Update to work with recent git changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 14:00:23 +00:00
Richard Purdie
9e27801055 sqlite3: Add missing DEPENDS on tcl-native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-10 00:00:11 +00:00
Richard Purdie
f4674faeaa tcl: Add tcltk from OE.dev but with legacy staging function removed and converted to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-09 23:59:44 +00:00
Richard Purdie
7b8e1efb0d mojito: Add RDEPENDS on connman and set configure flags to match, also disable shave
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-09 13:46:31 +00:00
Richard Purdie
21c54dd674 sqlite3: 3.6.16 -> 3.6.20
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-09 13:44:41 +00:00
Richard Purdie
c924e98262 leadpad/pcmanfm/puzzles: Make libowl optional
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-07 17:21:56 +00:00
Richard Purdie
aeabb07d85 tasks: Fix missing quote
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-07 16:45:59 +00:00
Richard Purdie
ad51b8c0a1 poky-fixed-revisions.inc: Update dates revision
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-07 16:41:51 +00:00
Richard Purdie
3ab04a953d pimlico: Clean up libowl handling to be consistent 2009-12-07 16:23:56 +00:00
Richard Purdie
e584e7c246 libowl: Remove stale comments and enable packaging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-07 16:23:56 +00:00
Richard Purdie
288e62a221 distutils: Sync with OE.dev
Signed-off-by: Richard Purdie <richard@rex.(none)>
2009-12-05 23:18:02 +00:00
Richard Purdie
c7d4ad8e9d gdb: Make sure cross-candian version does not provide gdbserver
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-04 23:36:19 +00:00
Richard Purdie
98192bf414 site/ix86-common: Add moz variables
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-03 17:49:13 +00:00
Richard Purdie
ba1c4fa944 python: Update 2.5 -> 2.6 (from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-03 12:08:52 +00:00
Richard Purdie
3b5336f7cf python: Update 2.5 -> 2.6 (from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-03 12:07:18 +00:00
Richard Purdie
de73c65121 alsa-utils/xdg-user-dirs/diffstat: Add missing DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-03 09:52:22 +00:00
Richard Purdie
73e514b0e8 rpm: Bump PR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-02 15:36:18 +00:00
Richard Purdie
1678395e60 libtool: Fix sysroot preprocess function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-02 13:25:14 +00:00
Richard Purdie
28fc110e6d nativesdk.bbclass: Disable debug
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-02 13:16:01 +00:00
Richard Purdie
82fd3bda34 nativesdk.bbclass: Fix DEPENDS handling
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-02 13:12:53 +00:00
Richard Purdie
7bb37ffb35 gdb: Clean up recipe and don't inherit cross for cross-canadian
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-02 11:35:35 +00:00
Richard Purdie
4248fbef9f cross-canadian: Set PKGHIST_DIR to a correct value
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-02 11:34:47 +00:00
Richard Purdie
18bd18313c libexif: Add gettext DEPENDS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 17:14:46 +00:00
Richard Purdie
515b0f19ca util-linux: Fix DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:58:49 +00:00
Richard Purdie
f866f511ad gstreamer: Fix DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:57:41 +00:00
Richard Purdie
68518c4130 popt: Fix DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:56:57 +00:00
Richard Purdie
a76bdfb87b libgpg-error: Add missing DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:56:12 +00:00
Richard Purdie
8917b6eb29 libidl: Add missing DEPENDS on flex
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:53:28 +00:00
Richard Purdie
212dedcde3 flex: Add missing DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:52:19 +00:00
Richard Purdie
ac0788e958 bison: Add missing DEPENDS on gettext
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-12-01 16:51:34 +00:00
Richard Purdie
5bc0235640 clutter-git: Update patch
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 17:44:00 +00:00
Richard Purdie
6661806a5e rpm: Disable dwarfdebug
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 17:24:59 +00:00
Richard Purdie
0ad571dde5 clutter-git: Disable DOLT
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 17:11:24 +00:00
Richard Purdie
66c952cbc2 autotools.bbclass: Make sure config.rpath is present if needed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 17:03:38 +00:00
Richard Purdie
dfd32b429a base.bbclass: Stage etc directory for native packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 15:11:22 +00:00
Richard Purdie
659d4e2535 mutter: Bump PR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 14:28:54 +00:00
Richard Purdie
414f9e88f3 gdk-pixbuf-csource: Make sure a loaders file is generated after recent staging changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 14:28:38 +00:00
Richard Purdie
6348b70797 libtool-cross: Don't allow bad staging files break libtooL
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 12:20:44 +00:00
Richard Purdie
15b5395444 libtool: Only apply sysroot mangling to libtool itself (not native/cross/nativesdk)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 12:08:39 +00:00
Richard Purdie
35433abab3 rpm: Bump PR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 12:04:29 +00:00
Richard Purdie
7cf518c754 gvfs: Add missing DEPEND on gnome-keyring and disable libarchive
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 11:54:19 +00:00
Richard Purdie
499c15a61c pycairo: Fix staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 10:10:35 +00:00
Richard Purdie
67a8d2dc46 ribosome: Build workarounds
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-30 09:56:27 +00:00
Richard Purdie
20abebf95f xapps: Add configure sed to remove problems with the XAW_CHECK_XPRINT_SUPPORT macro
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 18:08:54 +00:00
Richard Purdie
3d5a8ffe40 clutter-gst: Bump PR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 17:59:14 +00:00
Richard Purdie
4fb92e75d4 clutter-gst: Disable DOLT
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 17:52:12 +00:00
Richard Purdie
400f1ca023 libtool: Allow ltdl to stage only
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 17:42:45 +00:00
Richard Purdie
8e3364236f Add missing patches
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 16:24:13 +00:00
Richard Purdie
6e6320bc2a gupnp: Fix staging preprocess function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 15:40:33 +00:00
Richard Purdie
63d30e31a4 clutter-1.0: Disable DOLT
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 15:35:55 +00:00
Richard Purdie
463f99cbe0 clutter-1.0: Disable DOLT
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 15:35:43 +00:00
Richard Purdie
78ed945542 syncevolution: Correct branchname
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 15:22:08 +00:00
Richard Purdie
1b0fd595dd moblin-floating-revisions.inc: Disable head revisions for now
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 15:08:17 +00:00
Richard Purdie
e1e36219c9 moblin-fixed-revisions.inc: Update gtk+ version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 11:41:23 +00:00
Richard Purdie
ad2dfda276 subversion: Bump PR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 11:36:18 +00:00
Richard Purdie
8265d8d87f gnu-config: Add missings sed command
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 11:34:58 +00:00
Richard Purdie
a813f239d4 libtool: Don't install into staging since we need libtool-cross there
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 11:32:43 +00:00
Richard Purdie
c770141305 e2fsprogs: Fix typo and bump appropriate PRs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 00:41:36 +00:00
Richard Purdie
e8c26e1933 xclipboard/xclock/xkbprint/xkbutils: Upgrade to lastest releases
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 00:29:14 +00:00
Richard Purdie
3f27fdaf59 xserver-xf86-dri-lite: Add m4_pattern_allow
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-27 00:10:24 +00:00
Richard Purdie
441446c6cb gtk+: 2.16.4 -> 2.16.6
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 23:24:05 +00:00
Richard Purdie
6834d3c9eb xserver-xf86-dri-lite: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 23:19:38 +00:00
Richard Purdie
0d4c056ca5 xserver-xf86-dri-lite: Fix macro in .m4 file
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 23:15:21 +00:00
Richard Purdie
011557c157 bitbake: Fix dict changing size problems
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 22:45:52 +00:00
Richard Purdie
71b10e3045 poky-init-build-env: Remove now unneeded return
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 11:25:16 +00:00
Richard Purdie
289332253b distro/poky: Set EXTRAOPKGCONFIG
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 11:19:37 +00:00
Richard Purdie
b46f349b32 Add poky-feed-config-opkg (based off moblin version)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 11:17:37 +00:00
Richard Purdie
87113e40d7 xserver-kdrive-1.3.0.0: Add randr12 fix from OE
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 09:19:11 +00:00
Richard Purdie
2c1211bab9 scripts/poky-qemu-internal: Make sure qemuarm cursor is visible
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 09:18:08 +00:00
Richard Purdie
f0d2b37989 libxcalibrate: Fix with xcb
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 09:17:08 +00:00
Richard Purdie
f721f7bc34 pointercal: Update qemuarm calibration files after recent qemu changes to wacom code
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-26 09:16:19 +00:00
Richard Purdie
43dd23b93d udev-141: Backport fix from 145 which is also needed here
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-25 15:01:47 +00:00
Richard Purdie
b6b45ca538 runqemu: staging -> sysroots
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-25 14:53:37 +00:00
Richard Purdie
4ee3295dd8 apmd/jpeg: libtool is on STAGING_BINDIR_CROSS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-25 14:39:19 +00:00
Richard Purdie
1b8493ad41 qemu: Update to 0.10.6 and add fix wacom emulation issues
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-25 14:37:20 +00:00
Richard Purdie
429837b613 udev: Fix touchscreen link creation with latest version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-25 14:31:53 +00:00
Nicolas Dechesne
663dc3684f sato: move policykit from meta-moblin to met
policykit recipe is required to build a sato image, and it was moved in the
meta-moblin collection by mistake, and sato build was broken.

policykit is a dependency of networkmanager.

Signed-off-by: Nicolas Dechesne <n-dechesne@ti.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-20 17:48:21 +00:00
Nicolas Dechesne
2163649b4e sato: move pam from meta-moblin to meta
pam recipe is required to build a sato image, and it was moved in the
meta-moblin collection by mistake, and sato build was broken.

pam is a dependency of policykit which is a dependency of networkmanager.

Signed-off-by: Nicolas Dechesne <n-dechesne@ti.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-20 17:47:18 +00:00
Richard Purdie
5892090c1c external-toolchain-csl: Convert to use glibc-package
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-20 17:32:23 +00:00
Richard Purdie
246dbec868 package.bbclass: Clear package directory copy before installing new files to prevent stale data
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-20 17:11:27 +00:00
Richard Purdie
6ebcb57968 glibc-package.bbclass: Fix the case PN == glibc
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-20 17:10:49 +00:00
Richard Purdie
46fbe4cd80 glibc-package.bbclass: Add GLIBC_INTERNAL_USE_BINARY_LOCALE precompiled mode
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-20 15:50:34 +00:00
Richard Purdie
7379ee7786 glibc: Add missing .inc file from last commit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 22:48:07 +00:00
Richard Purdie
1e549b98e1 glibc: Separate out core glibc packaging functionality into a class
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 22:37:45 +00:00
Richard Purdie
ebf6159c7b tune-atom.inc: Improve optmisation flags
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 22:01:55 +00:00
Richard Purdie
0ad4a95607 genext2fs: The makefile is broken, just do the correct thing ourselves
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 21:50:02 +00:00
Richard Purdie
0037679ca9 stagemanager-native: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 14:11:42 +00:00
Richard Purdie
aa20954681 mozilla-headless: Convert to use SYSROOT_PREPROCESS_FUNCS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:51:06 +00:00
Richard Purdie
a6f36aedaf apt: Stage include headers in do_install and drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:45:01 +00:00
Richard Purdie
24f0ecbb14 apt-native: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:42:11 +00:00
Richard Purdie
bb9a858c58 stagemanager-native: Set PSTAGING_DISABLED and drop unused staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:38:33 +00:00
Richard Purdie
43bee8b735 Disable packaged-staging for cross-linkage/staging-linkage and external-poky-toolchain
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:37:11 +00:00
Richard Purdie
40a88a1063 poky-external-toolchain: Alter staging in do_install step
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:33:14 +00:00
Richard Purdie
b90e55697d cross-linkage/staging-linkage: Convert to mangle staging in do_install step
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:31:52 +00:00
Richard Purdie
affbcf3202 kernel.bbclass: Merge do_stage into do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:22:48 +00:00
Richard Purdie
3a2ad83b38 osc-native: Stage using do_install (and add SRCREV)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 13:15:43 +00:00
Richard Purdie
47c19bb87a python: Drop staging functions. If failures occur we just need to improve do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 11:50:58 +00:00
Richard Purdie
5716a14bf4 package.bbclass: Fix runtime_maping_rename so version information isn't removed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 10:13:10 +00:00
Richard Purdie
0846d1f498 python: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 00:33:40 +00:00
Richard Purdie
0309edc8d9 python-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-19 00:26:06 +00:00
Richard Purdie
5b44fa1f29 perl: Updates to ensure Config-heavy-target.pl is found
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 22:04:55 +00:00
Richard Purdie
ca5f36ee6a perl: Update from OE.dev and convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 20:05:55 +00:00
Richard Purdie
06685d7558 libapci: Remove unneeded staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:49:32 +00:00
Richard Purdie
b977fca26f tzcode-native: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:48:31 +00:00
Richard Purdie
0d51d807aa xerces-c: Patch out local linking directories
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:38:44 +00:00
Richard Purdie
bc111fc45c xerces-c: Reuse do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:36:48 +00:00
Richard Purdie
892ff04e4b libol: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:27:14 +00:00
Richard Purdie
659717fb52 samba: Remove unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:19:38 +00:00
Richard Purdie
770af5b1f5 gettext: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:16:53 +00:00
Richard Purdie
5e6726dc19 dfu-util: Remove unneeded staging functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:16:15 +00:00
Richard Purdie
6e7cac96bb uicmoc3-native: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:15:03 +00:00
Richard Purdie
dd9e54df3e boost-jam-native: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:12:12 +00:00
Richard Purdie
84a7f89bbf boost: Switch to using do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:10:50 +00:00
Richard Purdie
6b05a7af6a qmake-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:09:33 +00:00
Richard Purdie
54682f2d6f libpcre: Drop staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:06:35 +00:00
Richard Purdie
9fe6114da0 uicmoc3-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-18 00:02:59 +00:00
Richard Purdie
354221d878 moblin-feeds: Remove unneeded staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 23:57:25 +00:00
Richard Purdie
d26596806e linux-dummy: Drop do_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 23:54:04 +00:00
Richard Purdie
57a7346f6c libiconv: Convert to use autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 23:49:37 +00:00
Richard Purdie
90a50d59d9 e2fsprogs: Drop unneeded custom staging function by improving do_install and convert to use BBCLASSEXTEND for -native recipe
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 23:48:54 +00:00
Richard Purdie
e4d0c6479e gcc-native: Convert to stage using do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 23:33:52 +00:00
Richard Purdie
8d5f7fa6dc binutils: Remove unneeded staging functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 23:31:51 +00:00
Richard Purdie
bf9725eb93 dbus-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 22:06:40 +00:00
Richard Purdie
be033d2d0b dbus: Remove unneeded staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 22:04:53 +00:00
Richard Purdie
7bf17e82eb alsa-oss: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:51:36 +00:00
Richard Purdie
c5f2ff91f6 u-boot-mkimage-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:49:29 +00:00
Richard Purdie
b36dcf3a48 signgp-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:47:21 +00:00
Richard Purdie
d715026666 update-alternatives-dpkg: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:44:17 +00:00
Richard Purdie
a00293790b gnome-doc-utils: Convert staging function to a do_install_append
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:38:51 +00:00
Richard Purdie
dc607cfb60 qemugl: This package is usually installed as an alternative so no need to use the package postinstall. Remove staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:35:22 +00:00
Richard Purdie
f8eb8a3817 insserv: Convert to BBCLASSEXTEND, mark do_install as safe for native staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 21:31:15 +00:00
Richard Purdie
e2b66cca92 wireless-tools: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:26:21 +00:00
Richard Purdie
bd910094a1 yaffs2-utils: Convert to BBCLASSEXTEND and drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:24:53 +00:00
Richard Purdie
a09fcd0c90 uicmoc4: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:24:14 +00:00
Richard Purdie
de19e4b154 gtk-doc: Set NATIVE_INSTALL_WORKS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:23:44 +00:00
Richard Purdie
54c9e936a2 syslinux/syslinux-installer-native: Convert to stage with do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:18:38 +00:00
Richard Purdie
fe89792652 gtk-doc: Drop custom staging functions as now unneeded
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:14:34 +00:00
Richard Purdie
6cad69b4d8 libusb/libusb0: Drop unneeded custom staging functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:13:03 +00:00
Richard Purdie
6327525060 libsdl-natvesdk: Drop unneeded stage_append
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:03:53 +00:00
Richard Purdie
0d816ac986 uclibc: Upgrade 0.9.29 -> 0.9.30.1 (from OE.dev) and massively cleanup the recipes, using install step for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 16:00:20 +00:00
Richard Purdie
2ce975dba2 automake-native: Remove unneeded staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:38:25 +00:00
Richard Purdie
a1f2ed6e7f matchbox-desktop: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:36:35 +00:00
Richard Purdie
089e29b779 uicmoc4-native: Convert to use install step for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:35:27 +00:00
Richard Purdie
40abdeadf7 helix-libs/ribosome: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:32:08 +00:00
Richard Purdie
cb5f3a4c9a freetype: Drop unneeded custom staging functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:23:25 +00:00
Richard Purdie
06b28b570a db: Convert to use staging from install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:21:22 +00:00
Richard Purdie
833152ee0b cmake-native: Drop unneeded staging function and use do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 14:17:35 +00:00
Richard Purdie
e9a1c2f913 apr: Convert staging mangling to a sysroot_preprocess function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 13:56:55 +00:00
Richard Purdie
559aa188d1 intltool: Use autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 13:19:59 +00:00
Richard Purdie
b3ccc4e7cb bzip2: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 13:09:07 +00:00
Richard Purdie
bf7547778e libxaw: Add symlinks in do_install step and use this for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 13:06:49 +00:00
Richard Purdie
22569b8452 ncurses: Use do_install (and add missing symlink)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 13:04:55 +00:00
Richard Purdie
e82831ca11 lirc: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 13:02:31 +00:00
Richard Purdie
89e1fb0e99 libassuan: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:49:30 +00:00
Richard Purdie
032ef482fb js: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:47:14 +00:00
Richard Purdie
dab103ff91 liba52: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:46:25 +00:00
Richard Purdie
aec1e12582 gdbm: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:45:18 +00:00
Richard Purdie
4c57e9328c libfribidi: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:42:36 +00:00
Richard Purdie
9de4ef4516 tzcode-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:37:23 +00:00
Richard Purdie
49abf93f5a genext2fs: Convert to use do_install for staging and use BBCLASSEXTEND for native recipe
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:36:10 +00:00
Richard Purdie
a7d453bdcd udev: Convert old versions to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:33:59 +00:00
Richard Purdie
138417949b gnome-common: Drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:32:01 +00:00
Richard Purdie
4359a22bce glibc: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:29:18 +00:00
Richard Purdie
9734c516e8 external-csl-toolchain: Drop uneeded staging functions (a make sure mangling happens in do_install)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:24:51 +00:00
Richard Purdie
45fbc1c095 package-index/run-postinsts: Drop staging functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:24:16 +00:00
Richard Purdie
ed0a52a8e5 openssl: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:17:43 +00:00
Richard Purdie
6a54171997 dosfstools: Convert to use install step for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:12:48 +00:00
Richard Purdie
551e0bb842 cdrtools-native: Use install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:08:48 +00:00
Richard Purdie
a04941ccd3 lame: Use autotools_stage_all
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:03:16 +00:00
Richard Purdie
b73a731460 module-init-tools-cross: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:01:18 +00:00
Richard Purdie
040cf26c51 modutils-cross: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:01:05 +00:00
Richard Purdie
a78d298e8e qmake2-cross: Use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 12:00:50 +00:00
Richard Purdie
7d9e2e530e cross.bbclass: Adjust the core class staging method as all users have been vetted and won't be affected
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 10:32:45 +00:00
Richard Purdie
d560f9fa61 gdb: Clean up do_install and convert to use install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 10:26:33 +00:00
Richard Purdie
5b8b6c6bc7 libtool: Convert various varients to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-17 00:15:07 +00:00
Richard Purdie
b6a0684f26 linux-libc-headers: Drop unneeded custom staging functions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 23:41:13 +00:00
Richard Purdie
ec22e232d4 gcc: Convert cross recipes to stage in do_install. Also moves stdc++ and other libs into the sysroot
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 23:36:11 +00:00
Richard Purdie
977b3fe554 cross.bbclass: Add defitions of target_*dir variables and improve sysroot_stage_all to cope with mixed packages as found in cross recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 23:34:42 +00:00
Richard Purdie
94577a77ce glib-2.0: Clean up staging functions and convert to do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 23:27:31 +00:00
Richard Purdie
6349b2b072 fontconfig: Update staging to use do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 23:09:51 +00:00
Richard Purdie
3ba6fce06a libmad: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:54:14 +00:00
Richard Purdie
7edbe81181 gupnp: Convert to new staging method
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:51:51 +00:00
Richard Purdie
0d5818ea8e pcap: Drop custom staging function and use autotool_stage_all. Some hopefully legacy leftovers remain commented
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:49:39 +00:00
Richard Purdie
79c0a43c2c elfutils: Convert to autotools_stage_all
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:45:27 +00:00
Richard Purdie
76d9b6ea7f native.bbclass: Make sure PACKAGES is empty in case _prepend or _append are used
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:38:44 +00:00
Richard Purdie
6568a6d8a9 base.bbclass: Drop unused PSTAGE_BROKEN_DESTDIR variable and run sysroot_prehook at the right point
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:38:23 +00:00
Richard Purdie
7096a54436 packaged-staging.bbclass: Fix staging reference -> sysroots
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:37:39 +00:00
Richard Purdie
9a3da23e10 dbus-glib-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:37:01 +00:00
Richard Purdie
6341ebc588 unifdef-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:36:35 +00:00
Richard Purdie
70fbc8858d pkgconfig: Drop pointless staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:36:10 +00:00
Richard Purdie
699c0aa37e apmd: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:35:40 +00:00
Richard Purdie
2f435dab59 ldconfig-native: Convert to use do_install for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:35:21 +00:00
Richard Purdie
2b62b6e4f7 quilt: Convert to use install step for staging and cleanup the include files a bit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:33:56 +00:00
Richard Purdie
7d353d394c gtk+/gdk-pixbuf-csource-native: Convert to staging from do_install
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:32:41 +00:00
Richard Purdie
81d1490b1d gpgme: Convert to autotools_stage_all
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:28:18 +00:00
Richard Purdie
668ae67a4f update-rc.d: Add native version, add native dependency to class, convert staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 22:00:22 +00:00
Richard Purdie
d89b641578 sha-native: Update staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:53:21 +00:00
Richard Purdie
3044578403 pth: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:50:55 +00:00
Richard Purdie
1c9d2baa2d ppp: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:48:08 +00:00
Richard Purdie
31ad2cf87b gnutls: Convert to autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:44:44 +00:00
Richard Purdie
c0a972e4fe gpg-error: Convert to autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:42:41 +00:00
Richard Purdie
7807791083 tiff: Convert to autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:39:37 +00:00
Richard Purdie
84c2500e99 libxsettings-client: Convert to autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 21:39:11 +00:00
Richard Purdie
5c0dce866d fakeroot: Remove leagacy staging function and improve installed -dev package
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 20:17:00 +00:00
Richard Purdie
7acfa9467f perl: Standardise config.sh location
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:56:17 +00:00
Richard Purdie
5c0111cb9d lib_package.bbclass: Sync with OE.dev to remove hardcoded layout assumption 2009-11-16 10:53:16 +00:00
Richard Purdie
5f22458409 debian/kernel/gconf/gtk-icon-cache: PKGDESK/PKG fixes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:52:35 +00:00
Richard Purdie
01f75c1b48 rootfs_rpm/icecc: Sync whitespace with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:51:24 +00:00
Richard Purdie
a59f67fdb9 gtk-icon-cache.bbclass: Fix hardcoded PKGDEST reference and operate on directories other than hicolor (from OE.dev)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:13:39 +00:00
Richard Purdie
67fa7a1c60 gconf.bbclass: Fix hardcoded PKGDEST reference
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:12:59 +00:00
Richard Purdie
7da2f8c51d packaged-staging: Fix libdir references to use libdir_native
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:09:01 +00:00
Richard Purdie
c226b38181 package_ipk.bbclass: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-16 10:06:52 +00:00
Richard Purdie
30087f80c7 binutils-cross-canadian.inc: Convert to use sysroot staging approach
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 15:39:37 +00:00
Richard Purdie
94ceada493 binutils-cross.inc: Convert to use sysroot staging approach
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 15:39:23 +00:00
Richard Purdie
9198908755 cross.bbclass: Override the sysroot_stage_all to work appropriately for cross packages
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 15:37:50 +00:00
Richard Purdie
e2677471e6 base.bbclass: Add special stage keyword to override leagcy mode
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 15:37:00 +00:00
Richard Purdie
b772c8cde5 bitbake.conf/base.bbclass: Rename the staging directory to sysroots and the populate_staging task to populate_sysroot
This change makes the purpose of the staging directory more obvious and
the taskname more true to what it now actually does.

The layout version number is increased due to the change in layout
but code to convert existing directories and insert a symlink for
backwards compatibility is included.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:42 +00:00
Richard Purdie
6c92cfc020 glibc-package.bbclass: Operate on PKG, not D after package.bbclass updates
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:42 +00:00
Richard Purdie
7ad17848de gtk-icon-cache.bbclass: Drop unneeded module import
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:41 +00:00
Richard Purdie
c8dc3928fb gconf.bbclass: Drop unneeded module import
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:41 +00:00
Richard Purdie
d4f23b6c00 icu: Fix typo
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie
7b849ae2f5 native.bbclass: Fix DEPENDS handling for BBCLASSEXTEND use
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie
e782788756 gnu-config: Don't run sed substituation for perl location in native case
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie
c6f860596c base/autotools.bbclass: Make sure extra dependencies are not lost for native and nativesdk BBCLASSEXTEND. Ugly but no simpler/neater way seems possible
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie
aa08ac8f68 libtool: Drop unneeded include
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie
c54117458a classes: Remove and sanitise import statements
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:28 +00:00
Richard Purdie
80d55bbd6e base.bbclass: Drop import bb and import os as no longer needed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
f1faef3e6b icu: Fix -native version so it doesn't use target substituions in configure step
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
22ddc76b2f gconf-dbus: Convert to BBCLASSEXTEND and drop custom staging append since its no longer needed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
b26b8f4f23 native.bbclass: Improve DEPENDS mangling code so sub matches don't break upon substitutions
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
abe3902c2c bitbake.conf: Add virtual/libintl-native to ASSUME_PROVIDED
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
d594dcf085 pax-utils: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
e1ba0ea25d gmp: Convert to BBCLASSEXTEND
* darwin build hacks dropped - need proper fixes
* nativesdk custom do_configure should no longer be needed
  with sdk changes

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
0b1aee3163 nasm: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
5b2610af77 m4: Drop 1.4.9 version, convert to autotools_stage
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
f2a5be46cc libx11: Convert -native/-nativesdk versions to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:27 +00:00
Richard Purdie
5308a1d9f5 sqlite3: Cleanups - use BBCLASSEXTEND, drop strange compile bugfix (now unneeded?), convert to autotools_stage class
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
03ed0dbcae xcb-proto: Drop custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
4523bc1bef xcb-proto: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
f9a857d08c libxslt: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
f8e52056be autoconf: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
71b09b016b mtd-utils: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
f74f080643 libusb: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
837dabc63d Drop gcc-native 3.4.4
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
7541841b56 libxml2: Convert to BBCLASSEXTEND (and drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
b9cac51c38 gettext: Drop old version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:26 +00:00
Richard Purdie
aee10f3029 makedevs: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
1d82f91348 jpeg: Convert to BBCLASSEXTEND (and drop unneeded custom staging function
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
65d097ca22 gperf: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
b8def21047 qemu: Convert to BBCLASSEXTEND (git version only, drop 0.9.1 native/nativesdk versions)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
ffb23018b5 git: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
18fe7edf55 intltool: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
88de83a0dc intltool: Drop old version
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
9a17752a7c shared-mime-info: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
6e642b436f readline: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
3baff56fe6 beecrypt: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
29327b9936 mtools: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:25 +00:00
Richard Purdie
3d6e246188 libidl: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
3a201d0d4b pkgconfig: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
cfc57fd144 ncurses: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
c304734adf libpng: Convert to BBCLASSEXTEND and drop custom staging function as unneeded
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
afc22e54ae curl: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
039a1b4459 bison: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
5c834057cb icu: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
170604d54c gdbm: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
315d4ab7c8 file: Convert to BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
2a4760dfc9 popt: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:24 +00:00
Richard Purdie
677102368b gnu-config: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
20f35974a4 bzip-full-native: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
cd7f623b6f lzo: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
91a071b469 unzip: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
bb4dfbf39b zip: Convert to use BBCLASSEXTEND
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
b5a059ff28 fetch/__init__.py: Try and make the sortable_revision code mode readable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
aaf9b6aa5f base.bbclass: Add an option of forcing the new staging mechanism
Add an option of forcing the new staging mechanism for native packages
that don't use autotools with the NATIVE_INSTALL_WORKS option

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
08d949ee12 base.bbclass: Fix do_populate_staging to operating on TMPDIR, not STAGING_DIR_TARGET
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
379bc4788f classes: Various staging improvement fixups
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
d7399bd56c base.bbclass: Rework staging function to use a DESTDIR style configuration based on the data from the do_install step. This falls back to any standard do_stage function if defined, see the mailing list for more info.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:23 +00:00
Richard Purdie
a1d93ee326 packaged-staging.bbclass: Use a variable for the location of the staging lock file
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
3c83baeb26 native.bbclass: If do_stage isn't overridden, allow do_install to run for native packages
Also let do_install run for packages that run autotools_stage_all directly

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
7c97538327 binconfig/pkgconfig.bbclass: Convert staging functions into SYSROOT_PREPROCESS_FUNCS operating on SYSROOT_DESTDIR
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
6ea78d6489 autotools.bbclass: Separate out useful staging functions into base.bbclass and call from autotools classes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
1383f0fb4c autotools.bbclass: No need to fork sed each time
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
cbcad726fe autotools.bbclass: Convert .la file mangling to package preprocessing hook
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
99cdb59aed binconfig.bbclass: Convert do_install_append() into a PACKAGE_PREPROCESS_FUNCS
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
7501b625b6 package.bbclass: Add the option to declare package preprocess function hooks
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
4b0332c431 package.bbclass: Change to operate on a copy of the install directory instead of directly. Also take the opportunity to rename the temp directories so their function is clear
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
0eee29e451 package.bbclass: Remove hardcoded use of PKGDEST variable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
4f4a3da843 package.bbclass: Move variable checks to one place making the code more readable
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:22 +00:00
Richard Purdie
764f73a033 base.bbclass: Only run do_stage if its been overwritten as the default is empty and its pointless to run it
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:21 +00:00
Richard Purdie
483f85802a bitbake: Sync various functions with those from bitbake-dev and bitbake upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:21 +00:00
Richard Purdie
c2b5a61728 bitbake: Sync module import cleanups back from bitbake trunk
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:21 +00:00
Richard Purdie
1fd3265374 build.py: Fix zero size logfile problems
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:21 +00:00
Richard Purdie
58c01c147c xfce.bbclass: Sync with OE.dev
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-11-13 12:15:21 +00:00
5732 changed files with 427368 additions and 2009819 deletions

13
.gitignore vendored
View File

@@ -1,13 +1,26 @@
*.pyc
*.pyo
build/conf/local.conf
build/conf/bblayers.conf
build/tmp/
build/sstate-cache
build/pyshtables.py
pstage/
scripts/poky-git-proxy-socks
sources/
meta-darwin
meta-maemo
meta-extras
meta-m2
meta-prvt*
poky-autobuilder*
*.swp
*.orig
*.rej
*~
documentation/poky-ref-manual/poky-ref-manual.html
documentation/poky-ref-manual/poky-ref-manual.pdf
documentation/poky-ref-manual/poky-ref-manual.tgz
documentation/poky-ref-manual/bsp-guide.html
documentation/poky-ref-manual/bsp-guide.pdf

220
CHANGELOG Normal file
View File

@@ -0,0 +1,220 @@
commit fd7a07b3a2153826bedda2ef76b9a33ab2791680
Author: Scott Garman <scott.a.garman@intel.com>
Date: Fri Jan 21 14:15:05 2011 -0800
poky-extract-sdk: allow relative paths for extract-dir
psuedo needs a full path to its pid file, so convert
relative extract-dir paths to full ones.
The symptom of this bug is receiving the following error:
pseudo: Couldn't open relative/path/to/var/pseudo/pseudo.pid: No such file or directory
This fixes [BUGID #670]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
commit 01bc47f4d47df3276b4b6c2583bcddd834fd5050
Author: Beth Flanagan <elizabeth.flanagan@intel.com>
Date: Wed Nov 3 17:20:00 2010 -0700
quilt: Fixed configure test for patch --version.
OpenSuSE 11.3 uses GNU patch 2.6.1.81-5b68 which breaks quilt's
configure test for patch version.
Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
commit 12a3d41a24db79ae6c0491defffcf4f4753001cf
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Fri Jan 14 11:57:18 2011 +0000
image.bbclass: Use the dedicated BB_WORKERCONTEXT, not bitbake internals to detect context
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
commit ce4f8356796bc797d9156ed252a4ed638a2150d5
Author: Richard Purdie <rpurdie@linux.intel.com>
Date: Wed Dec 15 23:22:16 2010 +0000
scripts/poky-qemu: Improve tmp layout assumption
If someone has changed TMPDIR in local.conf to a non-standard location, the
poky-qemu script currently doesn't handle this and assumes if BUILDDIR is set,
$BUILDDIR/tmp will exist.
Its simple to check if this exists and if not, to ask bitbake where the
directory is so this patch changes the code to do that.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
commit 54f08d23cd7d0de6aec31f4764389ff4dab2990d
Author: Scott Garman <scott.a.garman@intel.com>
Date: Tue Dec 7 20:59:06 2010 -0800
Make poky-qemu and related scripts work with arbitrary SDK locations
* No longer assume SDK toolchains are installed in /opt/poky
* [BUGFIX #568] where specifying paths to both the kernel and fs
image caused an error due to POKY_NATIVE_SYSROOT never being
set, triggering failure of poky-qemu-ifup/ifdown
* Cosmetic improvements to usage() functions by using basename
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
commit 8a3d0f375ce416ada1a5443e4a8e467504001beb
Author: Scott Garman <scott.a.garman@intel.com>
Date: Fri Nov 12 16:31:13 2010 -0800
poky-qemu: Fix issues when running Yocto 0.9 release images
This fixes two bugs with poky-qemu when it is run from a
standalone meta-toolchain setup.
[BUGFIX #535] and [BUGFIX #536]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
commit 0c2003f13434c77f901a976523478d37d8aadb48
Author: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Thu Dec 16 10:29:50 2010 +0000
openssl: restore -Wall flag
The -Wall flag was unintentionally removed from the end of the CFLAG var in
089612794d4d8d9c79bd2a4365d6df78371f7f40 by me. This patch puts it back in.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
commit 6e71b0a012f0676c06b7b4788d932f320fca0b74
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 14:31:21 2010 +0000
web-webkit: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 4b5c1c053000d297956f08949ffde7454ee33c5d
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 13:42:15 2010 +0000
contacts: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 171e709ae6f4b1a7640bf393f57aa787648cdc0f
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 12:58:09 2010 +0000
dates: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit a8b8557e4cb34b594bb620eb276bcaf7a8e0a8e3
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 12:27:52 2010 +0000
owl-video-widget: fix Makefile for super strict make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 399e6b8008cb0b8cc0b75efd48dd821a6cf5a8a8
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 18:29:43 2010 +0000
libowl-av: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 290280b332570ec73301f76765b1c5f2de20a9fd
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 17:56:53 2010 +0000
gst-plugins: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 9e11fbf9048b17526ca8160d82b69f386595c9a7
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 15:39:42 2010 +0000
gstreamer: fix to comply with make 3.82's stricter parser
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 0f8244faba5c36c0580081c112ea27ce683af99b
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 12:49:13 2010 +0000
linux-libc-headers: fix for Make 3.82
Fix the kernel Makefile for use with Make 3.82 by splitting mixed implicit and
normal rules into separate rules.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 0cc23a86562d0ce1e236ceb4a56a8f19d400192f
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 12:21:33 2010 +0000
busybox: additional fixes for Make 3.82
There where still some mixed implicit and normal rules in the Busybox Makefile,
Update our existing make-382.patch to split these into separate rules.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 30c39cc97c384134661300e107d7a81f257f8034
Author: Joshua Lock <josh@linux.intel.com>
Date: Fri Nov 12 16:36:54 2010 +0000
procps: fix for build against make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 261ca885962ba9606bcad4c5415927a79fdd7b96
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Nov 9 12:18:14 2010 +0000
busybox: import upstream patch for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 72ddd5c20246a5d5b1752b58a61ef75b4c39cc40
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Nov 9 12:14:28 2010 +0000
eglibc: fix build of eglibc-initial for make 3.82
Make 3.82, as shipped with Fedora 14, fixes some holes in the parser which in
turn breaks behaviour of some Makefiles. Most notably eglibc's.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 6026999e81042a7f6560f9bce04390865509b235
Author: Paul Eggleton <paul.eggleton@intel.com>
Date: Fri Nov 19 15:03:32 2010 +0000
qemu: fix failure to find zlib header files during configure
Corrects problems during configure of qemu-native due to the BUILD_CFLAGS
not being included when attempting to compile the test program for zlib
within the configure script.
Signed-off-by: Paul Eggleton <paul.eggleton@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
commit c5ab4d56f97a0e45b124d40c9f536541be04c201
Author: Paul Eggleton <paul.eggleton@intel.com>
Date: Wed Nov 17 11:37:47 2010 +0000
openssl-native: disable execstack flag to prevent problems with SELinux
The execstack flag gets set on libcrypto.so by default which causes SELinux
to prevent it from being loaded on systems using SELinux, which includes
Fedora. This patch disables the execstack flag. (Note: Red Hat do this in
their openssl packaging.)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>

View File

@@ -5,7 +5,10 @@ bitbake/COPYING (GPLv2)
meta/COPYING.MIT (MIT)
meta-extras/COPYING.MIT (MIT)
which cover the components in those subdirectories.
which cover the components in those subdirectories. This means all
metadata is MIT licensed unless otherwise stated. Source code included
in tree for individual recipes is under the LICENSE stated in the .bb
file for those software projects unless otherwise stated.
License information for any other files is either explicitly stated
or defaults to GPL version 2.

70
NOTES Normal file
View File

@@ -0,0 +1,70 @@
Name: Laverne
Version: 4.0.1
Built from Revision: fd7a07b3a2153826bedda2ef76b9a33ab2791680
Build Date: Jan 26 2011
Builder: autobuilder.pokylinux.org
The Laverne 4.0.1 Release ensures you can use Poky Laverne on systems running
Fedora 14 and Opensuse 11.3, fixes issues with the poky-qemu script, and fixes
several other bugs. For the full changelog for Laverne 4.0.1 please read
CHANGELOG.
Following are descriptions of fixes and known issues.
Fixes
------------------------
* Make 3.82, as shipped with Fedora 14, included parser bug fixes that
resulted in a much stricter parser. As a result, the Makefiles could not be
parsed for many of the software versions shipped with Laverne. The Makefiles
in the following recipes were fixed:
o eglibc
o busybox
o procps
o linux-libc-headers
o gstreamer
o gst-plugins
o libowl-av
o owl-video-widget
o dates
o contacts
o web-webkit
* The ability to build openssl-native on a system that has SELINUX enabled
was restored. (We disabled the execstack flag at compile time.)
* A host-intrusion issue caused by a failure in QEMU to find zlib headers
during configure was fixed. The issue was causing qemu-native to use the
system zlib if it was present. If the system zlib was not present the build
would fail.
* Stability and usability enhancements, which included handling relative
filesystem paths, were made to poky-qemu scripts.
* The run-time remapping of package names when adding extra packages to an
image via the IMAGE_INSTALL mechanism were fixed.
* The configure test in quilt for GNU patch was fixed to that it correctly
detects the version.
Known Issues
------------------------
* The mpc3815e-rbd and routerstationpro machines were untested and not a
part of the official Laverne 4.0 release. These machines are still unusable
for this Laverne 4.0.1 release.
o mpx3815e-rdb will not boot due to a kernel/uboot issue Bug #685
o routerstation will not boot (by default) due to incorrect boot
parameters Bug #681
o routerstationpro debug messages related to the ethernet driver print
during boot Bug #679
* Shutdown/poweroff on qemuarm does not cleanly halt the virtual machine.
To workaround this issue use the reboot command. Using this command avoids
a "power-cycle" and instead cleanly shuts down the VM Bug #684
* Two "Connection Manager" icons appear in the Sato UI. This duplication has
been fixed in master. Note that you can use either icon to launch the
connectivity UI. Bug #683
* The on-screen keyboard incorrectly launches in the qemumips machine. This
issue is due to a mis-configured formfactor file Bug #682

View File

@@ -1,10 +0,0 @@
Tim Ansell <mithro@mithis.net>
Phil Blundell <pb@handhelds.org>
Seb Frankengul <seb@frankengul.org>
Holger Freyther <zecke@handhelds.org>
Marcin Juszkiewicz <marcin@haerwu.biz>
Chris Larson <kergoth@handhelds.org>
Ulrich Luckas <luckas@musoft.de>
Mickey Lauer <mickey@Vanille.de>
Richard Purdie <rpurdie@rpsys.net>
Holger Schurig <holgerschurig@gmx.de>

View File

@@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -1,315 +0,0 @@
Changes in Bitbake 1.9.x:
- Add PE (Package Epoch) support from Philipp Zabel (pH5)
- Treat python functions the same as shell functions for logging
- Use TMPDIR/anonfunc as a __anonfunc temp directory (T)
- Catch truncated cache file errors
- Allow operations other than assignment on flag variables
- Add code to handle inter-task dependencies
- Fix cache errors when generation dotGraphs
- Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
- Fix bug when target was in ASSUME_PROVIDED (#2236)
- Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
- Fix invalid regexp in BBMASK error handling (missing import) (#1124)
- Promote certain warnings from debug to note 2 level
- Update manual
- Correctly redirect stdin when forking
- If parsing errors are found, exit, too many users miss the errors
- Remove supriours PREFERRED_PROVIDER warnings
- svn fetcher: Add _buildsvncommand function
- Improve certain error messages
- Rewrite svn fetcher to make adding extra operations easier
as part of future SRCDATE="now" fixes
(requires new FETCHCMD_svn definition in bitbake.conf)
- Change SVNDIR layout to be more unique (fixes #2644 and #2624)
- Add ConfigParsed Event after configuration parsing is complete
- Add SRCREV support for svn fetcher
- data.emit_var() - only call getVar if we need the variable
- Stop generating the A variable (seems to be legacy code)
- Make sure intertask depends get processed correcting in recursive depends
- Add pn-PN to overrides when evaluating PREFERRED_VERSION
- Improve the progress indicator by skipping tasks that have
already run before starting the build rather than during it
- Add profiling option (-P)
- Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
- Add SRCREV_FORMAT support
- Fix local fetcher's localpath return values
- Apply OVERRIDES before performing immediate expansions
- Allow the -b -e option combination to take regular expressions
- Fix handling of variables with expansion in the name using _append/_prepend
e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
- Add plain message function to bb.msg
- Sort the list of providers before processing so dependency problems are
reproducible rather than effectively random
- Fix/improve bitbake -s output
- Add locking for fetchers so only one tries to fetch a given file at a given time
- Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
- Expand data in addtasks
- Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
error message.
- Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
- Sort digraph output to make builds more reproducible
- Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
- runqueue.py: Fix idepends handling to avoid dependency errors
- Clear the terminal TOSTOP flag if set (and warn the user)
- Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
- Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
- Warn about malformed PREFERRED_PROVIDERS (#1072)
- Add support for BB_NICE_LEVEL option (#1627)
- Psyco is used only on x86 as there is no support for other architectures.
- Sort initial providers list by default preference (#1145, #2024)
- Improve provider sorting so prefered versions have preference over latest versions (#768)
- Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
- Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
- Handle paths in svn fetcher module parameter
- Support the syntax "export VARIABLE"
- Add bzr fetcher
- Add support for cleaning directories before a task in the form:
do_taskname[cleandirs] = "dir"
- bzr fetcher tweaks from Robert Schuster (#2913)
- Add mercurial (hg) fetcher from Robert Schuster (#2913)
- Don't add duplicates to BBPATH
- Fix preferred_version return values (providers.py)
- Fix 'depends' flag splitting
- Fix unexport handling (#3135)
- Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
- Allow multiple options for deptask flag
- Use git-fetch instead of git-pull removing any need for merges when
fetching (we don't care about the index). Fixes fetch errors.
- Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches
faster at the expense of not creating mirror tarballs.
- SRCREV handling updates, improvements and fixes from Poky
- Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
- Add support for task selfstamp and lockfiles flags
- Disable task number acceleration since it can allow the tasks to run
out of sequence
- Improve runqueue code comments
- Add task scheduler abstraction and some example schedulers
- Improve circular dependency chain debugging code and user feedback
- Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
- Add support for "-e target" (#3432)
- Fix shell showdata command (#3259)
- Fix shell data updating problems (#1880)
- Properly raise errors for invalid source URI protocols
- Change the wget fetcher failure handling to avoid lockfile problems
- Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
- Make taskdata and runqueue errors more user friendly
- Add norecurse and fullpath options to cvs fetcher
- Fix exit code for build failures in --continue mode
- Fix git branch tags fetching
- Change parseConfigurationFile so it works on real data, not a copy
- Handle 'base' inherit and all other INHERITs from parseConfigurationFile
instead of BBHandler
- Fix getVarFlags bug in data_smart
- Optmise cache handling by more quickly detecting an invalid cache, only
saving the cache when its changed, moving the cache validity check into
the parsing loop and factoring some getVar calls outside a for loop
- Cooker: Remove a debug message from the parsing loop to lower overhead
- Convert build.py exec_task to use getVarFlags
- Update shell to use cooker.buildFile
- Add StampUpdate event
- Convert -b option to use taskdata/runqueue
- Remove digraph and switch to new stamp checking code. exec_task no longer
honours dependencies
- Make fetcher timestamp updating non-fatal when permissions don't allow
updates
- Add BB_SCHEDULER variable/option ("completion" or "speed") controlling
the way bitbake schedules tasks
- Add BB_STAMP_POLICY variable/option ("perfile" or "full") controlling
how extensively stamps are looked at for validity
- When handling build target failures make sure idepends are checked and
failed where needed. Fixes --continue mode crashes.
- Fix -f (force) in conjunction with -b
- Fix problems with recrdeptask handling where some idepends weren't handled
correctly.
- Handle exit codes correctly (from pH5)
- Work around refs/HEAD issues with git over http (#3410)
- Add proxy support to the CVS fetcher (from Cyril Chemparathy)
- Improve runfetchcmd so errors are seen and various GIT variables are exported
- Add ability to fetchers to check URL validity without downloading
- Improve runtime PREFERRED_PROVIDERS warning message
- Add BB_STAMP_WHITELIST option which contains a list of stamps to ignore when
checking stamp dependencies and using a BB_STAMP_POLICY of "whitelist"
- No longer weight providers on the basis of a package being "already staged". This
leads to builds being non-deterministic.
- Flush stdout/stderr before forking to fix duplicate console output
- Make sure recrdeps tasks include all inter-task dependencies of a given fn
- Add bb.runqueue.check_stamp_fn() for use by packaged-staging
- Add PERSISTENT_DIR to store the PersistData in a persistent
directory != the cache dir.
- Add md5 and sha256 checksum generation functions to utils.py
- Correctly handle '-' characters in class names (#2958)
- Make sure expandKeys has been called on the data dictonary before running tasks
- Correctly add a task override in the form task-TASKNAME.
- Revert the '-' character fix in class names since it breaks things
- When a regexp fails to compile for PACKAGES_DYNAMIC, print a more useful error (#4444)
- Allow to checkout CVS by Date and Time. Just add HHmm to the SRCDATE.
- Move prunedir function to utils.py and add explode_dep_versions function
- Raise an exception if SRCREV == 'INVALID'
- Fix hg fetcher username/password handling and fix crash
- Fix PACKAGES_DYNAMIC handling of packages with '++' in the name
- Rename __depends to __base_depends after configuration parsing so we don't
recheck the validity of the config files time after time
- Add better environmental variable handling. By default it will now only pass certain
whitelisted variables into the data store. If BB_PRESERVE_ENV is set bitbake will use
all variable from the environment. If BB_ENV_WHITELIST is set, that whitelist will be
used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used
to extend the internal whitelist.
- Perforce fetcher fix to use commandline options instead of being overriden by the environment
- bb.utils.prunedir can cope with symlinks to directoriees without exceptions
- use @rev when doing a svn checkout
- Add osc fetcher (from Joshua Lock in Poky)
- When SRCREV autorevisioning for a recipe is in use, don't cache the recipe
- Add tryaltconfigs option to control whether bitbake trys using alternative providers
to fulfil failed dependencies. It defaults to off, changing the default since this
behaviour confuses many users and isn't often useful.
- Improve lock file function error handling
- Add username handling to the git fetcher (Robert Bragg)
- Add support for HTTP_PROXY and HTTP_PROXY_IGNORE variables to the wget fetcher
- Export more variables to the fetcher commands to allow ssh checkouts and checkouts through
proxies to work better. (from Poky)
- Also allow user and pswd options in SRC_URIs globally (from Poky)
- Improve proxy handling when using mirrors (from Poky)
- Add bb.utils.prune_suffix function
- Fix hg checkouts of specific revisions (from Poky)
- Fix wget fetching of urls with parameters specified (from Poky)
- Add username handling to git fetcher (from Poky)
- Set HOME environmental variable when running fetcher commands (from Poky)
- Make sure allowed variables inherited from the environment are exported again (from Poky)
- When running a stage task in bbshell, run populate_staging, not the stage task (from Poky)
Changes in Bitbake 1.8.0:
- Release 1.7.x as a stable series
Changes in BitBake 1.7.x:
- Major updates of the dependency handling and execution
of tasks. Code from bin/bitbake replaced with runqueue.py
and taskdata.py
- New task execution code supports multithreading with a simplistic
threading algorithm controlled by BB_NUMBER_THREADS
- Change of the SVN Fetcher to keep the checkout around
courtsey of Paul Sokolovsky (#1367)
- PATH fix to bbimage (#1108)
- Allow debug domains to be specified on the commandline (-l)
- Allow 'interactive' tasks
- Logging message improvements
- Drop now uneeded BUILD_ALL_DEPS variable
- Add support for wildcards to -b option
- Major overhaul of the fetchers making a large amount of code common
including mirroring code
- Fetchers now touch md5 stamps upon access (to show activity)
- Fix -f force option when used without -b (long standing bug)
- Add expand_cache to data_cache.py, caching expanded data (speedup)
- Allow version field in DEPENDS (ignored for now)
- Add abort flag support to the shell
- Make inherit fail if the class doesn't exist (#1478)
- Fix data.emit_env() to expand keynames as well as values
- Add ssh fetcher
- Add perforce fetcher
- Make PREFERRED_PROVIDER_foobar defaults to foobar if available
- Share the parser's mtime_cache, reducing the number of stat syscalls
- Compile all anonfuncs at once!
*** Anonfuncs must now use common spacing format ***
- Memorise the list of handlers in __BBHANDLERS and tasks in __BBTASKS
This removes 2 million function calls resulting in a 5-10% speedup
- Add manpage
- Update generateDotGraph to use taskData/runQueue improving accuracy
and also adding a task dependency graph
- Fix/standardise on GPLv2 licence
- Move most functionality from bin/bitbake to cooker.py and split into
separate funcitons
- CVS fetcher: Added support for non-default port
- Add BBINCLUDELOGS_LINES, the number of lines to read from any logfile
- Drop shebangs from lib/bb scripts
Changes in Bitbake 1.6.0:
- Better msg handling
- COW dict implementation from Tim Ansell (mithro) leading
to better performance
- Speed up of -s
Changes in Bitbake 1.4.4:
- SRCDATE now handling courtsey Justin Patrin
- #1017 fix to work with rm_work
Changes in BitBake 1.4.2:
- Send logs to oe.pastebin.com instead of pastebin.com
fixes #856
- Copy the internal bitbake data before building the
dependency graph. This fixes nano not having a
virtual/libc dependency
- Allow multiple TARBALL_STASH entries
- Cache, check if the directory exists before changing
into it
- git speedup cloning by not doing a checkout
- allow to have spaces in filenames (.conf, .bb, .bbclass)
Changes in BitBake 1.4.0:
- Fix to check both RDEPENDS and RDEPENDS_${PN}
- Fix a RDEPENDS parsing bug in utils:explode_deps()
- Update git fetcher behaviour to match git changes
- ASSUME_PROVIDED allowed to include runtime packages
- git fetcher cleanup and efficency improvements
- Change the format of the cache
- Update usermanual to document the Fetchers
- Major changes to caching with a new strategy
giving a major performance increase when reparsing
with few data changes
Changes in BitBake 1.3.3:
- Create a new Fetcher module to ease the
development of new Fetchers.
Issue #438 fixed by rpurdie@openedhand.com
- Make the Subversion fetcher honor the SRC Date
(CVSDATE).
Issue #555 fixed by chris@openedhand.com
- Expand PREFERRED_PROVIDER properly
Issue #436 fixed by rprudie@openedhand.com
- Typo fix for Issue #531 by Philipp Zabel for the
BitBake Shell
- Introduce a new special variable SRCDATE as
a generic naming to replace CVSDATE.
- Introduce a new keyword 'required'. In contrast
to 'include' parsing will fail if a to be included
file can not be found.
- Remove hardcoding of the STAMP directory. Patch
courtsey pHilipp Zabel
- Track the RDEPENDS of each package (rpurdie@openedhand.com)
- Introduce BUILD_ALL_DEPS to build all RDEPENDS. E.g
this is used by the OpenEmbedded Meta Packages.
(rpurdie@openedhand.com).
Changes in BitBake 1.3.2:
- reintegration of make.py into BitBake
- bbread is gone, use bitbake -e
- lots of shell updates and bugfixes
- Introduction of the .= and =. operator
- Sort variables, keys and groups in bitdoc
- Fix regression in the handling of BBCOLLECTIONS
- Update the bitbake usermanual
Changes in BitBake 1.3.0:
- add bitbake interactive shell (bitbake -i)
- refactor bitbake utility in OO style
- kill default arguments in methods in the bb.data module
- kill default arguments in methods in the bb.fetch module
- the http/https/ftp fetcher will fail if the to be
downloaded file was not found in DL_DIR (this is needed
to avoid unpacking the sourceforge mirror page)
- Switch to a cow like data instance for persistent and non
persisting mode (called data_smart.py)
- Changed the callback of bb.make.collect_bbfiles to carry
additional parameters
- Drastically reduced the amount of needed RAM by not holding
each data instance in memory when using a cache/persistent
storage
Changes in BitBake 1.2.1:
The 1.2.1 release is meant as a intermediate release to lay the
ground for more radical changes. The most notable changes are:
- Do not hardcode {}, use bb.data.init() instead if you want to
get a instance of a data class
- bb.data.init() is a factory and the old bb.data methods are delegates
- Do not use deepcopy use bb.data.createCopy() instead.
- Removed default arguments in bb.fetch

View File

@@ -1,207 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys, os, getopt, re, time, optparse, xmlrpclib
sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb
from bb import cooker
from bb import daemonize
from bb import ui
from bb.ui import uievent
__version__ = "1.9.0"
if sys.hexversion < 0x020600F0:
print "Sorry, python 2.6 or later is required for this version of bitbake"
sys.exit(1)
#============================================================================#
# BBOptions
#============================================================================#
class BBConfiguration( object ):
"""
Manages build options and configurations for one run
"""
def __init__( self, options ):
for key, val in options.__dict__.items():
setattr( self, key, val )
def print_exception(exc, value, tb):
"""
Print the exception to stderr, only showing the traceback if bitbake
debugging is enabled.
"""
if not bb.msg.debug_level['default']:
tb = None
sys.__excepthook__(exc, value, tb)
#============================================================================#
# main
#============================================================================#
def main():
return_value = 0
pythonver = sys.version_info
if pythonver[0] < 2 or (pythonver[0] == 2 and pythonver[1] < 5):
print "Sorry, bitbake needs python 2.5 or later."
sys.exit(1)
parser = optparse.OptionParser( version = "BitBake Build Tool Core version %s, %%prog version %s" % ( bb.__version__, __version__ ),
usage = """%prog [options] [package ...]
Executes the specified task (default is 'build') for a given set of BitBake files.
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
Default BBFILES are the .bb files in the current directory.""" )
parser.add_option( "-b", "--buildfile", help = "execute the task against this .bb file, rather than a package from BBFILES.",
action = "store", dest = "buildfile", default = None )
parser.add_option( "-k", "--continue", help = "continue as much as possible after an error. While the target that failed, and those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
action = "store_false", dest = "abort", default = True )
parser.add_option( "-a", "--tryaltconfigs", help = "continue with builds by trying to use alternative providers where possible.",
action = "store_true", dest = "tryaltconfigs", default = False )
parser.add_option( "-f", "--force", help = "force run of specified cmd, regardless of stamp status",
action = "store_true", dest = "force", default = False )
parser.add_option( "-i", "--interactive", help = "drop into the interactive mode also called the BitBake shell.",
action = "store_true", dest = "interactive", default = False )
parser.add_option( "-c", "--cmd", help = "Specify task to execute. Note that this only executes the specified task for the providee and the packages it depends on, i.e. 'compile' does not implicitly call stage for the dependencies (IOW: use only if you know what you are doing). Depending on the base.bbclass a listtasks tasks is defined and will show available tasks",
action = "store", dest = "cmd" )
parser.add_option( "-r", "--read", help = "read the specified file before bitbake.conf",
action = "append", dest = "file", default = [] )
parser.add_option( "-v", "--verbose", help = "output more chit-chat to the terminal",
action = "store_true", dest = "verbose", default = False )
parser.add_option( "-D", "--debug", help = "Increase the debug level. You can specify this more than once.",
action = "count", dest="debug", default = 0)
parser.add_option( "-n", "--dry-run", help = "don't execute, just go through the motions",
action = "store_true", dest = "dry_run", default = False )
parser.add_option( "-p", "--parse-only", help = "quit after parsing the BB files (developers only)",
action = "store_true", dest = "parse_only", default = False )
parser.add_option( "-d", "--disable-psyco", help = "disable using the psyco just-in-time compiler (not recommended)",
action = "store_true", dest = "disable_psyco", default = False )
parser.add_option( "-s", "--show-versions", help = "show current and preferred versions of all packages",
action = "store_true", dest = "show_versions", default = False )
parser.add_option( "-e", "--environment", help = "show the global or per-package environment (this is what used to be bbread)",
action = "store_true", dest = "show_environment", default = False )
parser.add_option( "-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax",
action = "store_true", dest = "dot_graph", default = False )
parser.add_option( "-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",
action = "append", dest = "extra_assume_provided", default = [] )
parser.add_option( "-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
action = "append", dest = "debug_domains", default = [] )
parser.add_option( "-P", "--profile", help = "profile the command and print a report",
action = "store_true", dest = "profile", default = False )
parser.add_option( "-u", "--ui", help = "userinterface to use",
action = "store", dest = "ui")
parser.add_option( "", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
action = "store_true", dest = "revisions_changed", default = False )
options, args = parser.parse_args(sys.argv)
configuration = BBConfiguration(options)
configuration.pkgs_to_build = []
configuration.pkgs_to_build.extend(args[1:])
cooker = bb.cooker.BBCooker(configuration)
# Clear away any spurious environment variables. But don't wipe the
# environment totally. This is necessary to ensure the correct operation
# of the UIs (e.g. for DISPLAY, etc.)
bb.utils.clean_environment()
cooker.parseCommandLine()
host = cooker.server.host
port = cooker.server.port
# Save a logfile for cooker into the current working directory. When the
# server is daemonized this logfile will be truncated.
cooker_logfile = os.path.join (os.getcwd(), "cooker.log")
daemonize.createDaemon(cooker.serve, cooker_logfile)
del cooker
# Setup a connection to the server (cooker)
server = xmlrpclib.Server("http://%s:%s" % (host, port), allow_none=True)
# Setup an event receiving queue
eventHandler = uievent.BBUIEventQueue(server)
# Launch the UI
if configuration.ui:
ui = configuration.ui
else:
ui = "knotty"
try:
# Dynamically load the UI based on the ui name. Although we
# suggest a fixed set this allows you to have flexibility in which
# ones are available.
exec "from bb.ui import " + ui
exec "return_value = " + ui + ".init(server, eventHandler)"
except ImportError:
print "FATAL: Invalid user interface '%s' specified. " % ui
print "Valid interfaces are 'ncurses', 'depexp' or the default, 'knotty'."
except Exception, e:
print "FATAL: Unable to start to '%s' UI: %s." % (configuration.ui, e.message)
finally:
# Don't wait for server indefinitely
import socket
socket.setdefaulttimeout(2)
try:
eventHandler.system_quit()
except:
pass
try:
server.terminateServer()
except:
pass
return return_value
if __name__ == "__main__":
print """WARNING, WARNING, WARNING
This is a Bitbake from the Unstable/Development 1.9 Branch. This software is a work in progress and should only be used by Bitbake developers/testers"""
ret = main()
sys.exit(ret)

View File

@@ -1,534 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import optparse, os, sys
# bitbake
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb
import bb.parse
from string import split, join
__version__ = "0.0.2"
class HTMLFormatter:
"""
Simple class to help to generate some sort of HTML files. It is
quite inferior solution compared to docbook, gtkdoc, doxygen but it
should work for now.
We've a global introduction site (index.html) and then one site for
the list of keys (alphabetical sorted) and one for the list of groups,
one site for each key with links to the relations and groups.
index.html
all_keys.html
all_groups.html
groupNAME.html
keyNAME.html
"""
def replace(self, text, *pairs):
"""
From pydoc... almost identical at least
"""
while pairs:
(a,b) = pairs[0]
text = join(split(text, a), b)
pairs = pairs[1:]
return text
def escape(self, text):
"""
Escape string to be conform HTML
"""
return self.replace(text,
('&', '&amp;'),
('<', '&lt;' ),
('>', '&gt;' ) )
def createNavigator(self):
"""
Create the navgiator
"""
return """<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="g" href="index.html">Home</a></td>
<td><a accesskey="n" href="all_groups.html">Groups</a></td>
<td><a accesskey="u" href="all_keys.html">Keys</a></td>
</tr></table>
"""
def relatedKeys(self, item):
"""
Create HTML to link to foreign keys
"""
if len(item.related()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for it in item.related():
txts.append("""<a href="key%(it)s.html">%(it)s</a>""" % vars() )
return txt + ",".join(txts)
def groups(self,item):
"""
Create HTML to link to related groups
"""
if len(item.groups()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for group in item.groups():
txts.append( """<a href="group%s.html">%s</a> """ % (group,group) )
return txt + ",".join(txts)
def createKeySite(self,item):
"""
Create a site for a key. It contains the header/navigator, a heading,
the description, links to related keys and to the groups.
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2><span class="refentrytitle">%s</span></h2>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Related Keys</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Groups</h2>
<p>
%s
</p>
</div>
</body>
""" % (item.name(), self.createNavigator(), item.name(),
self.escape(item.description()), self.relatedKeys(item), self.groups(item))
def createGroupsSite(self, doc):
"""
Create the Group Overview site
"""
groups = ""
sorted_groups = doc.groups()
sorted_groups.sort()
for group in sorted_groups:
groups += """<a href="group%s.html">%s</a><br>""" % (group, group)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Groups</h2>
%s
</body>
""" % (self.createNavigator(), groups)
def createIndex(self):
"""
Create the index file
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Bitbake Documentation</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Documentation Entrance</h2>
<a href="all_groups.html">All available groups</a><br>
<a href="all_keys.html">All available keys</a><br>
</body>
""" % self.createNavigator()
def createKeysSite(self, doc):
"""
Create Overview of all avilable keys
"""
keys = ""
sorted_keys = doc.doc_keys()
sorted_keys.sort()
for key in sorted_keys:
keys += """<a href="key%s.html">%s</a><br>""" % (key, key)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Keys</h2>
%s
</body>
""" % (self.createNavigator(), keys)
def createGroupSite(self, gr, items, _description = None):
"""
Create a site for a group:
Group the name of the group, items contain the name of the keys
inside this group
"""
groups = ""
description = ""
# create a section with the group descriptions
if _description:
description += "<h2 Description of Grozp %s</h2>" % gr
description += _description
items.sort(lambda x,y:cmp(x.name(),y.name()))
for group in items:
groups += """<a href="key%s.html">%s</a><br>""" % (group.name(), group.name())
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
%s
<div class="refsynopsisdiv">
<h2>Keys in Group %s</h2>
<pre class="synopsis">
%s
</pre>
</div>
</body>
""" % (gr, self.createNavigator(), description, gr, groups)
def createCSS(self):
"""
Create the CSS file
"""
return """.synopsis, .classsynopsis
{
background: #eeeeee;
border: solid 1px #aaaaaa;
padding: 0.5em;
}
.programlisting
{
background: #eeeeff;
border: solid 1px #aaaaff;
padding: 0.5em;
}
.variablelist
{
padding: 4px;
margin-left: 3em;
}
.variablelist td:first-child
{
vertical-align: top;
}
table.navigation
{
background: #ffeeee;
border: solid 1px #ffaaaa;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.navigation a
{
color: #770000;
}
.navigation a:visited
{
color: #550000;
}
.navigation .title
{
font-size: 200%;
}
div.refnamediv
{
margin-top: 2em;
}
div.gallery-float
{
float: left;
padding: 10px;
}
div.gallery-float img
{
border-style: none;
}
div.gallery-spacer
{
clear: both;
}
a
{
text-decoration: none;
}
a:hover
{
text-decoration: underline;
color: #FF0000;
}
"""
class DocumentationItem:
"""
A class to hold information about a configuration
item. It contains the key name, description, a list of related names,
and the group this item is contained in.
"""
def __init__(self):
self._groups = []
self._related = []
self._name = ""
self._desc = ""
def groups(self):
return self._groups
def name(self):
return self._name
def description(self):
return self._desc
def related(self):
return self._related
def setName(self, name):
self._name = name
def setDescription(self, desc):
self._desc = desc
def addGroup(self, group):
self._groups.append(group)
def addRelation(self,relation):
self._related.append(relation)
def sort(self):
self._related.sort()
self._groups.sort()
class Documentation:
"""
Holds the documentation... with mappings from key to items...
"""
def __init__(self):
self.__keys = {}
self.__groups = {}
def insert_doc_item(self, item):
"""
Insert the Doc Item into the internal list
of representation
"""
item.sort()
self.__keys[item.name()] = item
for group in item.groups():
if not group in self.__groups:
self.__groups[group] = []
self.__groups[group].append(item)
self.__groups[group].sort()
def doc_item(self, key):
"""
Return the DocumentationInstance describing the key
"""
try:
return self.__keys[key]
except KeyError:
return None
def doc_keys(self):
"""
Return the documented KEYS (names)
"""
return self.__keys.keys()
def groups(self):
"""
Return the names of available groups
"""
return self.__groups.keys()
def group_content(self,group_name):
"""
Return a list of keys/names that are in a specefic
group or the empty list
"""
try:
return self.__groups[group_name]
except KeyError:
return []
def parse_cmdline(args):
"""
Parse the CMD line and return the result as a n-tuple
"""
parser = optparse.OptionParser( version = "Bitbake Documentation Tool Core version %s, %%prog version %s" % (bb.__version__,__version__))
usage = """%prog [options]
Create a set of html pages (documentation) for a bitbake.conf....
"""
# Add the needed options
parser.add_option( "-c", "--config", help = "Use the specified configuration file as source",
action = "store", dest = "config", default = os.path.join("conf", "documentation.conf") )
parser.add_option( "-o", "--output", help = "Output directory for html files",
action = "store", dest = "output", default = "html/" )
parser.add_option( "-D", "--debug", help = "Increase the debug level",
action = "count", dest = "debug", default = 0 )
parser.add_option( "-v","--verbose", help = "output more chit-char to the terminal",
action = "store_true", dest = "verbose", default = False )
options, args = parser.parse_args( sys.argv )
if options.debug:
bb.msg.set_debug_level(options.debug)
return options.config, options.output
def main():
"""
The main Method
"""
(config_file,output_dir) = parse_cmdline( sys.argv )
# right to let us load the file now
try:
documentation = bb.parse.handle( config_file, bb.data.init() )
except IOError:
bb.fatal( "Unable to open %s" % config_file )
except bb.parse.ParseError:
bb.fatal( "Unable to parse %s" % config_file )
if isinstance(documentation, dict):
documentation = documentation[""]
# Assuming we've the file loaded now, we will initialize the 'tree'
doc = Documentation()
# defined states
state_begin = 0
state_see = 1
state_group = 2
for key in bb.data.keys(documentation):
data = bb.data.getVarFlag(key, "doc", documentation)
if not data:
continue
# The Documentation now starts
doc_ins = DocumentationItem()
doc_ins.setName(key)
tokens = data.split(' ')
state = state_begin
string= ""
for token in tokens:
token = token.strip(',')
if not state == state_see and token == "@see":
state = state_see
continue
elif not state == state_group and token == "@group":
state = state_group
continue
if state == state_begin:
string += " %s" % token
elif state == state_see:
doc_ins.addRelation(token)
elif state == state_group:
doc_ins.addGroup(token)
# set the description
doc_ins.setDescription(string)
doc.insert_doc_item(doc_ins)
# let us create the HTML now
bb.mkdirhier(output_dir)
os.chdir(output_dir)
# Let us create the sites now. We do it in the following order
# Start with the index.html. It will point to sites explaining all
# keys and groups
html_slave = HTMLFormatter()
f = file('style.css', 'w')
print >> f, html_slave.createCSS()
f = file('index.html', 'w')
print >> f, html_slave.createIndex()
f = file('all_groups.html', 'w')
print >> f, html_slave.createGroupsSite(doc)
f = file('all_keys.html', 'w')
print >> f, html_slave.createKeysSite(doc)
# now for each group create the site
for group in doc.groups():
f = file('group%s.html' % group, 'w')
print >> f, html_slave.createGroupSite(group, doc.group_content(group))
# now for the keys
for key in doc.doc_keys():
f = file('key%s.html' % doc.doc_item(key).name(), 'w')
print >> f, html_slave.createKeySite(doc.doc_item(key))
if __name__ == "__main__":
main()

View File

@@ -1,318 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# This is a copy on write dictionary and set which abuses classes to try and be nice and fast.
#
# Copyright (C) 2006 Tim Amsell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#Please Note:
# Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW.
# Assign a file to __warn__ to get warnings about slow operations.
#
import copy
import types
types.ImmutableTypes = tuple([ \
types.BooleanType, \
types.ComplexType, \
types.FloatType, \
types.IntType, \
types.LongType, \
types.NoneType, \
types.TupleType, \
frozenset] + \
list(types.StringTypes))
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
__marker__ = tuple()
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
copy = cow
__call__ = cow
def __setitem__(cls, key, value):
if not isinstance(value, types.ImmutableTypes):
if not isinstance(value, COWMeta):
cls.__hasmutable__ = True
key += MUTABLE
setattr(cls, key, value)
def __getmutable__(cls, key, readonly=False):
nkey = key + MUTABLE
try:
return cls.__dict__[nkey]
except KeyError:
pass
value = getattr(cls, nkey)
if readonly:
return value
if not cls.__warn__ is False and not isinstance(value, COWMeta):
print >> cls.__warn__, "Warning: Doing a copy because %s is a mutable type." % key
try:
value = value.copy()
except AttributeError, e:
value = copy.copy(value)
setattr(cls, nkey, value)
return value
__getmarker__ = []
def __getreadonly__(cls, key, default=__getmarker__):
"""\
Get a value (even if mutable) which you promise not to change.
"""
return cls.__getitem__(key, default, True)
def __getitem__(cls, key, default=__getmarker__, readonly=False):
try:
try:
value = getattr(cls, key)
except AttributeError:
value = cls.__getmutable__(key, readonly)
# This is for values which have been deleted
if value is cls.__marker__:
raise AttributeError("key %s does not exist." % key)
return value
except AttributeError, e:
if not default is cls.__getmarker__:
return default
raise KeyError(str(e))
def __delitem__(cls, key):
cls.__setitem__(key, cls.__marker__)
def __revertitem__(cls, key):
if not cls.__dict__.has_key(key):
key += MUTABLE
delattr(cls, key)
def has_key(cls, key):
value = cls.__getreadonly__(key, cls.__marker__)
if value is cls.__marker__:
return False
return True
def iter(cls, type, readonly=False):
for key in dir(cls):
if key.startswith("__"):
continue
if key.endswith(MUTABLE):
key = key[:-len(MUTABLE)]
if type == "keys":
yield key
try:
if readonly:
value = cls.__getreadonly__(key)
else:
value = cls[key]
except KeyError:
continue
if type == "values":
yield value
if type == "items":
yield (key, value)
raise StopIteration()
def iterkeys(cls):
return cls.iter("keys")
def itervalues(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print >> cls.__warn__, "Warning: If you arn't going to change any of the values call with True."
return cls.iter("values", readonly)
def iteritems(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print >> cls.__warn__, "Warning: If you arn't going to change any of the values call with True."
return cls.iter("items", readonly)
class COWSetMeta(COWDictMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) -3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
def add(cls, value):
COWDictMeta.__setitem__(cls, repr(hash(value)), value)
def remove(cls, value):
COWDictMeta.__delitem__(cls, repr(hash(value)))
def __in__(cls, value):
return COWDictMeta.has_key(repr(hash(value)))
def iterkeys(cls):
raise TypeError("sets don't have keys")
def iteritems(cls):
raise TypeError("sets don't have 'items'")
# These are the actual classes you use!
class COWDictBase(object):
__metaclass__ = COWDictMeta
__count__ = 0
class COWSetBase(object):
__metaclass__ = COWSetMeta
__count__ = 0
if __name__ == "__main__":
import sys
COWDictBase.__warn__ = sys.stderr
a = COWDictBase()
print "a", a
a['a'] = 'a'
a['b'] = 'b'
a['dict'] = {}
b = a.copy()
print "b", b
b['c'] = 'b'
print
print "a", a
for x in a.iteritems():
print x
print "--"
print "b", b
for x in b.iteritems():
print x
print
b['dict']['a'] = 'b'
b['a'] = 'c'
print "a", a
for x in a.iteritems():
print x
print "--"
print "b", b
for x in b.iteritems():
print x
print
try:
b['dict2']
except KeyError, e:
print "Okay!"
a['set'] = COWSetBase()
a['set'].add("o1")
a['set'].add("o1")
a['set'].add("o2")
print "a", a
for x in a['set'].itervalues():
print x
print "--"
print "b", b
for x in b['set'].itervalues():
print x
print
b['set'].add('o3')
print "a", a
for x in a['set'].itervalues():
print x
print "--"
print "b", b
for x in b['set'].itervalues():
print x
print
a['set2'] = set()
a['set2'].add("o1")
a['set2'].add("o1")
a['set2'].add("o2")
print "a", a
for x in a.iteritems():
print x
print "--"
print "b", b
for x in b.iteritems(readonly=True):
print x
print
del b['b']
try:
print b['b']
except KeyError:
print "Yay! deleted key raises error"
if b.has_key('b'):
print "Boo!"
else:
print "Yay - has_key with delete works!"
print "a", a
for x in a.iteritems():
print x
print "--"
print "b", b
for x in b.iteritems(readonly=True):
print x
print
b.__revertitem__('b')
print "a", a
for x in a.iteritems():
print x
print "--"
print "b", b
for x in b.iteritems(readonly=True):
print x
print
b.__revertitem__('dict')
print "a", a
for x in a.iteritems():
print x
print "--"
print "b", b
for x in b.iteritems(readonly=True):
print x
print

File diff suppressed because it is too large Load Diff

View File

@@ -1,394 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake 'Build' implementation
#
# Core code for function execution and task handling in the
# BitBake build tools.
#
# Copyright (C) 2003, 2004 Chris Larson
#
# Based on Gentoo's portage.py.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
from bb import data, event, mkdirhier, utils
import bb, os, sys
# When we execute a python function we'd like certain things
# in all namespaces, hence we add them to __builtins__
# If we do not do this and use the exec globals, they will
# not be available to subfunctions.
__builtins__['bb'] = bb
__builtins__['os'] = os
# events
class FuncFailed(Exception):
"""
Executed function failed
First parameter a message
Second paramter is a logfile (optional)
"""
class EventException(Exception):
"""Exception which is associated with an Event."""
def __init__(self, msg, event):
self.args = msg, event
class TaskBase(event.Event):
"""Base class for task events"""
def __init__(self, t, d ):
self._task = t
self._package = bb.data.getVar("PF", d, 1)
event.Event.__init__(self, d)
self._message = "package %s: task %s: %s" % (bb.data.getVar("PF", d, 1), t, bb.event.getName(self)[4:])
def getTask(self):
return self._task
def setTask(self, task):
self._task = task
task = property(getTask, setTask, None, "task property")
class TaskStarted(TaskBase):
"""Task execution started"""
class TaskSucceeded(TaskBase):
"""Task execution completed"""
class TaskFailed(TaskBase):
"""Task execution failed"""
def __init__(self, msg, logfile, t, d ):
self.logfile = logfile
self.msg = msg
TaskBase.__init__(self, t, d)
class InvalidTask(TaskBase):
"""Invalid Task"""
# functions
def exec_func(func, d, dirs = None):
"""Execute an BB 'function'"""
body = data.getVar(func, d)
if not body:
return
flags = data.getVarFlags(func, d)
for item in ['deps', 'check', 'interactive', 'python', 'cleandirs', 'dirs', 'lockfiles', 'fakeroot']:
if not item in flags:
flags[item] = None
ispython = flags['python']
cleandirs = (data.expand(flags['cleandirs'], d) or "").split()
for cdir in cleandirs:
os.system("rm -rf %s" % cdir)
if dirs:
dirs = data.expand(dirs, d)
else:
dirs = (data.expand(flags['dirs'], d) or "").split()
for adir in dirs:
mkdirhier(adir)
if len(dirs) > 0:
adir = dirs[-1]
else:
adir = data.getVar('B', d, 1)
# Save current directory
try:
prevdir = os.getcwd()
except OSError:
prevdir = data.getVar('TOPDIR', d, True)
# Setup logfiles
t = data.getVar('T', d, 1)
if not t:
bb.msg.fatal(bb.msg.domain.Build, "T not set")
mkdirhier(t)
# Gross hack, FIXME
import random
logfile = "%s/log.%s.%s.%s" % (t, func, str(os.getpid()),random.random())
runfile = "%s/run.%s.%s" % (t, func, str(os.getpid()))
# Change to correct directory (if specified)
if adir and os.access(adir, os.F_OK):
os.chdir(adir)
# Handle logfiles
si = file('/dev/null', 'r')
try:
if bb.msg.debug_level['default'] > 0 or ispython:
so = os.popen("tee \"%s\"" % logfile, "w")
else:
so = file(logfile, 'w')
except OSError, e:
bb.msg.error(bb.msg.domain.Build, "opening log file: %s" % e)
pass
se = so
# Dup the existing fds so we dont lose them
osi = [os.dup(sys.stdin.fileno()), sys.stdin.fileno()]
oso = [os.dup(sys.stdout.fileno()), sys.stdout.fileno()]
ose = [os.dup(sys.stderr.fileno()), sys.stderr.fileno()]
# Replace those fds with our own
os.dup2(si.fileno(), osi[1])
os.dup2(so.fileno(), oso[1])
os.dup2(se.fileno(), ose[1])
locks = []
lockfiles = (data.expand(flags['lockfiles'], d) or "").split()
for lock in lockfiles:
locks.append(bb.utils.lockfile(lock))
try:
# Run the function
if ispython:
exec_func_python(func, d, runfile, logfile)
else:
exec_func_shell(func, d, runfile, logfile, flags)
# Restore original directory
try:
os.chdir(prevdir)
except:
pass
finally:
# Unlock any lockfiles
for lock in locks:
bb.utils.unlockfile(lock)
# Restore the backup fds
os.dup2(osi[0], osi[1])
os.dup2(oso[0], oso[1])
os.dup2(ose[0], ose[1])
# Close our logs
si.close()
so.close()
se.close()
if os.path.exists(logfile) and os.path.getsize(logfile) == 0:
bb.msg.debug(2, bb.msg.domain.Build, "Zero size logfile %s, removing" % logfile)
os.remove(logfile)
# Close the backup fds
os.close(osi[0])
os.close(oso[0])
os.close(ose[0])
def exec_func_python(func, d, runfile, logfile):
"""Execute a python BB 'function'"""
import re, os
bbfile = bb.data.getVar('FILE', d, 1)
tmp = "def " + func + "():\n%s" % data.getVar(func, d)
tmp += '\n' + func + '()'
f = open(runfile, "w")
f.write(tmp)
comp = utils.better_compile(tmp, func, bbfile)
g = {} # globals
g['d'] = d
try:
utils.better_exec(comp, g, tmp, bbfile)
except:
(t,value,tb) = sys.exc_info()
if t in [bb.parse.SkipPackage, bb.build.FuncFailed]:
raise
bb.msg.error(bb.msg.domain.Build, "Function %s failed" % func)
raise FuncFailed("function %s failed" % func, logfile)
def exec_func_shell(func, d, runfile, logfile, flags):
"""Execute a shell BB 'function' Returns true if execution was successful.
For this, it creates a bash shell script in the tmp dectory, writes the local
data into it and finally executes. The output of the shell will end in a log file and stdout.
Note on directory behavior. The 'dirs' varflag should contain a list
of the directories you need created prior to execution. The last
item in the list is where we will chdir/cd to.
"""
deps = flags['deps']
check = flags['check']
if check in globals():
if globals()[check](func, deps):
return
f = open(runfile, "w")
f.write("#!/bin/sh -e\n")
if bb.msg.debug_level['default'] > 0: f.write("set -x\n")
data.emit_env(f, d)
f.write("cd %s\n" % os.getcwd())
if func: f.write("%s\n" % func)
f.close()
os.chmod(runfile, 0775)
if not func:
bb.msg.error(bb.msg.domain.Build, "Function not specified")
raise FuncFailed("Function not specified for exec_func_shell")
# execute function
if flags['fakeroot']:
maybe_fakeroot = "PATH=\"%s\" fakeroot " % bb.data.getVar("PATH", d, 1)
else:
maybe_fakeroot = ''
lang_environment = "LC_ALL=C "
ret = os.system('%s%ssh -e %s' % (lang_environment, maybe_fakeroot, runfile))
if ret == 0:
return
bb.msg.error(bb.msg.domain.Build, "Function %s failed" % func)
raise FuncFailed("function %s failed" % func, logfile)
def exec_task(task, d):
"""Execute an BB 'task'
The primary difference between executing a task versus executing
a function is that a task exists in the task digraph, and therefore
has dependencies amongst other tasks."""
# Check whther this is a valid task
if not data.getVarFlag(task, 'task', d):
raise EventException("No such task", InvalidTask(task, d))
try:
bb.msg.debug(1, bb.msg.domain.Build, "Executing task %s" % task)
old_overrides = data.getVar('OVERRIDES', d, 0)
localdata = data.createCopy(d)
data.setVar('OVERRIDES', 'task-%s:%s' % (task[3:], old_overrides), localdata)
data.update_data(localdata)
data.expandKeys(localdata)
event.fire(TaskStarted(task, localdata))
exec_func(task, localdata)
event.fire(TaskSucceeded(task, localdata))
except FuncFailed, message:
# Try to extract the optional logfile
try:
(msg, logfile) = message
except:
logfile = None
msg = message
bb.msg.note(1, bb.msg.domain.Build, "Task failed: %s" % message )
failedevent = TaskFailed(msg, logfile, task, d)
event.fire(failedevent)
raise EventException("Function failed in task: %s" % message, failedevent)
# make stamp, or cause event and raise exception
if not data.getVarFlag(task, 'nostamp', d) and not data.getVarFlag(task, 'selfstamp', d):
make_stamp(task, d)
def extract_stamp(d, fn):
"""
Extracts stamp format which is either a data dictonary (fn unset)
or a dataCache entry (fn set).
"""
if fn:
return d.stamp[fn]
return data.getVar('STAMP', d, 1)
def stamp_internal(task, d, file_name):
"""
Internal stamp helper function
Removes any stamp for the given task
Makes sure the stamp directory exists
Returns the stamp path+filename
"""
stamp = extract_stamp(d, file_name)
if not stamp:
return
stamp = "%s.%s" % (stamp, task)
mkdirhier(os.path.dirname(stamp))
# Remove the file and recreate to force timestamp
# change on broken NFS filesystems
if os.access(stamp, os.F_OK):
os.remove(stamp)
return stamp
def make_stamp(task, d, file_name = None):
"""
Creates/updates a stamp for a given task
(d can be a data dict or dataCache)
"""
stamp = stamp_internal(task, d, file_name)
if stamp:
f = open(stamp, "w")
f.close()
def del_stamp(task, d, file_name = None):
"""
Removes a stamp for a given task
(d can be a data dict or dataCache)
"""
stamp_internal(task, d, file_name)
def add_tasks(tasklist, d):
task_deps = data.getVar('_task_deps', d)
if not task_deps:
task_deps = {}
if not 'tasks' in task_deps:
task_deps['tasks'] = []
if not 'parents' in task_deps:
task_deps['parents'] = {}
for task in tasklist:
task = data.expand(task, d)
data.setVarFlag(task, 'task', 1, d)
if not task in task_deps['tasks']:
task_deps['tasks'].append(task)
flags = data.getVarFlags(task, d)
def getTask(name):
if not name in task_deps:
task_deps[name] = {}
if name in flags:
deptask = data.expand(flags[name], d)
task_deps[name][task] = deptask
getTask('depends')
getTask('deptask')
getTask('rdeptask')
getTask('recrdeptask')
getTask('nostamp')
task_deps['parents'][task] = []
for dep in flags['deps']:
dep = data.expand(dep, d)
task_deps['parents'][task].append(dep)
# don't assume holding a reference
data.setVar('_task_deps', task_deps, d)
def remove_task(task, kill, d):
"""Remove an BB 'task'.
If kill is 1, also remove tasks that depend on this task."""
data.delVarFlag(task, 'task', d)

View File

@@ -1,534 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake 'Event' implementation
#
# Caching of bitbake variables before task execution
# Copyright (C) 2006 Richard Purdie
# but small sections based on code from bin/bitbake:
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, re
import bb.data
import bb.utils
try:
import cPickle as pickle
except ImportError:
import pickle
bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.")
__cache_version__ = "130"
class Cache:
"""
BitBake Cache implementation
"""
def __init__(self, cooker):
self.cachedir = bb.data.getVar("CACHE", cooker.configuration.data, True)
self.clean = {}
self.checked = {}
self.depends_cache = {}
self.data = None
self.data_fn = None
self.cacheclean = True
if self.cachedir in [None, '']:
self.has_cache = False
bb.msg.note(1, bb.msg.domain.Cache, "Not using a cache. Set CACHE = <directory> to enable.")
return
self.has_cache = True
self.cachefile = os.path.join(self.cachedir,"bb_cache.dat")
bb.msg.debug(1, bb.msg.domain.Cache, "Using cache in '%s'" % self.cachedir)
try:
os.stat( self.cachedir )
except OSError:
bb.mkdirhier( self.cachedir )
# If any of configuration.data's dependencies are newer than the
# cache there isn't even any point in loading it...
newest_mtime = 0
deps = bb.data.getVar("__depends", cooker.configuration.data, True)
for f,old_mtime in deps:
if old_mtime > newest_mtime:
newest_mtime = old_mtime
if bb.parse.cached_mtime_noerror(self.cachefile) >= newest_mtime:
try:
p = pickle.Unpickler(file(self.cachefile, "rb"))
self.depends_cache, version_data = p.load()
if version_data['CACHE_VER'] != __cache_version__:
raise ValueError, 'Cache Version Mismatch'
if version_data['BITBAKE_VER'] != bb.__version__:
raise ValueError, 'Bitbake Version Mismatch'
except EOFError:
bb.msg.note(1, bb.msg.domain.Cache, "Truncated cache found, rebuilding...")
self.depends_cache = {}
except:
bb.msg.note(1, bb.msg.domain.Cache, "Invalid cache found, rebuilding...")
self.depends_cache = {}
else:
try:
os.stat( self.cachefile )
bb.msg.note(1, bb.msg.domain.Cache, "Out of date cache found, rebuilding...")
except OSError:
pass
def getVar(self, var, fn, exp = 0):
"""
Gets the value of a variable
(similar to getVar in the data class)
There are two scenarios:
1. We have cached data - serve from depends_cache[fn]
2. We're learning what data to cache - serve from data
backend but add a copy of the data to the cache.
"""
if fn in self.clean:
return self.depends_cache[fn][var]
if not fn in self.depends_cache:
self.depends_cache[fn] = {}
if fn != self.data_fn:
# We're trying to access data in the cache which doesn't exist
# yet setData hasn't been called to setup the right access. Very bad.
bb.msg.error(bb.msg.domain.Cache, "Parsing error data_fn %s and fn %s don't match" % (self.data_fn, fn))
self.cacheclean = False
result = bb.data.getVar(var, self.data, exp)
self.depends_cache[fn][var] = result
return result
def setData(self, virtualfn, fn, data):
"""
Called to prime bb_cache ready to learn which variables to cache.
Will be followed by calls to self.getVar which aren't cached
but can be fulfilled from self.data.
"""
self.data_fn = virtualfn
self.data = data
# Make sure __depends makes the depends_cache
self.getVar("__depends", virtualfn, True)
self.depends_cache[virtualfn]["CACHETIMESTAMP"] = bb.parse.cached_mtime(fn)
def virtualfn2realfn(self, virtualfn):
"""
Convert a virtual file name to a real one + the associated subclass keyword
"""
fn = virtualfn
cls = ""
if virtualfn.startswith('virtual:'):
cls = virtualfn.split(':', 2)[1]
fn = virtualfn.replace('virtual:' + cls + ':', '')
#bb.msg.debug(2, bb.msg.domain.Cache, "virtualfn2realfn %s to %s %s" % (virtualfn, fn, cls))
return (fn, cls)
def realfn2virtual(self, realfn, cls):
"""
Convert a real filename + the associated subclass keyword to a virtual filename
"""
if cls == "":
#bb.msg.debug(2, bb.msg.domain.Cache, "realfn2virtual %s and '%s' to %s" % (realfn, cls, realfn))
return realfn
#bb.msg.debug(2, bb.msg.domain.Cache, "realfn2virtual %s and %s to %s" % (realfn, cls, "virtual:" + cls + ":" + realfn))
return "virtual:" + cls + ":" + realfn
def loadDataFull(self, virtualfn, cfgData):
"""
Return a complete set of data for fn.
To do this, we need to parse the file.
"""
(fn, cls) = self.virtualfn2realfn(virtualfn)
bb.msg.debug(1, bb.msg.domain.Cache, "Parsing %s (full)" % fn)
bb_data, skipped = self.load_bbfile(fn, cfgData)
if isinstance(bb_data, dict):
return bb_data[cls]
return bb_data
def loadData(self, fn, cfgData, cacheData):
"""
Load a subset of data for fn.
If the cached data is valid we do nothing,
To do this, we need to parse the file and set the system
to record the variables accessed.
Return the cache status and whether the file was skipped when parsed
"""
if fn not in self.checked:
self.cacheValidUpdate(fn)
if self.cacheValid(fn):
if "SKIPPED" in self.depends_cache[fn]:
return True, True
self.handle_data(fn, cacheData)
multi = self.getVar('BBCLASSEXTEND', fn, True)
if multi:
for cls in multi.split():
virtualfn = self.realfn2virtual(fn, cls)
# Pretend we're clean so getVar works
self.clean[virtualfn] = ""
self.handle_data(virtualfn, cacheData)
return True, False
bb.msg.debug(1, bb.msg.domain.Cache, "Parsing %s" % fn)
bb_data, skipped = self.load_bbfile(fn, cfgData)
if skipped:
if isinstance(bb_data, dict):
self.setData(fn, fn, bb_data[""])
else:
self.setData(fn, fn, bb_data)
return False, skipped
if isinstance(bb_data, dict):
for data in bb_data:
virtualfn = self.realfn2virtual(fn, data)
self.setData(virtualfn, fn, bb_data[data])
self.handle_data(virtualfn, cacheData)
return False, skipped
self.setData(fn, fn, bb_data)
self.handle_data(fn, cacheData)
return False, skipped
def cacheValid(self, fn):
"""
Is the cache valid for fn?
Fast version, no timestamps checked.
"""
# Is cache enabled?
if not self.has_cache:
return False
if fn in self.clean:
return True
return False
def cacheValidUpdate(self, fn):
"""
Is the cache valid for fn?
Make thorough (slower) checks including timestamps.
"""
# Is cache enabled?
if not self.has_cache:
return False
self.checked[fn] = ""
# Pretend we're clean so getVar works
self.clean[fn] = ""
# File isn't in depends_cache
if not fn in self.depends_cache:
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s is not cached" % fn)
self.remove(fn)
return False
mtime = bb.parse.cached_mtime_noerror(fn)
# Check file still exists
if mtime == 0:
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s not longer exists" % fn)
self.remove(fn)
return False
# Check the file's timestamp
if mtime != self.getVar("CACHETIMESTAMP", fn, True):
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s changed" % fn)
self.remove(fn)
return False
# Check dependencies are still valid
depends = self.getVar("__depends", fn, True)
if depends:
for f,old_mtime in depends:
fmtime = bb.parse.cached_mtime_noerror(f)
# Check if file still exists
if old_mtime != 0 and fmtime == 0:
self.remove(fn)
return False
if (fmtime != old_mtime):
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s's dependency %s changed" % (fn, f))
self.remove(fn)
return False
#bb.msg.debug(2, bb.msg.domain.Cache, "Depends Cache: %s is clean" % fn)
if not fn in self.clean:
self.clean[fn] = ""
return True
def skip(self, fn):
"""
Mark a fn as skipped
Called from the parser
"""
if not fn in self.depends_cache:
self.depends_cache[fn] = {}
self.depends_cache[fn]["SKIPPED"] = "1"
def remove(self, fn):
"""
Remove a fn from the cache
Called from the parser in error cases
"""
bb.msg.debug(1, bb.msg.domain.Cache, "Removing %s from cache" % fn)
if fn in self.depends_cache:
del self.depends_cache[fn]
if fn in self.clean:
del self.clean[fn]
def sync(self):
"""
Save the cache
Called from the parser when complete (or exiting)
"""
import copy
if not self.has_cache:
return
if self.cacheclean:
bb.msg.note(1, bb.msg.domain.Cache, "Cache is clean, not saving.")
return
version_data = {}
version_data['CACHE_VER'] = __cache_version__
version_data['BITBAKE_VER'] = bb.__version__
cache_data = copy.deepcopy(self.depends_cache)
for fn in self.depends_cache:
if '__BB_DONT_CACHE' in self.depends_cache[fn] and self.depends_cache[fn]['__BB_DONT_CACHE']:
bb.msg.debug(2, bb.msg.domain.Cache, "Not caching %s, marked as not cacheable" % fn)
del cache_data[fn]
elif 'PV' in self.depends_cache[fn] and 'SRCREVINACTION' in self.depends_cache[fn]['PV']:
bb.msg.error(bb.msg.domain.Cache, "Not caching %s as it had SRCREVINACTION in PV. Please report this bug" % fn)
del cache_data[fn]
p = pickle.Pickler(file(self.cachefile, "wb" ), -1 )
p.dump([cache_data, version_data])
def mtime(self, cachefile):
return bb.parse.cached_mtime_noerror(cachefile)
def handle_data(self, file_name, cacheData):
"""
Save data we need into the cache
"""
pn = self.getVar('PN', file_name, True)
pe = self.getVar('PE', file_name, True) or "0"
pv = self.getVar('PV', file_name, True)
if 'SRCREVINACTION' in pv:
bb.note("Found SRCREVINACTION in PV (%s) or %s. Please report this bug." % (pv, file_name))
pr = self.getVar('PR', file_name, True)
dp = int(self.getVar('DEFAULT_PREFERENCE', file_name, True) or "0")
depends = bb.utils.explode_deps(self.getVar("DEPENDS", file_name, True) or "")
packages = (self.getVar('PACKAGES', file_name, True) or "").split()
packages_dynamic = (self.getVar('PACKAGES_DYNAMIC', file_name, True) or "").split()
rprovides = (self.getVar("RPROVIDES", file_name, True) or "").split()
cacheData.task_deps[file_name] = self.getVar("_task_deps", file_name, True)
# build PackageName to FileName lookup table
if pn not in cacheData.pkg_pn:
cacheData.pkg_pn[pn] = []
cacheData.pkg_pn[pn].append(file_name)
cacheData.stamp[file_name] = self.getVar('STAMP', file_name, True)
# build FileName to PackageName lookup table
cacheData.pkg_fn[file_name] = pn
cacheData.pkg_pepvpr[file_name] = (pe,pv,pr)
cacheData.pkg_dp[file_name] = dp
provides = [pn]
for provide in (self.getVar("PROVIDES", file_name, True) or "").split():
if provide not in provides:
provides.append(provide)
# Build forward and reverse provider hashes
# Forward: virtual -> [filenames]
# Reverse: PN -> [virtuals]
if pn not in cacheData.pn_provides:
cacheData.pn_provides[pn] = []
cacheData.fn_provides[file_name] = provides
for provide in provides:
if provide not in cacheData.providers:
cacheData.providers[provide] = []
cacheData.providers[provide].append(file_name)
if not provide in cacheData.pn_provides[pn]:
cacheData.pn_provides[pn].append(provide)
cacheData.deps[file_name] = []
for dep in depends:
if not dep in cacheData.deps[file_name]:
cacheData.deps[file_name].append(dep)
if not dep in cacheData.all_depends:
cacheData.all_depends.append(dep)
# Build reverse hash for PACKAGES, so runtime dependencies
# can be be resolved (RDEPENDS, RRECOMMENDS etc.)
for package in packages:
if not package in cacheData.packages:
cacheData.packages[package] = []
cacheData.packages[package].append(file_name)
rprovides += (self.getVar("RPROVIDES_%s" % package, file_name, 1) or "").split()
for package in packages_dynamic:
if not package in cacheData.packages_dynamic:
cacheData.packages_dynamic[package] = []
cacheData.packages_dynamic[package].append(file_name)
for rprovide in rprovides:
if not rprovide in cacheData.rproviders:
cacheData.rproviders[rprovide] = []
cacheData.rproviders[rprovide].append(file_name)
# Build hash of runtime depends and rececommends
if not file_name in cacheData.rundeps:
cacheData.rundeps[file_name] = {}
if not file_name in cacheData.runrecs:
cacheData.runrecs[file_name] = {}
rdepends = self.getVar('RDEPENDS', file_name, True) or ""
rrecommends = self.getVar('RRECOMMENDS', file_name, True) or ""
for package in packages + [pn]:
if not package in cacheData.rundeps[file_name]:
cacheData.rundeps[file_name][package] = []
if not package in cacheData.runrecs[file_name]:
cacheData.runrecs[file_name][package] = []
cacheData.rundeps[file_name][package] = rdepends + " " + (self.getVar("RDEPENDS_%s" % package, file_name, True) or "")
cacheData.runrecs[file_name][package] = rrecommends + " " + (self.getVar("RRECOMMENDS_%s" % package, file_name, True) or "")
# Collect files we may need for possible world-dep
# calculations
if not self.getVar('BROKEN', file_name, True) and not self.getVar('EXCLUDE_FROM_WORLD', file_name, True):
cacheData.possible_world.append(file_name)
# Touch this to make sure its in the cache
self.getVar('__BB_DONT_CACHE', file_name, True)
self.getVar('BBCLASSEXTEND', file_name, True)
def load_bbfile( self, bbfile , config):
"""
Load and parse one .bb build file
Return the data and whether parsing resulted in the file being skipped
"""
import bb
from bb import utils, data, parse, debug, event, fatal
# expand tmpdir to include this topdir
data.setVar('TMPDIR', data.getVar('TMPDIR', config, 1) or "", config)
bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
oldpath = os.path.abspath(os.getcwd())
if bb.parse.cached_mtime_noerror(bbfile_loc):
os.chdir(bbfile_loc)
bb_data = data.init_db(config)
try:
bb_data = parse.handle(bbfile, bb_data) # read .bb data
os.chdir(oldpath)
return bb_data, False
except bb.parse.SkipPackage:
os.chdir(oldpath)
return bb_data, True
except:
os.chdir(oldpath)
raise
def init(cooker):
"""
The Objective: Cache the minimum amount of data possible yet get to the
stage of building packages (i.e. tryBuild) without reparsing any .bb files.
To do this, we intercept getVar calls and only cache the variables we see
being accessed. We rely on the cache getVar calls being made for all
variables bitbake might need to use to reach this stage. For each cached
file we need to track:
* Its mtime
* The mtimes of all its dependencies
* Whether it caused a parse.SkipPackage exception
Files causing parsing errors are evicted from the cache.
"""
return Cache(cooker)
#============================================================================#
# CacheData
#============================================================================#
class CacheData:
"""
The data structures we compile from the cached data
"""
def __init__(self):
"""
Direct cache variables
(from Cache.handle_data)
"""
self.providers = {}
self.rproviders = {}
self.packages = {}
self.packages_dynamic = {}
self.possible_world = []
self.pkg_pn = {}
self.pkg_fn = {}
self.pkg_pepvpr = {}
self.pkg_dp = {}
self.pn_provides = {}
self.fn_provides = {}
self.all_depends = []
self.deps = {}
self.rundeps = {}
self.runrecs = {}
self.task_queues = {}
self.task_deps = {}
self.stamp = {}
self.preferred = {}
"""
Indirect Cache variables
(set elsewhere)
"""
self.ignored_dependencies = []
self.world_target = set()
self.bbfile_priority = {}
self.bbfile_config_priorities = []

View File

@@ -1,977 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 - 2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys, os, getopt, glob, copy, os.path, re, time
import bb
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue
from bb import xmlrpcserver, command
import itertools, sre_constants
class MultipleMatches(Exception):
"""
Exception raised when multiple file matches are found
"""
class ParsingErrorsFound(Exception):
"""
Exception raised when parsing errors are found
"""
class NothingToBuild(Exception):
"""
Exception raised when there is nothing to build
"""
# Different states cooker can be in
cookerClean = 1
cookerParsing = 2
cookerParsed = 3
# Different action states the cooker can be in
cookerRun = 1 # Cooker is running normally
cookerShutdown = 2 # Active tasks should be brought to a controlled stop
cookerStop = 3 # Stop, now!
#============================================================================#
# BBCooker
#============================================================================#
class BBCooker:
"""
Manages one bitbake build run
"""
def __init__(self, configuration):
self.status = None
self.cache = None
self.bb_cache = None
self.server = bb.xmlrpcserver.BitBakeXMLRPCServer(self)
#self.server.register_function(self.showEnvironment)
self.configuration = configuration
if self.configuration.verbose:
bb.msg.set_verbose(True)
if self.configuration.debug:
bb.msg.set_debug_level(self.configuration.debug)
else:
bb.msg.set_debug_level(0)
if self.configuration.debug_domains:
bb.msg.set_debug_domains(self.configuration.debug_domains)
self.configuration.data = bb.data.init()
bb.data.inheritFromOS(self.configuration.data)
for f in self.configuration.file:
self.parseConfigurationFile( f )
self.parseConfigurationFile( os.path.join( "conf", "bitbake.conf" ) )
if not self.configuration.cmd:
self.configuration.cmd = bb.data.getVar("BB_DEFAULT_TASK", self.configuration.data, True) or "build"
bbpkgs = bb.data.getVar('BBPKGS', self.configuration.data, True)
if bbpkgs and len(self.configuration.pkgs_to_build) == 0:
self.configuration.pkgs_to_build.extend(bbpkgs.split())
#
# Special updated configuration we use for firing events
#
self.configuration.event_data = bb.data.createCopy(self.configuration.data)
bb.data.update_data(self.configuration.event_data)
# TOSTOP must not be set or our children will hang when they output
fd = sys.stdout.fileno()
if os.isatty(fd):
import termios
tcattr = termios.tcgetattr(fd)
if tcattr[3] & termios.TOSTOP:
bb.msg.note(1, bb.msg.domain.Build, "The terminal had the TOSTOP bit set, clearing...")
tcattr[3] = tcattr[3] & ~termios.TOSTOP
termios.tcsetattr(fd, termios.TCSANOW, tcattr)
self.command = bb.command.Command(self)
self.cookerState = cookerClean
self.cookerAction = cookerRun
def parseConfiguration(self):
# Change nice level if we're asked to
nice = bb.data.getVar("BB_NICE_LEVEL", self.configuration.data, True)
if nice:
curnice = os.nice(0)
nice = int(nice) - curnice
bb.msg.note(2, bb.msg.domain.Build, "Renice to %s " % os.nice(nice))
def parseCommandLine(self):
# Parse any commandline into actions
if self.configuration.show_environment:
self.commandlineAction = None
if 'world' in self.configuration.pkgs_to_build:
bb.error("'world' is not a valid target for --environment.")
elif len(self.configuration.pkgs_to_build) > 1:
bb.error("Only one target can be used with the --environment option.")
elif self.configuration.buildfile and len(self.configuration.pkgs_to_build) > 0:
bb.error("No target should be used with the --environment and --buildfile options.")
elif len(self.configuration.pkgs_to_build) > 0:
self.commandlineAction = ["showEnvironmentTarget", self.configuration.pkgs_to_build]
else:
self.commandlineAction = ["showEnvironment", self.configuration.buildfile]
elif self.configuration.buildfile is not None:
self.commandlineAction = ["buildFile", self.configuration.buildfile, self.configuration.cmd]
elif self.configuration.revisions_changed:
self.commandlineAction = ["compareRevisions"]
elif self.configuration.show_versions:
self.commandlineAction = ["showVersions"]
elif self.configuration.parse_only:
self.commandlineAction = ["parseFiles"]
# FIXME - implement
#elif self.configuration.interactive:
# self.interactiveMode()
elif self.configuration.dot_graph:
if self.configuration.pkgs_to_build:
self.commandlineAction = ["generateDotGraph", self.configuration.pkgs_to_build, self.configuration.cmd]
else:
self.commandlineAction = None
bb.error("Please specify a package name for dependency graph generation.")
else:
if self.configuration.pkgs_to_build:
self.commandlineAction = ["buildTargets", self.configuration.pkgs_to_build, self.configuration.cmd]
else:
self.commandlineAction = None
bb.error("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
def runCommands(self, server, data, abort):
"""
Run any queued asynchronous command
This is done by the idle handler so it runs in true context rather than
tied to any UI.
"""
return self.command.runAsyncCommand()
def tryBuildPackage(self, fn, item, task, the_data):
"""
Build one task of a package, optionally build following task depends
"""
try:
if not self.configuration.dry_run:
bb.build.exec_task('do_%s' % task, the_data)
return True
except bb.build.FuncFailed:
bb.msg.error(bb.msg.domain.Build, "task stack execution failed")
raise
except bb.build.EventException, e:
event = e.args[1]
bb.msg.error(bb.msg.domain.Build, "%s event exception, aborting" % bb.event.getName(event))
raise
def tryBuild(self, fn, task):
"""
Build a provider and its dependencies.
build_depends is a list of previous build dependencies (not runtime)
If build_depends is empty, we're dealing with a runtime depends
"""
the_data = self.bb_cache.loadDataFull(fn, self.configuration.data)
item = self.status.pkg_fn[fn]
#if bb.build.stamp_is_current('do_%s' % self.configuration.cmd, the_data):
# return True
return self.tryBuildPackage(fn, item, task, the_data)
def showVersions(self):
# Need files parsed
self.updateCache()
pkg_pn = self.status.pkg_pn
preferred_versions = {}
latest_versions = {}
# Sort by priority
for pn in pkg_pn.keys():
(last_ver,last_file,pref_ver,pref_file) = bb.providers.findBestProvider(pn, self.configuration.data, self.status)
preferred_versions[pn] = (pref_ver, pref_file)
latest_versions[pn] = (last_ver, last_file)
pkg_list = pkg_pn.keys()
pkg_list.sort()
bb.msg.plain("%-35s %25s %25s" % ("Package Name", "Latest Version", "Preferred Version"))
bb.msg.plain("%-35s %25s %25s\n" % ("============", "==============", "================="))
for p in pkg_list:
pref = preferred_versions[p]
latest = latest_versions[p]
prefstr = pref[0][0] + ":" + pref[0][1] + '-' + pref[0][2]
lateststr = latest[0][0] + ":" + latest[0][1] + "-" + latest[0][2]
if pref == latest:
prefstr = ""
bb.msg.plain("%-35s %25s %25s" % (p, lateststr, prefstr))
def compareRevisions(self):
ret = bb.fetch.fetcher_compare_revisons(self.configuration.data)
bb.event.fire(bb.command.CookerCommandSetExitCode(self.configuration.event_data, ret))
def showEnvironment(self, buildfile = None, pkgs_to_build = []):
"""
Show the outer or per-package environment
"""
fn = None
envdata = None
if buildfile:
self.cb = None
self.bb_cache = bb.cache.init(self)
fn = self.matchFile(buildfile)
elif len(pkgs_to_build) == 1:
self.updateCache()
localdata = data.createCopy(self.configuration.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata.add_provider(localdata, self.status, pkgs_to_build[0])
taskdata.add_unresolved(localdata, self.status)
targetid = taskdata.getbuild_id(pkgs_to_build[0])
fnid = taskdata.build_targets[targetid][0]
fn = taskdata.fn_index[fnid]
else:
envdata = self.configuration.data
if fn:
try:
envdata = self.bb_cache.loadDataFull(fn, self.configuration.data)
except IOError, e:
bb.msg.error(bb.msg.domain.Parsing, "Unable to read %s: %s" % (fn, e))
raise
except Exception, e:
bb.msg.error(bb.msg.domain.Parsing, "%s" % e)
raise
class dummywrite:
def __init__(self):
self.writebuf = ""
def write(self, output):
self.writebuf = self.writebuf + output
# emit variables and shell functions
try:
data.update_data(envdata)
wb = dummywrite()
data.emit_env(wb, envdata, True)
bb.msg.plain(wb.writebuf)
except Exception, e:
bb.msg.fatal(bb.msg.domain.Parsing, "%s" % e)
# emit the metadata which isnt valid shell
data.expandKeys(envdata)
for e in envdata.keys():
if data.getVarFlag( e, 'python', envdata ):
bb.msg.plain("\npython %s () {\n%s}\n" % (e, data.getVar(e, envdata, 1)))
def generateDepTreeData(self, pkgs_to_build, task):
"""
Create a dependency tree of pkgs_to_build, returning the data.
"""
# Need files parsed
self.updateCache()
# If we are told to do the None task then query the default task
if (task == None):
task = self.configuration.cmd
pkgs_to_build = self.checkPackages(pkgs_to_build)
localdata = data.createCopy(self.configuration.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
runlist = []
for k in pkgs_to_build:
taskdata.add_provider(localdata, self.status, k)
runlist.append([k, "do_%s" % task])
taskdata.add_unresolved(localdata, self.status)
rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist)
rq.prepare_runqueue()
seen_fnids = []
depend_tree = {}
depend_tree["depends"] = {}
depend_tree["tdepends"] = {}
depend_tree["pn"] = {}
depend_tree["rdepends-pn"] = {}
depend_tree["packages"] = {}
depend_tree["rdepends-pkg"] = {}
depend_tree["rrecs-pkg"] = {}
for task in range(len(rq.runq_fnid)):
taskname = rq.runq_task[task]
fnid = rq.runq_fnid[task]
fn = taskdata.fn_index[fnid]
pn = self.status.pkg_fn[fn]
version = "%s:%s-%s" % self.status.pkg_pepvpr[fn]
if pn not in depend_tree["pn"]:
depend_tree["pn"][pn] = {}
depend_tree["pn"][pn]["filename"] = fn
depend_tree["pn"][pn]["version"] = version
for dep in rq.runq_depends[task]:
depfn = taskdata.fn_index[rq.runq_fnid[dep]]
deppn = self.status.pkg_fn[depfn]
dotname = "%s.%s" % (pn, rq.runq_task[task])
if not dotname in depend_tree["tdepends"]:
depend_tree["tdepends"][dotname] = []
depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, rq.runq_task[dep]))
if fnid not in seen_fnids:
seen_fnids.append(fnid)
packages = []
depend_tree["depends"][pn] = []
for dep in taskdata.depids[fnid]:
depend_tree["depends"][pn].append(taskdata.build_names_index[dep])
depend_tree["rdepends-pn"][pn] = []
for rdep in taskdata.rdepids[fnid]:
depend_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep])
rdepends = self.status.rundeps[fn]
for package in rdepends:
depend_tree["rdepends-pkg"][package] = []
for rdepend in rdepends[package]:
depend_tree["rdepends-pkg"][package].append(rdepend)
packages.append(package)
rrecs = self.status.runrecs[fn]
for package in rrecs:
depend_tree["rrecs-pkg"][package] = []
for rdepend in rrecs[package]:
depend_tree["rrecs-pkg"][package].append(rdepend)
if not package in packages:
packages.append(package)
for package in packages:
if package not in depend_tree["packages"]:
depend_tree["packages"][package] = {}
depend_tree["packages"][package]["pn"] = pn
depend_tree["packages"][package]["filename"] = fn
depend_tree["packages"][package]["version"] = version
return depend_tree
def generateDepTreeEvent(self, pkgs_to_build, task):
"""
Create a task dependency graph of pkgs_to_build.
Generate an event with the result
"""
depgraph = self.generateDepTreeData(pkgs_to_build, task)
bb.event.fire(bb.event.DepTreeGenerated(self.configuration.data, depgraph))
def generateDotGraphFiles(self, pkgs_to_build, task):
"""
Create a task dependency graph of pkgs_to_build.
Save the result to a set of .dot files.
"""
depgraph = self.generateDepTreeData(pkgs_to_build, task)
# Prints a flattened form of package-depends below where subpackages of a package are merged into the main pn
depends_file = file('pn-depends.dot', 'w' )
print >> depends_file, "digraph depends {"
for pn in depgraph["pn"]:
fn = depgraph["pn"][pn]["filename"]
version = depgraph["pn"][pn]["version"]
print >> depends_file, '"%s" [label="%s %s\\n%s"]' % (pn, pn, version, fn)
for pn in depgraph["depends"]:
for depend in depgraph["depends"][pn]:
print >> depends_file, '"%s" -> "%s"' % (pn, depend)
for pn in depgraph["rdepends-pn"]:
for rdepend in depgraph["rdepends-pn"][pn]:
print >> depends_file, '"%s" -> "%s" [style=dashed]' % (pn, rdepend)
print >> depends_file, "}"
bb.msg.plain("PN dependencies saved to 'pn-depends.dot'")
depends_file = file('package-depends.dot', 'w' )
print >> depends_file, "digraph depends {"
for package in depgraph["packages"]:
pn = depgraph["packages"][package]["pn"]
fn = depgraph["packages"][package]["filename"]
version = depgraph["packages"][package]["version"]
if package == pn:
print >> depends_file, '"%s" [label="%s %s\\n%s"]' % (pn, pn, version, fn)
else:
print >> depends_file, '"%s" [label="%s(%s) %s\\n%s"]' % (package, package, pn, version, fn)
for depend in depgraph["depends"][pn]:
print >> depends_file, '"%s" -> "%s"' % (package, depend)
for package in depgraph["rdepends-pkg"]:
for rdepend in depgraph["rdepends-pkg"][package]:
print >> depends_file, '"%s" -> "%s" [style=dashed]' % (package, rdepend)
for package in depgraph["rrecs-pkg"]:
for rdepend in depgraph["rrecs-pkg"][package]:
print >> depends_file, '"%s" -> "%s" [style=dashed]' % (package, rdepend)
print >> depends_file, "}"
bb.msg.plain("Package dependencies saved to 'package-depends.dot'")
tdepends_file = file('task-depends.dot', 'w' )
print >> tdepends_file, "digraph depends {"
for task in depgraph["tdepends"]:
(pn, taskname) = task.rsplit(".", 1)
fn = depgraph["pn"][pn]["filename"]
version = depgraph["pn"][pn]["version"]
print >> tdepends_file, '"%s.%s" [label="%s %s\\n%s\\n%s"]' % (pn, taskname, pn, taskname, version, fn)
for dep in depgraph["tdepends"][task]:
print >> tdepends_file, '"%s" -> "%s"' % (task, dep)
print >> tdepends_file, "}"
bb.msg.plain("Task dependencies saved to 'task-depends.dot'")
def buildDepgraph( self ):
all_depends = self.status.all_depends
pn_provides = self.status.pn_provides
localdata = data.createCopy(self.configuration.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
def calc_bbfile_priority(filename):
for (regex, pri) in self.status.bbfile_config_priorities:
if regex.match(filename):
return pri
return 0
# Handle PREFERRED_PROVIDERS
for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, 1) or "").split():
try:
(providee, provider) = p.split(':')
except:
bb.msg.fatal(bb.msg.domain.Provider, "Malformed option in PREFERRED_PROVIDERS variable: %s" % p)
continue
if providee in self.status.preferred and self.status.preferred[providee] != provider:
bb.msg.error(bb.msg.domain.Provider, "conflicting preferences for %s: both %s and %s specified" % (providee, provider, self.status.preferred[providee]))
self.status.preferred[providee] = provider
# Calculate priorities for each file
for p in self.status.pkg_fn.keys():
self.status.bbfile_priority[p] = calc_bbfile_priority(p)
def buildWorldTargetList(self):
"""
Build package list for "bitbake world"
"""
all_depends = self.status.all_depends
pn_provides = self.status.pn_provides
bb.msg.debug(1, bb.msg.domain.Parsing, "collating packages for \"world\"")
for f in self.status.possible_world:
terminal = True
pn = self.status.pkg_fn[f]
for p in pn_provides[pn]:
if p.startswith('virtual/'):
bb.msg.debug(2, bb.msg.domain.Parsing, "World build skipping %s due to %s provider starting with virtual/" % (f, p))
terminal = False
break
for pf in self.status.providers[p]:
if self.status.pkg_fn[pf] != pn:
bb.msg.debug(2, bb.msg.domain.Parsing, "World build skipping %s due to both us and %s providing %s" % (f, pf, p))
terminal = False
break
if terminal:
self.status.world_target.add(pn)
# drop reference count now
self.status.possible_world = None
self.status.all_depends = None
def interactiveMode( self ):
"""Drop off into a shell"""
try:
from bb import shell
except ImportError, details:
bb.msg.fatal(bb.msg.domain.Parsing, "Sorry, shell not available (%s)" % details )
else:
shell.start( self )
def parseConfigurationFile( self, afile ):
try:
self.configuration.data = bb.parse.handle( afile, self.configuration.data )
# Handle any INHERITs and inherit the base class
inherits = ["base"] + (bb.data.getVar('INHERIT', self.configuration.data, True ) or "").split()
for inherit in inherits:
self.configuration.data = bb.parse.handle(os.path.join('classes', '%s.bbclass' % inherit), self.configuration.data, True )
# Nomally we only register event handlers at the end of parsing .bb files
# We register any handlers we've found so far here...
for var in data.getVar('__BBHANDLERS', self.configuration.data) or []:
bb.event.register(var,bb.data.getVar(var, self.configuration.data))
bb.fetch.fetcher_init(self.configuration.data)
bb.event.fire(bb.event.ConfigParsed(self.configuration.data))
except IOError, e:
bb.msg.fatal(bb.msg.domain.Parsing, "Error when parsing %s: %s" % (afile, str(e)))
except bb.parse.ParseError, details:
bb.msg.fatal(bb.msg.domain.Parsing, "Unable to parse %s (%s)" % (afile, details) )
def handleCollections( self, collections ):
"""Handle collections"""
if collections:
collection_list = collections.split()
for c in collection_list:
regex = bb.data.getVar("BBFILE_PATTERN_%s" % c, self.configuration.data, 1)
if regex == None:
bb.msg.error(bb.msg.domain.Parsing, "BBFILE_PATTERN_%s not defined" % c)
continue
priority = bb.data.getVar("BBFILE_PRIORITY_%s" % c, self.configuration.data, 1)
if priority == None:
bb.msg.error(bb.msg.domain.Parsing, "BBFILE_PRIORITY_%s not defined" % c)
continue
try:
cre = re.compile(regex)
except re.error:
bb.msg.error(bb.msg.domain.Parsing, "BBFILE_PATTERN_%s \"%s\" is not a valid regular expression" % (c, regex))
continue
try:
pri = int(priority)
self.status.bbfile_config_priorities.append((cre, pri))
except ValueError:
bb.msg.error(bb.msg.domain.Parsing, "invalid value for BBFILE_PRIORITY_%s: \"%s\"" % (c, priority))
def buildSetVars(self):
"""
Setup any variables needed before starting a build
"""
if not bb.data.getVar("BUILDNAME", self.configuration.data):
bb.data.setVar("BUILDNAME", os.popen('date +%Y%m%d%H%M').readline().strip(), self.configuration.data)
bb.data.setVar("BUILDSTART", time.strftime('%m/%d/%Y %H:%M:%S',time.gmtime()), self.configuration.data)
def matchFiles(self, buildfile):
"""
Find the .bb files which match the expression in 'buildfile'.
"""
bf = os.path.abspath(buildfile)
try:
os.stat(bf)
return [bf]
except OSError:
(filelist, masked) = self.collect_bbfiles()
regexp = re.compile(buildfile)
matches = []
for f in filelist:
if regexp.search(f) and os.path.isfile(f):
bf = f
matches.append(f)
return matches
def matchFile(self, buildfile):
"""
Find the .bb file which matches the expression in 'buildfile'.
Raise an error if multiple files
"""
matches = self.matchFiles(buildfile)
if len(matches) != 1:
bb.msg.error(bb.msg.domain.Parsing, "Unable to match %s (%s matches found):" % (buildfile, len(matches)))
for f in matches:
bb.msg.error(bb.msg.domain.Parsing, " %s" % f)
raise MultipleMatches
return matches[0]
def buildFile(self, buildfile, task):
"""
Build the file matching regexp buildfile
"""
# Parse the configuration here. We need to do it explicitly here since
# buildFile() doesn't use the cache
self.parseConfiguration()
# If we are told to do the None task then query the default task
if (task == None):
task = self.configuration.cmd
fn = self.matchFile(buildfile)
self.buildSetVars()
# Load data into the cache for fn and parse the loaded cache data
self.bb_cache = bb.cache.init(self)
self.status = bb.cache.CacheData()
self.bb_cache.loadData(fn, self.configuration.data, self.status)
# Tweak some variables
item = self.bb_cache.getVar('PN', fn, True)
self.status.ignored_dependencies = set()
self.status.bbfile_priority[fn] = 1
# Remove external dependencies
self.status.task_deps[fn]['depends'] = {}
self.status.deps[fn] = []
self.status.rundeps[fn] = []
self.status.runrecs[fn] = []
# Remove stamp for target if force mode active
if self.configuration.force:
bb.msg.note(2, bb.msg.domain.RunQueue, "Remove stamp %s, %s" % (task, fn))
bb.build.del_stamp('do_%s' % task, self.status, fn)
# Setup taskdata structure
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata.add_provider(self.configuration.data, self.status, item)
buildname = bb.data.getVar("BUILDNAME", self.configuration.data)
bb.event.fire(bb.event.BuildStarted(buildname, [item], self.configuration.event_data))
# Execute the runqueue
runlist = [[item, "do_%s" % task]]
rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist)
def buildFileIdle(server, rq, abort):
if abort or self.cookerAction == cookerStop:
rq.finish_runqueue(True)
elif self.cookerAction == cookerShutdown:
rq.finish_runqueue(False)
failures = 0
try:
retval = rq.execute_runqueue()
except runqueue.TaskFailure, fnids:
for fnid in fnids:
bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid])
failures = failures + 1
retval = False
if not retval:
self.command.finishAsyncCommand()
bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures))
return False
return 0.5
self.server.register_idle_function(buildFileIdle, rq)
def buildTargets(self, targets, task):
"""
Attempt to build the targets specified
"""
# Need files parsed
self.updateCache()
# If we are told to do the NULL task then query the default task
if (task == None):
task = self.configuration.cmd
targets = self.checkPackages(targets)
def buildTargetsIdle(server, rq, abort):
if abort or self.cookerAction == cookerStop:
rq.finish_runqueue(True)
elif self.cookerAction == cookerShutdown:
rq.finish_runqueue(False)
failures = 0
try:
retval = rq.execute_runqueue()
except runqueue.TaskFailure, fnids:
for fnid in fnids:
bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid])
failures = failures + 1
retval = False
if not retval:
self.command.finishAsyncCommand()
bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures))
return None
return 0.5
self.buildSetVars()
buildname = bb.data.getVar("BUILDNAME", self.configuration.data)
bb.event.fire(bb.event.BuildStarted(buildname, targets, self.configuration.event_data))
localdata = data.createCopy(self.configuration.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
runlist = []
for k in targets:
taskdata.add_provider(localdata, self.status, k)
runlist.append([k, "do_%s" % task])
taskdata.add_unresolved(localdata, self.status)
rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist)
self.server.register_idle_function(buildTargetsIdle, rq)
def updateCache(self):
if self.cookerState == cookerParsed:
return
if self.cookerState != cookerParsing:
self.parseConfiguration ()
# Import Psyco if available and not disabled
import platform
if platform.machine() in ['i386', 'i486', 'i586', 'i686']:
if not self.configuration.disable_psyco:
try:
import psyco
except ImportError:
bb.msg.note(1, bb.msg.domain.Collection, "Psyco JIT Compiler (http://psyco.sf.net) not available. Install it to increase performance.")
else:
psyco.bind( CookerParser.parse_next )
else:
bb.msg.note(1, bb.msg.domain.Collection, "You have disabled Psyco. This decreases performance.")
self.status = bb.cache.CacheData()
ignore = bb.data.getVar("ASSUME_PROVIDED", self.configuration.data, 1) or ""
self.status.ignored_dependencies = set(ignore.split())
for dep in self.configuration.extra_assume_provided:
self.status.ignored_dependencies.add(dep)
self.handleCollections( bb.data.getVar("BBFILE_COLLECTIONS", self.configuration.data, 1) )
bb.msg.debug(1, bb.msg.domain.Collection, "collecting .bb files")
(filelist, masked) = self.collect_bbfiles()
bb.data.renameVar("__depends", "__base_depends", self.configuration.data)
self.parser = CookerParser(self, filelist, masked)
self.cookerState = cookerParsing
if not self.parser.parse_next():
bb.msg.debug(1, bb.msg.domain.Collection, "parsing complete")
self.buildDepgraph()
self.cookerState = cookerParsed
return None
return 0.00001
def checkPackages(self, pkgs_to_build):
if len(pkgs_to_build) == 0:
raise NothingToBuild
if 'world' in pkgs_to_build:
self.buildWorldTargetList()
pkgs_to_build.remove('world')
for t in self.status.world_target:
pkgs_to_build.append(t)
return pkgs_to_build
def get_bbfiles( self, path = os.getcwd() ):
"""Get list of default .bb files by reading out the current directory"""
contents = os.listdir(path)
bbfiles = []
for f in contents:
(root, ext) = os.path.splitext(f)
if ext == ".bb":
bbfiles.append(os.path.abspath(os.path.join(os.getcwd(),f)))
return bbfiles
def find_bbfiles( self, path ):
"""Find all the .bb files in a directory"""
from os.path import join
found = []
for dir, dirs, files in os.walk(path):
for ignored in ('SCCS', 'CVS', '.svn'):
if ignored in dirs:
dirs.remove(ignored)
found += [join(dir,f) for f in files if f.endswith('.bb')]
return found
def collect_bbfiles( self ):
"""Collect all available .bb build files"""
parsed, cached, skipped, masked = 0, 0, 0, 0
self.bb_cache = bb.cache.init(self)
files = (data.getVar( "BBFILES", self.configuration.data, 1 ) or "").split()
data.setVar("BBFILES", " ".join(files), self.configuration.data)
if not len(files):
files = self.get_bbfiles()
if not len(files):
bb.msg.error(bb.msg.domain.Collection, "no files to build.")
newfiles = []
for f in files:
if os.path.isdir(f):
dirfiles = self.find_bbfiles(f)
if dirfiles:
newfiles += dirfiles
continue
else:
globbed = glob.glob(f)
if not globbed and os.path.exists(f):
globbed = [f]
newfiles += globbed
bbmask = bb.data.getVar('BBMASK', self.configuration.data, 1)
if not bbmask:
return (newfiles, 0)
try:
bbmask_compiled = re.compile(bbmask)
except sre_constants.error:
bb.msg.fatal(bb.msg.domain.Collection, "BBMASK is not a valid regular expression.")
finalfiles = []
for f in newfiles:
if bbmask_compiled.search(f):
bb.msg.debug(1, bb.msg.domain.Collection, "skipping masked file %s" % f)
masked += 1
continue
finalfiles.append(f)
return (finalfiles, masked)
def serve(self):
# Empty the environment. The environment will be populated as
# necessary from the data store.
bb.utils.empty_environment()
if self.configuration.profile:
try:
import cProfile as profile
except:
import profile
profile.runctx("self.server.serve_forever()", globals(), locals(), "profile.log")
# Redirect stdout to capture profile information
pout = open('profile.log.processed', 'w')
so = sys.stdout.fileno()
os.dup2(pout.fileno(), so)
import pstats
p = pstats.Stats('profile.log')
p.sort_stats('time')
p.print_stats()
p.print_callers()
p.sort_stats('cumulative')
p.print_stats()
os.dup2(so, pout.fileno())
pout.flush()
pout.close()
else:
self.server.serve_forever()
bb.event.fire(CookerExit(self.configuration.event_data))
class CookerExit(bb.event.Event):
"""
Notify clients of the Cooker shutdown
"""
def __init__(self, d):
bb.event.Event.__init__(self, d)
class CookerParser:
def __init__(self, cooker, filelist, masked):
# Internal data
self.filelist = filelist
self.cooker = cooker
# Accounting statistics
self.parsed = 0
self.cached = 0
self.skipped = 0
self.error = 0
self.masked = masked
self.total = len(filelist)
# Pointer to the next file to parse
self.pointer = 0
def parse_next(self):
print "Pointer %d" % self.pointer
if self.pointer < len(self.filelist):
f = self.filelist[self.pointer]
cooker = self.cooker
try:
fromCache, skip = cooker.bb_cache.loadData(f, cooker.configuration.data, cooker.status)
if skip:
self.skipped += 1
bb.msg.debug(2, bb.msg.domain.Collection, "skipping %s" % f)
cooker.bb_cache.skip(f)
elif fromCache: self.cached += 1
else: self.parsed += 1
except IOError, e:
self.error += 1
cooker.bb_cache.remove(f)
bb.msg.error(bb.msg.domain.Collection, "opening %s: %s" % (f, e))
pass
except KeyboardInterrupt:
cooker.bb_cache.remove(f)
cooker.bb_cache.sync()
raise
except Exception, e:
self.error += 1
cooker.bb_cache.remove(f)
bb.msg.error(bb.msg.domain.Collection, "%s while parsing %s" % (e, f))
except:
cooker.bb_cache.remove(f)
raise
finally:
bb.event.fire(bb.event.ParseProgress(cooker.configuration.event_data, self.cached, self.parsed, self.skipped, self.masked, self.error, self.total))
self.pointer += 1
if self.pointer >= self.total:
cooker.bb_cache.sync()
if self.error > 0:
raise ParsingErrorsFound
return False
return True

View File

@@ -1,191 +0,0 @@
"""
Python Deamonizing helper
Configurable daemon behaviors:
1.) The current working directory set to the "/" directory.
2.) The current file creation mode mask set to 0.
3.) Close all open files (1024).
4.) Redirect standard I/O streams to "/dev/null".
A failed call to fork() now raises an exception.
References:
1) Advanced Programming in the Unix Environment: W. Richard Stevens
2) Unix Programming Frequently Asked Questions:
http://www.erlenstar.demon.co.uk/unix/faq_toc.html
Modified to allow a function to be daemonized and return for
bitbake use by Richard Purdie
"""
__author__ = "Chad J. Schroeder"
__copyright__ = "Copyright (C) 2005 Chad J. Schroeder"
__version__ = "0.2"
# Standard Python modules.
import os # Miscellaneous OS interfaces.
import sys # System-specific parameters and functions.
# Default daemon parameters.
# File mode creation mask of the daemon.
# For BitBake's children, we do want to inherit the parent umask.
UMASK = None
# Default maximum for the number of available file descriptors.
MAXFD = 1024
# The standard I/O file descriptors are redirected to /dev/null by default.
if (hasattr(os, "devnull")):
REDIRECT_TO = os.devnull
else:
REDIRECT_TO = "/dev/null"
def createDaemon(function, logfile):
"""
Detach a process from the controlling terminal and run it in the
background as a daemon, returning control to the caller.
"""
try:
# Fork a child process so the parent can exit. This returns control to
# the command-line or shell. It also guarantees that the child will not
# be a process group leader, since the child receives a new process ID
# and inherits the parent's process group ID. This step is required
# to insure that the next call to os.setsid is successful.
pid = os.fork()
except OSError, e:
raise Exception, "%s [%d]" % (e.strerror, e.errno)
if (pid == 0): # The first child.
# To become the session leader of this new session and the process group
# leader of the new process group, we call os.setsid(). The process is
# also guaranteed not to have a controlling terminal.
os.setsid()
# Is ignoring SIGHUP necessary?
#
# It's often suggested that the SIGHUP signal should be ignored before
# the second fork to avoid premature termination of the process. The
# reason is that when the first child terminates, all processes, e.g.
# the second child, in the orphaned group will be sent a SIGHUP.
#
# "However, as part of the session management system, there are exactly
# two cases where SIGHUP is sent on the death of a process:
#
# 1) When the process that dies is the session leader of a session that
# is attached to a terminal device, SIGHUP is sent to all processes
# in the foreground process group of that terminal device.
# 2) When the death of a process causes a process group to become
# orphaned, and one or more processes in the orphaned group are
# stopped, then SIGHUP and SIGCONT are sent to all members of the
# orphaned group." [2]
#
# The first case can be ignored since the child is guaranteed not to have
# a controlling terminal. The second case isn't so easy to dismiss.
# The process group is orphaned when the first child terminates and
# POSIX.1 requires that every STOPPED process in an orphaned process
# group be sent a SIGHUP signal followed by a SIGCONT signal. Since the
# second child is not STOPPED though, we can safely forego ignoring the
# SIGHUP signal. In any case, there are no ill-effects if it is ignored.
#
# import signal # Set handlers for asynchronous events.
# signal.signal(signal.SIGHUP, signal.SIG_IGN)
try:
# Fork a second child and exit immediately to prevent zombies. This
# causes the second child process to be orphaned, making the init
# process responsible for its cleanup. And, since the first child is
# a session leader without a controlling terminal, it's possible for
# it to acquire one by opening a terminal in the future (System V-
# based systems). This second fork guarantees that the child is no
# longer a session leader, preventing the daemon from ever acquiring
# a controlling terminal.
pid = os.fork() # Fork a second child.
except OSError, e:
raise Exception, "%s [%d]" % (e.strerror, e.errno)
if (pid == 0): # The second child.
# We probably don't want the file mode creation mask inherited from
# the parent, so we give the child complete control over permissions.
if UMASK is not None:
os.umask(UMASK)
else:
# Parent (the first child) of the second child.
os._exit(0)
else:
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors. Using exit() may cause all stdio
# streams to be flushed twice and any temporary files may be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
return
# Close all open file descriptors. This prevents the child from keeping
# open any file descriptors inherited from the parent. There is a variety
# of methods to accomplish this task. Three are listed below.
#
# Try the system configuration variable, SC_OPEN_MAX, to obtain the maximum
# number of open file descriptors to close. If it doesn't exists, use
# the default value (configurable).
#
# try:
# maxfd = os.sysconf("SC_OPEN_MAX")
# except (AttributeError, ValueError):
# maxfd = MAXFD
#
# OR
#
# if (os.sysconf_names.has_key("SC_OPEN_MAX")):
# maxfd = os.sysconf("SC_OPEN_MAX")
# else:
# maxfd = MAXFD
#
# OR
#
# Use the getrlimit method to retrieve the maximum file descriptor number
# that can be opened by this process. If there is not limit on the
# resource, use the default value.
#
import resource # Resource usage information.
maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
if (maxfd == resource.RLIM_INFINITY):
maxfd = MAXFD
# Iterate through and close all file descriptors.
# for fd in range(0, maxfd):
# try:
# os.close(fd)
# except OSError: # ERROR, fd wasn't open to begin with (ignored)
# pass
# Redirect the standard I/O file descriptors to the specified file. Since
# the daemon has no controlling terminal, most daemons redirect stdin,
# stdout, and stderr to /dev/null. This is done to prevent side-effects
# from reads and writes to the standard I/O file descriptors.
# This call to open is guaranteed to return the lowest file descriptor,
# which will be 0 (stdin), since it was closed above.
# os.open(REDIRECT_TO, os.O_RDWR) # standard input (0)
# Duplicate standard input to standard output and standard error.
# os.dup2(0, 1) # standard output (1)
# os.dup2(0, 2) # standard error (2)
si = file('/dev/null', 'r')
so = file(logfile, 'w')
se = so
# Replace those fds with our own
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
function()
os._exit(0)

View File

@@ -1,562 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Data' implementations
Functions for interacting with the data structure used by the
BitBake build tools.
The expandData and update_data are the most expensive
operations. At night the cookie monster came by and
suggested 'give me cookies on setting the variables and
things will work out'. Taking this suggestion into account
applying the skills from the not yet passed 'Entwurf und
Analyse von Algorithmen' lecture and the cookie
monster seems to be right. We will track setVar more carefully
to have faster update_data and expandKeys operations.
This is a treade-off between speed and memory again but
the speed is more critical here.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
import sys, os, re, types
if sys.argv[0][-5:] == "pydoc":
path = os.path.dirname(os.path.dirname(sys.argv[1]))
else:
path = os.path.dirname(os.path.dirname(sys.argv[0]))
sys.path.insert(0,path)
from bb import data_smart
import bb
_dict_type = data_smart.DataSmart
def init():
return _dict_type()
def init_db(parent = None):
if parent:
return parent.createCopy()
else:
return _dict_type()
def createCopy(source):
"""Link the source set to the destination
If one does not find the value in the destination set,
search will go on to the source set to get the value.
Value from source are copy-on-write. i.e. any try to
modify one of them will end up putting the modified value
in the destination set.
"""
return source.createCopy()
def initVar(var, d):
"""Non-destructive var init for data structure"""
d.initVar(var)
def setVar(var, value, d):
"""Set a variable to a given value
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> print getVar('TEST', d)
testcontents
"""
d.setVar(var,value)
def getVar(var, d, exp = 0):
"""Gets the value of a variable
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> print getVar('TEST', d)
testcontents
"""
return d.getVar(var,exp)
def renameVar(key, newkey, d):
"""Renames a variable from key to newkey
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> renameVar('TEST', 'TEST2', d)
>>> print getVar('TEST2', d)
testcontents
"""
d.renameVar(key, newkey)
def delVar(var, d):
"""Removes a variable from the data set
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> print getVar('TEST', d)
testcontents
>>> delVar('TEST', d)
>>> print getVar('TEST', d)
None
"""
d.delVar(var)
def setVarFlag(var, flag, flagvalue, d):
"""Set a flag for a given variable to a given value
Example:
>>> d = init()
>>> setVarFlag('TEST', 'python', 1, d)
>>> print getVarFlag('TEST', 'python', d)
1
"""
d.setVarFlag(var,flag,flagvalue)
def getVarFlag(var, flag, d):
"""Gets given flag from given var
Example:
>>> d = init()
>>> setVarFlag('TEST', 'python', 1, d)
>>> print getVarFlag('TEST', 'python', d)
1
"""
return d.getVarFlag(var,flag)
def delVarFlag(var, flag, d):
"""Removes a given flag from the variable's flags
Example:
>>> d = init()
>>> setVarFlag('TEST', 'testflag', 1, d)
>>> print getVarFlag('TEST', 'testflag', d)
1
>>> delVarFlag('TEST', 'testflag', d)
>>> print getVarFlag('TEST', 'testflag', d)
None
"""
d.delVarFlag(var,flag)
def setVarFlags(var, flags, d):
"""Set the flags for a given variable
Note:
setVarFlags will not clear previous
flags. Think of this method as
addVarFlags
Example:
>>> d = init()
>>> myflags = {}
>>> myflags['test'] = 'blah'
>>> setVarFlags('TEST', myflags, d)
>>> print getVarFlag('TEST', 'test', d)
blah
"""
d.setVarFlags(var,flags)
def getVarFlags(var, d):
"""Gets a variable's flags
Example:
>>> d = init()
>>> setVarFlag('TEST', 'test', 'blah', d)
>>> print getVarFlags('TEST', d)['test']
blah
"""
return d.getVarFlags(var)
def delVarFlags(var, d):
"""Removes a variable's flags
Example:
>>> data = init()
>>> setVarFlag('TEST', 'testflag', 1, data)
>>> print getVarFlag('TEST', 'testflag', data)
1
>>> delVarFlags('TEST', data)
>>> print getVarFlags('TEST', data)
None
"""
d.delVarFlags(var)
def keys(d):
"""Return a list of keys in d
Example:
>>> d = init()
>>> setVar('TEST', 1, d)
>>> setVar('MOO' , 2, d)
>>> setVarFlag('TEST', 'test', 1, d)
>>> keys(d)
['TEST', 'MOO']
"""
return d.keys()
def getData(d):
"""Returns the data object used"""
return d
def setData(newData, d):
"""Sets the data object to the supplied value"""
d = newData
##
## Cookie Monsters' query functions
##
def _get_override_vars(d, override):
"""
Internal!!!
Get the Names of Variables that have a specific
override. This function returns a iterable
Set or an empty list
"""
return []
def _get_var_flags_triple(d):
"""
Internal!!!
"""
return []
__expand_var_regexp__ = re.compile(r"\${[^{}]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
def expand(s, d, varname = None):
"""Variable expansion using the data store.
Example:
Standard expansion:
>>> d = init()
>>> setVar('A', 'sshd', d)
>>> print expand('/usr/bin/${A}', d)
/usr/bin/sshd
Python expansion:
>>> d = init()
>>> print expand('result: ${@37 * 72}', d)
result: 2664
Shell expansion:
>>> d = init()
>>> print expand('${TARGET_MOO}', d)
${TARGET_MOO}
>>> setVar('TARGET_MOO', 'yupp', d)
>>> print expand('${TARGET_MOO}',d)
yupp
>>> setVar('SRC_URI', 'http://somebug.${TARGET_MOO}', d)
>>> delVar('TARGET_MOO', d)
>>> print expand('${SRC_URI}', d)
http://somebug.${TARGET_MOO}
"""
return d.expand(s, varname)
def expandKeys(alterdata, readdata = None):
if readdata == None:
readdata = alterdata
todolist = {}
for key in keys(alterdata):
if not '${' in key:
continue
ekey = expand(key, readdata)
if key == ekey:
continue
todolist[key] = ekey
# These two for loops are split for performance to maximise the
# usefulness of the expand cache
for key in todolist:
ekey = todolist[key]
renameVar(key, ekey, alterdata)
def expandData(alterdata, readdata = None):
"""For each variable in alterdata, expand it, and update the var contents.
Replacements use data from readdata.
Example:
>>> a=init()
>>> b=init()
>>> setVar("dlmsg", "dl_dir is ${DL_DIR}", a)
>>> setVar("DL_DIR", "/path/to/whatever", b)
>>> expandData(a, b)
>>> print getVar("dlmsg", a)
dl_dir is /path/to/whatever
"""
if readdata == None:
readdata = alterdata
for key in keys(alterdata):
val = getVar(key, alterdata)
if type(val) is not types.StringType:
continue
expanded = expand(val, readdata)
# print "key is %s, val is %s, expanded is %s" % (key, val, expanded)
if val != expanded:
setVar(key, expanded, alterdata)
def inheritFromOS(d):
"""Inherit variables from the environment."""
for s in os.environ.keys():
try:
setVar(s, os.environ[s], d)
setVarFlag(s, "export", True, d)
except TypeError:
pass
def emit_var(var, o=sys.__stdout__, d = init(), all=False):
"""Emit a variable to be sourced by a shell."""
if getVarFlag(var, "python", d):
return 0
export = getVarFlag(var, "export", d)
unexport = getVarFlag(var, "unexport", d)
func = getVarFlag(var, "func", d)
if not all and not export and not unexport and not func:
return 0
try:
if all:
oval = getVar(var, d, 0)
val = getVar(var, d, 1)
except KeyboardInterrupt:
raise
except:
excname = str(sys.exc_info()[0])
if excname == "bb.build.FuncFailed":
raise
o.write('# expansion of %s threw %s\n' % (var, excname))
return 0
if all:
o.write('# %s=%s\n' % (var, oval))
if type(val) is not types.StringType:
return 0
if (var.find("-") != -1 or var.find(".") != -1 or var.find('{') != -1 or var.find('}') != -1 or var.find('+') != -1) and not all:
return 0
varExpanded = expand(var, d)
if unexport:
o.write('unset %s\n' % varExpanded)
return 1
val.rstrip()
if not val:
return 0
if func:
# NOTE: should probably check for unbalanced {} within the var
o.write("%s() {\n%s\n}\n" % (varExpanded, val))
return 1
if export:
o.write('export ')
# if we're going to output this within doublequotes,
# to a shell, we need to escape the quotes in the var
alter = re.sub('"', '\\"', val.strip())
o.write('%s="%s"\n' % (varExpanded, alter))
return 1
def emit_env(o=sys.__stdout__, d = init(), all=False):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
env = keys(d)
for e in env:
if getVarFlag(e, "func", d):
continue
emit_var(e, o, d, all) and o.write('\n')
for e in env:
if not getVarFlag(e, "func", d):
continue
emit_var(e, o, d) and o.write('\n')
def update_data(d):
"""Modifies the environment vars according to local overrides and commands.
Examples:
Appending to a variable:
>>> d = init()
>>> setVar('TEST', 'this is a', d)
>>> setVar('TEST_append', ' test', d)
>>> setVar('TEST_append', ' of the emergency broadcast system.', d)
>>> update_data(d)
>>> print getVar('TEST', d)
this is a test of the emergency broadcast system.
Prepending to a variable:
>>> setVar('TEST', 'virtual/libc', d)
>>> setVar('TEST_prepend', 'virtual/tmake ', d)
>>> setVar('TEST_prepend', 'virtual/patcher ', d)
>>> update_data(d)
>>> print getVar('TEST', d)
virtual/patcher virtual/tmake virtual/libc
Overrides:
>>> setVar('TEST_arm', 'target', d)
>>> setVar('TEST_ramses', 'machine', d)
>>> setVar('TEST_local', 'local', d)
>>> setVar('OVERRIDES', 'arm', d)
>>> setVar('TEST', 'original', d)
>>> update_data(d)
>>> print getVar('TEST', d)
target
>>> setVar('OVERRIDES', 'arm:ramses:local', d)
>>> setVar('TEST', 'original', d)
>>> update_data(d)
>>> print getVar('TEST', d)
local
CopyMonster:
>>> e = d.createCopy()
>>> setVar('TEST_foo', 'foo', e)
>>> update_data(e)
>>> print getVar('TEST', e)
local
>>> setVar('OVERRIDES', 'arm:ramses:local:foo', e)
>>> update_data(e)
>>> print getVar('TEST', e)
foo
>>> f = d.createCopy()
>>> setVar('TEST_moo', 'something', f)
>>> setVar('OVERRIDES', 'moo:arm:ramses:local:foo', e)
>>> update_data(e)
>>> print getVar('TEST', e)
foo
>>> h = init()
>>> setVar('SRC_URI', 'file://append.foo;patch=1 ', h)
>>> g = h.createCopy()
>>> setVar('SRC_URI_append_arm', 'file://other.foo;patch=1', g)
>>> setVar('OVERRIDES', 'arm:moo', g)
>>> update_data(g)
>>> print getVar('SRC_URI', g)
file://append.foo;patch=1 file://other.foo;patch=1
"""
bb.msg.debug(2, bb.msg.domain.Data, "update_data()")
# now ask the cookie monster for help
#print "Cookie Monster"
#print "Append/Prepend %s" % d._special_values
#print "Overrides %s" % d._seen_overrides
overrides = (getVar('OVERRIDES', d, 1) or "").split(':') or []
#
# Well let us see what breaks here. We used to iterate
# over each variable and apply the override and then
# do the line expanding.
# If we have bad luck - which we will have - the keys
# where in some order that is so important for this
# method which we don't have anymore.
# Anyway we will fix that and write test cases this
# time.
#
# First we apply all overrides
# Then we will handle _append and _prepend
#
for o in overrides:
# calculate '_'+override
l = len(o)+1
# see if one should even try
if not d._seen_overrides.has_key(o):
continue
vars = d._seen_overrides[o]
for var in vars:
name = var[:-l]
try:
d[name] = d[var]
except:
bb.msg.note(1, bb.msg.domain.Data, "Untracked delVar")
# now on to the appends and prepends
if d._special_values.has_key('_append'):
appends = d._special_values['_append'] or []
for append in appends:
for (a, o) in getVarFlag(append, '_append', d) or []:
# maybe the OVERRIDE was not yet added so keep the append
if (o and o in overrides) or not o:
delVarFlag(append, '_append', d)
if o and not o in overrides:
continue
sval = getVar(append,d) or ""
sval+=a
setVar(append, sval, d)
if d._special_values.has_key('_prepend'):
prepends = d._special_values['_prepend'] or []
for prepend in prepends:
for (a, o) in getVarFlag(prepend, '_prepend', d) or []:
# maybe the OVERRIDE was not yet added so keep the prepend
if (o and o in overrides) or not o:
delVarFlag(prepend, '_prepend', d)
if o and not o in overrides:
continue
sval = a + (getVar(prepend,d) or "")
setVar(prepend, sval, d)
def inherits_class(klass, d):
val = getVar('__inherit_cache', d) or []
if os.path.join('classes', '%s.bbclass' % klass) in val:
return True
return False
def _test():
"""Start a doctest run on this module"""
import doctest
import bb
from bb import data
bb.msg.set_debug_level(0)
doctest.testmod(data)
if __name__ == "__main__":
_test()

View File

@@ -1,288 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake Smart Dictionary Implementation
Functions for interacting with the data structure used by the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2004, 2005 Seb Frankengul
# Copyright (C) 2005, 2006 Holger Hans Peter Freyther
# Copyright (C) 2005 Uli Luckas
# Copyright (C) 2005 ROAD GmbH
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import copy, os, re, sys, time, types
import bb
from bb import utils, methodpool
from COW import COWDictBase
from new import classobj
__setvar_keyword__ = ["_append","_prepend"]
__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend)(_(?P<add>.*))?')
__expand_var_regexp__ = re.compile(r"\${[^{}]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
class DataSmart:
def __init__(self, special = COWDictBase.copy(), seen = COWDictBase.copy() ):
self.dict = {}
# cookie monster tribute
self._special_values = special
self._seen_overrides = seen
self.expand_cache = {}
def expand(self,s, varname):
def var_sub(match):
key = match.group()[2:-1]
if varname and key:
if varname == key:
raise Exception("variable %s references itself!" % varname)
var = self.getVar(key, 1)
if var is not None:
return var
else:
return match.group()
def python_sub(match):
import bb
code = match.group()[3:-1]
locals()['d'] = self
s = eval(code)
if type(s) == types.IntType: s = str(s)
return s
if type(s) is not types.StringType: # sanity check
return s
if varname and varname in self.expand_cache:
return self.expand_cache[varname]
while s.find('${') != -1:
olds = s
try:
s = __expand_var_regexp__.sub(var_sub, s)
s = __expand_python_regexp__.sub(python_sub, s)
if s == olds: break
if type(s) is not types.StringType: # sanity check
bb.msg.error(bb.msg.domain.Data, 'expansion of %s returned non-string %s' % (olds, s))
except KeyboardInterrupt:
raise
except:
bb.msg.note(1, bb.msg.domain.Data, "%s:%s while evaluating:\n%s" % (sys.exc_info()[0], sys.exc_info()[1], s))
raise
if varname:
self.expand_cache[varname] = s
return s
def initVar(self, var):
self.expand_cache = {}
if not var in self.dict:
self.dict[var] = {}
def _findVar(self,var):
_dest = self.dict
while (_dest and var not in _dest):
if not "_data" in _dest:
_dest = None
break
_dest = _dest["_data"]
if _dest and var in _dest:
return _dest[var]
return None
def _makeShadowCopy(self, var):
if var in self.dict:
return
local_var = self._findVar(var)
if local_var:
self.dict[var] = copy.copy(local_var)
else:
self.initVar(var)
def setVar(self,var,value):
self.expand_cache = {}
match = __setvar_regexp__.match(var)
if match and match.group("keyword") in __setvar_keyword__:
base = match.group('base')
keyword = match.group("keyword")
override = match.group('add')
l = self.getVarFlag(base, keyword) or []
l.append([value, override])
self.setVarFlag(base, keyword, l)
# todo make sure keyword is not __doc__ or __module__
# pay the cookie monster
try:
self._special_values[keyword].add( base )
except:
self._special_values[keyword] = set()
self._special_values[keyword].add( base )
return
if not var in self.dict:
self._makeShadowCopy(var)
# more cookies for the cookie monster
if '_' in var:
override = var[var.rfind('_')+1:]
if not self._seen_overrides.has_key(override):
self._seen_overrides[override] = set()
self._seen_overrides[override].add( var )
# setting var
self.dict[var]["content"] = value
def getVar(self,var,exp):
value = self.getVarFlag(var,"content")
if exp and value:
return self.expand(value,var)
return value
def renameVar(self, key, newkey):
"""
Rename the variable key to newkey
"""
val = self.getVar(key, 0)
if val is None:
return
self.setVar(newkey, val)
for i in ('_append', '_prepend'):
dest = self.getVarFlag(newkey, i) or []
src = self.getVarFlag(key, i) or []
dest.extend(src)
self.setVarFlag(newkey, i, dest)
if self._special_values.has_key(i) and key in self._special_values[i]:
self._special_values[i].remove(key)
self._special_values[i].add(newkey)
self.delVar(key)
def delVar(self,var):
self.expand_cache = {}
self.dict[var] = {}
def setVarFlag(self,var,flag,flagvalue):
if not var in self.dict:
self._makeShadowCopy(var)
self.dict[var][flag] = flagvalue
def getVarFlag(self,var,flag):
local_var = self._findVar(var)
if local_var:
if flag in local_var:
return copy.copy(local_var[flag])
return None
def delVarFlag(self,var,flag):
local_var = self._findVar(var)
if not local_var:
return
if not var in self.dict:
self._makeShadowCopy(var)
if var in self.dict and flag in self.dict[var]:
del self.dict[var][flag]
def setVarFlags(self,var,flags):
if not var in self.dict:
self._makeShadowCopy(var)
for i in flags.keys():
if i == "content":
continue
self.dict[var][i] = flags[i]
def getVarFlags(self,var):
local_var = self._findVar(var)
flags = {}
if local_var:
for i in local_var.keys():
if i == "content":
continue
flags[i] = local_var[i]
if len(flags) == 0:
return None
return flags
def delVarFlags(self,var):
if not var in self.dict:
self._makeShadowCopy(var)
if var in self.dict:
content = None
# try to save the content
if "content" in self.dict[var]:
content = self.dict[var]["content"]
self.dict[var] = {}
self.dict[var]["content"] = content
else:
del self.dict[var]
def createCopy(self):
"""
Create a copy of self by setting _data to self
"""
# we really want this to be a DataSmart...
data = DataSmart(seen=self._seen_overrides.copy(), special=self._special_values.copy())
data.dict["_data"] = self.dict
return data
# Dictionary Methods
def keys(self):
def _keys(d, mykey):
if "_data" in d:
_keys(d["_data"],mykey)
for key in d.keys():
if key != "_data":
mykey[key] = None
keytab = {}
_keys(self.dict,keytab)
return keytab.keys()
def __getitem__(self,item):
#print "Warning deprecated"
return self.getVar(item, False)
def __setitem__(self,var,data):
#print "Warning deprecated"
self.setVar(var,data)

View File

@@ -1,302 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Event' implementation
Classes and functions for manipulating 'events' in the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, re
import bb.utils
# This is the pid for which we should generate the event. This is set when
# the runqueue forks off.
worker_pid = 0
class Event:
"""Base class for events"""
type = "Event"
def __init__(self, d):
self._data = d
self.pid = worker_pid
def getData(self):
return self._data
def setData(self, data):
self._data = data
data = property(getData, setData, None, "data property")
NotHandled = 0
Handled = 1
Registered = 10
AlreadyRegistered = 14
# Internal
_handlers = {}
_ui_handlers = {}
_ui_handler_seq = 0
def fire(event):
"""Fire off an Event"""
for handler in _handlers:
h = _handlers[handler]
if type(h).__name__ == "code":
exec(h)
tmpHandler(event)
else:
h(event)
# Remove the event data elements for UI handlers - too much data otherwise
# They can request data if they need it
event.data = None
event._data = None
errors = []
for h in _ui_handlers:
#print "Sending event %s" % event
classid = "%s.%s" % (event.__class__.__module__, event.__class__.__name__)
try:
_ui_handlers[h].event.send((classid, event))
except:
errors.append(h)
for h in errors:
del _ui_handlers[h]
def register(name, handler):
"""Register an Event handler"""
# already registered
if name in _handlers:
return AlreadyRegistered
if handler is not None:
# handle string containing python code
if type(handler).__name__ == "str":
tmp = "def tmpHandler(e):\n%s" % handler
comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event._registerCode")
_handlers[name] = comp
else:
_handlers[name] = handler
return Registered
def remove(name, handler):
"""Remove an Event handler"""
_handlers.pop(name)
def register_UIHhandler(handler):
bb.event._ui_handler_seq = bb.event._ui_handler_seq + 1
_ui_handlers[_ui_handler_seq] = handler
return _ui_handler_seq
def unregister_UIHhandler(handlerNum):
if handlerNum in _ui_handlers:
del _ui_handlers[handlerNum]
return
def getName(e):
"""Returns the name of a class or class instance"""
if getattr(e, "__name__", None) == None:
return e.__class__.__name__
else:
return e.__name__
class ConfigParsed(Event):
"""Configuration Parsing Complete"""
class RecipeParsed(Event):
""" Recipe Parsing Complete """
def __init__(self, fn, d):
self.fn = fn
Event.__init__(self, d)
class StampUpdate(Event):
"""Trigger for any adjustment of the stamp files to happen"""
def __init__(self, targets, stampfns, d):
self._targets = targets
self._stampfns = stampfns
Event.__init__(self, d)
def getStampPrefix(self):
return self._stampfns
def getTargets(self):
return self._targets
stampPrefix = property(getStampPrefix)
targets = property(getTargets)
class PkgBase(Event):
"""Base class for package events"""
def __init__(self, t, d):
self._pkg = t
Event.__init__(self, d)
self._message = "package %s: %s" % (bb.data.getVar("P", d, 1), getName(self)[3:])
def getPkg(self):
return self._pkg
def setPkg(self, pkg):
self._pkg = pkg
pkg = property(getPkg, setPkg, None, "pkg property")
class BuildBase(Event):
"""Base class for bbmake run events"""
def __init__(self, n, p, c, failures = 0):
self._name = n
self._pkgs = p
Event.__init__(self, c)
self._failures = failures
def getPkgs(self):
return self._pkgs
def setPkgs(self, pkgs):
self._pkgs = pkgs
def getName(self):
return self._name
def setName(self, name):
self._name = name
def getCfg(self):
return self.data
def setCfg(self, cfg):
self.data = cfg
def getFailures(self):
"""
Return the number of failed packages
"""
return self._failures
pkgs = property(getPkgs, setPkgs, None, "pkgs property")
name = property(getName, setName, None, "name property")
cfg = property(getCfg, setCfg, None, "cfg property")
class DepBase(PkgBase):
"""Base class for dependency events"""
def __init__(self, t, data, d):
self._dep = d
PkgBase.__init__(self, t, data)
def getDep(self):
return self._dep
def setDep(self, dep):
self._dep = dep
dep = property(getDep, setDep, None, "dep property")
class BuildStarted(BuildBase):
"""bbmake build run started"""
class BuildCompleted(BuildBase):
"""bbmake build run completed"""
class UnsatisfiedDep(DepBase):
"""Unsatisfied Dependency"""
class RecursiveDep(DepBase):
"""Recursive Dependency"""
class NoProvider(Event):
"""No Provider for an Event"""
def __init__(self, item, data, runtime=False):
Event.__init__(self, data)
self._item = item
self._runtime = runtime
def getItem(self):
return self._item
def isRuntime(self):
return self._runtime
class MultipleProviders(Event):
"""Multiple Providers"""
def __init__(self, item, candidates, data, runtime = False):
Event.__init__(self, data)
self._item = item
self._candidates = candidates
self._is_runtime = runtime
def isRuntime(self):
"""
Is this a runtime issue?
"""
return self._is_runtime
def getItem(self):
"""
The name for the to be build item
"""
return self._item
def getCandidates(self):
"""
Get the possible Candidates for a PROVIDER.
"""
return self._candidates
class ParseProgress(Event):
"""
Parsing Progress Event
"""
def __init__(self, d, cached, parsed, skipped, masked, errors, total):
Event.__init__(self, d)
self.cached = cached
self.parsed = parsed
self.skipped = skipped
self.masked = masked
self.errors = errors
self.sofar = cached + parsed + skipped
self.total = total
class DepTreeGenerated(Event):
"""
Event when a dependency tree has been generated
"""
def __init__(self, d, depgraph):
Event.__init__(self, d)
self._depgraph = depgraph

View File

@@ -1,606 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementations
Classes for obtaining upstream sources for the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
import bb
from bb import data
from bb import persist_data
class FetchError(Exception):
"""Exception raised when a download fails"""
class NoMethodError(Exception):
"""Exception raised when there is no method to obtain a supplied url or set of urls"""
class MissingParameterError(Exception):
"""Exception raised when a fetch method is missing a critical parameter in the url"""
class ParameterError(Exception):
"""Exception raised when a url cannot be proccessed due to invalid parameters."""
class MD5SumError(Exception):
"""Exception raised when a MD5SUM of a file does not match the expected one"""
class InvalidSRCREV(Exception):
"""Exception raised when an invalid SRCREV is encountered"""
def uri_replace(uri, uri_find, uri_replace, d):
# bb.msg.note(1, bb.msg.domain.Fetcher, "uri_replace: operating on %s" % uri)
if not uri or not uri_find or not uri_replace:
bb.msg.debug(1, bb.msg.domain.Fetcher, "uri_replace: passed an undefined value, not replacing")
uri_decoded = list(bb.decodeurl(uri))
uri_find_decoded = list(bb.decodeurl(uri_find))
uri_replace_decoded = list(bb.decodeurl(uri_replace))
result_decoded = ['','','','','',{}]
for i in uri_find_decoded:
loc = uri_find_decoded.index(i)
result_decoded[loc] = uri_decoded[loc]
import types
if type(i) == types.StringType:
if (re.match(i, uri_decoded[loc])):
result_decoded[loc] = re.sub(i, uri_replace_decoded[loc], uri_decoded[loc])
if uri_find_decoded.index(i) == 2:
if d:
localfn = bb.fetch.localpath(uri, d)
if localfn:
result_decoded[loc] = os.path.dirname(result_decoded[loc]) + "/" + os.path.basename(bb.fetch.localpath(uri, d))
# bb.msg.note(1, bb.msg.domain.Fetcher, "uri_replace: matching %s against %s and replacing with %s" % (i, uri_decoded[loc], uri_replace_decoded[loc]))
else:
# bb.msg.note(1, bb.msg.domain.Fetcher, "uri_replace: no match")
return uri
# else:
# for j in i.keys():
# FIXME: apply replacements against options
return bb.encodeurl(result_decoded)
methods = []
urldata_cache = {}
saved_headrevs = {}
def fetcher_init(d):
"""
Called to initilize the fetchers once the configuration data is known
Calls before this must not hit the cache.
"""
pd = persist_data.PersistData(d)
# When to drop SCM head revisions controled by user policy
srcrev_policy = bb.data.getVar('BB_SRCREV_POLICY', d, 1) or "clear"
if srcrev_policy == "cache":
bb.msg.debug(1, bb.msg.domain.Fetcher, "Keeping SRCREV cache due to cache policy of: %s" % srcrev_policy)
elif srcrev_policy == "clear":
bb.msg.debug(1, bb.msg.domain.Fetcher, "Clearing SRCREV cache due to cache policy of: %s" % srcrev_policy)
try:
bb.fetch.saved_headrevs = pd.getKeyValues("BB_URI_HEADREVS")
except:
pass
pd.delDomain("BB_URI_HEADREVS")
else:
bb.msg.fatal(bb.msg.domain.Fetcher, "Invalid SRCREV cache policy of: %s" % srcrev_policy)
# Make sure our domains exist
pd.addDomain("BB_URI_HEADREVS")
pd.addDomain("BB_URI_LOCALCOUNT")
def fetcher_compare_revisons(d):
"""
Compare the revisions in the persistant cache with current values and
return true/false on whether they've changed.
"""
pd = persist_data.PersistData(d)
data = pd.getKeyValues("BB_URI_HEADREVS")
data2 = bb.fetch.saved_headrevs
changed = False
for key in data:
if key not in data2 or data2[key] != data[key]:
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s changed" % key)
changed = True
return True
else:
bb.msg.debug(2, bb.msg.domain.Fetcher, "%s did not change" % key)
return False
# Function call order is usually:
# 1. init
# 2. go
# 3. localpaths
# localpath can be called at any time
def init(urls, d, setup = True):
urldata = {}
fn = bb.data.getVar('FILE', d, 1)
if fn in urldata_cache:
urldata = urldata_cache[fn]
for url in urls:
if url not in urldata:
urldata[url] = FetchData(url, d)
if setup:
for url in urldata:
if not urldata[url].setup:
urldata[url].setup_localpath(d)
urldata_cache[fn] = urldata
return urldata
def go(d):
"""
Fetch all urls
init must have previously been called
"""
urldata = init([], d, True)
for u in urldata:
ud = urldata[u]
m = ud.method
if ud.localfile:
if not m.forcefetch(u, ud, d) and os.path.exists(ud.md5):
# File already present along with md5 stamp file
# Touch md5 file to show activity
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
continue
lf = bb.utils.lockfile(ud.lockfile)
if not m.forcefetch(u, ud, d) and os.path.exists(ud.md5):
# If someone else fetched this before we got the lock,
# notice and don't try again
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
bb.utils.unlockfile(lf)
continue
m.go(u, ud, d)
if ud.localfile:
if not m.forcefetch(u, ud, d):
Fetch.write_md5sum(u, ud, d)
bb.utils.unlockfile(lf)
def checkstatus(d):
"""
Check all urls exist upstream
init must have previously been called
"""
urldata = init([], d, True)
for u in urldata:
ud = urldata[u]
m = ud.method
bb.msg.note(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
ret = m.checkstatus(u, ud, d)
if not ret:
bb.msg.fatal(bb.msg.domain.Fetcher, "URL %s doesn't work" % u)
def localpaths(d):
"""
Return a list of the local filenames, assuming successful fetch
"""
local = []
urldata = init([], d, True)
for u in urldata:
ud = urldata[u]
local.append(ud.localpath)
return local
srcrev_internal_call = False
def get_srcrev(d):
"""
Return the version string for the current package
(usually to be used as PV)
Most packages usually only have one SCM so we just pass on the call.
In the multi SCM case, we build a value based on SRCREV_FORMAT which must
have been set.
"""
#
# Ugly code alert. localpath in the fetchers will try to evaluate SRCREV which
# could translate into a call to here. If it does, we need to catch this
# and provide some way so it knows get_srcrev is active instead of being
# some number etc. hence the srcrev_internal_call tracking and the magic
# "SRCREVINACTION" return value.
#
# Neater solutions welcome!
#
if bb.fetch.srcrev_internal_call:
return "SRCREVINACTION"
scms = []
# Only call setup_localpath on URIs which suppports_srcrev()
urldata = init(bb.data.getVar('SRC_URI', d, 1).split(), d, False)
for u in urldata:
ud = urldata[u]
if ud.method.suppports_srcrev():
if not ud.setup:
ud.setup_localpath(d)
scms.append(u)
if len(scms) == 0:
bb.msg.error(bb.msg.domain.Fetcher, "SRCREV was used yet no valid SCM was found in SRC_URI")
raise ParameterError
bb.data.setVar('__BB_DONT_CACHE','1', d)
if len(scms) == 1:
return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d)
#
# Mutiple SCMs are in SRC_URI so we resort to SRCREV_FORMAT
#
format = bb.data.getVar('SRCREV_FORMAT', d, 1)
if not format:
bb.msg.error(bb.msg.domain.Fetcher, "The SRCREV_FORMAT variable must be set when multiple SCMs are used.")
raise ParameterError
for scm in scms:
if 'name' in urldata[scm].parm:
name = urldata[scm].parm["name"]
rev = urldata[scm].method.sortable_revision(scm, urldata[scm], d)
format = format.replace(name, rev)
return format
def localpath(url, d, cache = True):
"""
Called from the parser with cache=False since the cache isn't ready
at this point. Also called from classed in OE e.g. patch.bbclass
"""
ud = init([url], d)
if ud[url].method:
return ud[url].localpath
return url
def runfetchcmd(cmd, d, quiet = False):
"""
Run cmd returning the command output
Raise an error if interrupted or cmd fails
Optionally echo command output to stdout
"""
# Need to export PATH as binary could be in metadata paths
# rather than host provided
# Also include some other variables.
# FIXME: Should really include all export varaiables?
exportvars = ['PATH', 'GIT_PROXY_COMMAND', 'GIT_PROXY_HOST', 'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy', 'SSH_AUTH_SOCK', 'SSH_AGENT_PID', 'HOME']
for var in exportvars:
val = data.getVar(var, d, True)
if val:
cmd = 'export ' + var + '=%s; %s' % (val, cmd)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % cmd)
# redirect stderr to stdout
stdout_handle = os.popen(cmd + " 2>&1", "r")
output = ""
while 1:
line = stdout_handle.readline()
if not line:
break
if not quiet:
print line,
output += line
status = stdout_handle.close() or 0
signal = status >> 8
exitstatus = status & 0xff
if signal:
raise FetchError("Fetch command %s failed with signal %s, output:\n%s" % (cmd, signal, output))
elif status != 0:
raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (cmd, status, output))
return output
class FetchData(object):
"""
A class which represents the fetcher state for a given URI.
"""
def __init__(self, url, d):
self.localfile = ""
(self.type, self.host, self.path, self.user, self.pswd, self.parm) = bb.decodeurl(data.expand(url, d))
self.date = Fetch.getSRCDate(self, d)
self.url = url
if not self.user and "user" in self.parm:
self.user = self.parm["user"]
if not self.pswd and "pswd" in self.parm:
self.pswd = self.parm["pswd"]
self.setup = False
for m in methods:
if m.supports(url, self, d):
self.method = m
return
raise NoMethodError("Missing implementation for url %s" % url)
def setup_localpath(self, d):
self.setup = True
if "localpath" in self.parm:
# if user sets localpath for file, use it instead.
self.localpath = self.parm["localpath"]
else:
try:
bb.fetch.srcrev_internal_call = True
self.localpath = self.method.localpath(self.url, self, d)
finally:
bb.fetch.srcrev_internal_call = False
# We have to clear data's internal caches since the cached value of SRCREV is now wrong.
# Horrible...
bb.data.delVar("ISHOULDNEVEREXIST", d)
self.md5 = self.localpath + '.md5'
self.lockfile = self.localpath + '.lock'
class Fetch(object):
"""Base class for 'fetch'ing data"""
def __init__(self, urls = []):
self.urls = []
def supports(self, url, urldata, d):
"""
Check to see if this fetch class supports a given url.
"""
return 0
def localpath(self, url, urldata, d):
"""
Return the local filename of a given url assuming a successful fetch.
Can also setup variables in urldata for use in go (saving code duplication
and duplicate code execution)
"""
return url
def setUrls(self, urls):
self.__urls = urls
def getUrls(self):
return self.__urls
urls = property(getUrls, setUrls, None, "Urls property")
def forcefetch(self, url, urldata, d):
"""
Force a fetch, even if localpath exists?
"""
return False
def suppports_srcrev(self):
"""
The fetcher supports auto source revisions (SRCREV)
"""
return False
def go(self, url, urldata, d):
"""
Fetch urls
Assumes localpath was called first
"""
raise NoMethodError("Missing implementation for url")
def checkstatus(self, url, urldata, d):
"""
Check the status of a URL
Assumes localpath was called first
"""
bb.msg.note(1, bb.msg.domain.Fetcher, "URL %s could not be checked for status since no method exists." % url)
return True
def getSRCDate(urldata, d):
"""
Return the SRC Date for the component
d the bb.data module
"""
if "srcdate" in urldata.parm:
return urldata.parm['srcdate']
pn = data.getVar("PN", d, 1)
if pn:
return data.getVar("SRCDATE_%s" % pn, d, 1) or data.getVar("CVSDATE_%s" % pn, d, 1) or data.getVar("SRCDATE", d, 1) or data.getVar("CVSDATE", d, 1) or data.getVar("DATE", d, 1)
return data.getVar("SRCDATE", d, 1) or data.getVar("CVSDATE", d, 1) or data.getVar("DATE", d, 1)
getSRCDate = staticmethod(getSRCDate)
def srcrev_internal_helper(ud, d):
"""
Return:
a) a source revision if specified
b) True if auto srcrev is in action
c) False otherwise
"""
if 'rev' in ud.parm:
return ud.parm['rev']
if 'tag' in ud.parm:
return ud.parm['tag']
rev = None
if 'name' in ud.parm:
pn = data.getVar("PN", d, 1)
rev = data.getVar("SRCREV_pn-" + pn + "_" + ud.parm['name'], d, 1)
if not rev:
rev = data.getVar("SRCREV", d, 1)
if rev == "INVALID":
raise InvalidSRCREV("Please set SRCREV to a valid value")
if not rev:
return False
if rev is "SRCREVINACTION":
return True
return rev
srcrev_internal_helper = staticmethod(srcrev_internal_helper)
def try_mirror(d, tarfn):
"""
Try to use a mirrored version of the sources. We do this
to avoid massive loads on foreign cvs and svn servers.
This method will be used by the different fetcher
implementations.
d Is a bb.data instance
tarfn is the name of the tarball
"""
tarpath = os.path.join(data.getVar("DL_DIR", d, 1), tarfn)
if os.access(tarpath, os.R_OK):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % tarfn)
return True
pn = data.getVar('PN', d, True)
src_tarball_stash = None
if pn:
src_tarball_stash = (data.getVar('SRC_TARBALL_STASH_%s' % pn, d, True) or data.getVar('CVS_TARBALL_STASH_%s' % pn, d, True) or data.getVar('SRC_TARBALL_STASH', d, True) or data.getVar('CVS_TARBALL_STASH', d, True) or "").split()
ld = d.createCopy()
for stash in src_tarball_stash:
url = stash + tarfn
try:
ud = FetchData(url, ld)
except bb.fetch.NoMethodError:
bb.msg.debug(1, bb.msg.domain.Fetcher, "No method for %s" % url)
continue
ud.setup_localpath(ld)
try:
ud.method.go(url, ud, ld)
return True
except (bb.fetch.MissingParameterError,
bb.fetch.FetchError,
bb.fetch.MD5SumError):
import sys
(type, value, traceback) = sys.exc_info()
bb.msg.debug(2, bb.msg.domain.Fetcher, "Tarball stash fetch failure: %s" % value)
return False
try_mirror = staticmethod(try_mirror)
def verify_md5sum(ud, got_sum):
"""
Verify the md5sum we wanted with the one we got
"""
wanted_sum = None
if 'md5sum' in ud.parm:
wanted_sum = ud.parm['md5sum']
if not wanted_sum:
return True
return wanted_sum == got_sum
verify_md5sum = staticmethod(verify_md5sum)
def write_md5sum(url, ud, d):
md5data = bb.utils.md5_file(ud.localpath)
# verify the md5sum
if not Fetch.verify_md5sum(ud, md5data):
raise MD5SumError(url)
md5out = file(ud.md5, 'w')
md5out.write(md5data)
md5out.close()
write_md5sum = staticmethod(write_md5sum)
def latest_revision(self, url, ud, d):
"""
Look in the cache for the latest revision, if not present ask the SCM.
"""
if not hasattr(self, "_latest_revision"):
raise ParameterError
pd = persist_data.PersistData(d)
key = self.generate_revision_key(url, ud, d)
rev = pd.getValue("BB_URI_HEADREVS", key)
if rev != None:
return str(rev)
rev = self._latest_revision(url, ud, d)
pd.setValue("BB_URI_HEADREVS", key, rev)
return rev
def sortable_revision(self, url, ud, d):
"""
"""
has_sortable = hasattr(self, "_sortable_revision")
if has_sortable:
return self._sortable_revision(url, ud, d)
pd = persist_data.PersistData(d)
key = self.generate_revision_key(url, ud, d)
latest_rev = self._build_revision(url, ud, d)
last_rev = pd.getValue("BB_URI_LOCALCOUNT", key + "_rev")
count = pd.getValue("BB_URI_LOCALCOUNT", key + "_count")
if last_rev == latest_rev:
return str(count + "+" + latest_rev)
if count is None:
count = "0"
else:
count = str(int(count) + 1)
pd.setValue("BB_URI_LOCALCOUNT", key + "_rev", latest_rev)
pd.setValue("BB_URI_LOCALCOUNT", key + "_count", count)
return str(count + "+" + latest_rev)
def generate_revision_key(self, url, ud, d):
key = self._revision_key(url, ud, d)
return "%s-%s" % (key, bb.data.getVar("PN", d, True) or "")
import cvs
import git
import local
import svn
import wget
import svk
import ssh
import perforce
import bzr
import hg
import osc
methods.append(local.Local())
methods.append(wget.Wget())
methods.append(svn.Svn())
methods.append(git.Git())
methods.append(cvs.Cvs())
methods.append(svk.Svk())
methods.append(ssh.SSH())
methods.append(perforce.Perforce())
methods.append(bzr.Bzr())
methods.append(hg.Hg())
methods.append(osc.Osc())

View File

@@ -1,153 +0,0 @@
"""
BitBake 'Fetch' implementation for bzr.
"""
# Copyright (C) 2007 Ross Burton
# Copyright (C) 2007 Richard Purdie
#
# Classes for obtaining upstream sources for the
# BitBake build tools.
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import runfetchcmd
class Bzr(Fetch):
def supports(self, url, ud, d):
return ud.type in ['bzr']
def localpath (self, url, ud, d):
# Create paths to bzr checkouts
relpath = ud.path
if relpath.startswith('/'):
# Remove leading slash as os.path.join can't cope
relpath = relpath[1:]
ud.pkgdir = os.path.join(data.expand('${BZRDIR}', d), ud.host, relpath)
revision = Fetch.srcrev_internal_helper(ud, d)
if revision is True:
ud.revision = self.latest_revision(url, ud, d)
elif revision:
ud.revision = revision
if not ud.revision:
ud.revision = self.latest_revision(url, ud, d)
ud.localfile = data.expand('bzr_%s_%s_%s.tar.gz' % (ud.host, ud.path.replace('/', '.'), ud.revision), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def _buildbzrcommand(self, ud, d, command):
"""
Build up an bzr commandline based on ud
command is "fetch", "update", "revno"
"""
basecmd = data.expand('${FETCHCMD_bzr}', d)
proto = "http"
if "proto" in ud.parm:
proto = ud.parm["proto"]
bzrroot = ud.host + ud.path
options = []
if command is "revno":
bzrcmd = "%s revno %s %s://%s" % (basecmd, " ".join(options), proto, bzrroot)
else:
if ud.revision:
options.append("-r %s" % ud.revision)
if command is "fetch":
bzrcmd = "%s co %s %s://%s" % (basecmd, " ".join(options), proto, bzrroot)
elif command is "update":
bzrcmd = "%s pull %s --overwrite" % (basecmd, " ".join(options))
else:
raise FetchError("Invalid bzr command %s" % command)
return bzrcmd
def go(self, loc, ud, d):
"""Fetch url"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping bzr checkout." % ud.localpath)
return
if os.access(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir), '.bzr'), os.R_OK):
bzrcmd = self._buildbzrcommand(ud, d, "update")
bb.msg.debug(1, bb.msg.domain.Fetcher, "BZR Update %s" % loc)
os.chdir(os.path.join (ud.pkgdir, os.path.basename(ud.path)))
runfetchcmd(bzrcmd, d)
else:
os.system("rm -rf %s" % os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir)))
bzrcmd = self._buildbzrcommand(ud, d, "fetch")
bb.msg.debug(1, bb.msg.domain.Fetcher, "BZR Checkout %s" % loc)
bb.mkdirhier(ud.pkgdir)
os.chdir(ud.pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % bzrcmd)
runfetchcmd(bzrcmd, d)
os.chdir(ud.pkgdir)
# tar them up to a defined filename
try:
runfetchcmd("tar -czf %s %s" % (ud.localpath, os.path.basename(ud.pkgdir)), d)
except:
t, v, tb = sys.exc_info()
try:
os.unlink(ud.localpath)
except OSError:
pass
raise t, v, tb
def suppports_srcrev(self):
return True
def _revision_key(self, url, ud, d):
"""
Return a unique key for the url
"""
return "bzr:" + ud.pkgdir
def _latest_revision(self, url, ud, d):
"""
Return the latest upstream revision number
"""
bb.msg.debug(2, bb.msg.domain.Fetcher, "BZR fetcher hitting network for %s" % url)
output = runfetchcmd(self._buildbzrcommand(ud, d, "revno"), d, True)
return output.strip()
def _sortable_revision(self, url, ud, d):
"""
Return a sortable revision number which in our case is the revision number
"""
return self._build_revision(url, ud, d)
def _build_revision(self, url, ud, d):
return ud.revision

View File

@@ -1,182 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementations
Classes for obtaining upstream sources for the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
#
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
class Cvs(Fetch):
"""
Class to fetch a module or modules from cvs repositories
"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with cvs.
"""
return ud.type in ['cvs', 'pserver']
def localpath(self, url, ud, d):
if not "module" in ud.parm:
raise MissingParameterError("cvs method needs a 'module' parameter")
ud.module = ud.parm["module"]
ud.tag = ""
if 'tag' in ud.parm:
ud.tag = ud.parm['tag']
# Override the default date in certain cases
if 'date' in ud.parm:
ud.date = ud.parm['date']
elif ud.tag:
ud.date = ""
norecurse = ''
if 'norecurse' in ud.parm:
norecurse = '_norecurse'
fullpath = ''
if 'fullpath' in ud.parm:
fullpath = '_fullpath'
ud.localfile = data.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def forcefetch(self, url, ud, d):
if (ud.date == "now"):
return True
return False
def go(self, loc, ud, d):
# try to use the tarball stash
if not self.forcefetch(loc, ud, d) and Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping cvs checkout." % ud.localpath)
return
method = "pserver"
if "method" in ud.parm:
method = ud.parm["method"]
localdir = ud.module
if "localdir" in ud.parm:
localdir = ud.parm["localdir"]
cvs_port = ""
if "port" in ud.parm:
cvs_port = ud.parm["port"]
cvs_rsh = None
if method == "ext":
if "rsh" in ud.parm:
cvs_rsh = ud.parm["rsh"]
if method == "dir":
cvsroot = ud.path
else:
cvsroot = ":" + method
cvsproxyhost = data.getVar('CVS_PROXY_HOST', d, True)
if cvsproxyhost:
cvsroot += ";proxy=" + cvsproxyhost
cvsproxyport = data.getVar('CVS_PROXY_PORT', d, True)
if cvsproxyport:
cvsroot += ";proxyport=" + cvsproxyport
cvsroot += ":" + ud.user
if ud.pswd:
cvsroot += ":" + ud.pswd
cvsroot += "@" + ud.host + ":" + cvs_port + ud.path
options = []
if 'norecurse' in ud.parm:
options.append("-l")
if ud.date:
# treat YYYYMMDDHHMM specially for CVS
if len(ud.date) == 12:
options.append("-D \"%s %s:%s UTC\"" % (ud.date[0:8], ud.date[8:10], ud.date[10:12]))
else:
options.append("-D \"%s UTC\"" % ud.date)
if ud.tag:
options.append("-r %s" % ud.tag)
localdata = data.createCopy(d)
data.setVar('OVERRIDES', "cvs:%s" % data.getVar('OVERRIDES', localdata), localdata)
data.update_data(localdata)
data.setVar('CVSROOT', cvsroot, localdata)
data.setVar('CVSCOOPTS', " ".join(options), localdata)
data.setVar('CVSMODULE', ud.module, localdata)
cvscmd = data.getVar('FETCHCOMMAND', localdata, 1)
cvsupdatecmd = data.getVar('UPDATECOMMAND', localdata, 1)
if cvs_rsh:
cvscmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvscmd)
cvsupdatecmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvsupdatecmd)
# create module directory
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory")
pkg = data.expand('${PN}', d)
pkgdir = os.path.join(data.expand('${CVSDIR}', localdata), pkg)
moddir = os.path.join(pkgdir,localdir)
if os.access(os.path.join(moddir,'CVS'), os.R_OK):
bb.msg.note(1, bb.msg.domain.Fetcher, "Update " + loc)
# update sources there
os.chdir(moddir)
myret = os.system(cvsupdatecmd)
else:
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
# check out sources there
bb.mkdirhier(pkgdir)
os.chdir(pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % cvscmd)
myret = os.system(cvscmd)
if myret != 0 or not os.access(moddir, os.R_OK):
try:
os.rmdir(moddir)
except OSError:
pass
raise FetchError(ud.module)
# tar them up to a defined filename
if 'fullpath' in ud.parm:
os.chdir(pkgdir)
myret = os.system("tar -czf %s %s" % (ud.localpath, localdir))
else:
os.chdir(moddir)
os.chdir('..')
myret = os.system("tar -czf %s %s" % (ud.localpath, os.path.basename(moddir)))
if myret != 0:
try:
os.unlink(ud.localpath)
except OSError:
pass
raise FetchError(ud.module)

View File

@@ -1,188 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' git implementation
"""
#Copyright (C) 2005 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import runfetchcmd
class Git(Fetch):
"""Class to fetch a module or modules from git repositories"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with git.
"""
return ud.type in ['git']
def localpath(self, url, ud, d):
if 'protocol' in ud.parm:
ud.proto = ud.parm['protocol']
elif not ud.host:
ud.proto = 'file'
else:
ud.proto = "rsync"
ud.branch = ud.parm.get("branch", "master")
tag = Fetch.srcrev_internal_helper(ud, d)
if tag is True:
ud.tag = self.latest_revision(url, ud, d)
elif tag:
ud.tag = tag
if not ud.tag or ud.tag == "master":
ud.tag = self.latest_revision(url, ud, d)
ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, ud.path.replace('/', '.'), ud.tag), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def go(self, loc, ud, d):
"""Fetch url"""
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists (or was stashed). Skipping git checkout." % ud.localpath)
return
if ud.user:
username = ud.user + '@'
else:
username = ""
gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.'))
repofilename = 'git_%s.tar.gz' % (gitsrcname)
repofile = os.path.join(data.getVar("DL_DIR", d, 1), repofilename)
repodir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
coname = '%s' % (ud.tag)
codir = os.path.join(repodir, coname)
if not os.path.exists(repodir):
if Fetch.try_mirror(d, repofilename):
bb.mkdirhier(repodir)
os.chdir(repodir)
runfetchcmd("tar -xzf %s" % (repofile), d)
else:
runfetchcmd("git clone -n %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, repodir), d)
os.chdir(repodir)
# Remove all but the .git directory
if not self._contains_ref(ud.tag, d):
runfetchcmd("rm * -Rf", d)
runfetchcmd("git fetch %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch), d)
runfetchcmd("git fetch --tags %s://%s%s%s" % (ud.proto, username, ud.host, ud.path), d)
runfetchcmd("git prune-packed", d)
runfetchcmd("git pack-redundant --all | xargs -r rm", d)
os.chdir(repodir)
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
if mirror_tarballs != "0":
bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git repository")
runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".", ".git", "*") ), d)
if os.path.exists(codir):
bb.utils.prunedir(codir)
bb.mkdirhier(codir)
os.chdir(repodir)
runfetchcmd("git read-tree %s" % (ud.tag), d)
runfetchcmd("git checkout-index -q -f --prefix=%s -a" % (os.path.join(codir, "git", "")), d)
os.chdir(codir)
bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git checkout")
runfetchcmd("tar -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d)
os.chdir(repodir)
bb.utils.prunedir(codir)
def suppports_srcrev(self):
return True
def _contains_ref(self, tag, d):
output = runfetchcmd("git log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % tag, d, quiet=True)
return output.split()[0] != "0"
def _revision_key(self, url, ud, d):
"""
Return a unique key for the url
"""
return "git:" + ud.host + ud.path.replace('/', '.')
def _latest_revision(self, url, ud, d):
"""
Compute the HEAD revision for the url
"""
if ud.user:
username = ud.user + '@'
else:
username = ""
output = runfetchcmd("git ls-remote %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch), d, True)
return output.split()[0]
def _build_revision(self, url, ud, d):
return ud.tag
def _want_sortable_revision(self, url, ud, d):
return bb.data.getVar("BB_GIT_CLONE_FOR_SRCREV", d, True) or False
def _sortable_revision_disabled(self, url, ud, d):
"""
This is only called when _want_sortable_revision called true
We will have to get the updated revision.
"""
gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.'))
repodir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
key = "GIT_CACHED_REVISION-%s-%s" % (gitsrcname, ud.tag)
if bb.data.getVar(key, d):
return bb.data.getVar(key, d)
# Runtime warning on wrongly configured sources
if ud.tag == "1":
bb.msg.error(1, bb.msg.domain.Fetcher, "SRCREV is '1'. This indicates a configuration error of %s" % url)
return "0+1"
cwd = os.getcwd()
# Check if we have the rev already
if not os.path.exists(repodir):
print "no repo"
self.go(None, ud, d)
os.chdir(repodir)
if not self._contains_ref(ud.tag, d):
self.go(None, ud, d)
output = runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % ud.tag, d, quiet=True)
os.chdir(cwd)
sortable_revision = "%s+%s" % (output.split()[0], ud.tag)
bb.data.setVar(key, sortable_revision, d)
return sortable_revision

View File

@@ -1,178 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementation for mercurial DRCS (hg).
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2004 Marcin Juszkiewicz
# Copyright (C) 2007 Robert Schuster
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import sys
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
from bb.fetch import runfetchcmd
class Hg(Fetch):
"""Class to fetch a from mercurial repositories"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with mercurial.
"""
return ud.type in ['hg']
def localpath(self, url, ud, d):
if not "module" in ud.parm:
raise MissingParameterError("hg method needs a 'module' parameter")
ud.module = ud.parm["module"]
# Create paths to mercurial checkouts
relpath = ud.path
if relpath.startswith('/'):
# Remove leading slash as os.path.join can't cope
relpath = relpath[1:]
ud.pkgdir = os.path.join(data.expand('${HGDIR}', d), ud.host, relpath)
ud.moddir = os.path.join(ud.pkgdir, ud.module)
if 'rev' in ud.parm:
ud.revision = ud.parm['rev']
else:
tag = Fetch.srcrev_internal_helper(ud, d)
if tag is True:
ud.revision = self.latest_revision(url, ud, d)
elif tag:
ud.revision = tag
else:
ud.revision = self.latest_revision(url, ud, d)
ud.localfile = data.expand('%s_%s_%s_%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.path.replace('/', '.'), ud.revision), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def _buildhgcommand(self, ud, d, command):
"""
Build up an hg commandline based on ud
command is "fetch", "update", "info"
"""
basecmd = data.expand('${FETCHCMD_hg}', d)
proto = "http"
if "proto" in ud.parm:
proto = ud.parm["proto"]
host = ud.host
if proto == "file":
host = "/"
ud.host = "localhost"
if not ud.user:
hgroot = host + ud.path
else:
hgroot = ud.user + "@" + host + ud.path
if command is "info":
return "%s identify -i %s://%s/%s" % (basecmd, proto, hgroot, ud.module)
options = [];
if ud.revision:
options.append("-r %s" % ud.revision)
if command is "fetch":
cmd = "%s clone %s %s://%s/%s %s" % (basecmd, " ".join(options), proto, hgroot, ud.module, ud.module)
elif command is "pull":
# do not pass options list; limiting pull to rev causes the local
# repo not to contain it and immediately following "update" command
# will crash
cmd = "%s pull" % (basecmd)
elif command is "update":
cmd = "%s update -C %s" % (basecmd, " ".join(options))
else:
raise FetchError("Invalid hg command %s" % command)
return cmd
def go(self, loc, ud, d):
"""Fetch url"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping hg checkout." % ud.localpath)
return
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory '" + ud.moddir + "'")
if os.access(os.path.join(ud.moddir, '.hg'), os.R_OK):
updatecmd = self._buildhgcommand(ud, d, "pull")
bb.msg.note(1, bb.msg.domain.Fetcher, "Update " + loc)
# update sources there
os.chdir(ud.moddir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % updatecmd)
runfetchcmd(updatecmd, d)
else:
fetchcmd = self._buildhgcommand(ud, d, "fetch")
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
# check out sources there
bb.mkdirhier(ud.pkgdir)
os.chdir(ud.pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % fetchcmd)
runfetchcmd(fetchcmd, d)
# Even when we clone (fetch), we still need to update as hg's clone
# won't checkout the specified revision if its on a branch
updatecmd = self._buildhgcommand(ud, d, "update")
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % updatecmd)
runfetchcmd(updatecmd, d)
os.chdir(ud.pkgdir)
try:
runfetchcmd("tar -czf %s %s" % (ud.localpath, ud.module), d)
except:
t, v, tb = sys.exc_info()
try:
os.unlink(ud.localpath)
except OSError:
pass
raise t, v, tb
def suppports_srcrev(self):
return True
def _latest_revision(self, url, ud, d):
"""
Compute tip revision for the url
"""
output = runfetchcmd(self._buildhgcommand(ud, d, "info"), d)
return output.strip()
def _build_revision(self, url, ud, d):
return ud.revision
def _revision_key(self, url, ud, d):
"""
Return a unique key for the url
"""
return "hg:" + ud.moddir

View File

@@ -1,72 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementations
Classes for obtaining upstream sources for the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import bb
from bb import data
from bb.fetch import Fetch
class Local(Fetch):
def supports(self, url, urldata, d):
"""
Check to see if a given url can be fetched with cvs.
"""
return urldata.type in ['file','patch']
def localpath(self, url, urldata, d):
"""
Return the local filename of a given url assuming a successful fetch.
"""
path = url.split("://")[1]
path = path.split(";")[0]
newpath = path
if path[0] != "/":
filespath = data.getVar('FILESPATH', d, 1)
if filespath:
newpath = bb.which(filespath, path)
if not newpath:
filesdir = data.getVar('FILESDIR', d, 1)
if filesdir:
newpath = os.path.join(filesdir, path)
# We don't set localfile as for this fetcher the file is already local!
return newpath
def go(self, url, urldata, d):
"""Fetch urls (no-op for Local method)"""
# no need to fetch local files, we'll deal with them in place.
return 1
def checkstatus(self, url, urldata, d):
"""
Check the status of the url
"""
if urldata.localpath.find("*") != -1:
bb.msg.note(1, bb.msg.domain.Fetcher, "URL %s looks like a glob and was therefore not checked." % url)
return True
if os.path.exists(urldata.localpath):
return True
return False

View File

@@ -1,155 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
Bitbake "Fetch" implementation for osc (Opensuse build service client).
Based on the svn "Fetch" implementation.
"""
import os
import sys
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
from bb.fetch import runfetchcmd
class Osc(Fetch):
"""Class to fetch a module or modules from Opensuse build server
repositories."""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with osc.
"""
return ud.type in ['osc']
def localpath(self, url, ud, d):
if not "module" in ud.parm:
raise MissingParameterError("osc method needs a 'module' parameter.")
ud.module = ud.parm["module"]
# Create paths to osc checkouts
relpath = ud.path
if relpath.startswith('/'):
# Remove leading slash as os.path.join can't cope
relpath = relpath[1:]
ud.pkgdir = os.path.join(data.expand('${OSCDIR}', d), ud.host)
ud.moddir = os.path.join(ud.pkgdir, relpath, ud.module)
if 'rev' in ud.parm:
ud.revision = ud.parm['rev']
else:
pv = data.getVar("PV", d, 0)
rev = Fetch.srcrev_internal_helper(ud, d)
if rev and rev != True:
ud.revision = rev
else:
ud.revision = ""
ud.localfile = data.expand('%s_%s_%s.tar.gz' % (ud.module.replace('/', '.'), ud.path.replace('/', '.'), ud.revision), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def _buildosccommand(self, ud, d, command):
"""
Build up an ocs commandline based on ud
command is "fetch", "update", "info"
"""
basecmd = data.expand('${FETCHCMD_osc}', d)
proto = "ocs"
if "proto" in ud.parm:
proto = ud.parm["proto"]
options = []
config = "-c %s" % self.generate_config(ud, d)
if ud.revision:
options.append("-r %s" % ud.revision)
coroot = ud.path
if coroot.startswith('/'):
# Remove leading slash as os.path.join can't cope
coroot= coroot[1:]
if command is "fetch":
osccmd = "%s %s co %s/%s %s" % (basecmd, config, coroot, ud.module, " ".join(options))
elif command is "update":
osccmd = "%s %s up %s" % (basecmd, config, " ".join(options))
else:
raise FetchError("Invalid osc command %s" % command)
return osccmd
def go(self, loc, ud, d):
"""
Fetch url
"""
# Try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping osc checkout." % ud.localpath)
return
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory '" + ud.moddir + "'")
if os.access(os.path.join(data.expand('${OSCDIR}', d), ud.path, ud.module), os.R_OK):
oscupdatecmd = self._buildosccommand(ud, d, "update")
bb.msg.note(1, bb.msg.domain.Fetcher, "Update "+ loc)
# update sources there
os.chdir(ud.moddir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % oscupdatecmd)
runfetchcmd(oscupdatecmd, d)
else:
oscfetchcmd = self._buildosccommand(ud, d, "fetch")
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
# check out sources there
bb.mkdirhier(ud.pkgdir)
os.chdir(ud.pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % oscfetchcmd)
runfetchcmd(oscfetchcmd, d)
os.chdir(os.path.join(ud.pkgdir + ud.path))
# tar them up to a defined filename
try:
runfetchcmd("tar -czf %s %s" % (ud.localpath, ud.module), d)
except:
t, v, tb = sys.exc_info()
try:
os.unlink(ud.localpath)
except OSError:
pass
raise t, v, tb
def supports_srcrev(self):
return False
def generate_config(self, ud, d):
"""
Generate a .oscrc to be used for this run.
"""
config_path = "%s/oscrc" % data.expand('${OSCDIR}', d)
if (os.path.exists(config_path)):
os.remove(config_path)
f = open(config_path, 'w')
f.write("[general]\n")
f.write("apisrv = %s\n" % ud.host)
f.write("scheme = http\n")
f.write("su-wrapper = su -c\n")
f.write("build-root = %s\n" % data.expand('${WORKDIR}', d))
f.write("urllist = http://moblin-obs.jf.intel.com:8888/build/%(project)s/%(repository)s/%(buildarch)s/:full/%(name)s.rpm\n")
f.write("extra-pkgs = gzip\n")
f.write("\n")
f.write("[%s]\n" % ud.host)
f.write("user = %s\n" % ud.parm["user"])
f.write("pass = %s\n" % ud.parm["pswd"])
f.close()
return config_path

View File

@@ -1,214 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementations
Classes for obtaining upstream sources for the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
class Perforce(Fetch):
def supports(self, url, ud, d):
return ud.type in ['p4']
def doparse(url,d):
parm = {}
path = url.split("://")[1]
delim = path.find("@");
if delim != -1:
(user,pswd,host,port) = path.split('@')[0].split(":")
path = path.split('@')[1]
else:
(host,port) = data.getVar('P4PORT', d).split(':')
user = ""
pswd = ""
if path.find(";") != -1:
keys=[]
values=[]
plist = path.split(';')
for item in plist:
if item.count('='):
(key,value) = item.split('=')
keys.append(key)
values.append(value)
parm = dict(zip(keys,values))
path = "//" + path.split(';')[0]
host += ":%s" % (port)
parm["cset"] = Perforce.getcset(d, path, host, user, pswd, parm)
return host,path,user,pswd,parm
doparse = staticmethod(doparse)
def getcset(d, depot,host,user,pswd,parm):
p4opt = ""
if "cset" in parm:
return parm["cset"];
if user:
p4opt += " -u %s" % (user)
if pswd:
p4opt += " -P %s" % (pswd)
if host:
p4opt += " -p %s" % (host)
p4date = data.getVar("P4DATE", d, 1)
if "revision" in parm:
depot += "#%s" % (parm["revision"])
elif "label" in parm:
depot += "@%s" % (parm["label"])
elif p4date:
depot += "@%s" % (p4date)
p4cmd = data.getVar('FETCHCOMMAND_p4', d, 1)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s%s changes -m 1 %s" % (p4cmd, p4opt, depot))
p4file = os.popen("%s%s changes -m 1 %s" % (p4cmd, p4opt, depot))
cset = p4file.readline().strip()
bb.msg.debug(1, bb.msg.domain.Fetcher, "READ %s" % (cset))
if not cset:
return -1
return cset.split(' ')[1]
getcset = staticmethod(getcset)
def localpath(self, url, ud, d):
(host,path,user,pswd,parm) = Perforce.doparse(url,d)
# If a label is specified, we use that as our filename
if "label" in parm:
ud.localfile = "%s.tar.gz" % (parm["label"])
return os.path.join(data.getVar("DL_DIR", d, 1), ud.localfile)
base = path
which = path.find('/...')
if which != -1:
base = path[:which]
if base[0] == "/":
base = base[1:]
cset = Perforce.getcset(d, path, host, user, pswd, parm)
ud.localfile = data.expand('%s+%s+%s.tar.gz' % (host,base.replace('/', '.'), cset), d)
return os.path.join(data.getVar("DL_DIR", d, 1), ud.localfile)
def go(self, loc, ud, d):
"""
Fetch urls
"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping perforce checkout." % ud.localpath)
return
(host,depot,user,pswd,parm) = Perforce.doparse(loc, d)
if depot.find('/...') != -1:
path = depot[:depot.find('/...')]
else:
path = depot
if "module" in parm:
module = parm["module"]
else:
module = os.path.basename(path)
localdata = data.createCopy(d)
data.setVar('OVERRIDES', "p4:%s" % data.getVar('OVERRIDES', localdata), localdata)
data.update_data(localdata)
# Get the p4 command
p4opt = ""
if user:
p4opt += " -u %s" % (user)
if pswd:
p4opt += " -P %s" % (pswd)
if host:
p4opt += " -p %s" % (host)
p4cmd = data.getVar('FETCHCOMMAND', localdata, 1)
# create temp directory
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: creating temporary directory")
bb.mkdirhier(data.expand('${WORKDIR}', localdata))
data.setVar('TMPBASE', data.expand('${WORKDIR}/oep4.XXXXXX', localdata), localdata)
tmppipe = os.popen(data.getVar('MKTEMPDIRCMD', localdata, 1) or "false")
tmpfile = tmppipe.readline().strip()
if not tmpfile:
bb.error("Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.")
raise FetchError(module)
if "label" in parm:
depot = "%s@%s" % (depot,parm["label"])
else:
cset = Perforce.getcset(d, depot, host, user, pswd, parm)
depot = "%s@%s" % (depot,cset)
os.chdir(tmpfile)
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
bb.msg.note(1, bb.msg.domain.Fetcher, "%s%s files %s" % (p4cmd, p4opt, depot))
p4file = os.popen("%s%s files %s" % (p4cmd, p4opt, depot))
if not p4file:
bb.error("Fetch: unable to get the P4 files from %s" % (depot))
raise FetchError(module)
count = 0
for file in p4file:
list = file.split()
if list[2] == "delete":
continue
dest = list[0][len(path)+1:]
where = dest.find("#")
os.system("%s%s print -o %s/%s %s" % (p4cmd, p4opt, module,dest[:where],list[0]))
count = count + 1
if count == 0:
bb.error("Fetch: No files gathered from the P4 fetch")
raise FetchError(module)
myret = os.system("tar -czf %s %s" % (ud.localpath, module))
if myret != 0:
try:
os.unlink(ud.localpath)
except OSError:
pass
raise FetchError(module)
# cleanup
os.system('rm -rf %s' % tmpfile)

View File

@@ -1,118 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
'''
BitBake 'Fetch' implementations
This implementation is for Secure Shell (SSH), and attempts to comply with the
IETF secsh internet draft:
http://tools.ietf.org/wg/secsh/draft-ietf-secsh-scp-sftp-ssh-uri/
Currently does not support the sftp parameters, as this uses scp
Also does not support the 'fingerprint' connection parameter.
'''
# Copyright (C) 2006 OpenedHand Ltd.
#
#
# Based in part on svk.py:
# Copyright (C) 2006 Holger Hans Peter Freyther
# Based on svn.py:
# Copyright (C) 2003, 2004 Chris Larson
# Based on functions from the base bb module:
# Copyright 2003 Holger Schurig
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, os
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
__pattern__ = re.compile(r'''
\s* # Skip leading whitespace
ssh:// # scheme
( # Optional username/password block
(?P<user>\S+) # username
(:(?P<pass>\S+))? # colon followed by the password (optional)
)?
(?P<cparam>(;[^;]+)*)? # connection parameters block (optional)
@
(?P<host>\S+?) # non-greedy match of the host
(:(?P<port>[0-9]+))? # colon followed by the port (optional)
/
(?P<path>[^;]+) # path on the remote system, may be absolute or relative,
# and may include the use of '~' to reference the remote home
# directory
(?P<sparam>(;[^;]+)*)? # parameters block (optional)
$
''', re.VERBOSE)
class SSH(Fetch):
'''Class to fetch a module or modules via Secure Shell'''
def supports(self, url, urldata, d):
return __pattern__.match(url) != None
def localpath(self, url, urldata, d):
m = __pattern__.match(url)
path = m.group('path')
host = m.group('host')
lpath = os.path.join(data.getVar('DL_DIR', d, True), host, os.path.basename(path))
return lpath
def go(self, url, urldata, d):
dldir = data.getVar('DL_DIR', d, 1)
m = __pattern__.match(url)
path = m.group('path')
host = m.group('host')
port = m.group('port')
user = m.group('user')
password = m.group('pass')
ldir = os.path.join(dldir, host)
lpath = os.path.join(ldir, os.path.basename(path))
if not os.path.exists(ldir):
os.makedirs(ldir)
if port:
port = '-P %s' % port
else:
port = ''
if user:
fr = user
if password:
fr += ':%s' % password
fr += '@%s' % host
else:
fr = host
fr += ':%s' % path
import commands
cmd = 'scp -B -r %s %s %s/' % (
port,
commands.mkarg(fr),
commands.mkarg(ldir)
)
(exitstatus, output) = commands.getstatusoutput(cmd)
if exitstatus != 0:
print output
raise FetchError('Unable to fetch %s' % url)

View File

@@ -1,109 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementations
This implementation is for svk. It is based on the svn implementation
"""
# Copyright (C) 2006 Holger Hans Peter Freyther
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
class Svk(Fetch):
"""Class to fetch a module or modules from svk repositories"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with cvs.
"""
return ud.type in ['svk']
def localpath(self, url, ud, d):
if not "module" in ud.parm:
raise MissingParameterError("svk method needs a 'module' parameter")
else:
ud.module = ud.parm["module"]
ud.revision = ""
if 'rev' in ud.parm:
ud.revision = ud.parm['rev']
ud.localfile = data.expand('%s_%s_%s_%s_%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.path.replace('/', '.'), ud.revision, ud.date), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def forcefetch(self, url, ud, d):
if (ud.date == "now"):
return True
return False
def go(self, loc, ud, d):
"""Fetch urls"""
if not self.forcefetch(loc, ud, d) and Fetch.try_mirror(d, ud.localfile):
return
svkroot = ud.host + ud.path
svkcmd = "svk co -r {%s} %s/%s" % (ud.date, svkroot, ud.module)
if ud.revision:
svkcmd = "svk co -r %s %s/%s" % (ud.revision, svkroot, ud.module)
# create temp directory
localdata = data.createCopy(d)
data.update_data(localdata)
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: creating temporary directory")
bb.mkdirhier(data.expand('${WORKDIR}', localdata))
data.setVar('TMPBASE', data.expand('${WORKDIR}/oesvk.XXXXXX', localdata), localdata)
tmppipe = os.popen(data.getVar('MKTEMPDIRCMD', localdata, 1) or "false")
tmpfile = tmppipe.readline().strip()
if not tmpfile:
bb.msg.error(bb.msg.domain.Fetcher, "Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.")
raise FetchError(ud.module)
# check out sources there
os.chdir(tmpfile)
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % svkcmd)
myret = os.system(svkcmd)
if myret != 0:
try:
os.rmdir(tmpfile)
except OSError:
pass
raise FetchError(ud.module)
os.chdir(os.path.join(tmpfile, os.path.dirname(ud.module)))
# tar them up to a defined filename
myret = os.system("tar -czf %s %s" % (ud.localpath, os.path.basename(ud.module)))
if myret != 0:
try:
os.unlink(ud.localpath)
except OSError:
pass
raise FetchError(ud.module)
# cleanup
os.system('rm -rf %s' % tmpfile)

View File

@@ -1,206 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementation for svn.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2004 Marcin Juszkiewicz
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import sys
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
from bb.fetch import runfetchcmd
class Svn(Fetch):
"""Class to fetch a module or modules from svn repositories"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with svn.
"""
return ud.type in ['svn']
def localpath(self, url, ud, d):
if not "module" in ud.parm:
raise MissingParameterError("svn method needs a 'module' parameter")
ud.module = ud.parm["module"]
# Create paths to svn checkouts
relpath = ud.path
if relpath.startswith('/'):
# Remove leading slash as os.path.join can't cope
relpath = relpath[1:]
ud.pkgdir = os.path.join(data.expand('${SVNDIR}', d), ud.host, relpath)
ud.moddir = os.path.join(ud.pkgdir, ud.module)
if 'rev' in ud.parm:
ud.date = ""
ud.revision = ud.parm['rev']
elif 'date' in ud.date:
ud.date = ud.parm['date']
ud.revision = ""
else:
#
# ***Nasty hack***
# If DATE in unexpanded PV, use ud.date (which is set from SRCDATE)
# Should warn people to switch to SRCREV here
#
pv = data.getVar("PV", d, 0)
if "DATE" in pv:
ud.revision = ""
else:
rev = Fetch.srcrev_internal_helper(ud, d)
if rev is True:
ud.revision = self.latest_revision(url, ud, d)
ud.date = ""
elif rev:
ud.revision = rev
ud.date = ""
else:
ud.revision = ""
ud.localfile = data.expand('%s_%s_%s_%s_%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.path.replace('/', '.'), ud.revision, ud.date), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def _buildsvncommand(self, ud, d, command):
"""
Build up an svn commandline based on ud
command is "fetch", "update", "info"
"""
basecmd = data.expand('${FETCHCMD_svn}', d)
proto = "svn"
if "proto" in ud.parm:
proto = ud.parm["proto"]
svn_rsh = None
if proto == "svn+ssh" and "rsh" in ud.parm:
svn_rsh = ud.parm["rsh"]
svnroot = ud.host + ud.path
# either use the revision, or SRCDATE in braces,
options = []
if ud.user:
options.append("--username %s" % ud.user)
if ud.pswd:
options.append("--password %s" % ud.pswd)
if command is "info":
svncmd = "%s info %s %s://%s/%s/" % (basecmd, " ".join(options), proto, svnroot, ud.module)
else:
suffix = ""
if ud.revision:
options.append("-r %s" % ud.revision)
suffix = "@%s" % (ud.revision)
elif ud.date:
options.append("-r {%s}" % ud.date)
if command is "fetch":
svncmd = "%s co %s %s://%s/%s%s %s" % (basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)
elif command is "update":
svncmd = "%s update %s" % (basecmd, " ".join(options))
else:
raise FetchError("Invalid svn command %s" % command)
if svn_rsh:
svncmd = "svn_RSH=\"%s\" %s" % (svn_rsh, svncmd)
return svncmd
def go(self, loc, ud, d):
"""Fetch url"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping svn checkout." % ud.localpath)
return
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory '" + ud.moddir + "'")
if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK):
svnupdatecmd = self._buildsvncommand(ud, d, "update")
bb.msg.note(1, bb.msg.domain.Fetcher, "Update " + loc)
# update sources there
os.chdir(ud.moddir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % svnupdatecmd)
runfetchcmd(svnupdatecmd, d)
else:
svnfetchcmd = self._buildsvncommand(ud, d, "fetch")
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
# check out sources there
bb.mkdirhier(ud.pkgdir)
os.chdir(ud.pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % svnfetchcmd)
runfetchcmd(svnfetchcmd, d)
os.chdir(ud.pkgdir)
# tar them up to a defined filename
try:
runfetchcmd("tar -czf %s %s" % (ud.localpath, ud.module), d)
except:
t, v, tb = sys.exc_info()
try:
os.unlink(ud.localpath)
except OSError:
pass
raise t, v, tb
def suppports_srcrev(self):
return True
def _revision_key(self, url, ud, d):
"""
Return a unique key for the url
"""
return "svn:" + ud.moddir
def _latest_revision(self, url, ud, d):
"""
Return the latest upstream revision number
"""
bb.msg.debug(2, bb.msg.domain.Fetcher, "SVN fetcher hitting network for %s" % url)
output = runfetchcmd("LANG=C LC_ALL=C " + self._buildsvncommand(ud, d, "info"), d, True)
revision = None
for line in output.splitlines():
if "Last Changed Rev" in line:
revision = line.split(":")[1].strip()
return revision
def _sortable_revision(self, url, ud, d):
"""
Return a sortable revision number which in our case is the revision number
"""
return self._build_revision(url, ud, d)
def _build_revision(self, url, ud, d):
return ud.revision

View File

@@ -1,130 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Fetch' implementations
Classes for obtaining upstream sources for the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import uri_replace
class Wget(Fetch):
"""Class to fetch urls via 'wget'"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with cvs.
"""
return ud.type in ['http','https','ftp']
def localpath(self, url, ud, d):
url = bb.encodeurl([ud.type, ud.host, ud.path, ud.user, ud.pswd, {}])
ud.basename = os.path.basename(ud.path)
ud.localfile = data.expand(os.path.basename(url), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def go(self, uri, ud, d, checkonly = False):
"""Fetch urls"""
def fetch_uri(uri, ud, d):
if checkonly:
fetchcmd = data.getVar("CHECKCOMMAND", d, 1)
elif os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again..
fetchcmd = data.getVar("RESUMECOMMAND", d, 1)
else:
fetchcmd = data.getVar("FETCHCOMMAND", d, 1)
uri = uri.split(";")[0]
uri_decoded = list(bb.decodeurl(uri))
uri_type = uri_decoded[0]
uri_host = uri_decoded[1]
bb.msg.note(1, bb.msg.domain.Fetcher, "fetch " + uri)
fetchcmd = fetchcmd.replace("${URI}", uri.split(";")[0])
fetchcmd = fetchcmd.replace("${FILE}", ud.basename)
httpproxy = None
ftpproxy = None
if uri_type == 'http':
httpproxy = data.getVar("HTTP_PROXY", d, True)
httpproxy_ignore = (data.getVar("HTTP_PROXY_IGNORE", d, True) or "").split()
for p in httpproxy_ignore:
if uri_host.endswith(p):
httpproxy = None
break
if uri_type == 'ftp':
ftpproxy = data.getVar("FTP_PROXY", d, True)
ftpproxy_ignore = (data.getVar("HTTP_PROXY_IGNORE", d, True) or "").split()
for p in ftpproxy_ignore:
if uri_host.endswith(p):
ftpproxy = None
break
if httpproxy:
fetchcmd = "http_proxy=" + httpproxy + " " + fetchcmd
if ftpproxy:
fetchcmd = "ftp_proxy=" + ftpproxy + " " + fetchcmd
bb.msg.debug(2, bb.msg.domain.Fetcher, "executing " + fetchcmd)
ret = os.system(fetchcmd)
if ret != 0:
return False
# Sanity check since wget can pretend it succeed when it didn't
# Also, this used to happen if sourceforge sent us to the mirror page
if not os.path.exists(ud.localpath) and not checkonly:
bb.msg.debug(2, bb.msg.domain.Fetcher, "The fetch command for %s returned success but %s doesn't exist?..." % (uri, ud.localpath))
return False
return True
localdata = data.createCopy(d)
data.setVar('OVERRIDES', "wget:" + data.getVar('OVERRIDES', localdata), localdata)
data.update_data(localdata)
premirrors = [ i.split() for i in (data.getVar('PREMIRRORS', localdata, 1) or "").split('\n') if i ]
for (find, replace) in premirrors:
newuri = uri_replace(uri, find, replace, d)
if newuri != uri:
if fetch_uri(newuri, ud, localdata):
return True
if fetch_uri(uri, ud, localdata):
return True
# try mirrors
mirrors = [ i.split() for i in (data.getVar('MIRRORS', localdata, 1) or "").split('\n') if i ]
for (find, replace) in mirrors:
newuri = uri_replace(uri, find, replace, d)
if newuri != uri:
if fetch_uri(newuri, ud, localdata):
return True
raise FetchError(uri)
def checkstatus(self, uri, ud, d):
return self.go(uri, ud, d, True)

View File

@@ -1,144 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, sys
import bb, bb.data
def getfields(line):
fields = {}
fieldmap = ( "pkg", "src", "dest", "type", "mode", "uid", "gid", "major", "minor", "start", "inc", "count" )
for f in xrange(len(fieldmap)):
fields[fieldmap[f]] = None
if not line:
return None
splitline = line.split()
if not len(splitline):
return None
try:
for f in xrange(len(fieldmap)):
if splitline[f] == '-':
continue
fields[fieldmap[f]] = splitline[f]
except IndexError:
pass
return fields
def parse (mfile, d):
manifest = []
while 1:
line = mfile.readline()
if not line:
break
if line.startswith("#"):
continue
fields = getfields(line)
if not fields:
continue
manifest.append(fields)
return manifest
def emit (func, manifest, d):
#str = "%s () {\n" % func
str = ""
for line in manifest:
emittedline = emit_line(func, line, d)
if not emittedline:
continue
str += emittedline + "\n"
# str += "}\n"
return str
def mangle (func, line, d):
import copy
newline = copy.copy(line)
src = bb.data.expand(newline["src"], d)
if src:
if not os.path.isabs(src):
src = "${WORKDIR}/" + src
dest = newline["dest"]
if not dest:
return
if dest.startswith("/"):
dest = dest[1:]
if func is "do_install":
dest = "${D}/" + dest
elif func is "do_populate":
dest = "${WORKDIR}/install/" + newline["pkg"] + "/" + dest
elif func is "do_stage":
varmap = {}
varmap["${bindir}"] = "${STAGING_DIR}/${HOST_SYS}/bin"
varmap["${libdir}"] = "${STAGING_DIR}/${HOST_SYS}/lib"
varmap["${includedir}"] = "${STAGING_DIR}/${HOST_SYS}/include"
varmap["${datadir}"] = "${STAGING_DATADIR}"
matched = 0
for key in varmap.keys():
if dest.startswith(key):
dest = varmap[key] + "/" + dest[len(key):]
matched = 1
if not matched:
newline = None
return
else:
newline = None
return
newline["src"] = src
newline["dest"] = dest
return newline
def emit_line (func, line, d):
import copy
newline = copy.deepcopy(line)
newline = mangle(func, newline, d)
if not newline:
return None
str = ""
type = newline["type"]
mode = newline["mode"]
src = newline["src"]
dest = newline["dest"]
if type is "d":
str = "install -d "
if mode:
str += "-m %s " % mode
str += dest
elif type is "f":
if not src:
return None
if dest.endswith("/"):
str = "install -d "
str += dest + "\n"
str += "install "
else:
str = "install -D "
if mode:
str += "-m %s " % mode
str += src + " " + dest
del newline
return str

View File

@@ -1,84 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
#
# Copyright (C) 2006 Holger Hans Peter Freyther
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
What is a method pool?
BitBake has a global method scope where .bb, .inc and .bbclass
files can install methods. These methods are parsed from strings.
To avoid recompiling and executing these string we introduce
a method pool to do this task.
This pool will be used to compile and execute the functions. It
will be smart enough to
"""
from bb.utils import better_compile, better_exec
from bb import error
# A dict of modules we have handled
# it is the number of .bbclasses + x in size
_parsed_methods = { }
_parsed_fns = { }
def insert_method(modulename, code, fn):
"""
Add code of a module should be added. The methods
will be simply added, no checking will be done
"""
comp = better_compile(code, "<bb>", fn )
better_exec(comp, __builtins__, code, fn)
# now some instrumentation
code = comp.co_names
for name in code:
if name in ['None', 'False']:
continue
elif name in _parsed_fns and not _parsed_fns[name] == modulename:
error( "Error Method already seen: %s in' %s' now in '%s'" % (name, _parsed_fns[name], modulename))
else:
_parsed_fns[name] = modulename
def check_insert_method(modulename, code, fn):
"""
Add the code if it wasnt added before. The module
name will be used for that
Variables:
@modulename a short name e.g. base.bbclass
@code The actual python code
@fn The filename from the outer file
"""
if not modulename in _parsed_methods:
return insert_method(modulename, code, fn)
_parsed_methods[modulename] = 1
def parsed_module(modulename):
"""
Inform me file xyz was parsed
"""
return modulename in _parsed_methods
def get_parsed_dict():
"""
shortcut
"""
return _parsed_methods

View File

@@ -1,125 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'msg' implementation
Message handling infrastructure for bitbake
"""
# Copyright (C) 2006 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys, bb
from bb import event
debug_level = {}
verbose = False
domain = bb.utils.Enum(
'Build',
'Cache',
'Collection',
'Data',
'Depends',
'Fetcher',
'Parsing',
'PersistData',
'Provider',
'RunQueue',
'TaskData',
'Util')
class MsgBase(bb.event.Event):
"""Base class for messages"""
def __init__(self, msg, d ):
self._message = msg
event.Event.__init__(self, d)
class MsgDebug(MsgBase):
"""Debug Message"""
class MsgNote(MsgBase):
"""Note Message"""
class MsgWarn(MsgBase):
"""Warning Message"""
class MsgError(MsgBase):
"""Error Message"""
class MsgFatal(MsgBase):
"""Fatal Message"""
class MsgPlain(MsgBase):
"""General output"""
#
# Message control functions
#
def set_debug_level(level):
bb.msg.debug_level = {}
for domain in bb.msg.domain:
bb.msg.debug_level[domain] = level
bb.msg.debug_level['default'] = level
def set_verbose(level):
bb.msg.verbose = level
def set_debug_domains(domains):
for domain in domains:
found = False
for ddomain in bb.msg.domain:
if domain == str(ddomain):
bb.msg.debug_level[ddomain] = bb.msg.debug_level[ddomain] + 1
found = True
if not found:
bb.msg.warn(None, "Logging domain %s is not valid, ignoring" % domain)
#
# Message handling functions
#
def debug(level, domain, msg, fn = None):
if not domain:
domain = 'default'
if debug_level[domain] >= level:
bb.event.fire(MsgDebug(msg, None))
def note(level, domain, msg, fn = None):
if not domain:
domain = 'default'
if level == 1 or verbose or debug_level[domain] >= 1:
bb.event.fire(MsgNote(msg, None))
def warn(domain, msg, fn = None):
bb.event.fire(MsgWarn(msg, None))
def error(domain, msg, fn = None):
bb.event.fire(MsgError(msg, None))
print 'ERROR: ' + msg
def fatal(domain, msg, fn = None):
bb.event.fire(MsgFatal(msg, None))
print 'FATAL: ' + msg
sys.exit(1)
def plain(msg, fn = None):
bb.event.fire(MsgPlain(msg, None))

View File

@@ -1,84 +0,0 @@
"""
BitBake Parsers
File parsers for the BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
__all__ = [ 'ParseError', 'SkipPackage', 'cached_mtime', 'mark_dependency',
'supports', 'handle', 'init' ]
handlers = []
import bb, os
class ParseError(Exception):
"""Exception raised when parsing fails"""
class SkipPackage(Exception):
"""Exception raised to skip this package"""
__mtime_cache = {}
def cached_mtime(f):
if not __mtime_cache.has_key(f):
__mtime_cache[f] = os.stat(f)[8]
return __mtime_cache[f]
def cached_mtime_noerror(f):
if not __mtime_cache.has_key(f):
try:
__mtime_cache[f] = os.stat(f)[8]
except OSError:
return 0
return __mtime_cache[f]
def update_mtime(f):
__mtime_cache[f] = os.stat(f)[8]
return __mtime_cache[f]
def mark_dependency(d, f):
if f.startswith('./'):
f = "%s/%s" % (os.getcwd(), f[2:])
deps = bb.data.getVar('__depends', d) or []
deps.append( (f, cached_mtime(f)) )
bb.data.setVar('__depends', deps, d)
def supports(fn, data):
"""Returns true if we have a handler for this file, false otherwise"""
for h in handlers:
if h['supports'](fn, data):
return 1
return 0
def handle(fn, data, include = 0):
"""Call the handler that is appropriate for this file"""
for h in handlers:
if h['supports'](fn, data):
return h['handle'](fn, data, include)
raise ParseError("%s is not a BitBake file" % fn)
def init(fn, data):
for h in handlers:
if h['supports'](fn):
return h['init'](data)
from parse_py import __version__, ConfHandler, BBHandler

View File

@@ -1,401 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
class for handling .bb files
Reads a .bb file and obtains its metadata
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, bb, os, sys, time, string
import bb.fetch, bb.build, bb.utils
from bb import data, fetch, methodpool
from ConfHandler import include, localpath, obtain, init
from bb.parse import ParseError
__func_start_regexp__ = re.compile( r"(((?P<py>python)|(?P<fr>fakeroot))\s*)*(?P<func>[\w\.\-\+\{\}\$]+)?\s*\(\s*\)\s*{$" )
__inherit_regexp__ = re.compile( r"inherit\s+(.+)" )
__export_func_regexp__ = re.compile( r"EXPORT_FUNCTIONS\s+(.+)" )
__addtask_regexp__ = re.compile("addtask\s+(?P<func>\w+)\s*((before\s*(?P<before>((.*(?=after))|(.*))))|(after\s*(?P<after>((.*(?=before))|(.*)))))*")
__addhandler_regexp__ = re.compile( r"addhandler\s+(.+)" )
__def_regexp__ = re.compile( r"def\s+(\w+).*:" )
__python_func_regexp__ = re.compile( r"(\s+.*)|(^$)" )
__word__ = re.compile(r"\S+")
__infunc__ = ""
__inpython__ = False
__body__ = []
__classname__ = ""
classes = [ None, ]
# We need to indicate EOF to the feeder. This code is so messy that
# factoring it out to a close_parse_file method is out of question.
# We will use the IN_PYTHON_EOF as an indicator to just close the method
#
# The two parts using it are tightly integrated anyway
IN_PYTHON_EOF = -9999999999999
__parsed_methods__ = methodpool.get_parsed_dict()
def supports(fn, d):
localfn = localpath(fn, d)
return localfn[-3:] == ".bb" or localfn[-8:] == ".bbclass" or localfn[-4:] == ".inc"
def inherit(files, d):
__inherit_cache = data.getVar('__inherit_cache', d) or []
fn = ""
lineno = 0
files = data.expand(files, d)
for file in files:
if file[0] != "/" and file[-8:] != ".bbclass":
file = os.path.join('classes', '%s.bbclass' % file)
if not file in __inherit_cache:
bb.msg.debug(2, bb.msg.domain.Parsing, "BB %s:%d: inheriting %s" % (fn, lineno, file))
__inherit_cache.append( file )
data.setVar('__inherit_cache', __inherit_cache, d)
include(fn, file, d, "inherit")
__inherit_cache = data.getVar('__inherit_cache', d) or []
def finalise(fn, d):
data.expandKeys(d)
data.update_data(d)
anonqueue = data.getVar("__anonqueue", d, 1) or []
body = [x['content'] for x in anonqueue]
flag = { 'python' : 1, 'func' : 1 }
data.setVar("__anonfunc", "\n".join(body), d)
data.setVarFlags("__anonfunc", flag, d)
from bb import build
try:
t = data.getVar('T', d)
data.setVar('T', '${TMPDIR}/anonfunc/', d)
anonfuncs = data.getVar('__BBANONFUNCS', d) or []
code = ""
for f in anonfuncs:
code = code + " %s(d)\n" % f
data.setVar("__anonfunc", code, d)
build.exec_func("__anonfunc", d)
data.delVar('T', d)
if t:
data.setVar('T', t, d)
except Exception, e:
bb.msg.debug(1, bb.msg.domain.Parsing, "Exception when executing anonymous function: %s" % e)
raise
data.delVar("__anonqueue", d)
data.delVar("__anonfunc", d)
data.update_data(d)
all_handlers = {}
for var in data.getVar('__BBHANDLERS', d) or []:
# try to add the handler
handler = data.getVar(var,d)
bb.event.register(var, handler)
tasklist = data.getVar('__BBTASKS', d) or []
bb.build.add_tasks(tasklist, d)
bb.event.fire(bb.event.RecipeParsed(fn, d))
def handle(fn, d, include = 0):
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __infunc__, __body__, __residue__
__body__ = []
__infunc__ = ""
__classname__ = ""
__residue__ = []
if include == 0:
bb.msg.debug(2, bb.msg.domain.Parsing, "BB " + fn + ": handle(data)")
else:
bb.msg.debug(2, bb.msg.domain.Parsing, "BB " + fn + ": handle(data, include)")
(root, ext) = os.path.splitext(os.path.basename(fn))
base_name = "%s%s" % (root,ext)
init(d)
if ext == ".bbclass":
__classname__ = root
classes.append(__classname__)
__inherit_cache = data.getVar('__inherit_cache', d) or []
if not fn in __inherit_cache:
__inherit_cache.append(fn)
data.setVar('__inherit_cache', __inherit_cache, d)
if include != 0:
oldfile = data.getVar('FILE', d)
else:
oldfile = None
fn = obtain(fn, d)
bbpath = (data.getVar('BBPATH', d, 1) or '').split(':')
if not os.path.isabs(fn):
f = None
for p in bbpath:
j = os.path.join(p, fn)
if os.access(j, os.R_OK):
abs_fn = j
f = open(j, 'r')
break
if f is None:
raise IOError("file %s not found" % fn)
else:
f = open(fn,'r')
abs_fn = fn
if include:
bb.parse.mark_dependency(d, abs_fn)
if ext != ".bbclass":
data.setVar('FILE', fn, d)
lineno = 0
while 1:
lineno = lineno + 1
s = f.readline()
if not s: break
s = s.rstrip()
feeder(lineno, s, fn, base_name, d)
if __inpython__:
# add a blank line to close out any python definition
feeder(IN_PYTHON_EOF, "", fn, base_name, d)
if ext == ".bbclass":
classes.remove(__classname__)
else:
if include == 0:
multi = data.getVar('BBCLASSEXTEND', d, 1)
if multi:
based = bb.data.createCopy(d)
finalise(fn, based)
darray = {"": based}
for cls in multi.split():
pn = data.getVar('PN', d, True)
based = bb.data.createCopy(d)
data.setVar('PN', pn + '-' + cls, based)
inherit([cls], based)
finalise(fn, based)
darray[cls] = based
return darray
else:
finalise(fn, d)
bbpath.pop(0)
if oldfile:
bb.data.setVar("FILE", oldfile, d)
# we have parsed the bb class now
if ext == ".bbclass" or ext == ".inc":
__parsed_methods__[base_name] = 1
return d
def feeder(lineno, s, fn, root, d):
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __def_regexp__, __python_func_regexp__, __inpython__,__infunc__, __body__, classes, bb, __residue__
if __infunc__:
if s == '}':
__body__.append('')
if __infunc__ == "__anonymous":
funcname = ("__anon_%s_%s" % (lineno, fn.translate(string.maketrans('/.+-', '____'))))
if not funcname in methodpool._parsed_fns:
text = "def %s(d):\n" % (funcname) + '\n'.join(__body__)
methodpool.insert_method(funcname, text, fn)
anonfuncs = data.getVar('__BBANONFUNCS', d) or []
anonfuncs.append(funcname)
data.setVar('__BBANONFUNCS', anonfuncs, d)
else:
data.setVarFlag(__infunc__, "func", 1, d)
data.setVar(__infunc__, '\n'.join(__body__), d)
__infunc__ = ""
__body__ = []
else:
__body__.append(s)
return
if __inpython__:
m = __python_func_regexp__.match(s)
if m and lineno != IN_PYTHON_EOF:
__body__.append(s)
return
else:
# Note we will add root to parsedmethods after having parse
# 'this' file. This means we will not parse methods from
# bb classes twice
if not root in __parsed_methods__:
text = '\n'.join(__body__)
methodpool.insert_method( root, text, fn )
__body__ = []
__inpython__ = False
if lineno == IN_PYTHON_EOF:
return
# fall through
if s == '' or s[0] == '#': return # skip comments and empty lines
if s[-1] == '\\':
__residue__.append(s[:-1])
return
s = "".join(__residue__) + s
__residue__ = []
m = __func_start_regexp__.match(s)
if m:
__infunc__ = m.group("func") or "__anonymous"
key = __infunc__
if data.getVar(key, d):
# clean up old version of this piece of metadata, as its
# flags could cause problems
data.setVarFlag(key, 'python', None, d)
data.setVarFlag(key, 'fakeroot', None, d)
if m.group("py") is not None:
data.setVarFlag(key, "python", "1", d)
else:
data.delVarFlag(key, "python", d)
if m.group("fr") is not None:
data.setVarFlag(key, "fakeroot", "1", d)
else:
data.delVarFlag(key, "fakeroot", d)
return
m = __def_regexp__.match(s)
if m:
__body__.append(s)
__inpython__ = True
return
m = __export_func_regexp__.match(s)
if m:
fns = m.group(1)
n = __word__.findall(fns)
for f in n:
allvars = []
allvars.append(f)
allvars.append(classes[-1] + "_" + f)
vars = [[ allvars[0], allvars[1] ]]
if len(classes) > 1 and classes[-2] is not None:
allvars.append(classes[-2] + "_" + f)
vars = []
vars.append([allvars[2], allvars[1]])
vars.append([allvars[0], allvars[2]])
for (var, calledvar) in vars:
if data.getVar(var, d) and not data.getVarFlag(var, 'export_func', d):
continue
if data.getVar(var, d):
data.setVarFlag(var, 'python', None, d)
data.setVarFlag(var, 'func', None, d)
for flag in [ "func", "python" ]:
if data.getVarFlag(calledvar, flag, d):
data.setVarFlag(var, flag, data.getVarFlag(calledvar, flag, d), d)
for flag in [ "dirs" ]:
if data.getVarFlag(var, flag, d):
data.setVarFlag(calledvar, flag, data.getVarFlag(var, flag, d), d)
if data.getVarFlag(calledvar, "python", d):
data.setVar(var, "\tbb.build.exec_func('" + calledvar + "', d)\n", d)
else:
data.setVar(var, "\t" + calledvar + "\n", d)
data.setVarFlag(var, 'export_func', '1', d)
return
m = __addtask_regexp__.match(s)
if m:
func = m.group("func")
before = m.group("before")
after = m.group("after")
if func is None:
return
var = "do_" + func
data.setVarFlag(var, "task", 1, d)
bbtasks = data.getVar('__BBTASKS', d) or []
if not var in bbtasks:
bbtasks.append(var)
data.setVar('__BBTASKS', bbtasks, d)
existing = data.getVarFlag(var, "deps", d) or []
if after is not None:
# set up deps for function
for entry in after.split():
if entry not in existing:
existing.append(entry)
data.setVarFlag(var, "deps", existing, d)
if before is not None:
# set up things that depend on this func
for entry in before.split():
existing = data.getVarFlag(entry, "deps", d) or []
if var not in existing:
data.setVarFlag(entry, "deps", [var] + existing, d)
return
m = __addhandler_regexp__.match(s)
if m:
fns = m.group(1)
hs = __word__.findall(fns)
bbhands = data.getVar('__BBHANDLERS', d) or []
for h in hs:
bbhands.append(h)
data.setVarFlag(h, "handler", 1, d)
data.setVar('__BBHANDLERS', bbhands, d)
return
m = __inherit_regexp__.match(s)
if m:
files = m.group(1)
n = __word__.findall(files)
inherit(n, d)
return
from bb.parse import ConfHandler
return ConfHandler.feeder(lineno, s, fn, d)
__pkgsplit_cache__={}
def vars_from_file(mypkg, d):
if not mypkg:
return (None, None, None)
if mypkg in __pkgsplit_cache__:
return __pkgsplit_cache__[mypkg]
myfile = os.path.splitext(os.path.basename(mypkg))
parts = myfile[0].split('_')
__pkgsplit_cache__[mypkg] = parts
if len(parts) > 3:
raise ParseError("Unable to generate default variables from the filename: %s (too many underscores)" % mypkg)
exp = 3 - len(parts)
tmplist = []
while exp != 0:
exp -= 1
tmplist.append(None)
parts.extend(tmplist)
return parts
# Add us to the handlers list
from bb.parse import handlers
handlers.append({'supports': supports, 'handle': handle, 'init': init})
del handlers

View File

@@ -1,234 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
class for handling configuration data files
Reads a .conf file and obtains its metadata
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, bb.data, os, sys
from bb.parse import ParseError
#__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}]+)\s*(?P<colon>:)?(?P<ques>\?)?=\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}/]+)(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?\s*((?P<colon>:=)|(?P<ques>\?=)|(?P<append>\+=)|(?P<prepend>=\+)|(?P<predot>=\.)|(?P<postdot>\.=)|=)\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
__include_regexp__ = re.compile( r"include\s+(.+)" )
__require_regexp__ = re.compile( r"require\s+(.+)" )
__export_regexp__ = re.compile( r"export\s+(.+)" )
def init(data):
if not bb.data.getVar('TOPDIR', data):
bb.data.setVar('TOPDIR', os.getcwd(), data)
if not bb.data.getVar('BBPATH', data):
bb.data.setVar('BBPATH', os.path.join(sys.prefix, 'share', 'bitbake'), data)
def supports(fn, d):
return localpath(fn, d)[-5:] == ".conf"
def localpath(fn, d):
if os.path.exists(fn):
return fn
if "://" not in fn:
return fn
localfn = None
try:
localfn = bb.fetch.localpath(fn, d, False)
except bb.MalformedUrl:
pass
if not localfn:
return fn
return localfn
def obtain(fn, data):
import sys, bb
fn = bb.data.expand(fn, data)
localfn = bb.data.expand(localpath(fn, data), data)
if localfn != fn:
dldir = bb.data.getVar('DL_DIR', data, 1)
if not dldir:
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: DL_DIR not defined")
return localfn
bb.mkdirhier(dldir)
try:
bb.fetch.init([fn], data)
except bb.fetch.NoMethodError:
(type, value, traceback) = sys.exc_info()
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: no method: %s" % value)
return localfn
try:
bb.fetch.go(data)
except bb.fetch.MissingParameterError:
(type, value, traceback) = sys.exc_info()
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: missing parameters: %s" % value)
return localfn
except bb.fetch.FetchError:
(type, value, traceback) = sys.exc_info()
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: failed: %s" % value)
return localfn
return localfn
def include(oldfn, fn, data, error_out):
"""
error_out If True a ParseError will be reaised if the to be included
"""
if oldfn == fn: # prevent infinate recursion
return None
import bb
fn = bb.data.expand(fn, data)
oldfn = bb.data.expand(oldfn, data)
if not os.path.isabs(fn):
dname = os.path.dirname(oldfn)
bbpath = "%s:%s" % (dname, bb.data.getVar("BBPATH", data, 1))
abs_fn = bb.which(bbpath, fn)
if abs_fn:
fn = abs_fn
from bb.parse import handle
try:
ret = handle(fn, data, True)
except IOError:
if error_out:
raise ParseError("Could not %(error_out)s file %(fn)s" % vars() )
bb.msg.debug(2, bb.msg.domain.Parsing, "CONF file '%s' not found" % fn)
def handle(fn, data, include = 0):
if include:
inc_string = "including"
else:
inc_string = "reading"
init(data)
if include == 0:
oldfile = None
else:
oldfile = bb.data.getVar('FILE', data)
fn = obtain(fn, data)
if not os.path.isabs(fn):
f = None
bbpath = bb.data.getVar("BBPATH", data, 1) or []
for p in bbpath.split(":"):
currname = os.path.join(p, fn)
if os.access(currname, os.R_OK):
f = open(currname, 'r')
abs_fn = currname
bb.msg.debug(2, bb.msg.domain.Parsing, "CONF %s %s" % (inc_string, currname))
break
if f is None:
raise IOError("file '%s' not found" % fn)
else:
f = open(fn,'r')
bb.msg.debug(1, bb.msg.domain.Parsing, "CONF %s %s" % (inc_string,fn))
abs_fn = fn
if include:
bb.parse.mark_dependency(data, abs_fn)
lineno = 0
bb.data.setVar('FILE', fn, data)
while 1:
lineno = lineno + 1
s = f.readline()
if not s: break
w = s.strip()
if not w: continue # skip empty lines
s = s.rstrip()
if s[0] == '#': continue # skip comments
while s[-1] == '\\':
s2 = f.readline()[:-1].strip()
lineno = lineno + 1
s = s[:-1] + s2
feeder(lineno, s, fn, data)
if oldfile:
bb.data.setVar('FILE', oldfile, data)
return data
def feeder(lineno, s, fn, data):
def getFunc(groupd, key, data):
if 'flag' in groupd and groupd['flag'] != None:
return bb.data.getVarFlag(key, groupd['flag'], data)
else:
return bb.data.getVar(key, data)
m = __config_regexp__.match(s)
if m:
groupd = m.groupdict()
key = groupd["var"]
if "exp" in groupd and groupd["exp"] != None:
bb.data.setVarFlag(key, "export", 1, data)
if "ques" in groupd and groupd["ques"] != None:
val = getFunc(groupd, key, data)
if val == None:
val = groupd["value"]
elif "colon" in groupd and groupd["colon"] != None:
e = data.createCopy()
bb.data.update_data(e)
val = bb.data.expand(groupd["value"], e)
elif "append" in groupd and groupd["append"] != None:
val = "%s %s" % ((getFunc(groupd, key, data) or ""), groupd["value"])
elif "prepend" in groupd and groupd["prepend"] != None:
val = "%s %s" % (groupd["value"], (getFunc(groupd, key, data) or ""))
elif "postdot" in groupd and groupd["postdot"] != None:
val = "%s%s" % ((getFunc(groupd, key, data) or ""), groupd["value"])
elif "predot" in groupd and groupd["predot"] != None:
val = "%s%s" % (groupd["value"], (getFunc(groupd, key, data) or ""))
else:
val = groupd["value"]
if 'flag' in groupd and groupd['flag'] != None:
bb.msg.debug(3, bb.msg.domain.Parsing, "setVarFlag(%s, %s, %s, data)" % (key, groupd['flag'], val))
bb.data.setVarFlag(key, groupd['flag'], val, data)
else:
bb.data.setVar(key, val, data)
return
m = __include_regexp__.match(s)
if m:
s = bb.data.expand(m.group(1), data)
bb.msg.debug(3, bb.msg.domain.Parsing, "CONF %s:%d: including %s" % (fn, lineno, s))
include(fn, s, data, False)
return
m = __require_regexp__.match(s)
if m:
s = bb.data.expand(m.group(1), data)
include(fn, s, data, "include required")
return
m = __export_regexp__.match(s)
if m:
bb.data.setVarFlag(m.group(1), "export", 1, data)
return
raise ParseError("%s:%d: unparsed line: '%s'" % (fn, lineno, s));
# Add us to the handlers list
from bb.parse import handlers
handlers.append({'supports': supports, 'handle': handle, 'init': init})
del handlers

View File

@@ -1,33 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake Parsers
File parsers for the BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
__version__ = '1.0'
__all__ = [ 'ConfHandler', 'BBHandler']
import ConfHandler
import BBHandler

View File

@@ -1,121 +0,0 @@
# BitBake Persistent Data Store
#
# Copyright (C) 2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import bb, os
try:
import sqlite3
except ImportError:
try:
from pysqlite2 import dbapi2 as sqlite3
except ImportError:
bb.msg.fatal(bb.msg.domain.PersistData, "Importing sqlite3 and pysqlite2 failed, please install one of them. Python 2.5 or a 'python-pysqlite2' like package is likely to be what you need.")
sqlversion = sqlite3.sqlite_version_info
if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
bb.msg.fatal(bb.msg.domain.PersistData, "sqlite3 version 3.3.0 or later is required.")
class PersistData:
"""
BitBake Persistent Data Store
Used to store data in a central location such that other threads/tasks can
access them at some future date.
The "domain" is used as a key to isolate each data pool and in this
implementation corresponds to an SQL table. The SQL table consists of a
simple key and value pair.
Why sqlite? It handles all the locking issues for us.
"""
def __init__(self, d):
self.cachedir = bb.data.getVar("PERSISTENT_DIR", d, True) or bb.data.getVar("CACHE", d, True)
if self.cachedir in [None, '']:
bb.msg.fatal(bb.msg.domain.PersistData, "Please set the 'PERSISTENT_DIR' or 'CACHE' variable.")
try:
os.stat(self.cachedir)
except OSError:
bb.mkdirhier(self.cachedir)
self.cachefile = os.path.join(self.cachedir,"bb_persist_data.sqlite3")
bb.msg.debug(1, bb.msg.domain.PersistData, "Using '%s' as the persistent data cache" % self.cachefile)
self.connection = sqlite3.connect(self.cachefile, timeout=5, isolation_level=None)
def addDomain(self, domain):
"""
Should be called before any domain is used
Creates it if it doesn't exist.
"""
self.connection.execute("CREATE TABLE IF NOT EXISTS %s(key TEXT, value TEXT);" % domain)
def delDomain(self, domain):
"""
Removes a domain and all the data it contains
"""
self.connection.execute("DROP TABLE IF EXISTS %s;" % domain)
def getKeyValues(self, domain):
"""
Return a list of key + value pairs for a domain
"""
ret = {}
data = self.connection.execute("SELECT key, value from %s;" % domain)
for row in data:
ret[str(row[0])] = str(row[1])
return ret
def getValue(self, domain, key):
"""
Return the value of a key for a domain
"""
data = self.connection.execute("SELECT * from %s where key=?;" % domain, [key])
for row in data:
return row[1]
def setValue(self, domain, key, value):
"""
Sets the value of a key for a domain
"""
data = self.connection.execute("SELECT * from %s where key=?;" % domain, [key])
rows = 0
for row in data:
rows = rows + 1
if rows:
self._execute("UPDATE %s SET value=? WHERE key=?;" % domain, [value, key])
else:
self._execute("INSERT into %s(key, value) values (?, ?);" % domain, [key, value])
def delValue(self, domain, key):
"""
Deletes a key/value pair
"""
self._execute("DELETE from %s where key=?;" % domain, [key])
def _execute(self, *query):
while True:
try:
self.connection.execute(*query)
return
except sqlite3.OperationalError, e:
if 'database is locked' in str(e):
continue
raise

View File

@@ -1,315 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re
from bb import data, utils
import bb
class NoProvider(Exception):
"""Exception raised when no provider of a build dependency can be found"""
class NoRProvider(Exception):
"""Exception raised when no provider of a runtime dependency can be found"""
def sortPriorities(pn, dataCache, pkg_pn = None):
"""
Reorder pkg_pn by file priority and default preference
"""
if not pkg_pn:
pkg_pn = dataCache.pkg_pn
files = pkg_pn[pn]
priorities = {}
for f in files:
priority = dataCache.bbfile_priority[f]
preference = dataCache.pkg_dp[f]
if priority not in priorities:
priorities[priority] = {}
if preference not in priorities[priority]:
priorities[priority][preference] = []
priorities[priority][preference].append(f)
pri_list = priorities.keys()
pri_list.sort(lambda a, b: a - b)
tmp_pn = []
for pri in pri_list:
pref_list = priorities[pri].keys()
pref_list.sort(lambda a, b: b - a)
tmp_pref = []
for pref in pref_list:
tmp_pref.extend(priorities[pri][pref])
tmp_pn = [tmp_pref] + tmp_pn
return tmp_pn
def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
"""
Find the first provider in pkg_pn with a PREFERRED_VERSION set.
"""
preferred_file = None
preferred_ver = None
localdata = data.createCopy(cfgData)
bb.data.setVar('OVERRIDES', "pn-%s:%s:%s" % (pn, pn, data.getVar('OVERRIDES', localdata)), localdata)
bb.data.update_data(localdata)
preferred_v = bb.data.getVar('PREFERRED_VERSION_%s' % pn, localdata, True)
if preferred_v:
m = re.match('(\d+:)*(.*)(_.*)*', preferred_v)
if m:
if m.group(1):
preferred_e = int(m.group(1)[:-1])
else:
preferred_e = None
preferred_v = m.group(2)
if m.group(3):
preferred_r = m.group(3)[1:]
else:
preferred_r = None
else:
preferred_e = None
preferred_r = None
for file_set in pkg_pn:
for f in file_set:
pe,pv,pr = dataCache.pkg_pepvpr[f]
if preferred_v == pv and (preferred_r == pr or preferred_r == None) and (preferred_e == pe or preferred_e == None):
preferred_file = f
preferred_ver = (pe, pv, pr)
break
if preferred_file:
break;
if preferred_r:
pv_str = '%s-%s' % (preferred_v, preferred_r)
else:
pv_str = preferred_v
if not (preferred_e is None):
pv_str = '%s:%s' % (preferred_e, pv_str)
itemstr = ""
if item:
itemstr = " (for item %s)" % item
if preferred_file is None:
bb.msg.note(1, bb.msg.domain.Provider, "preferred version %s of %s not available%s" % (pv_str, pn, itemstr))
else:
bb.msg.debug(1, bb.msg.domain.Provider, "selecting %s as PREFERRED_VERSION %s of package %s%s" % (preferred_file, pv_str, pn, itemstr))
return (preferred_ver, preferred_file)
def findLatestProvider(pn, cfgData, dataCache, file_set):
"""
Return the highest version of the providers in file_set.
Take default preferences into account.
"""
latest = None
latest_p = 0
latest_f = None
for file_name in file_set:
pe,pv,pr = dataCache.pkg_pepvpr[file_name]
dp = dataCache.pkg_dp[file_name]
if (latest is None) or ((latest_p == dp) and (utils.vercmp(latest, (pe, pv, pr)) < 0)) or (dp > latest_p):
latest = (pe, pv, pr)
latest_f = file_name
latest_p = dp
return (latest, latest_f)
def findBestProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
"""
If there is a PREFERRED_VERSION, find the highest-priority bbfile
providing that version. If not, find the latest version provided by
an bbfile in the highest-priority set.
"""
sortpkg_pn = sortPriorities(pn, dataCache, pkg_pn)
# Find the highest priority provider with a PREFERRED_VERSION set
(preferred_ver, preferred_file) = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn, item)
# Find the latest version of the highest priority provider
(latest, latest_f) = findLatestProvider(pn, cfgData, dataCache, sortpkg_pn[0])
if preferred_file is None:
preferred_file = latest_f
preferred_ver = latest
return (latest, latest_f, preferred_ver, preferred_file)
def _filterProviders(providers, item, cfgData, dataCache):
"""
Take a list of providers and filter/reorder according to the
environment variables and previous build results
"""
eligible = []
preferred_versions = {}
sortpkg_pn = {}
# The order of providers depends on the order of the files on the disk
# up to here. Sort pkg_pn to make dependency issues reproducible rather
# than effectively random.
providers.sort()
# Collate providers by PN
pkg_pn = {}
for p in providers:
pn = dataCache.pkg_fn[p]
if pn not in pkg_pn:
pkg_pn[pn] = []
pkg_pn[pn].append(p)
bb.msg.debug(1, bb.msg.domain.Provider, "providers for %s are: %s" % (item, pkg_pn.keys()))
# First add PREFERRED_VERSIONS
for pn in pkg_pn.keys():
sortpkg_pn[pn] = sortPriorities(pn, dataCache, pkg_pn)
preferred_versions[pn] = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn[pn], item)
if preferred_versions[pn][1]:
eligible.append(preferred_versions[pn][1])
# Now add latest verisons
for pn in pkg_pn.keys():
if pn in preferred_versions and preferred_versions[pn][1]:
continue
preferred_versions[pn] = findLatestProvider(pn, cfgData, dataCache, sortpkg_pn[pn][0])
eligible.append(preferred_versions[pn][1])
if len(eligible) == 0:
bb.msg.error(bb.msg.domain.Provider, "no eligible providers for %s" % item)
return 0
# If pn == item, give it a slight default preference
# This means PREFERRED_PROVIDER_foobar defaults to foobar if available
for p in providers:
pn = dataCache.pkg_fn[p]
if pn != item:
continue
(newvers, fn) = preferred_versions[pn]
if not fn in eligible:
continue
eligible.remove(fn)
eligible = [fn] + eligible
return eligible
def filterProviders(providers, item, cfgData, dataCache):
"""
Take a list of providers and filter/reorder according to the
environment variables and previous build results
Takes a "normal" target item
"""
eligible = _filterProviders(providers, item, cfgData, dataCache)
prefervar = bb.data.getVar('PREFERRED_PROVIDER_%s' % item, cfgData, 1)
if prefervar:
dataCache.preferred[item] = prefervar
foundUnique = False
if item in dataCache.preferred:
for p in eligible:
pn = dataCache.pkg_fn[p]
if dataCache.preferred[item] == pn:
bb.msg.note(2, bb.msg.domain.Provider, "selecting %s to satisfy %s due to PREFERRED_PROVIDERS" % (pn, item))
eligible.remove(p)
eligible = [p] + eligible
foundUnique = True
break
bb.msg.debug(1, bb.msg.domain.Provider, "sorted providers for %s are: %s" % (item, eligible))
return eligible, foundUnique
def filterProvidersRunTime(providers, item, cfgData, dataCache):
"""
Take a list of providers and filter/reorder according to the
environment variables and previous build results
Takes a "runtime" target item
"""
eligible = _filterProviders(providers, item, cfgData, dataCache)
# Should use dataCache.preferred here?
preferred = []
preferred_vars = []
for p in eligible:
pn = dataCache.pkg_fn[p]
provides = dataCache.pn_provides[pn]
for provide in provides:
bb.msg.note(2, bb.msg.domain.Provider, "checking PREFERRED_PROVIDER_%s" % (provide))
prefervar = bb.data.getVar('PREFERRED_PROVIDER_%s' % provide, cfgData, 1)
if prefervar == pn:
var = "PREFERRED_PROVIDER_%s = %s" % (provide, prefervar)
bb.msg.note(2, bb.msg.domain.Provider, "selecting %s to satisfy runtime %s due to %s" % (pn, item, var))
preferred_vars.append(var)
eligible.remove(p)
eligible = [p] + eligible
preferred.append(p)
break
numberPreferred = len(preferred)
if numberPreferred > 1:
bb.msg.error(bb.msg.domain.Provider, "Conflicting PREFERRED_PROVIDER entries were found which resulted in an attempt to select multiple providers (%s) for runtime dependecy %s\nThe entries resulting in this conflict were: %s" % (preferred, item, preferred_vars))
bb.msg.debug(1, bb.msg.domain.Provider, "sorted providers for %s are: %s" % (item, eligible))
return eligible, numberPreferred
regexp_cache = {}
def getRuntimeProviders(dataCache, rdepend):
"""
Return any providers of runtime dependency
"""
rproviders = []
if rdepend in dataCache.rproviders:
rproviders += dataCache.rproviders[rdepend]
if rdepend in dataCache.packages:
rproviders += dataCache.packages[rdepend]
if rproviders:
return rproviders
# Only search dynamic packages if we can't find anything in other variables
for pattern in dataCache.packages_dynamic:
pattern = pattern.replace('+', "\+")
if pattern in regexp_cache:
regexp = regexp_cache[pattern]
else:
try:
regexp = re.compile(pattern)
except:
bb.msg.error(bb.msg.domain.Provider, "Error parsing re expression: %s" % pattern)
raise
regexp_cache[pattern] = regexp
if regexp.match(rdepend):
rproviders += dataCache.packages_dynamic[pattern]
return rproviders

File diff suppressed because it is too large Load Diff

View File

@@ -1,824 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
##########################################################################
#
# Copyright (C) 2005-2006 Michael 'Mickey' Lauer <mickey@Vanille.de>
# Copyright (C) 2005-2006 Vanille Media
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
##########################################################################
#
# Thanks to:
# * Holger Freyther <zecke@handhelds.org>
# * Justin Patrin <papercrane@reversefold.com>
#
##########################################################################
"""
BitBake Shell
IDEAS:
* list defined tasks per package
* list classes
* toggle force
* command to reparse just one (or more) bbfile(s)
* automatic check if reparsing is necessary (inotify?)
* frontend for bb file manipulation
* more shell-like features:
- output control, i.e. pipe output into grep, sort, etc.
- job control, i.e. bring running commands into background and foreground
* start parsing in background right after startup
* ncurses interface
PROBLEMS:
* force doesn't always work
* readline completion for commands with more than one parameters
"""
##########################################################################
# Import and setup global variables
##########################################################################
try:
set
except NameError:
from sets import Set as set
import sys, os, readline, socket, httplib, urllib, commands, popen2, copy, shlex, Queue, fnmatch
from bb import data, parse, build, fatal, cache, taskdata, runqueue, providers as Providers
__version__ = "0.5.3.1"
__credits__ = """BitBake Shell Version %s (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
Type 'help' for more information, press CTRL-D to exit.""" % __version__
cmds = {}
leave_mainloop = False
last_exception = None
cooker = None
parsed = False
debug = os.environ.get( "BBSHELL_DEBUG", "" )
##########################################################################
# Class BitBakeShellCommands
##########################################################################
class BitBakeShellCommands:
"""This class contains the valid commands for the shell"""
def __init__( self, shell ):
"""Register all the commands"""
self._shell = shell
for attr in BitBakeShellCommands.__dict__:
if not attr.startswith( "_" ):
if attr.endswith( "_" ):
command = attr[:-1].lower()
else:
command = attr[:].lower()
method = getattr( BitBakeShellCommands, attr )
debugOut( "registering command '%s'" % command )
# scan number of arguments
usage = getattr( method, "usage", "" )
if usage != "<...>":
numArgs = len( usage.split() )
else:
numArgs = -1
shell.registerCommand( command, method, numArgs, "%s %s" % ( command, usage ), method.__doc__ )
def _checkParsed( self ):
if not parsed:
print "SHELL: This command needs to parse bbfiles..."
self.parse( None )
def _findProvider( self, item ):
self._checkParsed()
# Need to use taskData for this information
preferred = data.getVar( "PREFERRED_PROVIDER_%s" % item, cooker.configuration.data, 1 )
if not preferred: preferred = item
try:
lv, lf, pv, pf = Providers.findBestProvider(preferred, cooker.configuration.data, cooker.status)
except KeyError:
if item in cooker.status.providers:
pf = cooker.status.providers[item][0]
else:
pf = None
return pf
def alias( self, params ):
"""Register a new name for a command"""
new, old = params
if not old in cmds:
print "ERROR: Command '%s' not known" % old
else:
cmds[new] = cmds[old]
print "OK"
alias.usage = "<alias> <command>"
def buffer( self, params ):
"""Dump specified output buffer"""
index = params[0]
print self._shell.myout.buffer( int( index ) )
buffer.usage = "<index>"
def buffers( self, params ):
"""Show the available output buffers"""
commands = self._shell.myout.bufferedCommands()
if not commands:
print "SHELL: No buffered commands available yet. Start doing something."
else:
print "="*35, "Available Output Buffers", "="*27
for index, cmd in enumerate( commands ):
print "| %s %s" % ( str( index ).ljust( 3 ), cmd )
print "="*88
def build( self, params, cmd = "build" ):
"""Build a providee"""
global last_exception
globexpr = params[0]
self._checkParsed()
names = globfilter( cooker.status.pkg_pn.keys(), globexpr )
if len( names ) == 0: names = [ globexpr ]
print "SHELL: Building %s" % ' '.join( names )
td = taskdata.TaskData(cooker.configuration.abort)
localdata = data.createCopy(cooker.configuration.data)
data.update_data(localdata)
data.expandKeys(localdata)
try:
tasks = []
for name in names:
td.add_provider(localdata, cooker.status, name)
providers = td.get_provider(name)
if len(providers) == 0:
raise Providers.NoProvider
tasks.append([name, "do_%s" % cmd])
td.add_unresolved(localdata, cooker.status)
rq = runqueue.RunQueue(cooker, localdata, cooker.status, td, tasks)
rq.prepare_runqueue()
rq.execute_runqueue()
except Providers.NoProvider:
print "ERROR: No Provider"
last_exception = Providers.NoProvider
except runqueue.TaskFailure, fnids:
for fnid in fnids:
print "ERROR: '%s' failed" % td.fn_index[fnid]
last_exception = runqueue.TaskFailure
except build.EventException, e:
print "ERROR: Couldn't build '%s'" % names
last_exception = e
build.usage = "<providee>"
def clean( self, params ):
"""Clean a providee"""
self.build( params, "clean" )
clean.usage = "<providee>"
def compile( self, params ):
"""Execute 'compile' on a providee"""
self.build( params, "compile" )
compile.usage = "<providee>"
def configure( self, params ):
"""Execute 'configure' on a providee"""
self.build( params, "configure" )
configure.usage = "<providee>"
def install( self, params ):
"""Execute 'install' on a providee"""
self.build( params, "install" )
install.usage = "<providee>"
def edit( self, params ):
"""Call $EDITOR on a providee"""
name = params[0]
bbfile = self._findProvider( name )
if bbfile is not None:
os.system( "%s %s" % ( os.environ.get( "EDITOR", "vi" ), bbfile ) )
else:
print "ERROR: Nothing provides '%s'" % name
edit.usage = "<providee>"
def environment( self, params ):
"""Dump out the outer BitBake environment"""
cooker.showEnvironment()
def exit_( self, params ):
"""Leave the BitBake Shell"""
debugOut( "setting leave_mainloop to true" )
global leave_mainloop
leave_mainloop = True
def fetch( self, params ):
"""Fetch a providee"""
self.build( params, "fetch" )
fetch.usage = "<providee>"
def fileBuild( self, params, cmd = "build" ):
"""Parse and build a .bb file"""
global last_exception
name = params[0]
bf = completeFilePath( name )
print "SHELL: Calling '%s' on '%s'" % ( cmd, bf )
try:
cooker.buildFile(bf, cmd)
except parse.ParseError:
print "ERROR: Unable to open or parse '%s'" % bf
except build.EventException, e:
print "ERROR: Couldn't build '%s'" % name
last_exception = e
fileBuild.usage = "<bbfile>"
def fileClean( self, params ):
"""Clean a .bb file"""
self.fileBuild( params, "clean" )
fileClean.usage = "<bbfile>"
def fileEdit( self, params ):
"""Call $EDITOR on a .bb file"""
name = params[0]
os.system( "%s %s" % ( os.environ.get( "EDITOR", "vi" ), completeFilePath( name ) ) )
fileEdit.usage = "<bbfile>"
def fileRebuild( self, params ):
"""Rebuild (clean & build) a .bb file"""
self.fileBuild( params, "rebuild" )
fileRebuild.usage = "<bbfile>"
def fileReparse( self, params ):
"""(re)Parse a bb file"""
bbfile = params[0]
print "SHELL: Parsing '%s'" % bbfile
parse.update_mtime( bbfile )
cooker.bb_cache.cacheValidUpdate(bbfile)
fromCache = cooker.bb_cache.loadData(bbfile, cooker.configuration.data, cooker.status)
cooker.bb_cache.sync()
if False: #fromCache:
print "SHELL: File has not been updated, not reparsing"
else:
print "SHELL: Parsed"
fileReparse.usage = "<bbfile>"
def abort( self, params ):
"""Toggle abort task execution flag (see bitbake -k)"""
cooker.configuration.abort = not cooker.configuration.abort
print "SHELL: Abort Flag is now '%s'" % repr( cooker.configuration.abort )
def force( self, params ):
"""Toggle force task execution flag (see bitbake -f)"""
cooker.configuration.force = not cooker.configuration.force
print "SHELL: Force Flag is now '%s'" % repr( cooker.configuration.force )
def help( self, params ):
"""Show a comprehensive list of commands and their purpose"""
print "="*30, "Available Commands", "="*30
allcmds = cmds.keys()
allcmds.sort()
for cmd in allcmds:
function,numparams,usage,helptext = cmds[cmd]
print "| %s | %s" % (usage.ljust(30), helptext)
print "="*78
def lastError( self, params ):
"""Show the reason or log that was produced by the last BitBake event exception"""
if last_exception is None:
print "SHELL: No Errors yet (Phew)..."
else:
reason, event = last_exception.args
print "SHELL: Reason for the last error: '%s'" % reason
if ':' in reason:
msg, filename = reason.split( ':' )
filename = filename.strip()
print "SHELL: Dumping log file for last error:"
try:
print open( filename ).read()
except IOError:
print "ERROR: Couldn't open '%s'" % filename
def match( self, params ):
"""Dump all files or providers matching a glob expression"""
what, globexpr = params
if what == "files":
self._checkParsed()
for key in globfilter( cooker.status.pkg_fn.keys(), globexpr ): print key
elif what == "providers":
self._checkParsed()
for key in globfilter( cooker.status.pkg_pn.keys(), globexpr ): print key
else:
print "Usage: match %s" % self.print_.usage
match.usage = "<files|providers> <glob>"
def new( self, params ):
"""Create a new .bb file and open the editor"""
dirname, filename = params
packages = '/'.join( data.getVar( "BBFILES", cooker.configuration.data, 1 ).split('/')[:-2] )
fulldirname = "%s/%s" % ( packages, dirname )
if not os.path.exists( fulldirname ):
print "SHELL: Creating '%s'" % fulldirname
os.mkdir( fulldirname )
if os.path.exists( fulldirname ) and os.path.isdir( fulldirname ):
if os.path.exists( "%s/%s" % ( fulldirname, filename ) ):
print "SHELL: ERROR: %s/%s already exists" % ( fulldirname, filename )
return False
print "SHELL: Creating '%s/%s'" % ( fulldirname, filename )
newpackage = open( "%s/%s" % ( fulldirname, filename ), "w" )
print >>newpackage,"""DESCRIPTION = ""
SECTION = ""
AUTHOR = ""
HOMEPAGE = ""
MAINTAINER = ""
LICENSE = "GPL"
PR = "r0"
SRC_URI = ""
#inherit base
#do_configure() {
#
#}
#do_compile() {
#
#}
#do_stage() {
#
#}
#do_install() {
#
#}
"""
newpackage.close()
os.system( "%s %s/%s" % ( os.environ.get( "EDITOR" ), fulldirname, filename ) )
new.usage = "<directory> <filename>"
def package( self, params ):
"""Execute 'package' on a providee"""
self.build( params, "package" )
package.usage = "<providee>"
def pasteBin( self, params ):
"""Send a command + output buffer to the pastebin at http://rafb.net/paste"""
index = params[0]
contents = self._shell.myout.buffer( int( index ) )
sendToPastebin( "output of " + params[0], contents )
pasteBin.usage = "<index>"
def pasteLog( self, params ):
"""Send the last event exception error log (if there is one) to http://rafb.net/paste"""
if last_exception is None:
print "SHELL: No Errors yet (Phew)..."
else:
reason, event = last_exception.args
print "SHELL: Reason for the last error: '%s'" % reason
if ':' in reason:
msg, filename = reason.split( ':' )
filename = filename.strip()
print "SHELL: Pasting log file to pastebin..."
file = open( filename ).read()
sendToPastebin( "contents of " + filename, file )
def patch( self, params ):
"""Execute 'patch' command on a providee"""
self.build( params, "patch" )
patch.usage = "<providee>"
def parse( self, params ):
"""(Re-)parse .bb files and calculate the dependency graph"""
cooker.status = cache.CacheData()
ignore = data.getVar("ASSUME_PROVIDED", cooker.configuration.data, 1) or ""
cooker.status.ignored_dependencies = set( ignore.split() )
cooker.handleCollections( data.getVar("BBFILE_COLLECTIONS", cooker.configuration.data, 1) )
(filelist, masked) = cooker.collect_bbfiles()
cooker.parse_bbfiles(filelist, masked, cooker.myProgressCallback)
cooker.buildDepgraph()
global parsed
parsed = True
print
def reparse( self, params ):
"""(re)Parse a providee's bb file"""
bbfile = self._findProvider( params[0] )
if bbfile is not None:
print "SHELL: Found bbfile '%s' for '%s'" % ( bbfile, params[0] )
self.fileReparse( [ bbfile ] )
else:
print "ERROR: Nothing provides '%s'" % params[0]
reparse.usage = "<providee>"
def getvar( self, params ):
"""Dump the contents of an outer BitBake environment variable"""
var = params[0]
value = data.getVar( var, cooker.configuration.data, 1 )
print value
getvar.usage = "<variable>"
def peek( self, params ):
"""Dump contents of variable defined in providee's metadata"""
name, var = params
bbfile = self._findProvider( name )
if bbfile is not None:
the_data = cooker.bb_cache.loadDataFull(bbfile, cooker.configuration.data)
value = the_data.getVar( var, 1 )
print value
else:
print "ERROR: Nothing provides '%s'" % name
peek.usage = "<providee> <variable>"
def poke( self, params ):
"""Set contents of variable defined in providee's metadata"""
name, var, value = params
bbfile = self._findProvider( name )
if bbfile is not None:
print "ERROR: Sorry, this functionality is currently broken"
#d = cooker.pkgdata[bbfile]
#data.setVar( var, value, d )
# mark the change semi persistant
#cooker.pkgdata.setDirty(bbfile, d)
#print "OK"
else:
print "ERROR: Nothing provides '%s'" % name
poke.usage = "<providee> <variable> <value>"
def print_( self, params ):
"""Dump all files or providers"""
what = params[0]
if what == "files":
self._checkParsed()
for key in cooker.status.pkg_fn.keys(): print key
elif what == "providers":
self._checkParsed()
for key in cooker.status.providers.keys(): print key
else:
print "Usage: print %s" % self.print_.usage
print_.usage = "<files|providers>"
def python( self, params ):
"""Enter the expert mode - an interactive BitBake Python Interpreter"""
sys.ps1 = "EXPERT BB>>> "
sys.ps2 = "EXPERT BB... "
import code
interpreter = code.InteractiveConsole( dict( globals() ) )
interpreter.interact( "SHELL: Expert Mode - BitBake Python %s\nType 'help' for more information, press CTRL-D to switch back to BBSHELL." % sys.version )
def showdata( self, params ):
"""Execute 'showdata' on a providee"""
cooker.showEnvironment(None, params)
showdata.usage = "<providee>"
def setVar( self, params ):
"""Set an outer BitBake environment variable"""
var, value = params
data.setVar( var, value, cooker.configuration.data )
print "OK"
setVar.usage = "<variable> <value>"
def rebuild( self, params ):
"""Clean and rebuild a .bb file or a providee"""
self.build( params, "clean" )
self.build( params, "build" )
rebuild.usage = "<providee>"
def shell( self, params ):
"""Execute a shell command and dump the output"""
if params != "":
print commands.getoutput( " ".join( params ) )
shell.usage = "<...>"
def stage( self, params ):
"""Execute 'stage' on a providee"""
self.build( params, "populate_staging" )
stage.usage = "<providee>"
def status( self, params ):
"""<just for testing>"""
print "-" * 78
print "building list = '%s'" % cooker.building_list
print "build path = '%s'" % cooker.build_path
print "consider_msgs_cache = '%s'" % cooker.consider_msgs_cache
print "build stats = '%s'" % cooker.stats
if last_exception is not None: print "last_exception = '%s'" % repr( last_exception.args )
print "memory output contents = '%s'" % self._shell.myout._buffer
def test( self, params ):
"""<just for testing>"""
print "testCommand called with '%s'" % params
def unpack( self, params ):
"""Execute 'unpack' on a providee"""
self.build( params, "unpack" )
unpack.usage = "<providee>"
def which( self, params ):
"""Computes the providers for a given providee"""
# Need to use taskData for this information
item = params[0]
self._checkParsed()
preferred = data.getVar( "PREFERRED_PROVIDER_%s" % item, cooker.configuration.data, 1 )
if not preferred: preferred = item
try:
lv, lf, pv, pf = Providers.findBestProvider(preferred, cooker.configuration.data, cooker.status)
except KeyError:
lv, lf, pv, pf = (None,)*4
try:
providers = cooker.status.providers[item]
except KeyError:
print "SHELL: ERROR: Nothing provides", preferred
else:
for provider in providers:
if provider == pf: provider = " (***) %s" % provider
else: provider = " %s" % provider
print provider
which.usage = "<providee>"
##########################################################################
# Common helper functions
##########################################################################
def completeFilePath( bbfile ):
"""Get the complete bbfile path"""
if not cooker.status: return bbfile
if not cooker.status.pkg_fn: return bbfile
for key in cooker.status.pkg_fn.keys():
if key.endswith( bbfile ):
return key
return bbfile
def sendToPastebin( desc, content ):
"""Send content to http://oe.pastebin.com"""
mydata = {}
mydata["lang"] = "Plain Text"
mydata["desc"] = desc
mydata["cvt_tabs"] = "No"
mydata["nick"] = "%s@%s" % ( os.environ.get( "USER", "unknown" ), socket.gethostname() or "unknown" )
mydata["text"] = content
params = urllib.urlencode( mydata )
headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
host = "rafb.net"
conn = httplib.HTTPConnection( "%s:80" % host )
conn.request("POST", "/paste/paste.php", params, headers )
response = conn.getresponse()
conn.close()
if response.status == 302:
location = response.getheader( "location" ) or "unknown"
print "SHELL: Pasted to http://%s%s" % ( host, location )
else:
print "ERROR: %s %s" % ( response.status, response.reason )
def completer( text, state ):
"""Return a possible readline completion"""
debugOut( "completer called with text='%s', state='%d'" % ( text, state ) )
if state == 0:
line = readline.get_line_buffer()
if " " in line:
line = line.split()
# we are in second (or more) argument
if line[0] in cmds and hasattr( cmds[line[0]][0], "usage" ): # known command and usage
u = getattr( cmds[line[0]][0], "usage" ).split()[0]
if u == "<variable>":
allmatches = cooker.configuration.data.keys()
elif u == "<bbfile>":
if cooker.status.pkg_fn is None: allmatches = [ "(No Matches Available. Parsed yet?)" ]
else: allmatches = [ x.split("/")[-1] for x in cooker.status.pkg_fn.keys() ]
elif u == "<providee>":
if cooker.status.pkg_fn is None: allmatches = [ "(No Matches Available. Parsed yet?)" ]
else: allmatches = cooker.status.providers.iterkeys()
else: allmatches = [ "(No tab completion available for this command)" ]
else: allmatches = [ "(No tab completion available for this command)" ]
else:
# we are in first argument
allmatches = cmds.iterkeys()
completer.matches = [ x for x in allmatches if x[:len(text)] == text ]
#print "completer.matches = '%s'" % completer.matches
if len( completer.matches ) > state:
return completer.matches[state]
else:
return None
def debugOut( text ):
if debug:
sys.stderr.write( "( %s )\n" % text )
def columnize( alist, width = 80 ):
"""
A word-wrap function that preserves existing line breaks
and most spaces in the text. Expects that existing line
breaks are posix newlines (\n).
"""
return reduce(lambda line, word, width=width: '%s%s%s' %
(line,
' \n'[(len(line[line.rfind('\n')+1:])
+ len(word.split('\n',1)[0]
) >= width)],
word),
alist
)
def globfilter( names, pattern ):
return fnmatch.filter( names, pattern )
##########################################################################
# Class MemoryOutput
##########################################################################
class MemoryOutput:
"""File-like output class buffering the output of the last 10 commands"""
def __init__( self, delegate ):
self.delegate = delegate
self._buffer = []
self.text = []
self._command = None
def startCommand( self, command ):
self._command = command
self.text = []
def endCommand( self ):
if self._command is not None:
if len( self._buffer ) == 10: del self._buffer[0]
self._buffer.append( ( self._command, self.text ) )
def removeLast( self ):
if self._buffer:
del self._buffer[ len( self._buffer ) - 1 ]
self.text = []
self._command = None
def lastBuffer( self ):
if self._buffer:
return self._buffer[ len( self._buffer ) -1 ][1]
def bufferedCommands( self ):
return [ cmd for cmd, output in self._buffer ]
def buffer( self, i ):
if i < len( self._buffer ):
return "BB>> %s\n%s" % ( self._buffer[i][0], "".join( self._buffer[i][1] ) )
else: return "ERROR: Invalid buffer number. Buffer needs to be in (0, %d)" % ( len( self._buffer ) - 1 )
def write( self, text ):
if self._command is not None and text != "BB>> ": self.text.append( text )
if self.delegate is not None: self.delegate.write( text )
def flush( self ):
return self.delegate.flush()
def fileno( self ):
return self.delegate.fileno()
def isatty( self ):
return self.delegate.isatty()
##########################################################################
# Class BitBakeShell
##########################################################################
class BitBakeShell:
def __init__( self ):
"""Register commands and set up readline"""
self.commandQ = Queue.Queue()
self.commands = BitBakeShellCommands( self )
self.myout = MemoryOutput( sys.stdout )
self.historyfilename = os.path.expanduser( "~/.bbsh_history" )
self.startupfilename = os.path.expanduser( "~/.bbsh_startup" )
readline.set_completer( completer )
readline.set_completer_delims( " " )
readline.parse_and_bind("tab: complete")
try:
readline.read_history_file( self.historyfilename )
except IOError:
pass # It doesn't exist yet.
print __credits__
def cleanup( self ):
"""Write readline history and clean up resources"""
debugOut( "writing command history" )
try:
readline.write_history_file( self.historyfilename )
except:
print "SHELL: Unable to save command history"
def registerCommand( self, command, function, numparams = 0, usage = "", helptext = "" ):
"""Register a command"""
if usage == "": usage = command
if helptext == "": helptext = function.__doc__ or "<not yet documented>"
cmds[command] = ( function, numparams, usage, helptext )
def processCommand( self, command, params ):
"""Process a command. Check number of params and print a usage string, if appropriate"""
debugOut( "processing command '%s'..." % command )
try:
function, numparams, usage, helptext = cmds[command]
except KeyError:
print "SHELL: ERROR: '%s' command is not a valid command." % command
self.myout.removeLast()
else:
if (numparams != -1) and (not len( params ) == numparams):
print "Usage: '%s'" % usage
return
result = function( self.commands, params )
debugOut( "result was '%s'" % result )
def processStartupFile( self ):
"""Read and execute all commands found in $HOME/.bbsh_startup"""
if os.path.exists( self.startupfilename ):
startupfile = open( self.startupfilename, "r" )
for cmdline in startupfile:
debugOut( "processing startup line '%s'" % cmdline )
if not cmdline:
continue
if "|" in cmdline:
print "ERROR: '|' in startup file is not allowed. Ignoring line"
continue
self.commandQ.put( cmdline.strip() )
def main( self ):
"""The main command loop"""
while not leave_mainloop:
try:
if self.commandQ.empty():
sys.stdout = self.myout.delegate
cmdline = raw_input( "BB>> " )
sys.stdout = self.myout
else:
cmdline = self.commandQ.get()
if cmdline:
allCommands = cmdline.split( ';' )
for command in allCommands:
pipecmd = None
#
# special case for expert mode
if command == 'python':
sys.stdout = self.myout.delegate
self.processCommand( command, "" )
sys.stdout = self.myout
else:
self.myout.startCommand( command )
if '|' in command: # disable output
command, pipecmd = command.split( '|' )
delegate = self.myout.delegate
self.myout.delegate = None
tokens = shlex.split( command, True )
self.processCommand( tokens[0], tokens[1:] or "" )
self.myout.endCommand()
if pipecmd is not None: # restore output
self.myout.delegate = delegate
pipe = popen2.Popen4( pipecmd )
pipe.tochild.write( "\n".join( self.myout.lastBuffer() ) )
pipe.tochild.close()
sys.stdout.write( pipe.fromchild.read() )
#
except EOFError:
print
return
except KeyboardInterrupt:
print
##########################################################################
# Start function - called from the BitBake command line utility
##########################################################################
def start( aCooker ):
global cooker
cooker = aCooker
bbshell = BitBakeShell()
bbshell.processStartupFile()
bbshell.main()
bbshell.cleanup()
if __name__ == "__main__":
print "SHELL: Sorry, this program should only be called by BitBake."

View File

@@ -1,595 +0,0 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'TaskData' implementation
Task data collection and handling
"""
# Copyright (C) 2006 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import bb
class TaskData:
"""
BitBake Task Data implementation
"""
def __init__(self, abort = True, tryaltconfigs = False):
self.build_names_index = []
self.run_names_index = []
self.fn_index = []
self.build_targets = {}
self.run_targets = {}
self.external_targets = []
self.tasks_fnid = []
self.tasks_name = []
self.tasks_tdepends = []
self.tasks_idepends = []
# Cache to speed up task ID lookups
self.tasks_lookup = {}
self.depids = {}
self.rdepids = {}
self.consider_msgs_cache = []
self.failed_deps = []
self.failed_rdeps = []
self.failed_fnids = []
self.abort = abort
self.tryaltconfigs = tryaltconfigs
def getbuild_id(self, name):
"""
Return an ID number for the build target name.
If it doesn't exist, create one.
"""
if not name in self.build_names_index:
self.build_names_index.append(name)
return len(self.build_names_index) - 1
return self.build_names_index.index(name)
def getrun_id(self, name):
"""
Return an ID number for the run target name.
If it doesn't exist, create one.
"""
if not name in self.run_names_index:
self.run_names_index.append(name)
return len(self.run_names_index) - 1
return self.run_names_index.index(name)
def getfn_id(self, name):
"""
Return an ID number for the filename.
If it doesn't exist, create one.
"""
if not name in self.fn_index:
self.fn_index.append(name)
return len(self.fn_index) - 1
return self.fn_index.index(name)
def gettask_ids(self, fnid):
"""
Return an array of the ID numbers matching a given fnid.
"""
ids = []
if fnid in self.tasks_lookup:
for task in self.tasks_lookup[fnid]:
ids.append(self.tasks_lookup[fnid][task])
return ids
def gettask_id(self, fn, task, create = True):
"""
Return an ID number for the task matching fn and task.
If it doesn't exist, create one by default.
Optionally return None instead.
"""
fnid = self.getfn_id(fn)
if fnid in self.tasks_lookup:
if task in self.tasks_lookup[fnid]:
return self.tasks_lookup[fnid][task]
if not create:
return None
self.tasks_name.append(task)
self.tasks_fnid.append(fnid)
self.tasks_tdepends.append([])
self.tasks_idepends.append([])
listid = len(self.tasks_name) - 1
if fnid not in self.tasks_lookup:
self.tasks_lookup[fnid] = {}
self.tasks_lookup[fnid][task] = listid
return listid
def add_tasks(self, fn, dataCache):
"""
Add tasks for a given fn to the database
"""
task_deps = dataCache.task_deps[fn]
fnid = self.getfn_id(fn)
if fnid in self.failed_fnids:
bb.msg.fatal(bb.msg.domain.TaskData, "Trying to re-add a failed file? Something is broken...")
# Check if we've already seen this fn
if fnid in self.tasks_fnid:
return
for task in task_deps['tasks']:
# Work out task dependencies
parentids = []
for dep in task_deps['parents'][task]:
parentid = self.gettask_id(fn, dep)
parentids.append(parentid)
taskid = self.gettask_id(fn, task)
self.tasks_tdepends[taskid].extend(parentids)
# Touch all intertask dependencies
if 'depends' in task_deps and task in task_deps['depends']:
ids = []
for dep in task_deps['depends'][task].split():
if dep:
ids.append(((self.getbuild_id(dep.split(":")[0])), dep.split(":")[1]))
self.tasks_idepends[taskid].extend(ids)
# Work out build dependencies
if not fnid in self.depids:
dependids = {}
for depend in dataCache.deps[fn]:
bb.msg.debug(2, bb.msg.domain.TaskData, "Added dependency %s for %s" % (depend, fn))
dependids[self.getbuild_id(depend)] = None
self.depids[fnid] = dependids.keys()
# Work out runtime dependencies
if not fnid in self.rdepids:
rdependids = {}
rdepends = dataCache.rundeps[fn]
rrecs = dataCache.runrecs[fn]
for package in rdepends:
for rdepend in bb.utils.explode_deps(rdepends[package]):
bb.msg.debug(2, bb.msg.domain.TaskData, "Added runtime dependency %s for %s" % (rdepend, fn))
rdependids[self.getrun_id(rdepend)] = None
for package in rrecs:
for rdepend in bb.utils.explode_deps(rrecs[package]):
bb.msg.debug(2, bb.msg.domain.TaskData, "Added runtime recommendation %s for %s" % (rdepend, fn))
rdependids[self.getrun_id(rdepend)] = None
self.rdepids[fnid] = rdependids.keys()
for dep in self.depids[fnid]:
if dep in self.failed_deps:
self.fail_fnid(fnid)
return
for dep in self.rdepids[fnid]:
if dep in self.failed_rdeps:
self.fail_fnid(fnid)
return
def have_build_target(self, target):
"""
Have we a build target matching this name?
"""
targetid = self.getbuild_id(target)
if targetid in self.build_targets:
return True
return False
def have_runtime_target(self, target):
"""
Have we a runtime target matching this name?
"""
targetid = self.getrun_id(target)
if targetid in self.run_targets:
return True
return False
def add_build_target(self, fn, item):
"""
Add a build target.
If already present, append the provider fn to the list
"""
targetid = self.getbuild_id(item)
fnid = self.getfn_id(fn)
if targetid in self.build_targets:
if fnid in self.build_targets[targetid]:
return
self.build_targets[targetid].append(fnid)
return
self.build_targets[targetid] = [fnid]
def add_runtime_target(self, fn, item):
"""
Add a runtime target.
If already present, append the provider fn to the list
"""
targetid = self.getrun_id(item)
fnid = self.getfn_id(fn)
if targetid in self.run_targets:
if fnid in self.run_targets[targetid]:
return
self.run_targets[targetid].append(fnid)
return
self.run_targets[targetid] = [fnid]
def mark_external_target(self, item):
"""
Mark a build target as being externally requested
"""
targetid = self.getbuild_id(item)
if targetid not in self.external_targets:
self.external_targets.append(targetid)
def get_unresolved_build_targets(self, dataCache):
"""
Return a list of build targets who's providers
are unknown.
"""
unresolved = []
for target in self.build_names_index:
if target in dataCache.ignored_dependencies:
continue
if self.build_names_index.index(target) in self.failed_deps:
continue
if not self.have_build_target(target):
unresolved.append(target)
return unresolved
def get_unresolved_run_targets(self, dataCache):
"""
Return a list of runtime targets who's providers
are unknown.
"""
unresolved = []
for target in self.run_names_index:
if target in dataCache.ignored_dependencies:
continue
if self.run_names_index.index(target) in self.failed_rdeps:
continue
if not self.have_runtime_target(target):
unresolved.append(target)
return unresolved
def get_provider(self, item):
"""
Return a list of providers of item
"""
targetid = self.getbuild_id(item)
return self.build_targets[targetid]
def get_dependees(self, itemid):
"""
Return a list of targets which depend on item
"""
dependees = []
for fnid in self.depids:
if itemid in self.depids[fnid]:
dependees.append(fnid)
return dependees
def get_dependees_str(self, item):
"""
Return a list of targets which depend on item as a user readable string
"""
itemid = self.getbuild_id(item)
dependees = []
for fnid in self.depids:
if itemid in self.depids[fnid]:
dependees.append(self.fn_index[fnid])
return dependees
def get_rdependees(self, itemid):
"""
Return a list of targets which depend on runtime item
"""
dependees = []
for fnid in self.rdepids:
if itemid in self.rdepids[fnid]:
dependees.append(fnid)
return dependees
def get_rdependees_str(self, item):
"""
Return a list of targets which depend on runtime item as a user readable string
"""
itemid = self.getrun_id(item)
dependees = []
for fnid in self.rdepids:
if itemid in self.rdepids[fnid]:
dependees.append(self.fn_index[fnid])
return dependees
def add_provider(self, cfgData, dataCache, item):
try:
self.add_provider_internal(cfgData, dataCache, item)
except bb.providers.NoProvider:
if self.abort:
if self.get_rdependees_str(item):
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item)))
else:
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item))
raise
targetid = self.getbuild_id(item)
self.remove_buildtarget(targetid)
self.mark_external_target(item)
def add_provider_internal(self, cfgData, dataCache, item):
"""
Add the providers of item to the task data
Mark entries were specifically added externally as against dependencies
added internally during dependency resolution
"""
if item in dataCache.ignored_dependencies:
return
if not item in dataCache.providers:
if self.get_rdependees_str(item):
bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item)))
else:
bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item))
bb.event.fire(bb.event.NoProvider(item, cfgData))
raise bb.providers.NoProvider(item)
if self.have_build_target(item):
return
all_p = dataCache.providers[item]
eligible, foundUnique = bb.providers.filterProviders(all_p, item, cfgData, dataCache)
eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids]
if not eligible:
bb.msg.note(2, bb.msg.domain.Provider, "No buildable provider PROVIDES '%s' but '%s' DEPENDS on or otherwise requires it. Enable debugging and see earlier logs to find unbuildable providers." % (item, self.get_dependees_str(item)))
bb.event.fire(bb.event.NoProvider(item, cfgData))
raise bb.providers.NoProvider(item)
if len(eligible) > 1 and foundUnique == False:
if item not in self.consider_msgs_cache:
providers_list = []
for fn in eligible:
providers_list.append(dataCache.pkg_fn[fn])
bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list)))
bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item)
bb.event.fire(bb.event.MultipleProviders(item, providers_list, cfgData))
self.consider_msgs_cache.append(item)
for fn in eligible:
fnid = self.getfn_id(fn)
if fnid in self.failed_fnids:
continue
bb.msg.debug(2, bb.msg.domain.Provider, "adding %s to satisfy %s" % (fn, item))
self.add_build_target(fn, item)
self.add_tasks(fn, dataCache)
#item = dataCache.pkg_fn[fn]
def add_rprovider(self, cfgData, dataCache, item):
"""
Add the runtime providers of item to the task data
(takes item names from RDEPENDS/PACKAGES namespace)
"""
if item in dataCache.ignored_dependencies:
return
if self.have_runtime_target(item):
return
all_p = bb.providers.getRuntimeProviders(dataCache, item)
if not all_p:
bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables" % (self.get_rdependees_str(item), item))
bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True))
raise bb.providers.NoRProvider(item)
eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache)
eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids]
if not eligible:
bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables of any buildable targets.\nEnable debugging and see earlier logs to find unbuildable targets." % (self.get_rdependees_str(item), item))
bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True))
raise bb.providers.NoRProvider(item)
if len(eligible) > 1 and numberPreferred == 0:
if item not in self.consider_msgs_cache:
providers_list = []
for fn in eligible:
providers_list.append(dataCache.pkg_fn[fn])
bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list)))
bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item)
bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True))
self.consider_msgs_cache.append(item)
if numberPreferred > 1:
if item not in self.consider_msgs_cache:
providers_list = []
for fn in eligible:
providers_list.append(dataCache.pkg_fn[fn])
bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (top %s entries preferred) (%s);" % (item, numberPreferred, ", ".join(providers_list)))
bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item)
bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True))
self.consider_msgs_cache.append(item)
# run through the list until we find one that we can build
for fn in eligible:
fnid = self.getfn_id(fn)
if fnid in self.failed_fnids:
continue
bb.msg.debug(2, bb.msg.domain.Provider, "adding '%s' to satisfy runtime '%s'" % (fn, item))
self.add_runtime_target(fn, item)
self.add_tasks(fn, dataCache)
def fail_fnid(self, fnid, missing_list = []):
"""
Mark a file as failed (unbuildable)
Remove any references from build and runtime provider lists
missing_list, A list of missing requirements for this target
"""
if fnid in self.failed_fnids:
return
bb.msg.debug(1, bb.msg.domain.Provider, "File '%s' is unbuildable, removing..." % self.fn_index[fnid])
self.failed_fnids.append(fnid)
for target in self.build_targets:
if fnid in self.build_targets[target]:
self.build_targets[target].remove(fnid)
if len(self.build_targets[target]) == 0:
self.remove_buildtarget(target, missing_list)
for target in self.run_targets:
if fnid in self.run_targets[target]:
self.run_targets[target].remove(fnid)
if len(self.run_targets[target]) == 0:
self.remove_runtarget(target, missing_list)
def remove_buildtarget(self, targetid, missing_list = []):
"""
Mark a build target as failed (unbuildable)
Trigger removal of any files that have this as a dependency
"""
if not missing_list:
missing_list = [self.build_names_index[targetid]]
else:
missing_list = [self.build_names_index[targetid]] + missing_list
bb.msg.note(2, bb.msg.domain.Provider, "Target '%s' is unbuildable, removing...\nMissing or unbuildable dependency chain was: %s" % (self.build_names_index[targetid], missing_list))
self.failed_deps.append(targetid)
dependees = self.get_dependees(targetid)
for fnid in dependees:
self.fail_fnid(fnid, missing_list)
for taskid in range(len(self.tasks_idepends)):
idepends = self.tasks_idepends[taskid]
for (idependid, idependtask) in idepends:
if idependid == targetid:
self.fail_fnid(self.tasks_fnid[taskid], missing_list)
if self.abort and targetid in self.external_targets:
bb.msg.error(bb.msg.domain.Provider, "Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s" % (self.build_names_index[targetid], missing_list))
raise bb.providers.NoProvider
def remove_runtarget(self, targetid, missing_list = []):
"""
Mark a run target as failed (unbuildable)
Trigger removal of any files that have this as a dependency
"""
if not missing_list:
missing_list = [self.run_names_index[targetid]]
else:
missing_list = [self.run_names_index[targetid]] + missing_list
bb.msg.note(1, bb.msg.domain.Provider, "Runtime target '%s' is unbuildable, removing...\nMissing or unbuildable dependency chain was: %s" % (self.run_names_index[targetid], missing_list))
self.failed_rdeps.append(targetid)
dependees = self.get_rdependees(targetid)
for fnid in dependees:
self.fail_fnid(fnid, missing_list)
def add_unresolved(self, cfgData, dataCache):
"""
Resolve all unresolved build and runtime targets
"""
bb.msg.note(1, bb.msg.domain.TaskData, "Resolving any missing task queue dependencies")
while 1:
added = 0
for target in self.get_unresolved_build_targets(dataCache):
try:
self.add_provider_internal(cfgData, dataCache, target)
added = added + 1
except bb.providers.NoProvider:
targetid = self.getbuild_id(target)
if self.abort and targetid in self.external_targets:
if self.get_rdependees_str(target):
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (target, self.get_dependees_str(target)))
else:
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (target))
raise
self.remove_buildtarget(targetid)
for target in self.get_unresolved_run_targets(dataCache):
try:
self.add_rprovider(cfgData, dataCache, target)
added = added + 1
except bb.providers.NoRProvider:
self.remove_runtarget(self.getrun_id(target))
bb.msg.debug(1, bb.msg.domain.TaskData, "Resolved " + str(added) + " extra dependecies")
if added == 0:
break
# self.dump_data()
def dump_data(self):
"""
Dump some debug information on the internal data structures
"""
bb.msg.debug(3, bb.msg.domain.TaskData, "build_names:")
bb.msg.debug(3, bb.msg.domain.TaskData, ", ".join(self.build_names_index))
bb.msg.debug(3, bb.msg.domain.TaskData, "run_names:")
bb.msg.debug(3, bb.msg.domain.TaskData, ", ".join(self.run_names_index))
bb.msg.debug(3, bb.msg.domain.TaskData, "build_targets:")
for buildid in range(len(self.build_names_index)):
target = self.build_names_index[buildid]
targets = "None"
if buildid in self.build_targets:
targets = self.build_targets[buildid]
bb.msg.debug(3, bb.msg.domain.TaskData, " (%s)%s: %s" % (buildid, target, targets))
bb.msg.debug(3, bb.msg.domain.TaskData, "run_targets:")
for runid in range(len(self.run_names_index)):
target = self.run_names_index[runid]
targets = "None"
if runid in self.run_targets:
targets = self.run_targets[runid]
bb.msg.debug(3, bb.msg.domain.TaskData, " (%s)%s: %s" % (runid, target, targets))
bb.msg.debug(3, bb.msg.domain.TaskData, "tasks:")
for task in range(len(self.tasks_name)):
bb.msg.debug(3, bb.msg.domain.TaskData, " (%s)%s - %s: %s" % (
task,
self.fn_index[self.tasks_fnid[task]],
self.tasks_name[task],
self.tasks_tdepends[task]))
bb.msg.debug(3, bb.msg.domain.TaskData, "dependency ids (per fn):")
for fnid in self.depids:
bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.depids[fnid]))
bb.msg.debug(3, bb.msg.domain.TaskData, "runtime dependency ids (per fn):")
for fnid in self.rdepids:
bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.rdepids[fnid]))

View File

@@ -1,18 +0,0 @@
#
# BitBake UI Implementation
#
# Copyright (C) 2006-2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

View File

@@ -1,18 +0,0 @@
#
# BitBake UI Implementation
#
# Copyright (C) 2006-2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

View File

@@ -1,162 +0,0 @@
#
# BitBake (No)TTY UI Implementation
#
# Handling output to TTYs or files (no TTY)
#
# Copyright (C) 2006-2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import itertools
import xmlrpclib
parsespin = itertools.cycle( r'|/-\\' )
def init(server, eventHandler):
# Get values of variables which control our output
includelogs = server.runCommand(["getVariable", "BBINCLUDELOGS"])
loglines = server.runCommand(["getVariable", "BBINCLUDELOGS_LINES"])
try:
cmdline = server.runCommand(["getCmdLineAction"])
#print cmdline
if not cmdline:
return 1
ret = server.runCommand(cmdline)
if ret != True:
print "Couldn't get default commandline! %s" % ret
return 1
except xmlrpclib.Fault, x:
print "XMLRPC Fault getting commandline:\n %s" % x
return 1
shutdown = 0
return_value = 0
while True:
try:
event = eventHandler.waitEvent(0.25)
if event is None:
continue
#print event
if event[0].startswith('bb.msg.MsgPlain'):
print event[1]['_message']
continue
if event[0].startswith('bb.msg.MsgDebug'):
print 'DEBUG: ' + event[1]['_message']
continue
if event[0].startswith('bb.msg.MsgNote'):
print 'NOTE: ' + event[1]['_message']
continue
if event[0].startswith('bb.msg.MsgWarn'):
print 'WARNING: ' + event[1]['_message']
continue
if event[0].startswith('bb.msg.MsgError'):
return_value = 1
print 'ERROR: ' + event[1]['_message']
continue
if event[0].startswith('bb.msg.MsgFatal'):
return_value = 1
print 'FATAL: ' + event[1]['_message']
break
if event[0].startswith('bb.build.TaskFailed'):
return_value = 1
logfile = event[1]['logfile']
if logfile:
print "ERROR: Logfile of failure stored in %s." % logfile
if 1 or includelogs:
print "Log data follows:"
f = open(logfile, "r")
lines = []
while True:
l = f.readline()
if l == '':
break
l = l.rstrip()
if loglines:
lines.append(' | %s' % l)
if len(lines) > int(loglines):
lines.pop(0)
else:
print '| %s' % l
f.close()
if lines:
for line in lines:
print line
if event[0].startswith('bb.build.Task'):
print "NOTE: %s" % event[1]['_message']
continue
if event[0].startswith('bb.event.ParseProgress'):
x = event[1]['sofar']
y = event[1]['total']
if os.isatty(sys.stdout.fileno()):
sys.stdout.write("\rNOTE: Handling BitBake files: %s (%04d/%04d) [%2d %%]" % ( parsespin.next(), x, y, x*100/y ) )
sys.stdout.flush()
else:
if x == 1:
sys.stdout.write("Parsing .bb files, please wait...")
sys.stdout.flush()
if x == y:
sys.stdout.write("done.")
sys.stdout.flush()
if x == y:
print("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors."
% ( event[1]['cached'], event[1]['parsed'], event[1]['skipped'], event[1]['masked'], event[1]['errors']))
continue
if event[0] == 'bb.command.CookerCommandCompleted':
break
if event[0] == 'bb.command.CookerCommandSetExitCode':
return_value = event[1]['exitcode']
continue
if event[0] == 'bb.command.CookerCommandFailed':
return_value = 1
print "Command execution failed: %s" % event[1]['error']
break
if event[0] == 'bb.cooker.CookerExit':
break
# ignore
if event[0].startswith('bb.event.BuildStarted'):
continue
if event[0].startswith('bb.event.BuildCompleted'):
continue
if event[0].startswith('bb.event.MultipleProviders'):
continue
if event[0].startswith('bb.runqueue.runQueue'):
continue
if event[0].startswith('bb.event.StampUpdate'):
continue
if event[0].startswith('bb.event.ConfigParsed'):
continue
if event[0].startswith('bb.event.RecipeParsed'):
continue
print "Unknown Event: %s" % event
except KeyboardInterrupt:
if shutdown == 2:
print "\nThird Keyboard Interrupt, exit.\n"
break
if shutdown == 1:
print "\nSecond Keyboard Interrupt, stopping...\n"
server.runCommand(["stateStop"])
if shutdown == 0:
print "\nKeyboard Interrupt, closing down...\n"
server.runCommand(["stateShutdown"])
shutdown = shutdown + 1
pass
return return_value

View File

@@ -1,49 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2006 - 2007 Michael 'Mickey' Lauer
# Copyright (C) 2006 - 2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
class BBUIHelper:
def __init__(self):
self.needUpdate = False
self.running_tasks = {}
self.failed_tasks = {}
def eventHandler(self, event):
if event[0].startswith('bb.build.TaskStarted'):
self.running_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])] = ""
self.needUpdate = True
if event[0].startswith('bb.build.TaskSucceeded'):
del self.running_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])]
self.needUpdate = True
if event[0].startswith('bb.build.TaskFailed'):
del self.running_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])]
self.failed_tasks["%s %s\n" % (event[1]['_package'], event[1]['_task'])] = ""
self.needUpdate = True
# Add runqueue event handling
#if event[0].startswith('bb.runqueue.runQueueTaskCompleted'):
# a = 1
#if event[0].startswith('bb.runqueue.runQueueTaskStarted'):
# a = 1
#if event[0].startswith('bb.runqueue.runQueueTaskFailed'):
# a = 1
#if event[0].startswith('bb.runqueue.runQueueExitWait'):
# a = 1
def getTasks(self):
return (self.running_tasks, self.failed_tasks)

View File

@@ -1,417 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake Utility Functions
"""
# Copyright (C) 2004 Michael Lauer
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
digits = "0123456789"
ascii_letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
import re, fcntl, os
def explode_version(s):
r = []
alpha_regexp = re.compile('^([a-zA-Z]+)(.*)$')
numeric_regexp = re.compile('^(\d+)(.*)$')
while (s != ''):
if s[0] in digits:
m = numeric_regexp.match(s)
r.append(int(m.group(1)))
s = m.group(2)
continue
if s[0] in ascii_letters:
m = alpha_regexp.match(s)
r.append(m.group(1))
s = m.group(2)
continue
s = s[1:]
return r
def vercmp_part(a, b):
va = explode_version(a)
vb = explode_version(b)
while True:
if va == []:
ca = None
else:
ca = va.pop(0)
if vb == []:
cb = None
else:
cb = vb.pop(0)
if ca == None and cb == None:
return 0
if ca > cb:
return 1
if ca < cb:
return -1
def vercmp(ta, tb):
(ea, va, ra) = ta
(eb, vb, rb) = tb
r = int(ea)-int(eb)
if (r == 0):
r = vercmp_part(va, vb)
if (r == 0):
r = vercmp_part(ra, rb)
return r
def explode_deps(s):
"""
Take an RDEPENDS style string of format:
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
and return a list of dependencies.
Version information is ignored.
"""
r = []
l = s.split()
flag = False
for i in l:
if i[0] == '(':
flag = True
#j = []
if not flag:
r.append(i)
#else:
# j.append(i)
if flag and i.endswith(')'):
flag = False
# Ignore version
#r[-1] += ' ' + ' '.join(j)
return r
def explode_dep_versions(s):
"""
Take an RDEPENDS style string of format:
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
and return a dictonary of dependencies and versions.
"""
r = {}
l = s.split()
lastdep = None
lastver = ""
inversion = False
for i in l:
if i[0] == '(':
inversion = True
lastver = i[1:] or ""
#j = []
elif inversion and i.endswith(')'):
inversion = False
lastver = lastver + " " + (i[:-1] or "")
r[lastdep] = lastver
elif not inversion:
r[i] = None
lastdep = i
lastver = ""
elif inversion:
lastver = lastver + " " + i
return r
def _print_trace(body, line):
"""
Print the Environment of a Text Body
"""
import bb
# print the environment of the method
bb.msg.error(bb.msg.domain.Util, "Printing the environment of the function")
min_line = max(1,line-4)
max_line = min(line+4,len(body)-1)
for i in range(min_line,max_line+1):
bb.msg.error(bb.msg.domain.Util, "\t%.4d:%s" % (i, body[i-1]) )
def better_compile(text, file, realfile):
"""
A better compile method. This method
will print the offending lines.
"""
try:
return compile(text, file, "exec")
except Exception, e:
import bb,sys
# split the text into lines again
body = text.split('\n')
bb.msg.error(bb.msg.domain.Util, "Error in compiling python function in: ", realfile)
bb.msg.error(bb.msg.domain.Util, "The lines resulting into this error were:")
bb.msg.error(bb.msg.domain.Util, "\t%d:%s:'%s'" % (e.lineno, e.__class__.__name__, body[e.lineno-1]))
_print_trace(body, e.lineno)
# exit now
sys.exit(1)
def better_exec(code, context, text, realfile):
"""
Similiar to better_compile, better_exec will
print the lines that are responsible for the
error.
"""
import bb,sys
try:
exec code in context
except:
(t,value,tb) = sys.exc_info()
if t in [bb.parse.SkipPackage, bb.build.FuncFailed]:
raise
# print the Header of the Error Message
bb.msg.error(bb.msg.domain.Util, "Error in executing python function in: %s" % realfile)
bb.msg.error(bb.msg.domain.Util, "Exception:%s Message:%s" % (t,value) )
# let us find the line number now
while tb.tb_next:
tb = tb.tb_next
import traceback
line = traceback.tb_lineno(tb)
_print_trace( text.split('\n'), line )
raise
def Enum(*names):
"""
A simple class to give Enum support
"""
assert names, "Empty enums are not supported"
class EnumClass(object):
__slots__ = names
def __iter__(self): return iter(constants)
def __len__(self): return len(constants)
def __getitem__(self, i): return constants[i]
def __repr__(self): return 'Enum' + str(names)
def __str__(self): return 'enum ' + str(constants)
class EnumValue(object):
__slots__ = ('__value')
def __init__(self, value): self.__value = value
Value = property(lambda self: self.__value)
EnumType = property(lambda self: EnumType)
def __hash__(self): return hash(self.__value)
def __cmp__(self, other):
# C fans might want to remove the following assertion
# to make all enums comparable by ordinal value {;))
assert self.EnumType is other.EnumType, "Only values from the same enum are comparable"
return cmp(self.__value, other.__value)
def __invert__(self): return constants[maximum - self.__value]
def __nonzero__(self): return bool(self.__value)
def __repr__(self): return str(names[self.__value])
maximum = len(names) - 1
constants = [None] * len(names)
for i, each in enumerate(names):
val = EnumValue(i)
setattr(EnumClass, each, val)
constants[i] = val
constants = tuple(constants)
EnumType = EnumClass()
return EnumType
def lockfile(name):
"""
Use the file fn as a lock file, return when the lock has been acquired.
Returns a variable to pass to unlockfile().
"""
path = os.path.dirname(name)
if not os.path.isdir(path):
import bb, sys
bb.msg.error(bb.msg.domain.Util, "Error, lockfile path does not exist!: %s" % path)
sys.exit(1)
while True:
# If we leave the lockfiles lying around there is no problem
# but we should clean up after ourselves. This gives potential
# for races though. To work around this, when we acquire the lock
# we check the file we locked was still the lock file on disk.
# by comparing inode numbers. If they don't match or the lockfile
# no longer exists, we start again.
# This implementation is unfair since the last person to request the
# lock is the most likely to win it.
try:
lf = open(name, "a+")
fcntl.flock(lf.fileno(), fcntl.LOCK_EX)
statinfo = os.fstat(lf.fileno())
if os.path.exists(lf.name):
statinfo2 = os.stat(lf.name)
if statinfo.st_ino == statinfo2.st_ino:
return lf
# File no longer exists or changed, retry
lf.close
except Exception, e:
continue
def unlockfile(lf):
"""
Unlock a file locked using lockfile()
"""
os.unlink(lf.name)
fcntl.flock(lf.fileno(), fcntl.LOCK_UN)
lf.close
def md5_file(filename):
"""
Return the hex string representation of the MD5 checksum of filename.
"""
try:
import hashlib
m = hashlib.md5()
except ImportError:
import md5
m = md5.new()
for line in open(filename):
m.update(line)
return m.hexdigest()
def sha256_file(filename):
"""
Return the hex string representation of the 256-bit SHA checksum of
filename. On Python 2.4 this will return None, so callers will need to
handle that by either skipping SHA checks, or running a standalone sha256sum
binary.
"""
try:
import hashlib
except ImportError:
return None
s = hashlib.sha256()
for line in open(filename):
s.update(line)
return s.hexdigest()
def preserved_envvars_list():
return [
'BBPATH',
'BB_PRESERVE_ENV',
'BB_ENV_WHITELIST',
'BB_ENV_EXTRAWHITE',
'COLORTERM',
'DBUS_SESSION_BUS_ADDRESS',
'DESKTOP_SESSION',
'DESKTOP_STARTUP_ID',
'DISPLAY',
'GNOME_KEYRING_PID',
'GNOME_KEYRING_SOCKET',
'GPG_AGENT_INFO',
'GTK_RC_FILES',
'HOME',
'LANG',
'LOGNAME',
'PATH',
'PWD',
'SESSION_MANAGER',
'SHELL',
'SSH_AUTH_SOCK',
'TERM',
'USER',
'USERNAME',
'_',
'XAUTHORITY',
'XDG_DATA_DIRS',
'XDG_SESSION_COOKIE',
]
def filter_environment(good_vars):
"""
Create a pristine environment for bitbake. This will remove variables that
are not known and may influence the build in a negative way.
"""
import bb
removed_vars = []
for key in os.environ.keys():
if key in good_vars:
continue
removed_vars.append(key)
os.unsetenv(key)
del os.environ[key]
if len(removed_vars):
bb.debug(1, "Removed the following variables from the environment:", ",".join(removed_vars))
return removed_vars
def clean_environment():
"""
Clean up any spurious environment variables. This will remove any
variables the user hasn't chose to preserve.
"""
if 'BB_PRESERVE_ENV' not in os.environ:
if 'BB_ENV_WHITELIST' in os.environ:
good_vars = os.environ['BB_ENV_WHITELIST'].split()
else:
good_vars = preserved_envvars_list()
if 'BB_ENV_EXTRAWHITE' in os.environ:
good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split())
filter_environment(good_vars)
def empty_environment():
"""
Remove all variable from the environment.
"""
for s in os.environ.keys():
os.unsetenv(s)
del os.environ[s]
def build_environment(d):
"""
Build an environment from all exported variables.
"""
import bb
for var in bb.data.keys(d):
export = bb.data.getVarFlag(var, "export", d)
if export:
os.environ[var] = bb.data.getVar(var, d, True)
def prunedir(topdir):
# Delete everything reachable from the directory named in 'topdir'.
# CAUTION: This is dangerous!
for root, dirs, files in os.walk(topdir, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
if os.path.islink(os.path.join(root, name)):
os.remove(os.path.join(root, name))
else:
os.rmdir(os.path.join(root, name))
os.rmdir(topdir)
#
# Could also use return re.compile("(%s)" % "|".join(map(re.escape, suffixes))).sub(lambda mo: "", var)
# but thats possibly insane and suffixes is probably going to be small
#
def prune_suffix(var, suffixes, d):
# See if var ends with any of the suffixes listed and
# remove it if found
for suffix in suffixes:
if var.endswith(suffix):
return var.replace(suffix, "")
return var

View File

@@ -1,145 +0,0 @@
#
# BitBake XMLRPC Server
#
# Copyright (C) 2006 - 2007 Michael 'Mickey' Lauer
# Copyright (C) 2006 - 2008 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
This module implements an xmlrpc server for BitBake.
Use this by deriving a class from BitBakeXMLRPCServer and then adding
methods which you want to "export" via XMLRPC. If the methods have the
prefix xmlrpc_, then registering those function will happen automatically,
if not, you need to call register_function.
Use register_idle_function() to add a function which the xmlrpc server
calls from within server_forever when no requests are pending. Make sure
that those functions are non-blocking or else you will introduce latency
in the server's main loop.
"""
import bb
import xmlrpclib
DEBUG = False
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
import inspect, select
class BitBakeServerCommands():
def __init__(self, server, cooker):
self.cooker = cooker
self.server = server
def registerEventHandler(self, host, port):
"""
Register a remote UI Event Handler
"""
s = xmlrpclib.Server("http://%s:%d" % (host, port), allow_none=True)
return bb.event.register_UIHhandler(s)
def unregisterEventHandler(self, handlerNum):
"""
Unregister a remote UI Event Handler
"""
return bb.event.unregister_UIHhandler(handlerNum)
def runCommand(self, command):
"""
Run a cooker command on the server
"""
return self.cooker.command.runCommand(command)
def terminateServer(self):
"""
Trigger the server to quit
"""
self.server.quit = True
print "Server (cooker) exitting"
return
def ping(self):
"""
Dummy method which can be used to check the server is still alive
"""
return True
class BitBakeXMLRPCServer(SimpleXMLRPCServer):
# remove this when you're done with debugging
# allow_reuse_address = True
def __init__(self, cooker, interface = ("localhost", 0)):
"""
Constructor
"""
SimpleXMLRPCServer.__init__(self, interface,
requestHandler=SimpleXMLRPCRequestHandler,
logRequests=False, allow_none=True)
self._idlefuns = {}
self.host, self.port = self.socket.getsockname()
#self.register_introspection_functions()
commands = BitBakeServerCommands(self, cooker)
self.autoregister_all_functions(commands, "")
def autoregister_all_functions(self, context, prefix):
"""
Convenience method for registering all functions in the scope
of this class that start with a common prefix
"""
methodlist = inspect.getmembers(context, inspect.ismethod)
for name, method in methodlist:
if name.startswith(prefix):
self.register_function(method, name[len(prefix):])
def register_idle_function(self, function, data):
"""Register a function to be called while the server is idle"""
assert callable(function)
self._idlefuns[function] = data
def serve_forever(self):
"""
Serve Requests. Overloaded to honor a quit command
"""
self.quit = False
while not self.quit:
#print "Idle queue length %s" % len(self._idlefuns)
if len(self._idlefuns) == 0:
self.timeout = None
else:
self.timeout = 0
self.handle_request()
#print "Idle timeout, running idle functions"
for function, data in self._idlefuns.items():
try:
retval = function(self, data, False)
if not retval:
del self._idlefuns[function]
except SystemExit:
raise
except:
import traceback
traceback.print_exc()
pass
# Tell idle functions we're exiting
for function, data in self._idlefuns.items():
try:
retval = function(self, data, True)
except:
pass
self.server_close()
return

View File

@@ -2,7 +2,7 @@ Tim Ansell <mithro@mithis.net>
Phil Blundell <pb@handhelds.org>
Seb Frankengul <seb@frankengul.org>
Holger Freyther <zecke@handhelds.org>
Marcin Juszkiewicz <marcin@haerwu.biz>
Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Chris Larson <kergoth@handhelds.org>
Ulrich Luckas <luckas@musoft.de>
Mickey Lauer <mickey@Vanille.de>

View File

@@ -1,8 +1,99 @@
Changes in BitBake 1.8.x:
- Add bb.utils.prune_suffix function
Changes in BitBake 1.8.12:
- Fix -f (force) in conjunction with -b
Changes in Bitbake 1.9.x:
- Add PE (Package Epoch) support from Philipp Zabel (pH5)
- Treat python functions the same as shell functions for logging
- Use TMPDIR/anonfunc as a __anonfunc temp directory (T)
- Catch truncated cache file errors
- Allow operations other than assignment on flag variables
- Add code to handle inter-task dependencies
- Fix cache errors when generation dotGraphs
- Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
- Fix bug when target was in ASSUME_PROVIDED (#2236)
- Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
- Fix invalid regexp in BBMASK error handling (missing import) (#1124)
- Promote certain warnings from debug to note 2 level
- Update manual
- Correctly redirect stdin when forking
- If parsing errors are found, exit, too many users miss the errors
- Remove supriours PREFERRED_PROVIDER warnings
- svn fetcher: Add _buildsvncommand function
- Improve certain error messages
- Rewrite svn fetcher to make adding extra operations easier
as part of future SRCDATE="now" fixes
(requires new FETCHCMD_svn definition in bitbake.conf)
- Change SVNDIR layout to be more unique (fixes #2644 and #2624)
- Add ConfigParsed Event after configuration parsing is complete
- Add SRCREV support for svn fetcher
- data.emit_var() - only call getVar if we need the variable
- Stop generating the A variable (seems to be legacy code)
- Make sure intertask depends get processed correcting in recursive depends
- Add pn-PN to overrides when evaluating PREFERRED_VERSION
- Improve the progress indicator by skipping tasks that have
already run before starting the build rather than during it
- Add profiling option (-P)
- Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
- Add SRCREV_FORMAT support
- Fix local fetcher's localpath return values
- Apply OVERRIDES before performing immediate expansions
- Allow the -b -e option combination to take regular expressions
- Fix handling of variables with expansion in the name using _append/_prepend
e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
- Add plain message function to bb.msg
- Sort the list of providers before processing so dependency problems are
reproducible rather than effectively random
- Fix/improve bitbake -s output
- Add locking for fetchers so only one tries to fetch a given file at a given time
- Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
- Expand data in addtasks
- Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
error message.
- Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
- Sort digraph output to make builds more reproducible
- Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
- runqueue.py: Fix idepends handling to avoid dependency errors
- Clear the terminal TOSTOP flag if set (and warn the user)
- Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
- Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
- Warn about malformed PREFERRED_PROVIDERS (#1072)
- Add support for BB_NICE_LEVEL option (#1627)
- Psyco is used only on x86 as there is no support for other architectures.
- Sort initial providers list by default preference (#1145, #2024)
- Improve provider sorting so prefered versions have preference over latest versions (#768)
- Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
- Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
- Handle paths in svn fetcher module parameter
- Support the syntax "export VARIABLE"
- Add bzr fetcher
- Add support for cleaning directories before a task in the form:
do_taskname[cleandirs] = "dir"
- bzr fetcher tweaks from Robert Schuster (#2913)
- Add mercurial (hg) fetcher from Robert Schuster (#2913)
- Don't add duplicates to BBPATH
- Fix preferred_version return values (providers.py)
- Fix 'depends' flag splitting
- Fix unexport handling (#3135)
- Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
- Allow multiple options for deptask flag
- Use git-fetch instead of git-pull removing any need for merges when
fetching (we don't care about the index). Fixes fetch errors.
- Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches
faster at the expense of not creating mirror tarballs.
- SRCREV handling updates, improvements and fixes from Poky
- Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
- Add support for task selfstamp and lockfiles flags
- Disable task number acceleration since it can allow the tasks to run
out of sequence
- Improve runqueue code comments
- Add task scheduler abstraction and some example schedulers
- Improve circular dependency chain debugging code and user feedback
- Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
- Add support for "-e target" (#3432)
- Fix shell showdata command (#3259)
- Fix shell data updating problems (#1880)
- Properly raise errors for invalid source URI protocols
- Change the wget fetcher failure handling to avoid lockfile problems
- Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
- Make taskdata and runqueue errors more user friendly
- Add norecurse and fullpath options to cvs fetcher
- Fix exit code for build failures in --continue mode
- Fix git branch tags fetching
- Change parseConfigurationFile so it works on real data, not a copy
@@ -27,8 +118,10 @@ Changes in BitBake 1.8.12:
how extensively stamps are looked at for validity
- When handling build target failures make sure idepends are checked and
failed where needed. Fixes --continue mode crashes.
- Fix -f (force) in conjunction with -b
- Fix problems with recrdeptask handling where some idepends weren't handled
correctly.
- Handle exit codes correctly (from pH5)
- Work around refs/HEAD issues with git over http (#3410)
- Add proxy support to the CVS fetcher (from Cyril Chemparathy)
- Improve runfetchcmd so errors are seen and various GIT variables are exported
@@ -44,9 +137,8 @@ Changes in BitBake 1.8.12:
- Add PERSISTENT_DIR to store the PersistData in a persistent
directory != the cache dir.
- Add md5 and sha256 checksum generation functions to utils.py
- Make sure Build Completed events are generated even when tasks fail
- Correctly handle '-' characters in class names (#2958)
- Make sure expandKeys has been called on the data dictonary before running tasks
- Make sure expandKeys has been called on the data dictionary before running tasks
- Correctly add a task override in the form task-TASKNAME.
- Revert the '-' character fix in class names since it breaks things
- When a regexp fails to compile for PACKAGES_DYNAMIC, print a more useful error (#4444)
@@ -63,6 +155,7 @@ Changes in BitBake 1.8.12:
used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used
to extend the internal whitelist.
- Perforce fetcher fix to use commandline options instead of being overriden by the environment
- bb.utils.prunedir can cope with symlinks to directoriees without exceptions
- use @rev when doing a svn checkout
- Add osc fetcher (from Joshua Lock in Poky)
- When SRCREV autorevisioning for a recipe is in use, don't cache the recipe
@@ -76,109 +169,15 @@ Changes in BitBake 1.8.12:
proxies to work better. (from Poky)
- Also allow user and pswd options in SRC_URIs globally (from Poky)
- Improve proxy handling when using mirrors (from Poky)
Changes in BitBake 1.8.10:
- Psyco is available only for x86 - do not use it on other architectures.
- Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
- Warn about malformed PREFERRED_PROVIDERS (#1072)
- Add support for BB_NICE_LEVEL option (#1627)
- Sort initial providers list by default preference (#1145, #2024)
- Improve provider sorting so prefered versions have preference over latest versions (#768)
- Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
- Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
- Handle paths in svn fetcher module parameter
- Support the syntax "export VARIABLE"
- Add bzr fetcher
- Add support for cleaning directories before a task in the form:
do_taskname[cleandirs] = "dir"
- bzr fetcher tweaks from Robert Schuster (#2913)
- Add mercurial (hg) fetcher from Robert Schuster (#2913)
- Fix bogus preferred_version return values
- Fix 'depends' flag splitting
- Fix unexport handling (#3135)
- Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
- Allow multiple options for deptask flag
- Use git-fetch instead of git-pull removing any need for merges when
fetching (we don't care about the index). Fixes fetch errors.
- Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches
faster at the expense of not creating mirror tarballs.
- SRCREV handling updates, improvements and fixes from Poky
- Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
- Add support for task selfstamp and lockfiles flags
- Disable task number acceleration since it can allow the tasks to run
out of sequence
- Improve runqueue code comments
- Add task scheduler abstraction and some example schedulers
- Improve circular dependency chain debugging code and user feedback
- Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
- Add support for "-e target" (#3432)
- Fix shell showdata command (#3259)
- Fix shell data updating problems (#1880)
- Properly raise errors for invalid source URI protocols
- Change the wget fetcher failure handling to avoid lockfile problems
- Add git branch support
- Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
- Make taskdata and runqueue errors more user friendly
- Add norecurse and fullpath options to cvs fetcher
- bb.utils.prunedir can cope with symlinks to directories without exceptions
Changes in Bitbake 1.8.8:
- Rewrite svn fetcher to make adding extra operations easier
as part of future SRCDATE="now" fixes
(requires new FETCHCMD_svn definition in bitbake.conf)
- Change SVNDIR layout to be more unique (fixes #2644 and #2624)
- Import persistent data store from trunk
- Sync fetcher code with that in trunk, adding SRCREV support for svn
- Add ConfigParsed Event after configuration parsing is complete
- data.emit_var() - only call getVar if we need the variable
- Stop generating the A variable (seems to be legacy code)
- Make sure intertask depends get processed correcting in recursive depends
- Add pn-PN to overrides when evaluating PREFERRED_VERSION
- Improve the progress indicator by skipping tasks that have
already run before starting the build rather than during it
- Add profiling option (-P)
- Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
- Add SRCREV_FORMAT support
- Fix local fetcher's localpath return values
- Apply OVERRIDES before performing immediate expansions
- Allow the -b -e option combination to take regular expressions
- Add plain message function to bb.msg
- Sort the list of providers before processing so dependency problems are
reproducible rather than effectively random
- Add locking for fetchers so only one tries to fetch a given file at a given time
- Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
- Fix handling of variables with expansion in the name using _append/_prepend
e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
- Expand data in addtasks
- Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
error message.
- Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
- Sort digraph output to make builds more reproducible
- Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
- runqueue.py: Fix idepends handling to avoid dependency errors
- Clear the terminal TOSTOP flag if set (and warn the user)
- Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
Changes in Bitbake 1.8.6:
- Correctly redirect stdin when forking
- If parsing errors are found, exit, too many users miss the errors
- Remove supriours PREFERRED_PROVIDER warnings
Changes in Bitbake 1.8.4:
- Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
- Fix bug when target was in ASSUME_PROVIDED (#2236)
- Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
- Fix invalid regexp in BBMASK error handling (missing import) (#1124)
- Don't run build sanity checks on incomplete builds
- Promote certain warnings from debug to note 2 level
- Update manual
Changes in Bitbake 1.8.2:
- Catch truncated cache file errors
- Add PE (Package Epoch) support from Philipp Zabel (pH5)
- Add code to handle inter-task dependencies
- Allow operations other than assignment on flag variables
- Fix cache errors when generation dotGraphs
- Add bb.utils.prune_suffix function
- Fix hg checkouts of specific revisions (from Poky)
- Fix wget fetching of urls with parameters specified (from Poky)
- Add username handling to git fetcher (from Poky)
- Set HOME environmental variable when running fetcher commands (from Poky)
- Make sure allowed variables inherited from the environment are exported again (from Poky)
- When running a stage task in bbshell, run populate_staging, not the stage task (from Poky)
- Fix + character escaping from PACKAGES_DYNAMIC (thanks Otavio Salvador)
- Addition of BBCLASSEXTEND support for allowing one recipe to provide multiple targets (from Poky)
Changes in Bitbake 1.8.0:
- Release 1.7.x as a stable series

View File

@@ -1,53 +0,0 @@
AUTHORS
COPYING
ChangeLog
MANIFEST
setup.py
bin/bitdoc
bin/bbimage
bin/bitbake
lib/bb/__init__.py
lib/bb/build.py
lib/bb/cache.py
lib/bb/cooker.py
lib/bb/COW.py
lib/bb/data.py
lib/bb/data_smart.py
lib/bb/event.py
lib/bb/fetch/__init__.py
lib/bb/fetch/bzr.py
lib/bb/fetch/cvs.py
lib/bb/fetch/git.py
lib/bb/fetch/hg.py
lib/bb/fetch/local.py
lib/bb/fetch/osc.py
lib/bb/fetch/perforce.py
lib/bb/fetch/ssh.py
lib/bb/fetch/svk.py
lib/bb/fetch/svn.py
lib/bb/fetch/wget.py
lib/bb/manifest.py
lib/bb/methodpool.py
lib/bb/msg.py
lib/bb/parse/__init__.py
lib/bb/parse/parse_py/__init__.py
lib/bb/parse/parse_py/BBHandler.py
lib/bb/parse/parse_py/ConfHandler.py
lib/bb/persist_data.py
lib/bb/providers.py
lib/bb/runqueue.py
lib/bb/shell.py
lib/bb/taskdata.py
lib/bb/utils.py
setup.py
doc/COPYING.GPL
doc/COPYING.MIT
doc/bitbake.1
doc/manual/html.css
doc/manual/Makefile
doc/manual/usermanual.xml
contrib/bbdev.sh
contrib/vim/syntax/bitbake.vim
contrib/vim/ftdetect/bitbake.vim
conf/bitbake.conf
classes/base.bbclass

View File

@@ -22,125 +22,196 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys, os, getopt, re, time, optparse
sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb
from bb import cooker
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])),
'lib'))
import optparse
import warnings
from traceback import format_exception
import bb
import bb.msg
from bb import cooker
from bb import ui
from bb import server
from bb.server import none
#from bb.server import xmlrpc
__version__ = "1.11.0"
__version__ = "1.8.13"
#============================================================================#
# BBOptions
#============================================================================#
class BBConfiguration( object ):
class BBConfiguration(object):
"""
Manages build options and configurations for one run
"""
def __init__( self, options ):
for key, val in options.__dict__.items():
setattr( self, key, val )
def __init__(self, options):
for key, val in options.__dict__.items():
setattr(self, key, val)
self.pkgs_to_build = []
def print_exception(exc, value, tb):
"""Send exception information through bb.msg"""
bb.fatal("".join(format_exception(exc, value, tb, limit=8)))
sys.excepthook = print_exception
_warnings_showwarning = warnings.showwarning
def _showwarning(message, category, filename, lineno, file=None, line=None):
"""Display python warning messages using bb.msg"""
if file is not None:
if _warnings_showwarning is not None:
_warnings_showwarning(message, category, filename, lineno, file, line)
else:
s = warnings.formatwarning(message, category, filename, lineno)
s = s.split("\n")[0]
bb.msg.warn(None, s)
warnings.showwarning = _showwarning
warnings.simplefilter("ignore", DeprecationWarning)
#============================================================================#
# main
#============================================================================#
def main():
parser = optparse.OptionParser( version = "BitBake Build Tool Core version %s, %%prog version %s" % ( bb.__version__, __version__ ),
usage = """%prog [options] [package ...]
return_value = 1
parser = optparse.OptionParser(
version = "BitBake Build Tool Core version %s, %%prog version %s" % (bb.__version__, __version__),
usage = """%prog [options] [package ...]
Executes the specified task (default is 'build') for a given set of BitBake files.
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
Default BBFILES are the .bb files in the current directory.""" )
Default BBFILES are the .bb files in the current directory.""")
parser.add_option( "-b", "--buildfile", help = "execute the task against this .bb file, rather than a package from BBFILES.",
action = "store", dest = "buildfile", default = None )
parser.add_option("-b", "--buildfile", help = "execute the task against this .bb file, rather than a package from BBFILES.",
action = "store", dest = "buildfile", default = None)
parser.add_option( "-k", "--continue", help = "continue as much as possible after an error. While the target that failed, and those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
action = "store_false", dest = "abort", default = True )
parser.add_option("-k", "--continue", help = "continue as much as possible after an error. While the target that failed, and those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
action = "store_false", dest = "abort", default = True)
parser.add_option( "-a", "--tryaltconfigs", help = "continue with builds by trying to use alternative providers where possible.",
action = "store_true", dest = "tryaltconfigs", default = False )
parser.add_option("-a", "--tryaltconfigs", help = "continue with builds by trying to use alternative providers where possible.",
action = "store_true", dest = "tryaltconfigs", default = False)
parser.add_option( "-f", "--force", help = "force run of specified cmd, regardless of stamp status",
action = "store_true", dest = "force", default = False )
parser.add_option("-f", "--force", help = "force run of specified cmd, regardless of stamp status",
action = "store_true", dest = "force", default = False)
parser.add_option( "-i", "--interactive", help = "drop into the interactive mode also called the BitBake shell.",
action = "store_true", dest = "interactive", default = False )
parser.add_option("-c", "--cmd", help = "Specify task to execute. Note that this only executes the specified task for the providee and the packages it depends on, i.e. 'compile' does not implicitly call stage for the dependencies (IOW: use only if you know what you are doing). Depending on the base.bbclass a listtasks tasks is defined and will show available tasks",
action = "store", dest = "cmd")
parser.add_option( "-c", "--cmd", help = "Specify task to execute. Note that this only executes the specified task for the providee and the packages it depends on, i.e. 'compile' does not implicitly call stage for the dependencies (IOW: use only if you know what you are doing). Depending on the base.bbclass a listtasks tasks is defined and will show available tasks",
action = "store", dest = "cmd" )
parser.add_option("-r", "--read", help = "read the specified file before bitbake.conf",
action = "append", dest = "file", default = [])
parser.add_option( "-r", "--read", help = "read the specified file before bitbake.conf",
action = "append", dest = "file", default = [] )
parser.add_option("-v", "--verbose", help = "output more chit-chat to the terminal",
action = "store_true", dest = "verbose", default = False)
parser.add_option( "-v", "--verbose", help = "output more chit-chat to the terminal",
action = "store_true", dest = "verbose", default = False )
parser.add_option( "-D", "--debug", help = "Increase the debug level. You can specify this more than once.",
parser.add_option("-D", "--debug", help = "Increase the debug level. You can specify this more than once.",
action = "count", dest="debug", default = 0)
parser.add_option( "-n", "--dry-run", help = "don't execute, just go through the motions",
action = "store_true", dest = "dry_run", default = False )
parser.add_option("-n", "--dry-run", help = "don't execute, just go through the motions",
action = "store_true", dest = "dry_run", default = False)
parser.add_option( "-p", "--parse-only", help = "quit after parsing the BB files (developers only)",
action = "store_true", dest = "parse_only", default = False )
parser.add_option("-S", "--dump-signatures", help = "don't execute, just dump out the signature construction information",
action = "store_true", dest = "dump_signatures", default = False)
parser.add_option( "-d", "--disable-psyco", help = "disable using the psyco just-in-time compiler (not recommended)",
action = "store_true", dest = "disable_psyco", default = False )
parser.add_option("-p", "--parse-only", help = "quit after parsing the BB files (developers only)",
action = "store_true", dest = "parse_only", default = False)
parser.add_option( "-s", "--show-versions", help = "show current and preferred versions of all packages",
action = "store_true", dest = "show_versions", default = False )
parser.add_option("-d", "--disable-psyco", help = "disable using the psyco just-in-time compiler (not recommended)",
action = "store_true", dest = "disable_psyco", default = False)
parser.add_option( "-e", "--environment", help = "show the global or per-package environment (this is what used to be bbread)",
action = "store_true", dest = "show_environment", default = False )
parser.add_option("-s", "--show-versions", help = "show current and preferred versions of all packages",
action = "store_true", dest = "show_versions", default = False)
parser.add_option( "-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax",
action = "store_true", dest = "dot_graph", default = False )
parser.add_option("-e", "--environment", help = "show the global or per-package environment (this is what used to be bbread)",
action = "store_true", dest = "show_environment", default = False)
parser.add_option( "-I", "--ignore-deps", help = """Stop processing at the given list of dependencies when generating dependency graphs. This can help to make the graph more appealing""",
action = "append", dest = "ignored_dot_deps", default = [] )
parser.add_option("-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax",
action = "store_true", dest = "dot_graph", default = False)
parser.add_option( "-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
action = "append", dest = "debug_domains", default = [] )
parser.add_option("-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",
action = "append", dest = "extra_assume_provided", default = [])
parser.add_option( "-P", "--profile", help = "profile the command and print a report",
action = "store_true", dest = "profile", default = False )
parser.add_option("-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
action = "append", dest = "debug_domains", default = [])
parser.add_option( "", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
action = "store_true", dest = "revisions_changed", default = False )
parser.add_option("-P", "--profile", help = "profile the command and print a report",
action = "store_true", dest = "profile", default = False)
parser.add_option("-u", "--ui", help = "userinterface to use",
action = "store", dest = "ui")
parser.add_option("", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
action = "store_true", dest = "revisions_changed", default = False)
options, args = parser.parse_args(sys.argv)
configuration = BBConfiguration(options)
configuration.pkgs_to_build = []
configuration.pkgs_to_build.extend(args[1:])
configuration.initial_path = os.environ['PATH']
cooker = bb.cooker.BBCooker(configuration)
#server = bb.server.xmlrpc
server = bb.server.none
# Save a logfile for cooker into the current working directory. When the
# server is daemonized this logfile will be truncated.
cooker_logfile = os.path.join(os.getcwd(), "cooker.log")
bb.utils.init_logger(bb.msg, configuration.verbose, configuration.debug,
configuration.debug_domains)
# Clear away any spurious environment variables. But don't wipe the
# environment totally.
# environment totally. This is necessary to ensure the correct operation
# of the UIs (e.g. for DISPLAY, etc.)
bb.utils.clean_environment()
cooker.parseConfiguration()
cooker = bb.cooker.BBCooker(configuration, server)
if configuration.profile:
try:
import cProfile as profile
except:
import profile
cooker.parseCommandLine()
profile.runctx("cooker.cook()", globals(), locals(), "profile.log")
import pstats
p = pstats.Stats('profile.log')
p.sort_stats('time')
p.print_stats()
p.print_callers()
p.sort_stats('cumulative')
p.print_stats()
serverinfo = server.BitbakeServerInfo(cooker.server)
server.BitBakeServerFork(serverinfo, cooker.serve, cooker_logfile)
del cooker
# Setup a connection to the server (cooker)
serverConnection = server.BitBakeServerConnection(serverinfo)
# Launch the UI
if configuration.ui:
ui = configuration.ui
else:
cooker.cook()
ui = "knotty"
try:
# Dynamically load the UI based on the ui name. Although we
# suggest a fixed set this allows you to have flexibility in which
# ones are available.
uimodule = __import__("bb.ui", fromlist = [ui])
ui_init = getattr(uimodule, ui).init
except AttributeError:
print("FATAL: Invalid user interface '%s' specified. " % ui)
print("Valid interfaces are 'ncurses', 'depexp' or the default, 'knotty'.")
else:
try:
return_value = ui_init(serverConnection.connection, serverConnection.events)
except Exception as e:
print("FATAL: Unable to start to '%s' UI: %s" % (ui, e))
raise
finally:
serverConnection.terminate()
return return_value
if __name__ == "__main__":
main()
ret = main()
sys.exit(ret)

12
bitbake/bin/bitbake-diffsigs Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env python
import os
import sys
import warnings
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb.siggen
if len(sys.argv) > 2:
bb.siggen.compare_sigfiles(sys.argv[1], sys.argv[2])
else:
bb.siggen.dump_sigfile(sys.argv[1])

117
bitbake/bin/bitbake-runtask Executable file
View File

@@ -0,0 +1,117 @@
#!/usr/bin/env python
import os
import sys
import warnings
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
try:
import cPickle as pickle
except ImportError:
import pickle
bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.")
class BBConfiguration(object):
"""
Manages build options and configurations for one run
"""
def __init__(self, debug, debug_domains):
setattr(self, "data", {})
setattr(self, "file", [])
setattr(self, "cmd", None)
setattr(self, "dump_signatures", True)
setattr(self, "debug", debug)
setattr(self, "debug_domains", debug_domains)
_warnings_showwarning = warnings.showwarning
def _showwarning(message, category, filename, lineno, file=None, line=None):
"""Display python warning messages using bb.msg"""
if file is not None:
if _warnings_showwarning is not None:
_warnings_showwarning(message, category, filename, lineno, file, line)
else:
s = warnings.formatwarning(message, category, filename, lineno)
s = s.split("\n")[0]
bb.msg.warn(None, s)
warnings.showwarning = _showwarning
warnings.simplefilter("ignore", DeprecationWarning)
import bb.event
# Need to map our I/O correctly. stdout is a pipe to the server expecting
# events. We save this and then map stdout to stderr.
eventfd = os.dup(sys.stdout.fileno())
bb.event.worker_pipe = os.fdopen(eventfd, 'w', 0)
# map stdout to stderr
os.dup2(sys.stderr.fileno(), sys.stdout.fileno())
# Replace those fds with our own
#logout = data.expand("${TMPDIR}/log/stdout.%s" % os.getpid(), self.cfgData, True)
#mkdirhier(os.path.dirname(logout))
#newso = open("/tmp/stdout.%s" % os.getpid(), 'w')
#os.dup2(newso.fileno(), sys.stdout.fileno())
#os.dup2(newso.fileno(), sys.stderr.fileno())
# Don't read from stdin from the parent
si = file("/dev/null", 'r')
os.dup2(si.fileno( ), sys.stdin.fileno( ))
# We don't want to see signals to our parent, e.g. Ctrl+C
os.setpgrp()
# Save out the PID so that the event can include it the
# events
bb.event.worker_pid = os.getpid()
bb.event.useStdout = False
hashfile = sys.argv[1]
buildfile = sys.argv[2]
taskname = sys.argv[3]
import bb.cooker
p = pickle.Unpickler(file(hashfile, "rb"))
hashdata = p.load()
debug = hashdata["msg-debug"]
debug_domains = hashdata["msg-debug-domains"]
verbose = hashdata["verbose"]
bb.utils.init_logger(bb.msg, verbose, debug, debug_domains)
cooker = bb.cooker.BBCooker(BBConfiguration(debug, debug_domains), None)
cooker.parseConfiguration()
cooker.bb_cache = bb.cache.init(cooker)
cooker.status = bb.cache.CacheData()
(fn, cls) = cooker.bb_cache.virtualfn2realfn(buildfile)
buildfile = cooker.matchFile(fn)
fn = cooker.bb_cache.realfn2virtual(buildfile, cls)
cooker.buildSetVars()
# Load data into the cache for fn and parse the loaded cache data
the_data = cooker.bb_cache.loadDataFull(fn, cooker.get_file_appends(fn), cooker.configuration.data)
cooker.bb_cache.setData(fn, buildfile, the_data)
cooker.bb_cache.handle_data(fn, cooker.status)
if taskname.endswith("_setscene"):
the_data.setVarFlag(taskname, "quieterrors", "1")
bb.parse.siggen.set_taskdata(hashdata["hashes"], hashdata["deps"])
for h in hashdata["hashes"]:
bb.data.setVar("BBHASH_%s" % h, hashdata["hashes"][h], the_data)
for h in hashdata["deps"]:
bb.data.setVar("BBHASHDEPS_%s" % h, hashdata["deps"][h], the_data)
ret = 0
if sys.argv[4] != "True":
ret = bb.build.exec_task(fn, taskname, the_data)
sys.exit(ret)

View File

@@ -48,7 +48,7 @@ class HTMLFormatter:
From pydoc... almost identical at least
"""
while pairs:
(a,b) = pairs[0]
(a, b) = pairs[0]
text = join(split(text, a), b)
pairs = pairs[1:]
return text
@@ -87,7 +87,7 @@ class HTMLFormatter:
return txt + ",".join(txts)
def groups(self,item):
def groups(self, item):
"""
Create HTML to link to related groups
"""
@@ -99,12 +99,12 @@ class HTMLFormatter:
txt = "<p><b>See also:</b><br>"
txts = []
for group in item.groups():
txts.append( """<a href="group%s.html">%s</a> """ % (group,group) )
txts.append( """<a href="group%s.html">%s</a> """ % (group, group) )
return txt + ",".join(txts)
def createKeySite(self,item):
def createKeySite(self, item):
"""
Create a site for a key. It contains the header/navigator, a heading,
the description, links to related keys and to the groups.
@@ -149,8 +149,7 @@ class HTMLFormatter:
"""
groups = ""
sorted_groups = doc.groups()
sorted_groups.sort()
sorted_groups = sorted(doc.groups())
for group in sorted_groups:
groups += """<a href="group%s.html">%s</a><br>""" % (group, group)
@@ -185,8 +184,7 @@ class HTMLFormatter:
Create Overview of all avilable keys
"""
keys = ""
sorted_keys = doc.doc_keys()
sorted_keys.sort()
sorted_keys = sorted(doc.doc_keys())
for key in sorted_keys:
keys += """<a href="key%s.html">%s</a><br>""" % (key, key)
@@ -214,7 +212,7 @@ class HTMLFormatter:
description += "<h2 Description of Grozp %s</h2>" % gr
description += _description
items.sort(lambda x,y:cmp(x.name(),y.name()))
items.sort(lambda x, y:cmp(x.name(), y.name()))
for group in items:
groups += """<a href="key%s.html">%s</a><br>""" % (group.name(), group.name())
@@ -343,7 +341,7 @@ class DocumentationItem:
def addGroup(self, group):
self._groups.append(group)
def addRelation(self,relation):
def addRelation(self, relation):
self._related.append(relation)
def sort(self):
@@ -396,7 +394,7 @@ class Documentation:
"""
return self.__groups.keys()
def group_content(self,group_name):
def group_content(self, group_name):
"""
Return a list of keys/names that are in a specefic
group or the empty list
@@ -412,7 +410,7 @@ def parse_cmdline(args):
Parse the CMD line and return the result as a n-tuple
"""
parser = optparse.OptionParser( version = "Bitbake Documentation Tool Core version %s, %%prog version %s" % (bb.__version__,__version__))
parser = optparse.OptionParser( version = "Bitbake Documentation Tool Core version %s, %%prog version %s" % (bb.__version__, __version__))
usage = """%prog [options]
Create a set of html pages (documentation) for a bitbake.conf....
@@ -428,7 +426,7 @@ Create a set of html pages (documentation) for a bitbake.conf....
parser.add_option( "-D", "--debug", help = "Increase the debug level",
action = "count", dest = "debug", default = 0 )
parser.add_option( "-v","--verbose", help = "output more chit-char to the terminal",
parser.add_option( "-v", "--verbose", help = "output more chit-char to the terminal",
action = "store_true", dest = "verbose", default = False )
options, args = parser.parse_args( sys.argv )
@@ -443,7 +441,7 @@ def main():
The main Method
"""
(config_file,output_dir) = parse_cmdline( sys.argv )
(config_file, output_dir) = parse_cmdline( sys.argv )
# right to let us load the file now
try:
@@ -453,6 +451,8 @@ def main():
except bb.parse.ParseError:
bb.fatal( "Unable to parse %s" % config_file )
if isinstance(documentation, dict):
documentation = documentation[""]
# Assuming we've the file loaded now, we will initialize the 'tree'
doc = Documentation()

View File

@@ -16,12 +16,17 @@ endif
syn case match
" Catch incorrect syntax (only matches if nothing else does)
"
syn match bbUnmatched "."
syn include @python syntax/python.vim
if exists("b:current_syntax")
unlet b:current_syntax
endif
" Other
syn match bbComment "^#.*$" display contains=bbTodo
@@ -34,21 +39,25 @@ syn match bbArrayBrackets "[\[\]]" contained
" BitBake strings
syn match bbContinue "\\$"
syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue,bbVarDeref
syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue,bbVarDeref
syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref
syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref
" BitBake variable metadata
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
syn match bbVarDeref "${[a-zA-Z0-9\-_\.]\+}" contained
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.]\+\(_[${}a-zA-Z0-9\-_\.]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
syn match bbVarBraces "[\${}]"
syn region bbVarDeref matchgroup=bbVarBraces start="${" end="}" contained
" syn region bbVarDeref start="${" end="}" contained
" syn region bbVarInlinePy start="${@" end="}" contained contains=@python
syn region bbVarInlinePy matchgroup=bbVarBraces start="${@" end="}" contained contains=@python
syn match bbIdentifier "[a-zA-Z0-9\-_\.]\+" display contained
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
" syn match bbVarDeref "${[a-zA-Z0-9\-_\.]\+}" contained
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.]\+\(_[${}a-zA/-Z0-9\-_\.]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
syn match bbIdentifier "[a-zA-Z0-9\-_\./]\+" display contained
"syn keyword bbVarEq = display contained nextgroup=bbVarValue
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)" contained nextgroup=bbVarValue
syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref
syn match bbVarValue ".*$" contained contains=bbString
" BitBake variable metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
@@ -61,10 +70,6 @@ syn match bbFunction "\h\w*" display contained
" BitBake python metadata
syn include @python syntax/python.vim
if exists("b:current_syntax")
unlet b:current_syntax
endif
syn keyword bbPythonFlag python contained nextgroup=bbFunction
syn match bbPythonFuncDef "^\(python\s\+\)\(\w\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPythonFlag,bbFunction,bbDelimiter nextgroup=bbPythonFuncRegion skipwhite
@@ -98,7 +103,6 @@ syn match bbStatementRest ".*$" contained contains=bbString,bbVarDeref
"
hi def link bbArrayBrackets Statement
hi def link bbUnmatched Error
hi def link bbVarDeref String
hi def link bbContinue Special
hi def link bbDef Statement
hi def link bbPythonFlag Type
@@ -116,5 +120,8 @@ hi def link bbIdentifier Identifier
hi def link bbVarEq Operator
hi def link bbQuote String
hi def link bbVarValue String
" hi def link bbVarInlinePy PreProc
hi def link bbVarDeref PreProc
hi def link bbVarBraces PreProc
let b:current_syntax = "bb"

View File

@@ -32,7 +32,7 @@ command.
\fBbitbake\fP is a program that executes the specified task (default is 'build')
for a given set of BitBake files.
.br
It expects that BBFILES is defined, which is a space seperated list of files to
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
.br
Default BBFILES are the .bb files in the current directory.
@@ -67,7 +67,7 @@ drop into the interactive mode also called the BitBake shell.
Specify task to execute. Note that this only executes the specified task for
the providee and the packages it depends on, i.e. 'compile' does not implicitly
call stage for the dependencies (IOW: use only if you know what you are doing).
Depending on the base.bbclass a listtaks tasks is defined and will show
Depending on the base.bbclass a listtasks task is defined and will show
available tasks.
.TP
.B \-rFILE, \-\-read=FILE

View File

@@ -88,6 +88,17 @@ share common metadata between many packages.</para></listitem>
<varname>B</varname> = "pre${A}post"</screen></para>
<para>This results in <varname>A</varname> containing <literal>aval</literal> and <varname>B</varname> containing <literal>preavalpost</literal>.</para>
</section>
<section>
<title>Setting a default value (?=)</title>
<para><screen><varname>A</varname> ?= "aval"</screen></para>
<para>If <varname>A</varname> is set before the above is called, it will retain it's previous value. If <varname>A</varname> is unset prior to the above call, <varname>A</varname> will be set to <literal>aval</literal>. Note that this assignment is immediate, so if there are multiple ?= assignments to a single variable, the first of those will be used.</para>
</section>
<section>
<title>Setting a default value (??=)</title>
<para><screen><varname>A</varname> ??= "somevalue"</screen></para>
<para><screen><varname>A</varname> ??= "someothervalue"</screen></para>
<para>If <varname>A</varname> is set before the above, it will retain that value. If <varname>A</varname> is unset prior to the above, <varname>A</varname> will be set to <literal>someothervalue</literal>. This is a lazy version of ??=, in that the assignment does not occur until the end of the parsing process, so that the last, rather than the first, ??= assignment to a given variable will be used.</para>
</section>
<section>
<title>Immediate variable expansion (:=)</title>
<para>:= results in a variable's contents being expanded immediately, rather than when the variable is actually used.</para>
@@ -119,7 +130,7 @@ will be introduced.</para>
</section>
<section>
<title>Conditional metadata set</title>
<para>OVERRIDES is a <quote>:</quote> seperated variable containing each item you want to satisfy conditions. So, if you have a variable which is conditional on <quote>arm</quote>, and <quote>arm</quote> is in OVERRIDES, then the <quote>arm</quote> specific version of the variable is used rather than the non-conditional version. Example:</para>
<para>OVERRIDES is a <quote>:</quote> separated variable containing each item you want to satisfy conditions. So, if you have a variable which is conditional on <quote>arm</quote>, and <quote>arm</quote> is in OVERRIDES, then the <quote>arm</quote> specific version of the variable is used rather than the non-conditional version. Example:</para>
<para><screen><varname>OVERRIDES</varname> = "architecture:os:machine"
<varname>TEST</varname> = "defaultvalue"
<varname>TEST_os</varname> = "osspecificvalue"
@@ -184,7 +195,7 @@ include</literal> directive.</para>
<section>
<title>Inheritance</title>
<para><emphasis>NOTE:</emphasis> This is only supported in .bb and .bbclass files.</para>
<para>The <literal>inherit</literal> directive is a means of specifying what classes of functionality your .bb requires. It is a rudamentary form of inheritence. For example, you can easily abstract out the tasks involved in building a package that uses autoconf and automake, and put that into a bbclass for your packages to make use of. A given bbclass is located by searching for classes/filename.oeclass in <envar>BBPATH</envar>, where filename is what you inherited.</para>
<para>The <literal>inherit</literal> directive is a means of specifying what classes of functionality your .bb requires. It is a rudimentary form of inheritance. For example, you can easily abstract out the tasks involved in building a package that uses autoconf and automake, and put that into a bbclass for your packages to make use of. A given bbclass is located by searching for classes/filename.oeclass in <envar>BBPATH</envar>, where filename is what you inherited.</para>
</section>
<section>
<title>Tasks</title>
@@ -204,19 +215,29 @@ addtask printdate before do_build</screen></para>
<para>BitBake allows to install event handlers. Events are triggered at certain points during operation, such as, the beginning of operation against a given .bb, the start of a given task, task failure, task success, et cetera. The intent was to make it easy to do things like email notifications on build failure.</para>
<para><screen>addhandler myclass_eventhandler
python myclass_eventhandler() {
from bb.event import NotHandled, getName
from bb.event import getName
from bb import data
print "The name of the Event is %s" % getName(e)
print "The file we run for is %s" % data.getVar('FILE', e.data, True)
return NotHandled
print("The name of the Event is %s" % getName(e))
print("The file we run for is %s" % data.getVar('FILE', e.data, True))
}
</screen></para><para>
This event handler gets called every time an event is triggered. A global variable <varname>e</varname> is defined. <varname>e</varname>.data contains an instance of bb.data. With the getName(<varname>e</varname>)
method one can get the name of the triggered event.</para><para>The above event handler prints the name
of the event and the content of the <varname>FILE</varname> variable.</para>
</section>
<section>
<title>Variants</title>
<para>Two Bitbake features exist to facilitate the creation of multiple buildable incarnations from a single recipe file.</para>
<para>The first is <varname>BBCLASSEXTEND</varname>. This variable is a space separated list of classes to utilize to "extend" the recipe for each variant. As an example, setting <screen>BBCLASSEXTEND = "native"</screen> results in a second incarnation of the current recipe being available. This second incarantion will have the "native" class inherited.</para>
<para>The second feature is <varname>BBVERSIONS</varname>. This variable allows a single recipe to be able to build multiple versions of a project from a single recipe file, and allows you to specify conditional metadata (using the <varname>OVERRIDES</varname> mechanism) for a single version, or an optionally named range of versions:</para>
<para><screen>BBVERSIONS = "1.0 2.0 git"
SRC_URI_git = "git://someurl/somepath.git"</screen></para>
<para><screen>BBVERSIONS = "1.0.[0-6]:1.0.0+ \
1.0.[7-9]:1.0.7+"
SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;patch=1"</screen></para>
<para>Note that the name of the range will default to the original version of the recipe, so given OE, a recipe file of foo_1.0.0+.bb will default the name of its versions to 1.0.0+. This is useful, as the range name is not only placed into overrides, it's also made available for the metadata to use in the form of the <varname>BPV</varname> variable, for use in file:// search paths (<varname>FILESPATH</varname>).</para>
</section>
</section>
<section>
<title>Dependency Handling</title>
@@ -258,16 +279,18 @@ of the event and the content of the <varname>FILE</varname> variable.</para>
<title>Parsing</title>
<section>
<title>Configuration Files</title>
<para>The first of the classifications of metadata in BitBake is configuration metadata. This metadata is global, and therefore affects <emphasis>all</emphasis> packages and tasks which are executed. Currently, BitBake has hardcoded knowledge of a single configuration file. It expects to find 'conf/bitbake.conf' somewhere in the user specified <envar>BBPATH</envar>. That configuration file generally has include directives to pull in any other metadata (generally files specific to architecture, machine, <emphasis>local</emphasis> and so on.</para>
<para>The first of the classifications of metadata in BitBake is configuration metadata. This metadata is global, and therefore affects <emphasis>all</emphasis> packages and tasks which are executed.</para>
<para>Bitbake will first search the current working directory for an optional "conf/bblayers.conf" configuration file. This file is expected to contain a BBLAYERS variable which is a space delimited list of 'layer' directories. For each directory in this list a "conf/layer.conf" file will be searched for and parsed with the LAYERDIR variable being set to the directory where the layer was found. The idea is these files will setup BBPATH and other variables correctly for a given build directory automatically for the user.</para>
<para>Bitbake will then expect to find 'conf/bitbake.conf' somewhere in the user specified <envar>BBPATH</envar>. That configuration file generally has include directives to pull in any other metadata (generally files specific to architecture, machine, <emphasis>local</emphasis> and so on.</para>
<para>Only variable definitions and include directives are allowed in .conf files.</para>
</section>
<section>
<title>Classes</title>
<para>BitBake classes are our rudamentary inheritence mechanism. As briefly mentioned in the metadata introduction, they're parsed when an <literal>inherit</literal> directive is encountered, and they are located in classes/ relative to the dirs in <envar>BBPATH</envar>.</para>
<para>BitBake classes are our rudimentary inheritance mechanism. As briefly mentioned in the metadata introduction, they're parsed when an <literal>inherit</literal> directive is encountered, and they are located in classes/ relative to the dirs in <envar>BBPATH</envar>.</para>
</section>
<section>
<title>.bb Files</title>
<para>A BitBake (.bb) file is a logical unit of tasks to be executed. Normally this is a package to be built. Inter-.bb dependencies are obeyed. The files themselves are located via the <varname>BBFILES</varname> variable, which is set to a space seperated list of .bb files, and does handle wildcards.</para>
<para>A BitBake (.bb) file is a logical unit of tasks to be executed. Normally this is a package to be built. Inter-.bb dependencies are obeyed. The files themselves are located via the <varname>BBFILES</varname> variable, which is set to a space separated list of .bb files, and does handle wildcards.</para>
</section>
</section>
</chapter>
@@ -293,9 +316,9 @@ a per URI parameters separated by a <quote>;</quote> consisting of a key and a v
<section>
<title>CVS File Fetcher</title>
<para>The URN for the CVS Fetcher is <emphasis>cvs</emphasis>. This Fetcher honors the variables <varname>DL_DIR</varname>, <varname>SRCDATE</varname>, <varname>FETCHCOMMAND_cvs</varname>, <varname>UPDATECOMMAND_cvs</varname>. <varname>DL_DIRS</varname> specifies where a temporary checkout is saved, <varname>SRCDATE</varname> specifies which date to use when doing the fetching (the special value of "now" will cause the checkout to be updated on every build), <varname>FETCHCOMMAND</varname> and <varname>UPDATECOMMAND</varname> specify which executables should be used when doing the CVS checkout or update.
<para>The URN for the CVS Fetcher is <emphasis>cvs</emphasis>. This Fetcher honors the variables <varname>DL_DIR</varname>, <varname>SRCDATE</varname>, <varname>FETCHCOMMAND_cvs</varname>, <varname>UPDATECOMMAND_cvs</varname>. <varname>DL_DIR</varname> specifies where a temporary checkout is saved, <varname>SRCDATE</varname> specifies which date to use when doing the fetching (the special value of "now" will cause the checkout to be updated on every build), <varname>FETCHCOMMAND</varname> and <varname>UPDATECOMMAND</varname> specify which executables should be used when doing the CVS checkout or update.
</para>
<para>The supported Parameters are <varname>module</varname>, <varname>tag</varname>, <varname>date</varname>, <varname>method</varname>, <varname>localdir</varname>, <varname>rsh</varname>. The <varname>module</varname> specifies which module to check out, the <varname>tag</varname> describes which CVS TAG should be used for the checkout by default the TAG is empty. A <varname>date</varname> can be specified to override the SRCDATE of the configuration to checkout a specific date. The special value of "now" will cause the checkout to be updated on every build.<varname>method</varname> is by default <emphasis>pserver</emphasis>, if <emphasis>ext</emphasis> is used the <varname>rsh</varname> parameter will be evaluated and <varname>CVS_RSH</varname> will be set. Finally <varname>localdir</varname> is used to checkout into a special directory relative to <varname>CVSDIR></varname>.
<para>The supported Parameters are <varname>module</varname>, <varname>tag</varname>, <varname>date</varname>, <varname>method</varname>, <varname>localdir</varname>, <varname>rsh</varname>. The <varname>module</varname> specifies which module to check out, the <varname>tag</varname> describes which CVS TAG should be used for the checkout by default the TAG is empty. A <varname>date</varname> can be specified to override the SRCDATE of the configuration to checkout a specific date. The special value of "now" will cause the checkout to be updated on every build.<varname>method</varname> is by default <emphasis>pserver</emphasis>, if <emphasis>ext</emphasis> is used the <varname>rsh</varname> parameter will be evaluated and <varname>CVS_RSH</varname> will be set. Finally <varname>localdir</varname> is used to checkout into a special directory relative to <varname>CVSDIR</varname>.
<screen><varname>SRC_URI</varname> = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
<varname>SRC_URI</varname> = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
</screen>
@@ -352,15 +375,7 @@ will be tried first when fetching a file if that fails the actual file will be t
<chapter>
<title>Commands</title>
<section>
<title>bbread</title>
<para>bbread is a command for displaying BitBake metadata. When run with no arguments, it has the core parse 'conf/bitbake.conf', as located in BBPATH, and displays that. If you supply a file on the commandline, such as a .bb, then it parses that afterwards, using the aforementioned configuration metadata.</para>
<para><emphasis>NOTE: the stand a lone bbread command was removed. Instead of bbread use bitbake -e.
</emphasis></para>
</section>
<section>
<title>bitbake</title>
<title>The bitbake command</title>
<section>
<title>Introduction</title>
<para>bitbake is the primary command in the system. It facilitates executing tasks in a single .bb file, or executing a given task on a set of multiple .bb files, accounting for interdependencies amongst them.</para>
@@ -372,7 +387,7 @@ will be tried first when fetching a file if that fails the actual file will be t
usage: bitbake [options] [package ...]
Executes the specified task (default is 'build') for a given set of BitBake files.
It expects that BBFILES is defined, which is a space seperated list of files to
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
Default BBFILES are the .bb files in the current directory.
@@ -394,7 +409,7 @@ options:
it depends on, i.e. 'compile' does not implicitly call
stage for the dependencies (IOW: use only if you know
what you are doing). Depending on the base.bbclass a
listtasks tasks is defined and will show available
listtasks task is defined and will show available
tasks
-r FILE, --read=FILE read the specified file before bitbake.conf
-v, --verbose output more chit-chat to the terminal
@@ -417,6 +432,7 @@ options:
Show debug logging for the specified logging domains
-P, --profile profile the command and print a report
</screen>
</para>
<para>
@@ -462,12 +478,12 @@ Two files will be written into the current working directory, <emphasis>depends.
</section>
<section>
<title>Metadata</title>
<para>As you may have seen in the usage information, or in the information about .bb files, the BBFILES variable is how the bitbake tool locates its files. This variable is a space seperated list of files that are available, and supports wildcards.
<para>As you may have seen in the usage information, or in the information about .bb files, the BBFILES variable is how the bitbake tool locates its files. This variable is a space separated list of files that are available, and supports wildcards.
<example>
<title>Setting BBFILES</title>
<programlisting><varname>BBFILES</varname> = "/path/to/bbfiles/*.bb"</programlisting>
</example></para>
<para>With regard to dependencies, it expects the .bb to define a <varname>DEPENDS</varname> variable, which contains a space seperated list of <quote>package names</quote>, which themselves are the <varname>PN</varname> variable. The <varname>PN</varname> variable is, in general, by default, set to a component of the .bb filename.</para>
<para>With regard to dependencies, it expects the .bb to define a <varname>DEPENDS</varname> variable, which contains a space separated list of <quote>package names</quote>, which themselves are the <varname>PN</varname> variable. The <varname>PN</varname> variable is, in general, by default, set to a component of the .bb filename.</para>
<example>
<title>Depending on another .bb</title>
<para>a.bb:
@@ -514,6 +530,5 @@ BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"</screen>
</example>
</section>
</section>
</chapter>
</book>

View File

@@ -3,7 +3,7 @@
#
# This is a copy on write dictionary and set which abuses classes to try and be nice and fast.
#
# Copyright (C) 2006 Tim Amsell
# Copyright (C) 2006 Tim Amsell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -18,31 +18,31 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#Please Note:
#Please Note:
# Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW.
# Assign a file to __warn__ to get warnings about slow operations.
#
from inspect import getmro
from __future__ import print_function
import copy
import types
types.ImmutableTypes = tuple([ \
types.BooleanType, \
types.ComplexType, \
types.FloatType, \
types.IntType, \
types.LongType, \
types.NoneType, \
types.TupleType, \
frozenset] + \
list(types.StringTypes))
ImmutableTypes = (
types.NoneType,
bool,
complex,
float,
int,
long,
tuple,
frozenset,
basestring
)
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
@@ -61,12 +61,12 @@ class COWDictMeta(COWMeta):
__call__ = cow
def __setitem__(cls, key, value):
if not isinstance(value, types.ImmutableTypes):
if not isinstance(value, ImmutableTypes):
if not isinstance(value, COWMeta):
cls.__hasmutable__ = True
key += MUTABLE
setattr(cls, key, value)
def __getmutable__(cls, key, readonly=False):
nkey = key + MUTABLE
try:
@@ -79,10 +79,10 @@ class COWDictMeta(COWMeta):
return value
if not cls.__warn__ is False and not isinstance(value, COWMeta):
print >> cls.__warn__, "Warning: Doing a copy because %s is a mutable type." % key
print("Warning: Doing a copy because %s is a mutable type." % key, file=cls.__warn__)
try:
value = value.copy()
except AttributeError, e:
except AttributeError as e:
value = copy.copy(value)
setattr(cls, nkey, value)
return value
@@ -100,13 +100,13 @@ class COWDictMeta(COWMeta):
value = getattr(cls, key)
except AttributeError:
value = cls.__getmutable__(key, readonly)
# This is for values which have been deleted
# This is for values which have been deleted
if value is cls.__marker__:
raise AttributeError("key %s does not exist." % key)
return value
except AttributeError, e:
except AttributeError as e:
if not default is cls.__getmarker__:
return default
@@ -120,6 +120,9 @@ class COWDictMeta(COWMeta):
key += MUTABLE
delattr(cls, key)
def __contains__(cls, key):
return cls.has_key(key)
def has_key(cls, key):
value = cls.__getreadonly__(key, cls.__marker__)
if value is cls.__marker__:
@@ -129,7 +132,7 @@ class COWDictMeta(COWMeta):
def iter(cls, type, readonly=False):
for key in dir(cls):
if key.startswith("__"):
continue
continue
if key.endswith(MUTABLE):
key = key[:-len(MUTABLE)]
@@ -155,11 +158,11 @@ class COWDictMeta(COWMeta):
return cls.iter("keys")
def itervalues(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print >> cls.__warn__, "Warning: If you arn't going to change any of the values call with True."
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("values", readonly)
def iteritems(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print >> cls.__warn__, "Warning: If you arn't going to change any of the values call with True."
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("items", readonly)
class COWSetMeta(COWDictMeta):
@@ -178,13 +181,13 @@ class COWSetMeta(COWDictMeta):
def remove(cls, value):
COWDictMeta.__delitem__(cls, repr(hash(value)))
def __in__(cls, value):
return COWDictMeta.has_key(repr(hash(value)))
def iterkeys(cls):
raise TypeError("sets don't have keys")
def iteritems(cls):
raise TypeError("sets don't have 'items'")
@@ -201,120 +204,120 @@ if __name__ == "__main__":
import sys
COWDictBase.__warn__ = sys.stderr
a = COWDictBase()
print "a", a
print("a", a)
a['a'] = 'a'
a['b'] = 'b'
a['dict'] = {}
b = a.copy()
print "b", b
print("b", b)
b['c'] = 'b'
print
print()
print "a", a
print("a", a)
for x in a.iteritems():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print x
print
print(x)
print()
b['dict']['a'] = 'b'
b['a'] = 'c'
print "a", a
print("a", a)
for x in a.iteritems():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print x
print
print(x)
print()
try:
b['dict2']
except KeyError, e:
print "Okay!"
except KeyError as e:
print("Okay!")
a['set'] = COWSetBase()
a['set'].add("o1")
a['set'].add("o1")
a['set'].add("o2")
print "a", a
print("a", a)
for x in a['set'].itervalues():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print x
print
print(x)
print()
b['set'].add('o3')
print "a", a
print("a", a)
for x in a['set'].itervalues():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print x
print
print(x)
print()
a['set2'] = set()
a['set2'].add("o1")
a['set2'].add("o1")
a['set2'].add("o2")
print "a", a
print("a", a)
for x in a.iteritems():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print x
print
print(x)
print()
del b['b']
try:
print b['b']
print(b['b'])
except KeyError:
print "Yay! deleted key raises error"
print("Yay! deleted key raises error")
if b.has_key('b'):
print "Boo!"
print("Boo!")
else:
print "Yay - has_key with delete works!"
print "a", a
print("Yay - has_key with delete works!")
print("a", a)
for x in a.iteritems():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print x
print
print(x)
print()
b.__revertitem__('b')
print "a", a
print("a", a)
for x in a.iteritems():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print x
print
print(x)
print()
b.__revertitem__('dict')
print "a", a
print("a", a)
for x in a.iteritems():
print x
print "--"
print "b", b
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print x
print
print(x)
print()

File diff suppressed because it is too large Load Diff

View File

@@ -25,10 +25,11 @@
#
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
from bb import data, fetch, event, mkdirhier, utils
import bb, os
from bb import data, event, mkdirhier, utils
import bb, os, sys
import bb.utils
# When we execute a python function we'd like certain things
# When we execute a python function we'd like certain things
# in all namespaces, hence we add them to __builtins__
# If we do not do this and use the exec globals, they will
# not be available to subfunctions.
@@ -37,20 +38,20 @@ __builtins__['os'] = os
# events
class FuncFailed(Exception):
"""Executed function failed"""
class EventException(Exception):
"""Exception which is associated with an Event."""
def __init__(self, msg, event):
self.args = msg, event
"""
Executed function failed
First parameter a message
Second paramter is a logfile (optional)
"""
class TaskBase(event.Event):
"""Base class for task events"""
def __init__(self, t, d ):
self._task = t
event.Event.__init__(self, d)
self._package = bb.data.getVar("PF", d, 1)
event.Event.__init__(self)
self._message = "package %s: task %s: %s" % (bb.data.getVar("PF", d, 1), t, bb.event.getName(self)[4:])
def getTask(self):
return self._task
@@ -68,8 +69,12 @@ class TaskSucceeded(TaskBase):
class TaskFailed(TaskBase):
"""Task execution failed"""
def __init__(self, msg, logfile, t, d ):
self.logfile = logfile
self.msg = msg
TaskBase.__init__(self, t, d)
class InvalidTask(TaskBase):
class TaskInvalid(TaskBase):
"""Invalid Task"""
# functions
@@ -79,67 +84,97 @@ def exec_func(func, d, dirs = None):
body = data.getVar(func, d)
if not body:
bb.warn("Function %s doesn't exist" % func)
return
flags = data.getVarFlags(func, d)
for item in ['deps', 'check', 'interactive', 'python', 'cleandirs', 'dirs', 'lockfiles', 'fakeroot']:
for item in ['deps', 'check', 'interactive', 'python', 'cleandirs', 'dirs', 'lockfiles', 'fakeroot', 'task']:
if not item in flags:
flags[item] = None
ispython = flags['python']
cleandirs = (data.expand(flags['cleandirs'], d) or "").split()
for cdir in cleandirs:
os.system("rm -rf %s" % cdir)
cleandirs = flags['cleandirs']
if cleandirs:
for cdir in data.expand(cleandirs, d).split():
os.system("rm -rf %s" % cdir)
if dirs is None:
dirs = flags['dirs']
if dirs:
dirs = data.expand(dirs, d).split()
if dirs:
dirs = data.expand(dirs, d)
else:
dirs = (data.expand(flags['dirs'], d) or "").split()
for adir in dirs:
mkdirhier(adir)
if len(dirs) > 0:
for adir in dirs:
bb.utils.mkdirhier(adir)
adir = dirs[-1]
else:
adir = data.getVar('B', d, 1)
# Save current directory
try:
prevdir = os.getcwd()
except OSError:
prevdir = data.getVar('TOPDIR', d, True)
# Setup scriptfile
t = data.getVar('T', d, 1)
if not t:
raise SystemExit("T variable not set, unable to build")
bb.utils.mkdirhier(t)
runfile = "%s/run.%s.%s" % (t, func, str(os.getpid()))
logfile = d.getVar("BB_LOGFILE", True)
# Change to correct directory (if specified)
if adir and os.access(adir, os.F_OK):
os.chdir(adir)
locks = []
lockfiles = (data.expand(flags['lockfiles'], d) or "").split()
for lock in lockfiles:
locks.append(bb.utils.lockfile(lock))
lockfiles = flags['lockfiles']
if lockfiles:
for lock in data.expand(lockfiles, d).split():
locks.append(bb.utils.lockfile(lock))
if flags['python']:
exec_func_python(func, d)
else:
exec_func_shell(func, d, flags)
try:
# Run the function
if ispython:
exec_func_python(func, d, runfile, logfile)
else:
exec_func_shell(func, d, runfile, logfile, flags)
for lock in locks:
bb.utils.unlockfile(lock)
# Restore original directory
try:
os.chdir(prevdir)
except:
pass
if os.path.exists(prevdir):
os.chdir(prevdir)
finally:
def exec_func_python(func, d):
# Unlock any lockfiles
for lock in locks:
bb.utils.unlockfile(lock)
def exec_func_python(func, d, runfile, logfile):
"""Execute a python BB 'function'"""
import re
bbfile = bb.data.getVar('FILE', d, 1)
tmp = "def " + func + "():\n%s" % data.getVar(func, d)
tmp += '\n' + func + '()'
comp = utils.better_compile(tmp, func, bbfile)
g = {} # globals
g['d'] = d
utils.better_exec(comp, g, tmp, bbfile)
tmp = "def " + func + "(d):\n%s" % data.getVar(func, d)
tmp += '\n' + func + '(d)'
def exec_func_shell(func, d, flags):
f = open(runfile, "w")
f.write(tmp)
comp = utils.better_compile(tmp, func, bbfile)
try:
utils.better_exec(comp, {"d": d}, tmp, bbfile)
except:
(t, value, tb) = sys.exc_info()
if t in [bb.parse.SkipPackage, bb.build.FuncFailed]:
raise
raise FuncFailed("Function %s failed" % func, logfile)
def exec_func_shell(func, d, runfile, logfile, flags):
"""Execute a shell BB 'function' Returns true if execution was successful.
For this, it creates a bash shell script in the tmp dectory, writes the local
@@ -149,120 +184,39 @@ def exec_func_shell(func, d, flags):
of the directories you need created prior to execution. The last
item in the list is where we will chdir/cd to.
"""
import sys
deps = flags['deps']
check = flags['check']
interact = flags['interactive']
if check in globals():
if globals()[check](func, deps):
return
global logfile
t = data.getVar('T', d, 1)
if not t:
return 0
mkdirhier(t)
logfile = "%s/log.%s.%s" % (t, func, str(os.getpid()))
runfile = "%s/run.%s.%s" % (t, func, str(os.getpid()))
f = open(runfile, "w")
f.write("#!/bin/sh -e\n")
if bb.msg.debug_level['default'] > 0: f.write("set -x\n")
data.emit_env(f, d)
data.emit_func(func, f, d)
f.write("cd %s\n" % os.getcwd())
if func: f.write("%s\n" % func)
f.close()
os.chmod(runfile, 0775)
if not func:
bb.msg.error(bb.msg.domain.Build, "Function not specified")
raise FuncFailed()
# open logs
si = file('/dev/null', 'r')
try:
if bb.msg.debug_level['default'] > 0:
so = os.popen("tee \"%s\"" % logfile, "w")
else:
so = file(logfile, 'w')
except OSError, e:
bb.msg.error(bb.msg.domain.Build, "opening log file: %s" % e)
pass
se = so
if not interact:
# dup the existing fds so we dont lose them
osi = [os.dup(sys.stdin.fileno()), sys.stdin.fileno()]
oso = [os.dup(sys.stdout.fileno()), sys.stdout.fileno()]
ose = [os.dup(sys.stderr.fileno()), sys.stderr.fileno()]
# replace those fds with our own
os.dup2(si.fileno(), osi[1])
os.dup2(so.fileno(), oso[1])
os.dup2(se.fileno(), ose[1])
raise FuncFailed("Function not specified for exec_func_shell")
# execute function
prevdir = os.getcwd()
if flags['fakeroot']:
maybe_fakeroot = "PATH=\"%s\" fakeroot " % bb.data.getVar("PATH", d, 1)
else:
maybe_fakeroot = ''
if flags['fakeroot'] and not flags['task']:
bb.fatal("Function %s specifies fakeroot but isn't a task?!" % func)
lang_environment = "LC_ALL=C "
ret = os.system('%s%ssh -e %s' % (lang_environment, maybe_fakeroot, runfile))
try:
os.chdir(prevdir)
except:
pass
ret = os.system('%ssh -e %s' % (lang_environment, runfile))
if not interact:
# restore the backups
os.dup2(osi[0], osi[1])
os.dup2(oso[0], oso[1])
os.dup2(ose[0], ose[1])
# close our logs
si.close()
so.close()
se.close()
if os.path.getsize(logfile) == 0:
bb.msg.debug(2, bb.msg.domain.Build, "Zero size logfile %s, removing" % logfile)
os.remove(logfile)
# close the backup fds
os.close(osi[0])
os.close(oso[0])
os.close(ose[0])
if ret==0:
if bb.msg.debug_level['default'] > 0:
os.remove(runfile)
# os.remove(logfile)
if ret == 0:
return
else:
bb.msg.error(bb.msg.domain.Build, "function %s failed" % func)
if data.getVar("BBINCLUDELOGS", d):
bb.msg.error(bb.msg.domain.Build, "log data follows (%s)" % logfile)
number_of_lines = data.getVar("BBINCLUDELOGS_LINES", d)
if number_of_lines:
os.system('tail -n%s %s' % (number_of_lines, logfile))
else:
f = open(logfile, "r")
while True:
l = f.readline()
if l == '':
break
l = l.rstrip()
print '| %s' % l
f.close()
else:
bb.msg.error(bb.msg.domain.Build, "see log in %s" % logfile)
raise FuncFailed( logfile )
raise FuncFailed("function %s failed" % func, logfile)
def exec_task(task, d):
def exec_task(fn, task, d):
"""Execute an BB 'task'
The primary difference between executing a task versus executing
@@ -271,7 +225,13 @@ def exec_task(task, d):
# Check whther this is a valid task
if not data.getVarFlag(task, 'task', d):
raise EventException("No such task", InvalidTask(task, d))
event.fire(TaskInvalid(task, d), d)
bb.msg.error(bb.msg.domain.Build, "No such task: %s" % task)
return 1
quieterr = False
if d.getVarFlag(task, "quieterrors") is not None:
quieterr = True
try:
bb.msg.debug(1, bb.msg.domain.Build, "Executing task %s" % task)
@@ -280,23 +240,126 @@ def exec_task(task, d):
data.setVar('OVERRIDES', 'task-%s:%s' % (task[3:], old_overrides), localdata)
data.update_data(localdata)
data.expandKeys(localdata)
event.fire(TaskStarted(task, localdata))
exec_func(task, localdata)
event.fire(TaskSucceeded(task, localdata))
except FuncFailed, reason:
bb.msg.note(1, bb.msg.domain.Build, "Task failed: %s" % reason )
failedevent = TaskFailed(task, d)
event.fire(failedevent)
raise EventException("Function failed in task: %s" % reason, failedevent)
data.setVar('BB_FILENAME', fn, d)
data.setVar('BB_CURRENTTASK', task[3:], d)
event.fire(TaskStarted(task, localdata), localdata)
# make stamp, or cause event and raise exception
if not data.getVarFlag(task, 'nostamp', d) and not data.getVarFlag(task, 'selfstamp', d):
make_stamp(task, d)
# Setup logfiles
t = data.getVar('T', d, 1)
if not t:
raise SystemExit("T variable not set, unable to build")
bb.utils.mkdirhier(t)
loglink = "%s/log.%s" % (t, task)
logfile = "%s/log.%s.%s" % (t, task, str(os.getpid()))
d.setVar("BB_LOGFILE", logfile)
# Even though the log file has not yet been opened, lets create the link
if loglink:
try:
os.remove(loglink)
except OSError as e:
pass
try:
os.symlink(logfile, loglink)
except OSError as e:
pass
# Handle logfiles
si = file('/dev/null', 'r')
try:
so = file(logfile, 'w')
except OSError as e:
bb.msg.error(bb.msg.domain.Build, "opening log file: %s" % e)
pass
se = so
# Dup the existing fds so we dont lose them
osi = [os.dup(sys.stdin.fileno()), sys.stdin.fileno()]
oso = [os.dup(sys.stdout.fileno()), sys.stdout.fileno()]
ose = [os.dup(sys.stderr.fileno()), sys.stderr.fileno()]
# Replace those fds with our own
os.dup2(si.fileno(), osi[1])
os.dup2(so.fileno(), oso[1])
os.dup2(se.fileno(), ose[1])
# Since we've remapped stdout and stderr, its safe for log messages to be printed there now
# exec_func can nest so we have to save state
origstdout = bb.event.useStdout
bb.event.useStdout = True
prefuncs = (data.getVarFlag(task, 'prefuncs', localdata) or "").split()
for func in prefuncs:
exec_func(func, localdata)
exec_func(task, localdata)
postfuncs = (data.getVarFlag(task, 'postfuncs', localdata) or "").split()
for func in postfuncs:
exec_func(func, localdata)
event.fire(TaskSucceeded(task, localdata), localdata)
# make stamp, or cause event and raise exception
if not data.getVarFlag(task, 'nostamp', d) and not data.getVarFlag(task, 'selfstamp', d):
make_stamp(task, d)
except FuncFailed as message:
# Try to extract the optional logfile
try:
(msg, logfile) = message
except:
logfile = None
msg = message
if not quieterr:
bb.msg.error(bb.msg.domain.Build, "Task failed: %s" % message )
failedevent = TaskFailed(msg, logfile, task, d)
event.fire(failedevent, d)
return 1
except Exception:
from traceback import format_exc
if not quieterr:
bb.msg.error(bb.msg.domain.Build, "Build of %s failed" % (task))
bb.msg.error(bb.msg.domain.Build, format_exc())
failedevent = TaskFailed("Task Failed", None, task, d)
event.fire(failedevent, d)
return 1
finally:
sys.stdout.flush()
sys.stderr.flush()
bb.event.useStdout = origstdout
# Restore the backup fds
os.dup2(osi[0], osi[1])
os.dup2(oso[0], oso[1])
os.dup2(ose[0], ose[1])
# Close our logs
si.close()
so.close()
se.close()
if logfile and os.path.exists(logfile) and os.path.getsize(logfile) == 0:
bb.msg.debug(2, bb.msg.domain.Build, "Zero size logfile %s, removing" % logfile)
os.remove(logfile)
try:
os.remove(loglink)
except OSError as e:
pass
# Close the backup fds
os.close(osi[0])
os.close(oso[0])
os.close(ose[0])
return 0
def extract_stamp(d, fn):
"""
Extracts stamp format which is either a data dictonary (fn unset)
or a dataCache entry (fn set).
Extracts stamp format which is either a data dictionary (fn unset)
or a dataCache entry (fn set).
"""
if fn:
return d.stamp[fn]
@@ -313,7 +376,7 @@ def stamp_internal(task, d, file_name):
if not stamp:
return
stamp = "%s.%s" % (stamp, task)
mkdirhier(os.path.dirname(stamp))
bb.utils.mkdirhier(os.path.dirname(stamp))
# Remove the file and recreate to force timestamp
# change on broken NFS filesystems
if os.access(stamp, os.F_OK):
@@ -353,7 +416,7 @@ def add_tasks(tasklist, d):
if not task in task_deps['tasks']:
task_deps['tasks'].append(task)
flags = data.getVarFlags(task, d)
flags = data.getVarFlags(task, d)
def getTask(name):
if not name in task_deps:
task_deps[name] = {}
@@ -365,6 +428,7 @@ def add_tasks(tasklist, d):
getTask('rdeptask')
getTask('recrdeptask')
getTask('nostamp')
getTask('fakeroot')
task_deps['parents'][task] = []
for dep in flags['deps']:
dep = data.expand(dep, d)
@@ -379,4 +443,3 @@ def remove_task(task, kill, d):
If kill is 1, also remove tasks that depend on this task."""
data.delVarFlag(task, 'task', d)

View File

@@ -28,7 +28,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, re
import os
import bb.data
import bb.utils
@@ -38,16 +38,16 @@ except ImportError:
import pickle
bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.")
__cache_version__ = "130"
__cache_version__ = "132"
class Cache:
"""
BitBake Cache implementation
"""
def __init__(self, cooker):
def __init__(self, data):
self.cachedir = bb.data.getVar("CACHE", cooker.configuration.data, True)
self.cachedir = bb.data.getVar("CACHE", data, True)
self.clean = {}
self.checked = {}
self.depends_cache = {}
@@ -61,30 +61,28 @@ class Cache:
return
self.has_cache = True
self.cachefile = os.path.join(self.cachedir,"bb_cache.dat")
self.cachefile = os.path.join(self.cachedir, "bb_cache.dat")
bb.msg.debug(1, bb.msg.domain.Cache, "Using cache in '%s'" % self.cachedir)
try:
os.stat( self.cachedir )
except OSError:
bb.mkdirhier( self.cachedir )
bb.utils.mkdirhier(self.cachedir)
# If any of configuration.data's dependencies are newer than the
# cache there isn't even any point in loading it...
newest_mtime = 0
deps = bb.data.getVar("__depends", cooker.configuration.data, True)
for f,old_mtime in deps:
if old_mtime > newest_mtime:
newest_mtime = old_mtime
deps = bb.data.getVar("__depends", data)
old_mtimes = [old_mtime for f, old_mtime in deps]
old_mtimes.append(newest_mtime)
newest_mtime = max(old_mtimes)
if bb.parse.cached_mtime_noerror(self.cachefile) >= newest_mtime:
try:
p = pickle.Unpickler(file(self.cachefile, "rb"))
self.depends_cache, version_data = p.load()
if version_data['CACHE_VER'] != __cache_version__:
raise ValueError, 'Cache Version Mismatch'
raise ValueError('Cache Version Mismatch')
if version_data['BITBAKE_VER'] != bb.__version__:
raise ValueError, 'Bitbake Version Mismatch'
raise ValueError('Bitbake Version Mismatch')
except EOFError:
bb.msg.note(1, bb.msg.domain.Cache, "Truncated cache found, rebuilding...")
self.depends_cache = {}
@@ -92,27 +90,23 @@ class Cache:
bb.msg.note(1, bb.msg.domain.Cache, "Invalid cache found, rebuilding...")
self.depends_cache = {}
else:
try:
os.stat( self.cachefile )
if os.path.isfile(self.cachefile):
bb.msg.note(1, bb.msg.domain.Cache, "Out of date cache found, rebuilding...")
except OSError:
pass
def getVar(self, var, fn, exp = 0):
"""
Gets the value of a variable
(similar to getVar in the data class)
There are two scenarios:
1. We have cached data - serve from depends_cache[fn]
2. We're learning what data to cache - serve from data
2. We're learning what data to cache - serve from data
backend but add a copy of the data to the cache.
"""
if fn in self.clean:
return self.depends_cache[fn][var]
if not fn in self.depends_cache:
self.depends_cache[fn] = {}
self.depends_cache.setdefault(fn, {})
if fn != self.data_fn:
# We're trying to access data in the cache which doesn't exist
@@ -134,7 +128,18 @@ class Cache:
self.data = data
# Make sure __depends makes the depends_cache
self.getVar("__depends", virtualfn, True)
# If we're a virtual class we need to make sure all our depends are appended
# to the depends of fn.
depends = self.getVar("__depends", virtualfn) or set()
self.depends_cache.setdefault(fn, {})
if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]:
self.depends_cache[fn]["__depends"] = depends
else:
self.depends_cache[fn]["__depends"].update(depends)
# Make sure the variants always make it into the cache too
self.getVar('__VARIANTS', virtualfn, True)
self.depends_cache[virtualfn]["CACHETIMESTAMP"] = bb.parse.cached_mtime(fn)
def virtualfn2realfn(self, virtualfn):
@@ -160,7 +165,7 @@ class Cache:
#bb.msg.debug(2, bb.msg.domain.Cache, "realfn2virtual %s and %s to %s" % (realfn, cls, "virtual:" + cls + ":" + realfn))
return "virtual:" + cls + ":" + realfn
def loadDataFull(self, virtualfn, cfgData):
def loadDataFull(self, virtualfn, appends, cfgData):
"""
Return a complete set of data for fn.
To do this, we need to parse the file.
@@ -170,13 +175,10 @@ class Cache:
bb.msg.debug(1, bb.msg.domain.Cache, "Parsing %s (full)" % fn)
bb_data, skipped = self.load_bbfile(fn, cfgData)
if isinstance(bb_data, dict):
return bb_data[cls]
bb_data = self.load_bbfile(fn, appends, cfgData)
return bb_data[cls]
return bb_data
def loadData(self, fn, cfgData, cacheData):
def loadData(self, fn, appends, cfgData, cacheData):
"""
Load a subset of data for fn.
If the cached data is valid we do nothing,
@@ -184,42 +186,39 @@ class Cache:
to record the variables accessed.
Return the cache status and whether the file was skipped when parsed
"""
skipped = 0
virtuals = 0
if fn not in self.checked:
self.cacheValidUpdate(fn)
if self.cacheValid(fn):
if "SKIPPED" in self.depends_cache[fn]:
return True, True
self.handle_data(fn, cacheData)
multi = self.getVar('BBCLASSEXTEND', fn, True)
if multi:
for cls in multi.split():
virtualfn = self.realfn2virtual(fn, cls)
# Pretend we're clean so getVar works
self.clean[virtualfn] = ""
self.handle_data(virtualfn, cacheData)
return True, False
multi = self.getVar('__VARIANTS', fn, True)
for cls in (multi or "").split() + [""]:
virtualfn = self.realfn2virtual(fn, cls)
if self.depends_cache[virtualfn]["__SKIPPED"]:
skipped += 1
bb.msg.debug(1, bb.msg.domain.Cache, "Skipping %s" % virtualfn)
continue
self.handle_data(virtualfn, cacheData)
virtuals += 1
return True, skipped, virtuals
bb.msg.debug(1, bb.msg.domain.Cache, "Parsing %s" % fn)
bb_data, skipped = self.load_bbfile(fn, cfgData)
bb_data = self.load_bbfile(fn, appends, cfgData)
if skipped:
if isinstance(bb_data, dict):
self.setData(fn, fn, bb_data[""])
else:
self.setData(fn, fn, bb_data)
return False, skipped
if isinstance(bb_data, dict):
for data in bb_data:
virtualfn = self.realfn2virtual(fn, data)
self.setData(virtualfn, fn, bb_data[data])
for data in bb_data:
virtualfn = self.realfn2virtual(fn, data)
self.setData(virtualfn, fn, bb_data[data])
if self.getVar("__SKIPPED", virtualfn):
skipped += 1
bb.msg.debug(1, bb.msg.domain.Cache, "Skipping %s" % virtualfn)
else:
self.handle_data(virtualfn, cacheData)
return False, skipped
virtuals += 1
return False, skipped, virtuals
self.setData(fn, fn, bb_data)
self.handle_data(fn, cacheData)
return False, skipped
def cacheValid(self, fn):
"""
@@ -253,11 +252,11 @@ class Cache:
self.remove(fn)
return False
mtime = bb.parse.cached_mtime_noerror(fn)
mtime = bb.parse.cached_mtime_noerror(fn)
# Check file still exists
if mtime == 0:
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s not longer exists" % fn)
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s no longer exists" % fn)
self.remove(fn)
return False
@@ -270,10 +269,10 @@ class Cache:
# Check dependencies are still valid
depends = self.getVar("__depends", fn, True)
if depends:
for f,old_mtime in depends:
for f, old_mtime in depends:
fmtime = bb.parse.cached_mtime_noerror(f)
# Check if file still exists
if fmtime == 0:
if old_mtime != 0 and fmtime == 0:
self.remove(fn)
return False
@@ -286,16 +285,27 @@ class Cache:
if not fn in self.clean:
self.clean[fn] = ""
return True
invalid = False
# Mark extended class data as clean too
multi = self.getVar('__VARIANTS', fn, True)
for cls in (multi or "").split():
virtualfn = self.realfn2virtual(fn, cls)
self.clean[virtualfn] = ""
if not virtualfn in self.depends_cache:
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s is not cached" % virtualfn)
invalid = True
def skip(self, fn):
"""
Mark a fn as skipped
Called from the parser
"""
if not fn in self.depends_cache:
self.depends_cache[fn] = {}
self.depends_cache[fn]["SKIPPED"] = "1"
# If any one of the varients is not present, mark cache as invalid for all
if invalid:
for cls in (multi or "").split():
virtualfn = self.realfn2virtual(fn, cls)
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: Removing %s from cache" % virtualfn)
del self.clean[virtualfn]
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: Removing %s from cache" % fn)
del self.clean[fn]
return False
return True
def remove(self, fn):
"""
@@ -326,7 +336,7 @@ class Cache:
version_data['CACHE_VER'] = __cache_version__
version_data['BITBAKE_VER'] = bb.__version__
cache_data = copy.deepcopy(self.depends_cache)
cache_data = copy.copy(self.depends_cache)
for fn in self.depends_cache:
if '__BB_DONT_CACHE' in self.depends_cache[fn] and self.depends_cache[fn]['__BB_DONT_CACHE']:
bb.msg.debug(2, bb.msg.domain.Cache, "Not caching %s, marked as not cacheable" % fn)
@@ -343,14 +353,14 @@ class Cache:
def handle_data(self, file_name, cacheData):
"""
Save data we need into the cache
Save data we need into the cache
"""
pn = self.getVar('PN', file_name, True)
pe = self.getVar('PE', file_name, True) or "0"
pv = self.getVar('PV', file_name, True)
if 'SRCREVINACTION' in pv:
bb.note("Found SRCREVINACTION in PV (%s) or %s. Please report this bug." % (pv, file_name))
bb.msg.note(1, bb.msg.domain.Cache, "Found SRCREVINACTION in PV (%s) or %s. Please report this bug." % (pv, file_name))
pr = self.getVar('PR', file_name, True)
dp = int(self.getVar('DEFAULT_PREFERENCE', file_name, True) or "0")
depends = bb.utils.explode_deps(self.getVar("DEPENDS", file_name, True) or "")
@@ -358,7 +368,7 @@ class Cache:
packages_dynamic = (self.getVar('PACKAGES_DYNAMIC', file_name, True) or "").split()
rprovides = (self.getVar("RPROVIDES", file_name, True) or "").split()
cacheData.task_deps[file_name] = self.getVar("_task_deps", file_name, True)
cacheData.task_deps[file_name] = self.getVar("_task_deps", file_name)
# build PackageName to FileName lookup table
if pn not in cacheData.pkg_pn:
@@ -367,9 +377,13 @@ class Cache:
cacheData.stamp[file_name] = self.getVar('STAMP', file_name, True)
cacheData.tasks[file_name] = self.getVar('__BBTASKS', file_name, True)
for t in cacheData.tasks[file_name]:
cacheData.basetaskhash[file_name + "." + t] = self.getVar("BB_BASEHASH_task-%s" % t, file_name, True)
# build FileName to PackageName lookup table
cacheData.pkg_fn[file_name] = pn
cacheData.pkg_pepvpr[file_name] = (pe,pv,pr)
cacheData.pkg_pepvpr[file_name] = (pe, pv, pr)
cacheData.pkg_dp[file_name] = dp
provides = [pn]
@@ -398,13 +412,13 @@ class Cache:
if not dep in cacheData.all_depends:
cacheData.all_depends.append(dep)
# Build reverse hash for PACKAGES, so runtime dependencies
# Build reverse hash for PACKAGES, so runtime dependencies
# can be be resolved (RDEPENDS, RRECOMMENDS etc.)
for package in packages:
if not package in cacheData.packages:
cacheData.packages[package] = []
cacheData.packages[package].append(file_name)
rprovides += (self.getVar("RPROVIDES_%s" % package, file_name, 1) or "").split()
rprovides += (self.getVar("RPROVIDES_%s" % package, file_name, 1) or "").split()
for package in packages_dynamic:
if not package in cacheData.packages_dynamic:
@@ -439,45 +453,53 @@ class Cache:
if not self.getVar('BROKEN', file_name, True) and not self.getVar('EXCLUDE_FROM_WORLD', file_name, True):
cacheData.possible_world.append(file_name)
cacheData.hashfn[file_name] = self.getVar('BB_HASHFILENAME', file_name, True)
# Touch this to make sure its in the cache
self.getVar('__BB_DONT_CACHE', file_name, True)
self.getVar('BBCLASSEXTEND', file_name, True)
self.getVar('__VARIANTS', file_name, True)
def load_bbfile( self, bbfile , config):
def load_bbfile(self, bbfile, appends, config):
"""
Load and parse one .bb build file
Return the data and whether parsing resulted in the file being skipped
"""
chdir_back = False
import bb
from bb import utils, data, parse, debug, event, fatal
from bb import data, parse
# expand tmpdir to include this topdir
data.setVar('TMPDIR', data.getVar('TMPDIR', config, 1) or "", config)
bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
oldpath = os.path.abspath(os.getcwd())
if bb.parse.cached_mtime_noerror(bbfile_loc):
os.chdir(bbfile_loc)
parse.cached_mtime_noerror(bbfile_loc)
bb_data = data.init_db(config)
# The ConfHandler first looks if there is a TOPDIR and if not
# then it would call getcwd().
# Previously, we chdir()ed to bbfile_loc, called the handler
# and finally chdir()ed back, a couple of thousand times. We now
# just fill in TOPDIR to point to bbfile_loc if there is no TOPDIR yet.
if not data.getVar('TOPDIR', bb_data):
chdir_back = True
data.setVar('TOPDIR', bbfile_loc, bb_data)
try:
if appends:
data.setVar('__BBAPPEND', " ".join(appends), bb_data)
bb_data = parse.handle(bbfile, bb_data) # read .bb data
os.chdir(oldpath)
return bb_data, False
except bb.parse.SkipPackage:
os.chdir(oldpath)
return bb_data, True
if chdir_back: os.chdir(oldpath)
return bb_data
except:
os.chdir(oldpath)
if chdir_back: os.chdir(oldpath)
raise
def init(cooker):
"""
The Objective: Cache the minimum amount of data possible yet get to the
The Objective: Cache the minimum amount of data possible yet get to the
stage of building packages (i.e. tryBuild) without reparsing any .bb files.
To do this, we intercept getVar calls and only cache the variables we see
being accessed. We rely on the cache getVar calls being made for all
variables bitbake might need to use to reach this stage. For each cached
To do this, we intercept getVar calls and only cache the variables we see
being accessed. We rely on the cache getVar calls being made for all
variables bitbake might need to use to reach this stage. For each cached
file we need to track:
* Its mtime
@@ -487,7 +509,7 @@ def init(cooker):
Files causing parsing errors are evicted from the cache.
"""
return Cache(cooker)
return Cache(cooker.configuration.data)
@@ -523,6 +545,9 @@ class CacheData:
self.task_deps = {}
self.stamp = {}
self.preferred = {}
self.tasks = {}
self.basetaskhash = {}
self.hashfn = {}
"""
Indirect Cache variables

View File

@@ -0,0 +1,329 @@
from pysh import pyshyacc, pyshlex
from itertools import chain
from bb import msg, utils
import ast
import codegen
PARSERCACHE_VERSION = 2
try:
import cPickle as pickle
except ImportError:
import pickle
bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.")
def check_indent(codestr):
"""If the code is indented, add a top level piece of code to 'remove' the indentation"""
i = 0
while codestr[i] in ["\n", " ", " "]:
i = i + 1
if i == 0:
return codestr
if codestr[i-1] is " " or codestr[i-1] is " ":
return "if 1:\n" + codestr
return codestr
pythonparsecache = {}
shellparsecache = {}
def parser_cachefile(d):
cachedir = bb.data.getVar("PERSISTENT_DIR", d, True) or bb.data.getVar("CACHE", d, True)
if cachedir in [None, '']:
return None
bb.utils.mkdirhier(cachedir)
cachefile = os.path.join(cachedir, "bb_codeparser.dat")
bb.msg.debug(1, bb.msg.domain.Cache, "Using cache in '%s' for codeparser cache" % cachefile)
return cachefile
def parser_cache_init(d):
cachefile = parser_cachefile(d)
if not cachefile:
return
try:
p = pickle.Unpickler(file(cachefile, "rb"))
data, version = p.load()
except:
return
if version != PARSERCACHE_VERSION:
return
bb.codeparser.pythonparsecache = data[0]
bb.codeparser.shellparsecache = data[1]
def parser_cache_save(d):
cachefile = parser_cachefile(d)
if not cachefile:
return
p = pickle.Pickler(file(cachefile, "wb"), -1)
p.dump([[bb.codeparser.pythonparsecache, bb.codeparser.shellparsecache], PARSERCACHE_VERSION])
class PythonParser():
class ValueVisitor():
"""Visitor to traverse a python abstract syntax tree and obtain
the variables referenced via bitbake metadata APIs, and the external
functions called.
"""
getvars = ("d.getVar", "bb.data.getVar", "data.getVar")
expands = ("d.expand", "bb.data.expand", "data.expand")
execs = ("bb.build.exec_func", "bb.build.exec_task")
@classmethod
def _compare_name(cls, strparts, node):
"""Given a sequence of strings representing a python name,
where the last component is the actual Name and the prior
elements are Attribute nodes, determine if the supplied node
matches.
"""
if not strparts:
return True
current, rest = strparts[0], strparts[1:]
if isinstance(node, ast.Attribute):
if current == node.attr:
return cls._compare_name(rest, node.value)
elif isinstance(node, ast.Name):
if current == node.id:
return True
return False
@classmethod
def compare_name(cls, value, node):
"""Convenience function for the _compare_node method, which
can accept a string (which is split by '.' for you), or an
iterable of strings, in which case it checks to see if any of
them match, similar to isinstance.
"""
if isinstance(value, basestring):
return cls._compare_name(tuple(reversed(value.split("."))),
node)
else:
return any(cls.compare_name(item, node) for item in value)
def __init__(self, value):
self.var_references = set()
self.var_execs = set()
self.direct_func_calls = set()
self.var_expands = set()
self.value = value
@classmethod
def warn(cls, func, arg):
"""Warn about calls of bitbake APIs which pass a non-literal
argument for the variable name, as we're not able to track such
a reference.
"""
try:
funcstr = codegen.to_source(func)
argstr = codegen.to_source(arg)
except TypeError:
msg.debug(2, None, "Failed to convert function and argument to source form")
else:
msg.debug(1, None, "Warning: in call to '%s', argument '%s' is not a literal" %
(funcstr, argstr))
def visit_Call(self, node):
if self.compare_name(self.getvars, node.func):
if isinstance(node.args[0], ast.Str):
self.var_references.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif self.compare_name(self.expands, node.func):
if isinstance(node.args[0], ast.Str):
self.warn(node.func, node.args[0])
self.var_expands.update(node.args[0].s)
elif isinstance(node.args[0], ast.Call) and \
self.compare_name(self.getvars, node.args[0].func):
pass
else:
self.warn(node.func, node.args[0])
elif self.compare_name(self.execs, node.func):
if isinstance(node.args[0], ast.Str):
self.var_execs.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif isinstance(node.func, ast.Name):
self.direct_func_calls.add(node.func.id)
elif isinstance(node.func, ast.Attribute):
# We must have a qualified name. Therefore we need
# to walk the chain of 'Attribute' nodes to determine
# the qualification.
attr_node = node.func.value
identifier = node.func.attr
while isinstance(attr_node, ast.Attribute):
identifier = attr_node.attr + "." + identifier
attr_node = attr_node.value
if isinstance(attr_node, ast.Name):
identifier = attr_node.id + "." + identifier
self.direct_func_calls.add(identifier)
def __init__(self):
#self.funcdefs = set()
self.execs = set()
#self.external_cmds = set()
self.references = set()
def parse_python(self, node):
h = hash(str(node))
if h in pythonparsecache:
self.references = pythonparsecache[h]["refs"]
self.execs = pythonparsecache[h]["execs"]
return
code = compile(check_indent(str(node)), "<string>", "exec",
ast.PyCF_ONLY_AST)
visitor = self.ValueVisitor(code)
for n in ast.walk(code):
if n.__class__.__name__ == "Call":
visitor.visit_Call(n)
self.references.update(visitor.var_references)
self.references.update(visitor.var_execs)
self.execs = visitor.direct_func_calls
pythonparsecache[h] = {}
pythonparsecache[h]["refs"] = self.references
pythonparsecache[h]["execs"] = self.execs
class ShellParser():
def __init__(self):
self.funcdefs = set()
self.allexecs = set()
self.execs = set()
def parse_shell(self, value):
"""Parse the supplied shell code in a string, returning the external
commands it executes.
"""
h = hash(str(value))
if h in shellparsecache:
self.execs = shellparsecache[h]["execs"]
return self.execs
try:
tokens, _ = pyshyacc.parse(value, eof=True, debug=False)
except pyshlex.NeedMore:
raise ShellSyntaxError("Unexpected EOF")
for token in tokens:
self.process_tokens(token)
self.execs = set(cmd for cmd in self.allexecs if cmd not in self.funcdefs)
shellparsecache[h] = {}
shellparsecache[h]["execs"] = self.execs
return self.execs
def process_tokens(self, tokens):
"""Process a supplied portion of the syntax tree as returned by
pyshyacc.parse.
"""
def function_definition(value):
self.funcdefs.add(value.name)
return [value.body], None
def case_clause(value):
# Element 0 of each item in the case is the list of patterns, and
# Element 1 of each item in the case is the list of commands to be
# executed when that pattern matches.
words = chain(*[item[0] for item in value.items])
cmds = chain(*[item[1] for item in value.items])
return cmds, words
def if_clause(value):
main = chain(value.cond, value.if_cmds)
rest = value.else_cmds
if isinstance(rest, tuple) and rest[0] == "elif":
return chain(main, if_clause(rest[1]))
else:
return chain(main, rest)
def simple_command(value):
return None, chain(value.words, (assign[1] for assign in value.assigns))
token_handlers = {
"and_or": lambda x: ((x.left, x.right), None),
"async": lambda x: ([x], None),
"brace_group": lambda x: (x.cmds, None),
"for_clause": lambda x: (x.cmds, x.items),
"function_definition": function_definition,
"if_clause": lambda x: (if_clause(x), None),
"pipeline": lambda x: (x.commands, None),
"redirect_list": lambda x: ([x.cmd], None),
"subshell": lambda x: (x.cmds, None),
"while_clause": lambda x: (chain(x.condition, x.cmds), None),
"until_clause": lambda x: (chain(x.condition, x.cmds), None),
"simple_command": simple_command,
"case_clause": case_clause,
}
for token in tokens:
name, value = token
try:
more_tokens, words = token_handlers[name](value)
except KeyError:
raise NotImplementedError("Unsupported token type " + name)
if more_tokens:
self.process_tokens(more_tokens)
if words:
self.process_words(words)
def process_words(self, words):
"""Process a set of 'words' in pyshyacc parlance, which includes
extraction of executed commands from $() blocks, as well as grabbing
the command name argument.
"""
words = list(words)
for word in list(words):
wtree = pyshlex.make_wordtree(word[1])
for part in wtree:
if not isinstance(part, list):
continue
if part[0] in ('`', '$('):
command = pyshlex.wordtree_as_string(part[1:-1])
self.parse_shell(command)
if word[0] in ("cmd_name", "cmd_word"):
if word in words:
words.remove(word)
usetoken = False
for word in words:
if word[0] in ("cmd_name", "cmd_word") or \
(usetoken and word[0] == "TOKEN"):
if "=" in word[1]:
usetoken = True
continue
cmd = word[1]
if cmd.startswith("$"):
msg.debug(1, None, "Warning: execution of non-literal command '%s'" % cmd)
elif cmd == "eval":
command = " ".join(word for _, word in words[1:])
self.parse_shell(command)
else:
self.allexecs.add(cmd)
break

View File

@@ -20,7 +20,7 @@ Provide an interface to interact with the bitbake server through 'commands'
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
The bitbake server takes 'commands' from its UI/commandline.
The bitbake server takes 'commands' from its UI/commandline.
Commands are either synchronous or asynchronous.
Async commands return data to the client in the form of events.
Sync commands must only return data through the function return value
@@ -28,7 +28,9 @@ and must not trigger events, directly or indirectly.
Commands are queued in a CommandQueue
"""
import bb
import bb.event
import bb.cooker
import bb.data
async_cmds = {}
sync_cmds = {}
@@ -57,11 +59,10 @@ class Command:
async_cmds[command] = (method)
def runCommand(self, commandline):
bb.debug("Running command %s" % commandline)
try:
command = commandline.pop(0)
if command in CommandsSync.__dict__:
# Can run synchronous commands straight away
# Can run synchronous commands straight away
return getattr(CommandsSync, command)(self.cmds_sync, self, commandline)
if self.currentAsyncCommand is not None:
return "Busy (%s in progress)" % self.currentAsyncCommand[0]
@@ -88,16 +89,26 @@ class Command:
return False
else:
return False
except:
except KeyboardInterrupt as exc:
self.finishAsyncCommand("Interrupted")
return False
except SystemExit as exc:
arg = exc.args[0]
if isinstance(arg, basestring):
self.finishAsyncCommand(arg)
else:
self.finishAsyncCommand("Exited with %s" % arg)
return False
except Exception:
import traceback
self.finishAsyncCommand(traceback.format_exc())
return False
def finishAsyncCommand(self, error = None):
if error:
bb.event.fire(bb.command.CookerCommandFailed(self.cooker.configuration.event_data, error))
bb.event.fire(CookerCommandFailed(error), self.cooker.configuration.event_data)
else:
bb.event.fire(bb.command.CookerCommandCompleted(self.cooker.configuration.event_data))
bb.event.fire(CookerCommandCompleted(), self.cooker.configuration.event_data)
self.currentAsyncCommand = None
@@ -248,25 +259,22 @@ class CookerCommandCompleted(bb.event.Event):
"""
Cooker command completed
"""
def __init__(self, data):
bb.event.Event.__init__(self, data)
def __init__(self):
bb.event.Event.__init__(self)
class CookerCommandFailed(bb.event.Event):
"""
Cooker command completed
"""
def __init__(self, data, error):
bb.event.Event.__init__(self, data)
def __init__(self, error):
bb.event.Event.__init__(self)
self.error = error
class CookerCommandSetExitCode(bb.event.Event):
"""
Set the exit code for a cooker command
"""
def __init__(self, data, exitcode):
bb.event.Event.__init__(self, data)
def __init__(self, exitcode):
bb.event.Event.__init__(self)
self.exitcode = int(exitcode)

File diff suppressed because it is too large Load Diff

190
bitbake/lib/bb/daemonize.py Normal file
View File

@@ -0,0 +1,190 @@
"""
Python Deamonizing helper
Configurable daemon behaviors:
1.) The current working directory set to the "/" directory.
2.) The current file creation mode mask set to 0.
3.) Close all open files (1024).
4.) Redirect standard I/O streams to "/dev/null".
A failed call to fork() now raises an exception.
References:
1) Advanced Programming in the Unix Environment: W. Richard Stevens
2) Unix Programming Frequently Asked Questions:
http://www.erlenstar.demon.co.uk/unix/faq_toc.html
Modified to allow a function to be daemonized and return for
bitbake use by Richard Purdie
"""
__author__ = "Chad J. Schroeder"
__copyright__ = "Copyright (C) 2005 Chad J. Schroeder"
__version__ = "0.2"
# Standard Python modules.
import os # Miscellaneous OS interfaces.
import sys # System-specific parameters and functions.
# Default daemon parameters.
# File mode creation mask of the daemon.
# For BitBake's children, we do want to inherit the parent umask.
UMASK = None
# Default maximum for the number of available file descriptors.
MAXFD = 1024
# The standard I/O file descriptors are redirected to /dev/null by default.
if (hasattr(os, "devnull")):
REDIRECT_TO = os.devnull
else:
REDIRECT_TO = "/dev/null"
def createDaemon(function, logfile):
"""
Detach a process from the controlling terminal and run it in the
background as a daemon, returning control to the caller.
"""
try:
# Fork a child process so the parent can exit. This returns control to
# the command-line or shell. It also guarantees that the child will not
# be a process group leader, since the child receives a new process ID
# and inherits the parent's process group ID. This step is required
# to insure that the next call to os.setsid is successful.
pid = os.fork()
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
if (pid == 0): # The first child.
# To become the session leader of this new session and the process group
# leader of the new process group, we call os.setsid(). The process is
# also guaranteed not to have a controlling terminal.
os.setsid()
# Is ignoring SIGHUP necessary?
#
# It's often suggested that the SIGHUP signal should be ignored before
# the second fork to avoid premature termination of the process. The
# reason is that when the first child terminates, all processes, e.g.
# the second child, in the orphaned group will be sent a SIGHUP.
#
# "However, as part of the session management system, there are exactly
# two cases where SIGHUP is sent on the death of a process:
#
# 1) When the process that dies is the session leader of a session that
# is attached to a terminal device, SIGHUP is sent to all processes
# in the foreground process group of that terminal device.
# 2) When the death of a process causes a process group to become
# orphaned, and one or more processes in the orphaned group are
# stopped, then SIGHUP and SIGCONT are sent to all members of the
# orphaned group." [2]
#
# The first case can be ignored since the child is guaranteed not to have
# a controlling terminal. The second case isn't so easy to dismiss.
# The process group is orphaned when the first child terminates and
# POSIX.1 requires that every STOPPED process in an orphaned process
# group be sent a SIGHUP signal followed by a SIGCONT signal. Since the
# second child is not STOPPED though, we can safely forego ignoring the
# SIGHUP signal. In any case, there are no ill-effects if it is ignored.
#
# import signal # Set handlers for asynchronous events.
# signal.signal(signal.SIGHUP, signal.SIG_IGN)
try:
# Fork a second child and exit immediately to prevent zombies. This
# causes the second child process to be orphaned, making the init
# process responsible for its cleanup. And, since the first child is
# a session leader without a controlling terminal, it's possible for
# it to acquire one by opening a terminal in the future (System V-
# based systems). This second fork guarantees that the child is no
# longer a session leader, preventing the daemon from ever acquiring
# a controlling terminal.
pid = os.fork() # Fork a second child.
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
if (pid == 0): # The second child.
# We probably don't want the file mode creation mask inherited from
# the parent, so we give the child complete control over permissions.
if UMASK is not None:
os.umask(UMASK)
else:
# Parent (the first child) of the second child.
os._exit(0)
else:
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors. Using exit() may cause all stdio
# streams to be flushed twice and any temporary files may be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
return
# Close all open file descriptors. This prevents the child from keeping
# open any file descriptors inherited from the parent. There is a variety
# of methods to accomplish this task. Three are listed below.
#
# Try the system configuration variable, SC_OPEN_MAX, to obtain the maximum
# number of open file descriptors to close. If it doesn't exists, use
# the default value (configurable).
#
# try:
# maxfd = os.sysconf("SC_OPEN_MAX")
# except (AttributeError, ValueError):
# maxfd = MAXFD
#
# OR
#
# if (os.sysconf_names.has_key("SC_OPEN_MAX")):
# maxfd = os.sysconf("SC_OPEN_MAX")
# else:
# maxfd = MAXFD
#
# OR
#
# Use the getrlimit method to retrieve the maximum file descriptor number
# that can be opened by this process. If there is not limit on the
# resource, use the default value.
#
import resource # Resource usage information.
maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
if (maxfd == resource.RLIM_INFINITY):
maxfd = MAXFD
# Iterate through and close all file descriptors.
# for fd in range(0, maxfd):
# try:
# os.close(fd)
# except OSError: # ERROR, fd wasn't open to begin with (ignored)
# pass
# Redirect the standard I/O file descriptors to the specified file. Since
# the daemon has no controlling terminal, most daemons redirect stdin,
# stdout, and stderr to /dev/null. This is done to prevent side-effects
# from reads and writes to the standard I/O file descriptors.
# This call to open is guaranteed to return the lowest file descriptor,
# which will be 0 (stdin), since it was closed above.
# os.open(REDIRECT_TO, os.O_RDWR) # standard input (0)
# Duplicate standard input to standard output and standard error.
# os.dup2(0, 1) # standard output (1)
# os.dup2(0, 2) # standard error (2)
si = file('/dev/null', 'r')
so = file(logfile, 'w')
se = so
# Replace those fds with our own
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
function()
os._exit(0)

View File

@@ -11,7 +11,7 @@ operations. At night the cookie monster came by and
suggested 'give me cookies on setting the variables and
things will work out'. Taking this suggestion into account
applying the skills from the not yet passed 'Entwurf und
Analyse von Algorithmen' lecture and the cookie
Analyse von Algorithmen' lecture and the cookie
monster seems to be right. We will track setVar more carefully
to have faster update_data and expandKeys operations.
@@ -37,36 +37,41 @@ the speed is more critical here.
#
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
import sys, os, re, time, types
import sys, os, re
if sys.argv[0][-5:] == "pydoc":
path = os.path.dirname(os.path.dirname(sys.argv[1]))
else:
path = os.path.dirname(os.path.dirname(sys.argv[0]))
sys.path.insert(0,path)
sys.path.insert(0, path)
from itertools import groupby
from bb import data_smart
from bb import codeparser
import bb
_dict_type = data_smart.DataSmart
def init():
"""Return a new object representing the Bitbake data"""
return _dict_type()
def init_db(parent = None):
"""Return a new object representing the Bitbake data,
optionally based on an existing object"""
if parent:
return parent.createCopy()
else:
return _dict_type()
def createCopy(source):
"""Link the source set to the destination
If one does not find the value in the destination set,
search will go on to the source set to get the value.
Value from source are copy-on-write. i.e. any try to
modify one of them will end up putting the modified value
in the destination set.
"""
return source.createCopy()
"""Link the source set to the destination
If one does not find the value in the destination set,
search will go on to the source set to get the value.
Value from source are copy-on-write. i.e. any try to
modify one of them will end up putting the modified value
in the destination set.
"""
return source.createCopy()
def initVar(var, d):
"""Non-destructive var init for data structure"""
@@ -74,91 +79,34 @@ def initVar(var, d):
def setVar(var, value, d):
"""Set a variable to a given value
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> print getVar('TEST', d)
testcontents
"""
d.setVar(var,value)
"""Set a variable to a given value"""
d.setVar(var, value)
def getVar(var, d, exp = 0):
"""Gets the value of a variable
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> print getVar('TEST', d)
testcontents
"""
return d.getVar(var,exp)
"""Gets the value of a variable"""
return d.getVar(var, exp)
def renameVar(key, newkey, d):
"""Renames a variable from key to newkey
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> renameVar('TEST', 'TEST2', d)
>>> print getVar('TEST2', d)
testcontents
"""
"""Renames a variable from key to newkey"""
d.renameVar(key, newkey)
def delVar(var, d):
"""Removes a variable from the data set
Example:
>>> d = init()
>>> setVar('TEST', 'testcontents', d)
>>> print getVar('TEST', d)
testcontents
>>> delVar('TEST', d)
>>> print getVar('TEST', d)
None
"""
"""Removes a variable from the data set"""
d.delVar(var)
def setVarFlag(var, flag, flagvalue, d):
"""Set a flag for a given variable to a given value
Example:
>>> d = init()
>>> setVarFlag('TEST', 'python', 1, d)
>>> print getVarFlag('TEST', 'python', d)
1
"""
d.setVarFlag(var,flag,flagvalue)
"""Set a flag for a given variable to a given value"""
d.setVarFlag(var, flag, flagvalue)
def getVarFlag(var, flag, d):
"""Gets given flag from given var
Example:
>>> d = init()
>>> setVarFlag('TEST', 'python', 1, d)
>>> print getVarFlag('TEST', 'python', d)
1
"""
return d.getVarFlag(var,flag)
"""Gets given flag from given var"""
return d.getVarFlag(var, flag)
def delVarFlag(var, flag, d):
"""Removes a given flag from the variable's flags
Example:
>>> d = init()
>>> setVarFlag('TEST', 'testflag', 1, d)
>>> print getVarFlag('TEST', 'testflag', d)
1
>>> delVarFlag('TEST', 'testflag', d)
>>> print getVarFlag('TEST', 'testflag', d)
None
"""
d.delVarFlag(var,flag)
"""Removes a given flag from the variable's flags"""
d.delVarFlag(var, flag)
def setVarFlags(var, flags, d):
"""Set the flags for a given variable
@@ -167,115 +115,27 @@ def setVarFlags(var, flags, d):
setVarFlags will not clear previous
flags. Think of this method as
addVarFlags
Example:
>>> d = init()
>>> myflags = {}
>>> myflags['test'] = 'blah'
>>> setVarFlags('TEST', myflags, d)
>>> print getVarFlag('TEST', 'test', d)
blah
"""
d.setVarFlags(var,flags)
d.setVarFlags(var, flags)
def getVarFlags(var, d):
"""Gets a variable's flags
Example:
>>> d = init()
>>> setVarFlag('TEST', 'test', 'blah', d)
>>> print getVarFlags('TEST', d)['test']
blah
"""
"""Gets a variable's flags"""
return d.getVarFlags(var)
def delVarFlags(var, d):
"""Removes a variable's flags
Example:
>>> data = init()
>>> setVarFlag('TEST', 'testflag', 1, data)
>>> print getVarFlag('TEST', 'testflag', data)
1
>>> delVarFlags('TEST', data)
>>> print getVarFlags('TEST', data)
None
"""
"""Removes a variable's flags"""
d.delVarFlags(var)
def keys(d):
"""Return a list of keys in d
Example:
>>> d = init()
>>> setVar('TEST', 1, d)
>>> setVar('MOO' , 2, d)
>>> setVarFlag('TEST', 'test', 1, d)
>>> keys(d)
['TEST', 'MOO']
"""
"""Return a list of keys in d"""
return d.keys()
def getData(d):
"""Returns the data object used"""
return d
def setData(newData, d):
"""Sets the data object to the supplied value"""
d = newData
##
## Cookie Monsters' query functions
##
def _get_override_vars(d, override):
"""
Internal!!!
Get the Names of Variables that have a specific
override. This function returns a iterable
Set or an empty list
"""
return []
def _get_var_flags_triple(d):
"""
Internal!!!
"""
return []
__expand_var_regexp__ = re.compile(r"\${[^{}]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
def expand(s, d, varname = None):
"""Variable expansion using the data store.
Example:
Standard expansion:
>>> d = init()
>>> setVar('A', 'sshd', d)
>>> print expand('/usr/bin/${A}', d)
/usr/bin/sshd
Python expansion:
>>> d = init()
>>> print expand('result: ${@37 * 72}', d)
result: 2664
Shell expansion:
>>> d = init()
>>> print expand('${TARGET_MOO}', d)
${TARGET_MOO}
>>> setVar('TARGET_MOO', 'yupp', d)
>>> print expand('${TARGET_MOO}',d)
yupp
>>> setVar('SRC_URI', 'http://somebug.${TARGET_MOO}', d)
>>> delVar('TARGET_MOO', d)
>>> print expand('${SRC_URI}', d)
http://somebug.${TARGET_MOO}
"""
"""Variable expansion using the data store"""
return d.expand(s, varname)
def expandKeys(alterdata, readdata = None):
@@ -292,38 +152,13 @@ def expandKeys(alterdata, readdata = None):
continue
todolist[key] = ekey
# These two for loops are split for performance to maximise the
# These two for loops are split for performance to maximise the
# usefulness of the expand cache
for key in todolist:
ekey = todolist[key]
renameVar(key, ekey, alterdata)
def expandData(alterdata, readdata = None):
"""For each variable in alterdata, expand it, and update the var contents.
Replacements use data from readdata.
Example:
>>> a=init()
>>> b=init()
>>> setVar("dlmsg", "dl_dir is ${DL_DIR}", a)
>>> setVar("DL_DIR", "/path/to/whatever", b)
>>> expandData(a, b)
>>> print getVar("dlmsg", a)
dl_dir is /path/to/whatever
"""
if readdata == None:
readdata = alterdata
for key in keys(alterdata):
val = getVar(key, alterdata)
if type(val) is not types.StringType:
continue
expanded = expand(val, readdata)
# print "key is %s, val is %s, expanded is %s" % (key, val, expanded)
if val != expanded:
setVar(key, expanded, alterdata)
def inheritFromOS(d):
"""Inherit variables from the environment."""
for s in os.environ.keys():
@@ -348,21 +183,15 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
if all:
oval = getVar(var, d, 0)
val = getVar(var, d, 1)
except KeyboardInterrupt:
except (KeyboardInterrupt, bb.build.FuncFailed):
raise
except:
excname = str(sys.exc_info()[0])
if excname == "bb.build.FuncFailed":
raise
o.write('# expansion of %s threw %s\n' % (var, excname))
except Exception, exc:
o.write('# expansion of %s threw %s: %s\n' % (var, exc.__class__.__name__, str(exc)))
return 0
if all:
o.write('# %s=%s\n' % (var, oval))
if type(val) is not types.StringType:
return 0
if (var.find("-") != -1 or var.find(".") != -1 or var.find('{') != -1 or var.find('}') != -1 or var.find('+') != -1) and not all:
return 0
@@ -372,10 +201,11 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
o.write('unset %s\n' % varExpanded)
return 1
val.rstrip()
if not val:
return 0
val = str(val)
if func:
# NOTE: should probably check for unbalanced {} within the var
o.write("%s() {\n%s\n}\n" % (varExpanded, val))
@@ -390,173 +220,111 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
o.write('%s="%s"\n' % (varExpanded, alter))
return 1
def emit_env(o=sys.__stdout__, d = init(), all=False):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
env = keys(d)
isfunc = lambda key: bool(d.getVarFlag(key, "func"))
keys = sorted((key for key in d.keys() if not key.startswith("__")), key=isfunc)
grouped = groupby(keys, isfunc)
for isfunc, keys in grouped:
for key in keys:
emit_var(key, o, d, all and not isfunc) and o.write('\n')
for e in env:
if getVarFlag(e, "func", d):
continue
emit_var(e, o, d, all) and o.write('\n')
def export_vars(d):
keys = (key for key in d.keys() if d.getVarFlag(key, "export"))
ret = {}
for k in keys:
try:
v = d.getVar(k, True)
if v:
ret[k] = v
except (KeyboardInterrupt, bb.build.FuncFailed):
raise
except Exception, exc:
pass
return ret
for e in env:
if not getVarFlag(e, "func", d):
continue
emit_var(e, o, d) and o.write('\n')
def emit_func(func, o=sys.__stdout__, d = init()):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
keys = (key for key in d.keys() if not key.startswith("__") and not d.getVarFlag(key, "func"))
for key in keys:
emit_var(key, o, d, False) and o.write('\n')
emit_var(func, o, d, False) and o.write('\n')
newdeps = bb.codeparser.ShellParser().parse_shell(d.getVar(func, True))
seen = set()
while newdeps:
deps = newdeps
seen |= deps
newdeps = set()
for dep in deps:
if bb.data.getVarFlag(dep, "func", d):
emit_var(dep, o, d, False) and o.write('\n')
newdeps |= bb.codeparser.ShellParser().parse_shell(d.getVar(dep, True))
newdeps -= seen
def update_data(d):
"""Modifies the environment vars according to local overrides and commands.
Examples:
Appending to a variable:
>>> d = init()
>>> setVar('TEST', 'this is a', d)
>>> setVar('TEST_append', ' test', d)
>>> setVar('TEST_append', ' of the emergency broadcast system.', d)
>>> update_data(d)
>>> print getVar('TEST', d)
this is a test of the emergency broadcast system.
"""Performs final steps upon the datastore, including application of overrides"""
d.finalize()
Prepending to a variable:
>>> setVar('TEST', 'virtual/libc', d)
>>> setVar('TEST_prepend', 'virtual/tmake ', d)
>>> setVar('TEST_prepend', 'virtual/patcher ', d)
>>> update_data(d)
>>> print getVar('TEST', d)
virtual/patcher virtual/tmake virtual/libc
def build_dependencies(key, keys, shelldeps, d):
deps = set()
try:
if d.getVarFlag(key, "func"):
if d.getVarFlag(key, "python"):
parsedvar = d.expandWithRefs(d.getVar(key, False), key)
parser = bb.codeparser.PythonParser()
parser.parse_python(parsedvar.value)
deps = deps | parser.references
else:
parsedvar = d.expandWithRefs(d.getVar(key, False), key)
parser = bb.codeparser.ShellParser()
parser.parse_shell(parsedvar.value)
deps = deps | shelldeps
deps = deps | parsedvar.references
deps = deps | (keys & parser.execs) | (keys & parsedvar.execs)
else:
parser = d.expandWithRefs(d.getVar(key, False), key)
deps |= parser.references
deps = deps | (keys & parser.execs)
deps |= set((d.getVarFlag(key, "vardeps") or "").split())
except:
bb.note("Error expanding variable %s" % key)
raise
return deps
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
Overrides:
>>> setVar('TEST_arm', 'target', d)
>>> setVar('TEST_ramses', 'machine', d)
>>> setVar('TEST_local', 'local', d)
>>> setVar('OVERRIDES', 'arm', d)
def generate_dependencies(d):
>>> setVar('TEST', 'original', d)
>>> update_data(d)
>>> print getVar('TEST', d)
target
keys = set(key for key in d.keys() if not key.startswith("__"))
shelldeps = set(key for key in keys if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport"))
>>> setVar('OVERRIDES', 'arm:ramses:local', d)
>>> setVar('TEST', 'original', d)
>>> update_data(d)
>>> print getVar('TEST', d)
local
deps = {}
taskdeps = {}
CopyMonster:
>>> e = d.createCopy()
>>> setVar('TEST_foo', 'foo', e)
>>> update_data(e)
>>> print getVar('TEST', e)
local
>>> setVar('OVERRIDES', 'arm:ramses:local:foo', e)
>>> update_data(e)
>>> print getVar('TEST', e)
foo
>>> f = d.createCopy()
>>> setVar('TEST_moo', 'something', f)
>>> setVar('OVERRIDES', 'moo:arm:ramses:local:foo', e)
>>> update_data(e)
>>> print getVar('TEST', e)
foo
>>> h = init()
>>> setVar('SRC_URI', 'file://append.foo;patch=1 ', h)
>>> g = h.createCopy()
>>> setVar('SRC_URI_append_arm', 'file://other.foo;patch=1', g)
>>> setVar('OVERRIDES', 'arm:moo', g)
>>> update_data(g)
>>> print getVar('SRC_URI', g)
file://append.foo;patch=1 file://other.foo;patch=1
"""
bb.msg.debug(2, bb.msg.domain.Data, "update_data()")
# now ask the cookie monster for help
#print "Cookie Monster"
#print "Append/Prepend %s" % d._special_values
#print "Overrides %s" % d._seen_overrides
overrides = (getVar('OVERRIDES', d, 1) or "").split(':') or []
#
# Well let us see what breaks here. We used to iterate
# over each variable and apply the override and then
# do the line expanding.
# If we have bad luck - which we will have - the keys
# where in some order that is so important for this
# method which we don't have anymore.
# Anyway we will fix that and write test cases this
# time.
#
# First we apply all overrides
# Then we will handle _append and _prepend
#
for o in overrides:
# calculate '_'+override
l = len(o)+1
# see if one should even try
if not d._seen_overrides.has_key(o):
continue
vars = d._seen_overrides[o]
for var in vars:
name = var[:-l]
try:
d[name] = d[var]
except:
bb.msg.note(1, bb.msg.domain.Data, "Untracked delVar")
# now on to the appends and prepends
if d._special_values.has_key('_append'):
appends = d._special_values['_append'] or []
for append in appends:
for (a, o) in getVarFlag(append, '_append', d) or []:
# maybe the OVERRIDE was not yet added so keep the append
if (o and o in overrides) or not o:
delVarFlag(append, '_append', d)
if o and not o in overrides:
continue
sval = getVar(append,d) or ""
sval+=a
setVar(append, sval, d)
if d._special_values.has_key('_prepend'):
prepends = d._special_values['_prepend'] or []
for prepend in prepends:
for (a, o) in getVarFlag(prepend, '_prepend', d) or []:
# maybe the OVERRIDE was not yet added so keep the prepend
if (o and o in overrides) or not o:
delVarFlag(prepend, '_prepend', d)
if o and not o in overrides:
continue
sval = a + (getVar(prepend,d) or "")
setVar(prepend, sval, d)
tasklist = bb.data.getVar('__BBTASKS', d) or []
for task in tasklist:
deps[task] = build_dependencies(task, keys, shelldeps, d)
newdeps = deps[task]
seen = set()
while newdeps:
nextdeps = newdeps
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
if dep not in deps:
deps[dep] = build_dependencies(dep, keys, shelldeps, d)
newdeps |= deps[dep]
newdeps -= seen
taskdeps[task] = seen | newdeps
#print "For %s: %s" % (task, str(taskdeps[task]))
return taskdeps, deps
def inherits_class(klass, d):
val = getVar('__inherit_cache', d) or []
if os.path.join('classes', '%s.bbclass' % klass) in val:
return True
return False
def _test():
"""Start a doctest run on this module"""
import doctest
import bb
from bb import data
bb.msg.set_debug_level(0)
doctest.testmod(data)
if __name__ == "__main__":
_test()

View File

@@ -28,18 +28,50 @@ BitBake build tools.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import copy, os, re, sys, time, types
import copy, re, sys
import bb
from bb import utils, methodpool
from COW import COWDictBase
from new import classobj
from bb import utils
from bb.COW import COWDictBase
__setvar_keyword__ = ["_append","_prepend"]
__setvar_keyword__ = ["_append", "_prepend"]
__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend)(_(?P<add>.*))?')
__expand_var_regexp__ = re.compile(r"\${[^{}]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
class VariableParse:
def __init__(self, varname, d, val = None):
self.varname = varname
self.d = d
self.value = val
self.references = set()
self.execs = set()
def var_sub(self, match):
key = match.group()[2:-1]
if self.varname and key:
if self.varname == key:
raise Exception("variable %s references itself!" % self.varname)
var = self.d.getVar(key, 1)
if var is not None:
self.references.add(key)
return var
else:
return match.group()
def python_sub(self, match):
code = match.group()[3:-1]
codeobj = compile(code.strip(), self.varname or "<expansion>", "eval")
parser = bb.codeparser.PythonParser()
parser.parse_python(code)
self.references |= parser.references
self.execs |= parser.execs
value = utils.better_eval(codeobj, {"d": self.d})
return str(value)
class DataSmart:
def __init__(self, special = COWDictBase.copy(), seen = COWDictBase.copy() ):
@@ -51,68 +83,120 @@ class DataSmart:
self.expand_cache = {}
def expand(self,s, varname):
def var_sub(match):
key = match.group()[2:-1]
if varname and key:
if varname == key:
raise Exception("variable %s references itself!" % varname)
var = self.getVar(key, 1)
if var is not None:
return var
else:
return match.group()
def expandWithRefs(self, s, varname):
def python_sub(match):
import bb
code = match.group()[3:-1]
locals()['d'] = self
s = eval(code)
if type(s) == types.IntType: s = str(s)
return s
if type(s) is not types.StringType: # sanity check
return s
if not isinstance(s, basestring): # sanity check
return VariableParse(varname, self, s)
if varname and varname in self.expand_cache:
return self.expand_cache[varname]
varparse = VariableParse(varname, self)
while s.find('${') != -1:
olds = s
try:
s = __expand_var_regexp__.sub(var_sub, s)
s = __expand_python_regexp__.sub(python_sub, s)
if s == olds: break
if type(s) is not types.StringType: # sanity check
bb.msg.error(bb.msg.domain.Data, 'expansion of %s returned non-string %s' % (olds, s))
s = __expand_var_regexp__.sub(varparse.var_sub, s)
s = __expand_python_regexp__.sub(varparse.python_sub, s)
if s == olds:
break
except KeyboardInterrupt:
raise
except:
bb.msg.note(1, bb.msg.domain.Data, "%s:%s while evaluating:\n%s" % (sys.exc_info()[0], sys.exc_info()[1], s))
raise
if varname:
self.expand_cache[varname] = s
varparse.value = s
return s
if varname:
self.expand_cache[varname] = varparse
return varparse
def expand(self, s, varname):
return self.expandWithRefs(s, varname).value
def finalize(self):
"""Performs final steps upon the datastore, including application of overrides"""
overrides = (self.getVar("OVERRIDES", True) or "").split(":") or []
#
# Well let us see what breaks here. We used to iterate
# over each variable and apply the override and then
# do the line expanding.
# If we have bad luck - which we will have - the keys
# where in some order that is so important for this
# method which we don't have anymore.
# Anyway we will fix that and write test cases this
# time.
#
# First we apply all overrides
# Then we will handle _append and _prepend
#
for o in overrides:
# calculate '_'+override
l = len(o) + 1
# see if one should even try
if o not in self._seen_overrides:
continue
vars = self._seen_overrides[o]
for var in vars:
name = var[:-l]
try:
self[name] = self[var]
except Exception:
bb.msg.note(1, bb.msg.domain.Data, "Untracked delVar")
# now on to the appends and prepends
if "_append" in self._special_values:
appends = self._special_values["_append"] or []
for append in appends:
for (a, o) in self.getVarFlag(append, "_append") or []:
# maybe the OVERRIDE was not yet added so keep the append
if (o and o in overrides) or not o:
self.delVarFlag(append, "_append")
if o and not o in overrides:
continue
sval = self.getVar(append, False) or ""
sval += a
self.setVar(append, sval)
if "_prepend" in self._special_values:
prepends = self._special_values["_prepend"] or []
for prepend in prepends:
for (a, o) in self.getVarFlag(prepend, "_prepend") or []:
# maybe the OVERRIDE was not yet added so keep the prepend
if (o and o in overrides) or not o:
self.delVarFlag(prepend, "_prepend")
if o and not o in overrides:
continue
sval = a + (self.getVar(prepend, False) or "")
self.setVar(prepend, sval)
def initVar(self, var):
self.expand_cache = {}
if not var in self.dict:
self.dict[var] = {}
def _findVar(self,var):
_dest = self.dict
def _findVar(self, var):
dest = self.dict
while dest:
if var in dest:
return dest[var]
while (_dest and var not in _dest):
if not "_data" in _dest:
_dest = None
if "_data" not in dest:
break
_dest = _dest["_data"]
if _dest and var in _dest:
return _dest[var]
return None
dest = dest["_data"]
def _makeShadowCopy(self, var):
if var in self.dict:
@@ -125,7 +209,7 @@ class DataSmart:
else:
self.initVar(var)
def setVar(self,var,value):
def setVar(self, var, value):
self.expand_cache = {}
match = __setvar_regexp__.match(var)
if match and match.group("keyword") in __setvar_keyword__:
@@ -140,7 +224,7 @@ class DataSmart:
# pay the cookie monster
try:
self._special_values[keyword].add( base )
except:
except KeyError:
self._special_values[keyword] = set()
self._special_values[keyword].add( base )
@@ -152,59 +236,60 @@ class DataSmart:
# more cookies for the cookie monster
if '_' in var:
override = var[var.rfind('_')+1:]
if not self._seen_overrides.has_key(override):
if override not in self._seen_overrides:
self._seen_overrides[override] = set()
self._seen_overrides[override].add( var )
# setting var
self.dict[var]["content"] = value
def getVar(self,var,exp):
value = self.getVarFlag(var,"content")
def getVar(self, var, exp):
value = self.getVarFlag(var, "content")
if exp and value:
return self.expand(value,var)
return self.expand(value, var)
return value
def renameVar(self, key, newkey):
"""
Rename the variable key to newkey
Rename the variable key to newkey
"""
val = self.getVar(key, 0)
if val is None:
return
self.setVar(newkey, val)
if val is not None:
self.setVar(newkey, val)
for i in ('_append', '_prepend'):
src = self.getVarFlag(key, i)
if src is None:
continue
dest = self.getVarFlag(newkey, i) or []
src = self.getVarFlag(key, i) or []
dest.extend(src)
self.setVarFlag(newkey, i, dest)
if self._special_values.has_key(i) and key in self._special_values[i]:
if i in self._special_values and key in self._special_values[i]:
self._special_values[i].remove(key)
self._special_values[i].add(newkey)
self.delVar(key)
def delVar(self,var):
def delVar(self, var):
self.expand_cache = {}
self.dict[var] = {}
def setVarFlag(self,var,flag,flagvalue):
def setVarFlag(self, var, flag, flagvalue):
if not var in self.dict:
self._makeShadowCopy(var)
self.dict[var][flag] = flagvalue
def getVarFlag(self,var,flag):
def getVarFlag(self, var, flag):
local_var = self._findVar(var)
if local_var:
if flag in local_var:
return copy.copy(local_var[flag])
return None
def delVarFlag(self,var,flag):
def delVarFlag(self, var, flag):
local_var = self._findVar(var)
if not local_var:
return
@@ -214,21 +299,21 @@ class DataSmart:
if var in self.dict and flag in self.dict[var]:
del self.dict[var][flag]
def setVarFlags(self,var,flags):
def setVarFlags(self, var, flags):
if not var in self.dict:
self._makeShadowCopy(var)
for i in flags.keys():
for i in flags:
if i == "content":
continue
self.dict[var][i] = flags[i]
def getVarFlags(self,var):
def getVarFlags(self, var):
local_var = self._findVar(var)
flags = {}
if local_var:
for i in local_var.keys():
for i in local_var:
if i == "content":
continue
flags[i] = local_var[i]
@@ -238,7 +323,7 @@ class DataSmart:
return flags
def delVarFlags(self,var):
def delVarFlags(self, var):
if not var in self.dict:
self._makeShadowCopy(var)
@@ -268,21 +353,19 @@ class DataSmart:
def keys(self):
def _keys(d, mykey):
if "_data" in d:
_keys(d["_data"],mykey)
_keys(d["_data"], mykey)
for key in d.keys():
if key != "_data":
mykey[key] = None
keytab = {}
_keys(self.dict,keytab)
_keys(self.dict, keytab)
return keytab.keys()
def __getitem__(self,item):
def __getitem__(self, item):
#print "Warning deprecated"
return self.getVar(item, False)
def __setitem__(self,var,data):
def __setitem__(self, var, data):
#print "Warning deprecated"
self.setVar(var,data)
self.setVar(var, data)

View File

@@ -22,100 +22,130 @@ BitBake build tools.
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, re
import os, sys
import warnings
import bb.utils
import pickle
# This is the pid for which we should generate the event. This is set when
# the runqueue forks off.
worker_pid = 0
worker_pipe = None
useStdout = True
class Event:
"""Base class for events"""
type = "Event"
def __init__(self, d):
self._data = d
def getData(self):
return self._data
def setData(self, data):
self._data = data
data = property(getData, setData, None, "data property")
def __init__(self):
self.pid = worker_pid
NotHandled = 0
Handled = 1
Handled = 1
Registered = 10
AlreadyRegistered = 14
# Internal
_handlers = []
_handlers_dict = {}
_handlers = {}
_ui_handlers = {}
_ui_handler_seq = 0
def tmpHandler(event):
"""Default handler for code events"""
return NotHandled
# For compatibility
bb.utils._context["NotHandled"] = NotHandled
bb.utils._context["Handled"] = Handled
def defaultTmpHandler():
tmp = "def tmpHandler(e):\n\t\"\"\"heh\"\"\"\n\treturn NotHandled"
comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event.defaultTmpHandler")
return comp
def fire_class_handlers(event, d):
import bb.msg
if isinstance(event, bb.msg.MsgBase):
return
def fire(event):
"""Fire off an Event"""
for h in _handlers:
for handler in _handlers:
h = _handlers[handler]
event.data = d
if type(h).__name__ == "code":
exec(h)
if tmpHandler(event) == Handled:
return Handled
locals = {"e": event}
bb.utils.simple_exec(h, locals)
ret = bb.utils.better_eval("tmpHandler(e)", locals)
if ret is not None:
warnings.warn("Using Handled/NotHandled in event handlers is deprecated",
DeprecationWarning, stacklevel = 2)
else:
if h(event) == Handled:
return Handled
return NotHandled
h(event)
del event.data
def fire_ui_handlers(event, d):
errors = []
for h in _ui_handlers:
#print "Sending event %s" % event
try:
# We use pickle here since it better handles object instances
# which xmlrpc's marshaller does not. Events *must* be serializable
# by pickle.
_ui_handlers[h].event.send((pickle.dumps(event)))
except:
errors.append(h)
for h in errors:
del _ui_handlers[h]
def fire(event, d):
"""Fire off an Event"""
# We can fire class handlers in the worker process context and this is
# desired so they get the task based datastore.
# UI handlers need to be fired in the server context so we defer this. They
# don't have a datastore so the datastore context isn't a problem.
fire_class_handlers(event, d)
if worker_pid != 0:
worker_fire(event, d)
else:
fire_ui_handlers(event, d)
def worker_fire(event, d):
data = "<event>" + pickle.dumps(event) + "</event>"
worker_pipe.write(data)
worker_pipe.flush()
def fire_from_worker(event, d):
if not event.startswith("<event>") or not event.endswith("</event>"):
print("Error, not an event %s" % event)
return
#print "Got event %s" % event
event = pickle.loads(event[7:-8])
fire_ui_handlers(event, d)
def register(name, handler):
"""Register an Event handler"""
# already registered
if name in _handlers_dict:
if name in _handlers:
return AlreadyRegistered
if handler is not None:
# handle string containing python code
# handle string containing python code
if type(handler).__name__ == "str":
_registerCode(handler)
tmp = "def tmpHandler(e):\n%s" % handler
comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event._registerCode")
_handlers[name] = comp
else:
_handlers.append(handler)
_handlers[name] = handler
_handlers_dict[name] = 1
return Registered
def _registerCode(handlerStr):
"""Register a 'code' Event.
Deprecated interface; call register instead.
Expects to be passed python code as a string, which will
be passed in turn to compile() and then exec(). Note that
the code will be within a function, so should have had
appropriate tabbing put in place."""
tmp = "def tmpHandler(e):\n%s" % handlerStr
comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event._registerCode")
# prevent duplicate registration
_handlers.append(comp)
def remove(name, handler):
"""Remove an Event handler"""
_handlers.pop(name)
_handlers_dict.pop(name)
if type(handler).__name__ == "str":
return _removeCode(handler)
else:
_handlers.remove(handler)
def register_UIHhandler(handler):
bb.event._ui_handler_seq = bb.event._ui_handler_seq + 1
_ui_handlers[_ui_handler_seq] = handler
bb.event.useStdout = False
return _ui_handler_seq
def _removeCode(handlerStr):
"""Remove a 'code' Event handler
Deprecated interface; call remove instead."""
tmp = "def tmpHandler(e):\n%s" % handlerStr
comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event._removeCode")
_handlers.remove(comp)
def unregister_UIHhandler(handlerNum):
if handlerNum in _ui_handlers:
del _ui_handlers[handlerNum]
return
def getName(e):
"""Returns the name of a class or class instance"""
@@ -127,13 +157,20 @@ def getName(e):
class ConfigParsed(Event):
"""Configuration Parsing Complete"""
class RecipeParsed(Event):
""" Recipe Parsing Complete """
def __init__(self, fn):
self.fn = fn
Event.__init__(self)
class StampUpdate(Event):
"""Trigger for any adjustment of the stamp files to happen"""
def __init__(self, targets, stampfns, d):
def __init__(self, targets, stampfns):
self._targets = targets
self._stampfns = stampfns
Event.__init__(self, d)
Event.__init__(self)
def getStampPrefix(self):
return self._stampfns
@@ -144,29 +181,13 @@ class StampUpdate(Event):
stampPrefix = property(getStampPrefix)
targets = property(getTargets)
class PkgBase(Event):
"""Base class for package events"""
def __init__(self, t, d):
self._pkg = t
Event.__init__(self, d)
def getPkg(self):
return self._pkg
def setPkg(self, pkg):
self._pkg = pkg
pkg = property(getPkg, setPkg, None, "pkg property")
class BuildBase(Event):
"""Base class for bbmake run events"""
def __init__(self, n, p, c, failures = 0):
def __init__(self, n, p, failures = 0):
self._name = n
self._pkgs = p
Event.__init__(self, c)
Event.__init__(self)
self._failures = failures
def getPkgs(self):
@@ -198,32 +219,7 @@ class BuildBase(Event):
cfg = property(getCfg, setCfg, None, "cfg property")
class DepBase(PkgBase):
"""Base class for dependency events"""
def __init__(self, t, data, d):
self._dep = d
PkgBase.__init__(self, t, data)
def getDep(self):
return self._dep
def setDep(self, dep):
self._dep = dep
dep = property(getDep, setDep, None, "dep property")
class PkgStarted(PkgBase):
"""Package build started"""
class PkgFailed(PkgBase):
"""Package build failed"""
class PkgSucceeded(PkgBase):
"""Package build completed"""
class BuildStarted(BuildBase):
@@ -234,20 +230,16 @@ class BuildCompleted(BuildBase):
"""bbmake build run completed"""
class UnsatisfiedDep(DepBase):
"""Unsatisfied Dependency"""
class RecursiveDep(DepBase):
"""Recursive Dependency"""
class NoProvider(Event):
"""No Provider for an Event"""
def __init__(self, item, data,runtime=False):
Event.__init__(self, data)
def __init__(self, item, runtime=False, dependees=None):
Event.__init__(self)
self._item = item
self._runtime = runtime
self._dependees = dependees
def getItem(self):
return self._item
@@ -258,8 +250,8 @@ class NoProvider(Event):
class MultipleProviders(Event):
"""Multiple Providers"""
def __init__(self, item, candidates, data, runtime = False):
Event.__init__(self, data)
def __init__(self, item, candidates, runtime = False):
Event.__init__(self)
self._item = item
self._candidates = candidates
self._is_runtime = runtime
@@ -281,3 +273,28 @@ class MultipleProviders(Event):
Get the possible Candidates for a PROVIDER.
"""
return self._candidates
class ParseProgress(Event):
"""
Parsing Progress Event
"""
def __init__(self, cached, parsed, skipped, masked, virtuals, errors, total):
Event.__init__(self)
self.cached = cached
self.parsed = parsed
self.skipped = skipped
self.virtuals = virtuals
self.masked = masked
self.errors = errors
self.sofar = cached + parsed
self.total = total
class DepTreeGenerated(Event):
"""
Event when a dependency tree has been generated
"""
def __init__(self, depgraph):
Event.__init__(self)
self._depgraph = depgraph

View File

@@ -24,15 +24,15 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re, fcntl
from __future__ import absolute_import
from __future__ import print_function
import os, re
import bb
from bb import data
from bb import persist_data
try:
import cPickle as pickle
except ImportError:
import pickle
class MalformedUrl(Exception):
"""Exception raised when encountering an invalid url"""
class FetchError(Exception):
"""Exception raised when a download fails"""
@@ -52,20 +52,82 @@ class MD5SumError(Exception):
class InvalidSRCREV(Exception):
"""Exception raised when an invalid SRCREV is encountered"""
def decodeurl(url):
"""Decodes an URL into the tokens (scheme, network location, path,
user, password, parameters).
"""
m = re.compile('(?P<type>[^:]*)://((?P<user>.+)@)?(?P<location>[^;]+)(;(?P<parm>.*))?').match(url)
if not m:
raise MalformedUrl(url)
type = m.group('type')
location = m.group('location')
if not location:
raise MalformedUrl(url)
user = m.group('user')
parm = m.group('parm')
locidx = location.find('/')
if locidx != -1 and type.lower() != 'file':
host = location[:locidx]
path = location[locidx:]
else:
host = ""
path = location
if user:
m = re.compile('(?P<user>[^:]+)(:?(?P<pswd>.*))').match(user)
if m:
user = m.group('user')
pswd = m.group('pswd')
else:
user = ''
pswd = ''
p = {}
if parm:
for s in parm.split(';'):
s1, s2 = s.split('=')
p[s1] = s2
return (type, host, path, user, pswd, p)
def encodeurl(decoded):
"""Encodes a URL from tokens (scheme, network location, path,
user, password, parameters).
"""
(type, host, path, user, pswd, p) = decoded
if not type or not path:
raise MissingParameterError("Type or path url components missing when encoding %s" % decoded)
url = '%s://' % type
if user:
url += "%s" % user
if pswd:
url += ":%s" % pswd
url += "@"
if host:
url += "%s" % host
url += "%s" % path
if p:
for parm in p:
url += ";%s=%s" % (parm, p[parm])
return url
def uri_replace(uri, uri_find, uri_replace, d):
# bb.msg.note(1, bb.msg.domain.Fetcher, "uri_replace: operating on %s" % uri)
if not uri or not uri_find or not uri_replace:
bb.msg.debug(1, bb.msg.domain.Fetcher, "uri_replace: passed an undefined value, not replacing")
uri_decoded = list(bb.decodeurl(uri))
uri_find_decoded = list(bb.decodeurl(uri_find))
uri_replace_decoded = list(bb.decodeurl(uri_replace))
result_decoded = ['','','','','',{}]
uri_decoded = list(decodeurl(uri))
uri_find_decoded = list(decodeurl(uri_find))
uri_replace_decoded = list(decodeurl(uri_replace))
result_decoded = ['', '', '', '', '', {}]
for i in uri_find_decoded:
loc = uri_find_decoded.index(i)
result_decoded[loc] = uri_decoded[loc]
import types
if type(i) == types.StringType:
import re
if isinstance(i, basestring):
if (re.match(i, uri_decoded[loc])):
result_decoded[loc] = re.sub(i, uri_replace_decoded[loc], uri_decoded[loc])
if uri_find_decoded.index(i) == 2:
@@ -78,21 +140,22 @@ def uri_replace(uri, uri_find, uri_replace, d):
# bb.msg.note(1, bb.msg.domain.Fetcher, "uri_replace: no match")
return uri
# else:
# for j in i.keys():
# for j in i:
# FIXME: apply replacements against options
return bb.encodeurl(result_decoded)
return encodeurl(result_decoded)
methods = []
urldata_cache = {}
saved_headrevs = {}
persistent_database_connection = {}
def fetcher_init(d):
"""
Called to initilize the fetchers once the configuration data is known
Called to initialize the fetchers once the configuration data is known.
Calls before this must not hit the cache.
"""
pd = persist_data.PersistData(d)
# When to drop SCM head revisions controled by user policy
pd = persist_data.PersistData(d, persistent_database_connection)
# When to drop SCM head revisions controlled by user policy
srcrev_policy = bb.data.getVar('BB_SRCREV_POLICY', d, 1) or "clear"
if srcrev_policy == "cache":
bb.msg.debug(1, bb.msg.domain.Fetcher, "Keeping SRCREV cache due to cache policy of: %s" % srcrev_policy)
@@ -104,7 +167,12 @@ def fetcher_init(d):
pass
pd.delDomain("BB_URI_HEADREVS")
else:
bb.msg.fatal(bb.msg.domain.Fetcher, "Invalid SRCREV cache policy of: %s" % srcrev_policy)
raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
for m in methods:
if hasattr(m, "init"):
m.init(d)
# Make sure our domains exist
pd.addDomain("BB_URI_HEADREVS")
pd.addDomain("BB_URI_LOCALCOUNT")
@@ -115,7 +183,7 @@ def fetcher_compare_revisons(d):
return true/false on whether they've changed.
"""
pd = persist_data.PersistData(d)
pd = persist_data.PersistData(d, persistent_database_connection)
data = pd.getKeyValues("BB_URI_HEADREVS")
data2 = bb.fetch.saved_headrevs
@@ -137,6 +205,7 @@ def fetcher_compare_revisons(d):
def init(urls, d, setup = True):
urldata = {}
fn = bb.data.getVar('FILE', d, 1)
if fn in urldata_cache:
urldata = urldata_cache[fn]
@@ -148,48 +217,73 @@ def init(urls, d, setup = True):
if setup:
for url in urldata:
if not urldata[url].setup:
urldata[url].setup_localpath(d)
urldata[url].setup_localpath(d)
urldata_cache[fn] = urldata
return urldata
def go(d):
def mirror_from_string(data):
return [ i.split() for i in (data or "").replace('\\n','\n').split('\n') if i ]
def removefile(f):
try:
os.remove(f)
except:
pass
def go(d, urls = None):
"""
Fetch all urls
init must have previously been called
"""
urldata = init([], d, True)
if not urls:
urls = d.getVar("SRC_URI", 1).split()
urldata = init(urls, d, True)
for u in urldata:
for u in urls:
ud = urldata[u]
m = ud.method
if ud.localfile:
if not m.forcefetch(u, ud, d) and os.path.exists(ud.md5):
# File already present along with md5 stamp file
# Touch md5 file to show activity
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
continue
lf = bb.utils.lockfile(ud.lockfile)
if not m.forcefetch(u, ud, d) and os.path.exists(ud.md5):
# If someone else fetched this before we got the lock,
# notice and don't try again
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
bb.utils.unlockfile(lf)
continue
m.go(u, ud, d)
if ud.localfile:
if not m.forcefetch(u, ud, d):
Fetch.write_md5sum(u, ud, d)
bb.utils.unlockfile(lf)
localpath = ""
if not ud.localfile:
continue
lf = bb.utils.lockfile(ud.lockfile)
if m.try_premirror(u, ud, d):
# First try fetching uri, u, from PREMIRRORS
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
localpath = try_mirrors(d, u, mirrors, False, m.forcefetch(u, ud, d))
elif os.path.exists(ud.localfile):
localpath = ud.localfile
# Need to re-test forcefetch() which will return true if our copy is too old
if m.forcefetch(u, ud, d) or not localpath:
# Next try fetching from the original uri, u
try:
m.go(u, ud, d)
localpath = ud.localpath
except FetchError:
# Remove any incomplete file
removefile(ud.localpath)
# Finally, try fetching uri, u, from MIRRORS
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
localpath = try_mirrors (d, u, mirrors)
if not localpath or not os.path.exists(localpath):
raise FetchError("Unable to fetch URL %s from any source." % u)
ud.localpath = localpath
if os.path.exists(ud.md5):
# Touch the md5 file to show active use of the download
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
else:
Fetch.write_md5sum(u, ud, d)
bb.utils.unlockfile(lf)
def checkstatus(d):
"""
@@ -201,10 +295,21 @@ def checkstatus(d):
for u in urldata:
ud = urldata[u]
m = ud.method
bb.msg.note(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
ret = m.checkstatus(u, ud, d)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
# First try checking uri, u, from PREMIRRORS
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
ret = try_mirrors(d, u, mirrors, True)
if not ret:
bb.msg.fatal(bb.msg.domain.Fetcher, "URL %s doesn't work" % u)
# Next try checking from the original uri, u
try:
ret = m.checkstatus(u, ud, d)
except:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
ret = try_mirrors (d, u, mirrors, True)
if not ret:
raise FetchError("URL %s doesn't work" % u)
def localpaths(d):
"""
@@ -214,7 +319,7 @@ def localpaths(d):
urldata = init([], d, True)
for u in urldata:
ud = urldata[u]
ud = urldata[u]
local.append(ud.localpath)
return local
@@ -226,15 +331,15 @@ def get_srcrev(d):
Return the version string for the current package
(usually to be used as PV)
Most packages usually only have one SCM so we just pass on the call.
In the multi SCM case, we build a value based on SRCREV_FORMAT which must
In the multi SCM case, we build a value based on SRCREV_FORMAT which must
have been set.
"""
#
# Ugly code alert. localpath in the fetchers will try to evaluate SRCREV which
# Ugly code alert. localpath in the fetchers will try to evaluate SRCREV which
# could translate into a call to here. If it does, we need to catch this
# and provide some way so it knows get_srcrev is active instead of being
# some number etc. hence the srcrev_internal_call tracking and the magic
# some number etc. hence the srcrev_internal_call tracking and the magic
# "SRCREVINACTION" return value.
#
# Neater solutions welcome!
@@ -244,7 +349,7 @@ def get_srcrev(d):
scms = []
# Only call setup_localpath on URIs which suppports_srcrev()
# Only call setup_localpath on URIs which suppports_srcrev()
urldata = init(bb.data.getVar('SRC_URI', d, 1).split(), d, False)
for u in urldata:
ud = urldata[u]
@@ -257,7 +362,8 @@ def get_srcrev(d):
bb.msg.error(bb.msg.domain.Fetcher, "SRCREV was used yet no valid SCM was found in SRC_URI")
raise ParameterError
bb.data.setVar('__BB_DONT_CACHE','1', d)
if bb.data.getVar('BB_SRCREV_POLICY', d, True) != "cache":
bb.data.setVar('__BB_DONT_CACHE', '1', d)
if len(scms) == 1:
return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d)
@@ -280,7 +386,7 @@ def get_srcrev(d):
def localpath(url, d, cache = True):
"""
Called from the parser with cache=False since the cache isn't ready
Called from the parser with cache=False since the cache isn't ready
at this point. Also called from classed in OE e.g. patch.bbclass
"""
ud = init([url], d)
@@ -299,12 +405,15 @@ def runfetchcmd(cmd, d, quiet = False):
# rather than host provided
# Also include some other variables.
# FIXME: Should really include all export varaiables?
exportvars = ['PATH', 'GIT_PROXY_COMMAND', 'GIT_PROXY_HOST', 'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy', 'SSH_AUTH_SOCK', 'SSH_AGENT_PID', 'HOME']
exportvars = ['PATH', 'GIT_PROXY_COMMAND', 'GIT_PROXY_HOST',
'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy',
'https_proxy', 'no_proxy', 'ALL_PROXY', 'all_proxy',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID', 'HOME']
for var in exportvars:
val = data.getVar(var, d, True)
if val:
cmd = 'export ' + var + '=%s; %s' % (val, cmd)
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % cmd)
@@ -312,15 +421,15 @@ def runfetchcmd(cmd, d, quiet = False):
stdout_handle = os.popen(cmd + " 2>&1", "r")
output = ""
while 1:
while True:
line = stdout_handle.readline()
if not line:
break
if not quiet:
print line,
print(line, end=' ')
output += line
status = stdout_handle.close() or 0
status = stdout_handle.close() or 0
signal = status >> 8
exitstatus = status & 0xff
@@ -331,13 +440,56 @@ def runfetchcmd(cmd, d, quiet = False):
return output
def try_mirrors(d, uri, mirrors, check = False, force = False):
"""
Try to use a mirrored version of the sources.
This method will be automatically called before the fetchers go.
d Is a bb.data instance
uri is the original uri we're trying to download
mirrors is the list of mirrors we're going to try
"""
fpath = os.path.join(data.getVar("DL_DIR", d, 1), os.path.basename(uri))
if not check and os.access(fpath, os.R_OK) and not force:
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % fpath)
return fpath
ld = d.createCopy()
for (find, replace) in mirrors:
newuri = uri_replace(uri, find, replace, ld)
if newuri != uri:
try:
ud = FetchData(newuri, ld)
except bb.fetch.NoMethodError:
bb.msg.debug(1, bb.msg.domain.Fetcher, "No method for %s" % uri)
continue
ud.setup_localpath(ld)
try:
if check:
ud.method.checkstatus(newuri, ud, ld)
else:
ud.method.go(newuri, ud, ld)
return ud.localpath
except (bb.fetch.MissingParameterError,
bb.fetch.FetchError,
bb.fetch.MD5SumError):
import sys
(type, value, traceback) = sys.exc_info()
bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value)
removefile(ud.localpath)
continue
return None
class FetchData(object):
"""
A class which represents the fetcher state for a given URI.
"""
def __init__(self, url, d):
self.localfile = ""
(self.type, self.host, self.path, self.user, self.pswd, self.parm) = bb.decodeurl(data.expand(url, d))
(self.type, self.host, self.path, self.user, self.pswd, self.parm) = decodeurl(data.expand(url, d))
self.date = Fetch.getSRCDate(self, d)
self.url = url
if not self.user and "user" in self.parm:
@@ -356,17 +508,36 @@ class FetchData(object):
if "localpath" in self.parm:
# if user sets localpath for file, use it instead.
self.localpath = self.parm["localpath"]
self.basename = os.path.basename(self.localpath)
else:
try:
bb.fetch.srcrev_internal_call = True
self.localpath = self.method.localpath(self.url, self, d)
finally:
bb.fetch.srcrev_internal_call = False
# We have to clear data's internal caches since the cached value of SRCREV is now wrong.
# Horrible...
bb.data.delVar("ISHOULDNEVEREXIST", d)
self.md5 = self.localpath + '.md5'
self.lockfile = self.localpath + '.lock'
premirrors = bb.data.getVar('PREMIRRORS', d, True)
local = ""
if premirrors and self.url:
aurl = self.url.split(";")[0]
mirrors = mirror_from_string(premirrors)
for (find, replace) in mirrors:
if replace.startswith("file://"):
path = aurl.split("://")[1]
path = path.split(";")[0]
local = replace.split("://")[1] + os.path.basename(path)
if local == aurl or not os.path.exists(local) or os.path.isdir(local):
local = ""
self.localpath = local
if not local:
try:
bb.fetch.srcrev_internal_call = True
self.localpath = self.method.localpath(self.url, self, d)
finally:
bb.fetch.srcrev_internal_call = False
# We have to clear data's internal caches since the cached value of SRCREV is now wrong.
# Horrible...
bb.data.delVar("ISHOULDNEVEREXIST", d)
if self.localpath is not None:
# Note: These files should always be in DL_DIR whereas localpath may not be.
basepath = bb.data.expand("${DL_DIR}/%s" % os.path.basename(self.localpath), d)
self.md5 = basepath + '.md5'
self.lockfile = basepath + '.lock'
class Fetch(object):
@@ -384,7 +555,7 @@ class Fetch(object):
def localpath(self, url, urldata, d):
"""
Return the local filename of a given url assuming a successful fetch.
Can also setup variables in urldata for use in go (saving code duplication
Can also setup variables in urldata for use in go (saving code duplication
and duplicate code execution)
"""
return url
@@ -416,6 +587,17 @@ class Fetch(object):
"""
raise NoMethodError("Missing implementation for url")
def try_premirror(self, url, urldata, d):
"""
Should premirrors be used?
"""
if urldata.method.forcefetch(url, urldata, d):
return True
elif os.path.exists(urldata.md5) and os.path.exists(urldata.localfile):
return False
else:
return True
def checkstatus(self, url, urldata, d):
"""
Check the status of a URL
@@ -445,8 +627,8 @@ class Fetch(object):
"""
Return:
a) a source revision if specified
b) True if auto srcrev is in action
c) False otherwise
b) True if auto srcrev is in action
c) False otherwise
"""
if 'rev' in ud.parm:
@@ -458,7 +640,11 @@ class Fetch(object):
rev = None
if 'name' in ud.parm:
pn = data.getVar("PN", d, 1)
rev = data.getVar("SRCREV_pn-" + pn + "_" + ud.parm['name'], d, 1)
rev = data.getVar("SRCREV_%s_pn-%s" % (ud.parm['name'], pn), d, 1)
if not rev:
rev = data.getVar("SRCREV_pn-%s_%s" % (pn, ud.parm['name']), d, 1)
if not rev:
rev = data.getVar("SRCREV_%s" % (ud.parm['name']), d, 1)
if not rev:
rev = data.getVar("SRCREV", d, 1)
if rev == "INVALID":
@@ -471,43 +657,22 @@ class Fetch(object):
srcrev_internal_helper = staticmethod(srcrev_internal_helper)
def try_mirror(d, tarfn):
def localcount_internal_helper(ud, d):
"""
Try to use a mirrored version of the sources. We do this
to avoid massive loads on foreign cvs and svn servers.
This method will be used by the different fetcher
implementations.
d Is a bb.data instance
tarfn is the name of the tarball
Return:
a) a locked localcount if specified
b) None otherwise
"""
tarpath = os.path.join(data.getVar("DL_DIR", d, 1), tarfn)
if os.access(tarpath, os.R_OK):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists, skipping checkout." % tarfn)
return True
pn = data.getVar('PN', d, True)
src_tarball_stash = None
if pn:
src_tarball_stash = (data.getVar('SRC_TARBALL_STASH_%s' % pn, d, True) or data.getVar('CVS_TARBALL_STASH_%s' % pn, d, True) or data.getVar('SRC_TARBALL_STASH', d, True) or data.getVar('CVS_TARBALL_STASH', d, True) or "").split()
localcount = None
if 'name' in ud.parm:
pn = data.getVar("PN", d, 1)
localcount = data.getVar("LOCALCOUNT_" + ud.parm['name'], d, 1)
if not localcount:
localcount = data.getVar("LOCALCOUNT", d, 1)
return localcount
for stash in src_tarball_stash:
fetchcmd = data.getVar("FETCHCOMMAND_mirror", d, True) or data.getVar("FETCHCOMMAND_wget", d, True)
uri = stash + tarfn
bb.msg.note(1, bb.msg.domain.Fetcher, "fetch " + uri)
fetchcmd = fetchcmd.replace("${URI}", uri)
httpproxy = data.getVar("http_proxy", d, True)
ftpproxy = data.getVar("ftp_proxy", d, True)
if httpproxy:
fetchcmd = "http_proxy=" + httpproxy + " " + fetchcmd
if ftpproxy:
fetchcmd = "ftp_proxy=" + ftpproxy + " " + fetchcmd
ret = os.system(fetchcmd)
if ret == 0:
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetched %s from tarball stash, skipping checkout" % tarfn)
return True
return False
try_mirror = staticmethod(try_mirror)
localcount_internal_helper = staticmethod(localcount_internal_helper)
def verify_md5sum(ud, got_sum):
"""
@@ -540,7 +705,7 @@ class Fetch(object):
if not hasattr(self, "_latest_revision"):
raise ParameterError
pd = persist_data.PersistData(d)
pd = persist_data.PersistData(d, persistent_database_connection)
key = self.generate_revision_key(url, ud, d)
rev = pd.getValue("BB_URI_HEADREVS", key)
if rev != None:
@@ -552,24 +717,34 @@ class Fetch(object):
def sortable_revision(self, url, ud, d):
"""
"""
has_sortable = hasattr(self, "_sortable_revision")
if has_sortable:
if hasattr(self, "_sortable_revision"):
return self._sortable_revision(url, ud, d)
pd = persist_data.PersistData(d)
pd = persist_data.PersistData(d, persistent_database_connection)
key = self.generate_revision_key(url, ud, d)
latest_rev = self._build_revision(url, ud, d)
last_rev = pd.getValue("BB_URI_LOCALCOUNT", key + "_rev")
count = pd.getValue("BB_URI_LOCALCOUNT", key + "_count")
uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False
count = None
if uselocalcount:
count = Fetch.localcount_internal_helper(ud, d)
if count is None:
count = pd.getValue("BB_URI_LOCALCOUNT", key + "_count")
if last_rev == latest_rev:
return str(count + "+" + latest_rev)
buildindex_provided = hasattr(self, "_sortable_buildindex")
if buildindex_provided:
count = self._sortable_buildindex(url, ud, d, latest_rev)
if count is None:
count = "0"
elif uselocalcount or buildindex_provided:
count = str(count)
else:
count = str(int(count) + 1)
@@ -582,17 +757,18 @@ class Fetch(object):
key = self._revision_key(url, ud, d)
return "%s-%s" % (key, bb.data.getVar("PN", d, True) or "")
import cvs
import git
import local
import svn
import wget
import svk
import ssh
import perforce
import bzr
import hg
import osc
from . import cvs
from . import git
from . import local
from . import svn
from . import wget
from . import svk
from . import ssh
from . import perforce
from . import bzr
from . import hg
from . import osc
from . import repo
methods.append(local.Local())
methods.append(wget.Wget())
@@ -605,3 +781,4 @@ methods.append(perforce.Perforce())
methods.append(bzr.Bzr())
methods.append(hg.Hg())
methods.append(osc.Osc())
methods.append(repo.Repo())

View File

@@ -29,7 +29,6 @@ import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
from bb.fetch import runfetchcmd
class Bzr(Fetch):
@@ -47,15 +46,15 @@ class Bzr(Fetch):
revision = Fetch.srcrev_internal_helper(ud, d)
if revision is True:
ud.revision = self.latest_revision(url, ud, d)
ud.revision = self.latest_revision(url, ud, d)
elif revision:
ud.revision = revision
if not ud.revision:
ud.revision = self.latest_revision(url, ud, d)
ud.revision = self.latest_revision(url, ud, d)
ud.localfile = data.expand('bzr_%s_%s_%s.tar.gz' % (ud.host, ud.path.replace('/', '.'), ud.revision), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def _buildbzrcommand(self, ud, d, command):
@@ -92,11 +91,6 @@ class Bzr(Fetch):
def go(self, loc, ud, d):
"""Fetch url"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping bzr checkout." % ud.localpath)
return
if os.access(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir), '.bzr'), os.R_OK):
bzrcmd = self._buildbzrcommand(ud, d, "update")
bb.msg.debug(1, bb.msg.domain.Fetcher, "BZR Update %s" % loc)
@@ -151,4 +145,3 @@ class Bzr(Fetch):
def _build_revision(self, url, ud, d):
return ud.revision

View File

@@ -26,7 +26,7 @@ BitBake build tools.
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
#
import os, re
import os
import bb
from bb import data
from bb.fetch import Fetch
@@ -41,7 +41,7 @@ class Cvs(Fetch):
"""
Check to see if a given url can be fetched with cvs.
"""
return ud.type in ['cvs', 'pserver']
return ud.type in ['cvs']
def localpath(self, url, ud, d):
if not "module" in ud.parm:
@@ -77,11 +77,6 @@ class Cvs(Fetch):
def go(self, loc, ud, d):
# try to use the tarball stash
if not self.forcefetch(loc, ud, d) and Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping cvs checkout." % ud.localpath)
return
method = "pserver"
if "method" in ud.parm:
method = ud.parm["method"]
@@ -144,8 +139,8 @@ class Cvs(Fetch):
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory")
pkg = data.expand('${PN}', d)
pkgdir = os.path.join(data.expand('${CVSDIR}', localdata), pkg)
moddir = os.path.join(pkgdir,localdir)
if os.access(os.path.join(moddir,'CVS'), os.R_OK):
moddir = os.path.join(pkgdir, localdir)
if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
bb.msg.note(1, bb.msg.domain.Fetcher, "Update " + loc)
# update sources there
os.chdir(moddir)
@@ -162,7 +157,7 @@ class Cvs(Fetch):
try:
os.rmdir(moddir)
except OSError:
pass
pass
raise FetchError(ud.module)
# tar them up to a defined filename

View File

@@ -20,15 +20,20 @@ BitBake 'Fetch' git implementation
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, re
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import runfetchcmd
class Git(Fetch):
"""Class to fetch a module or modules from git repositories"""
def init(self, d):
#
# Only enable _sortable revision if the key is set
#
if bb.data.getVar("BB_GIT_CLONE_FOR_SRCREV", d, True):
self._sortable_buildindex = self._sortable_buildindex_disabled
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with git.
@@ -46,90 +51,159 @@ class Git(Fetch):
ud.branch = ud.parm.get("branch", "master")
gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.'))
ud.mirrortarball = 'git_%s.tar.gz' % (gitsrcname)
ud.clonedir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
tag = Fetch.srcrev_internal_helper(ud, d)
if tag is True:
ud.tag = self.latest_revision(url, ud, d)
ud.tag = self.latest_revision(url, ud, d)
elif tag:
ud.tag = tag
if not ud.tag or ud.tag == "master":
ud.tag = self.latest_revision(url, ud, d)
ud.tag = self.latest_revision(url, ud, d)
ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, ud.path.replace('/', '.'), ud.tag), d)
subdir = ud.parm.get("subpath", "")
if subdir != "":
if subdir.endswith("/"):
subdir = subdir[:-1]
subdirpath = os.path.join(ud.path, subdir);
else:
subdirpath = ud.path;
if 'fullclone' in ud.parm:
ud.localfile = ud.mirrortarball
else:
ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, subdirpath.replace('/', '.'), ud.tag), d)
ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
if 'noclone' in ud.parm:
ud.localfile = None
return None
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def forcefetch(self, url, ud, d):
if 'fullclone' in ud.parm:
return True
if 'noclone' in ud.parm:
return False
if os.path.exists(ud.localpath):
return False
if not self._contains_ref(ud.tag, d):
return True
return False
def try_premirror(self, u, ud, d):
if 'noclone' in ud.parm:
return False
if os.path.exists(ud.clonedir):
return False
if os.path.exists(ud.localpath):
return False
return True
def go(self, loc, ud, d):
"""Fetch url"""
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists (or was stashed). Skipping git checkout." % ud.localpath)
return
if ud.user:
username = ud.user + '@'
else:
username = ""
gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.'))
repofilename = 'git_%s.tar.gz' % (gitsrcname)
repofile = os.path.join(data.getVar("DL_DIR", d, 1), repofilename)
repodir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
repofile = os.path.join(data.getVar("DL_DIR", d, 1), ud.mirrortarball)
coname = '%s' % (ud.tag)
codir = os.path.join(repodir, coname)
codir = os.path.join(ud.clonedir, coname)
if not os.path.exists(repodir):
if Fetch.try_mirror(d, repofilename):
bb.mkdirhier(repodir)
os.chdir(repodir)
runfetchcmd("tar -xzf %s" % (repofile), d)
else:
runfetchcmd("git clone -n %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, repodir), d)
# If we have no existing clone and no mirror tarball, try and obtain one
if not os.path.exists(ud.clonedir) and not os.path.exists(repofile):
try:
Fetch.try_mirrors(ud.mirrortarball)
except:
pass
os.chdir(repodir)
# Remove all but the .git directory
if not self._contains_ref(ud.tag, d):
# If the checkout doesn't exist and the mirror tarball does, extract it
if not os.path.exists(ud.clonedir) and os.path.exists(repofile):
bb.mkdirhier(ud.clonedir)
os.chdir(ud.clonedir)
runfetchcmd("tar -xzf %s" % (repofile), d)
# If the repo still doesn't exist, fallback to cloning it
if not os.path.exists(ud.clonedir):
runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
os.chdir(ud.clonedir)
# Update the checkout if needed
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
# Remove all but the .git directory
runfetchcmd("rm * -Rf", d)
runfetchcmd("git fetch %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch), d)
runfetchcmd("git fetch --tags %s://%s%s%s" % (ud.proto, username, ud.host, ud.path), d)
runfetchcmd("git prune-packed", d)
runfetchcmd("git pack-redundant --all | xargs -r rm", d)
if 'fullclone' in ud.parm:
runfetchcmd("%s fetch --all" % (ud.basecmd), d)
else:
runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d)
runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d)
runfetchcmd("%s prune-packed" % ud.basecmd, d)
runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
os.chdir(repodir)
# Generate a mirror tarball if needed
os.chdir(ud.clonedir)
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
if mirror_tarballs != "0":
if mirror_tarballs != "0" or 'fullclone' in ud.parm:
bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git repository")
runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".", ".git", "*") ), d)
if 'fullclone' in ud.parm:
return
if os.path.exists(codir):
bb.utils.prunedir(codir)
subdir = ud.parm.get("subpath", "")
if subdir != "":
if subdir.endswith("/"):
subdirbase = os.path.basename(subdir[:-1])
else:
subdirbase = os.path.basename(subdir)
else:
subdirbase = ""
if subdir != "":
readpathspec = ":%s" % (subdir)
codir = os.path.join(codir, "git")
coprefix = os.path.join(codir, subdirbase, "")
else:
readpathspec = ""
coprefix = os.path.join(codir, "git", "")
bb.mkdirhier(codir)
os.chdir(repodir)
runfetchcmd("git read-tree %s" % (ud.tag), d)
runfetchcmd("git checkout-index -q -f --prefix=%s -a" % (os.path.join(codir, "git", "")), d)
os.chdir(ud.clonedir)
runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, coprefix), d)
os.chdir(codir)
bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git checkout")
runfetchcmd("tar -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d)
os.chdir(repodir)
os.chdir(ud.clonedir)
bb.utils.prunedir(codir)
def suppports_srcrev(self):
return True
def _contains_ref(self, tag, d):
output = runfetchcmd("git log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % tag, d, quiet=True)
basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
output = runfetchcmd("%s log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % (basecmd, tag), d, quiet=True)
return output.split()[0] != "0"
def _revision_key(self, url, ud, d):
"""
Return a unique key for the url
"""
return "git:" + ud.host + ud.path.replace('/', '.')
return "git:" + ud.host + ud.path.replace('/', '.') + ud.branch
def _latest_revision(self, url, ud, d):
"""
@@ -140,50 +214,41 @@ class Git(Fetch):
else:
username = ""
output = runfetchcmd("git ls-remote %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch), d, True)
basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
cmd = "%s ls-remote %s://%s%s%s %s" % (basecmd, ud.proto, username, ud.host, ud.path, ud.branch)
output = runfetchcmd(cmd, d, True)
if not output:
raise bb.fetch.FetchError("Fetch command %s gave empty output\n" % (cmd))
return output.split()[0]
def _build_revision(self, url, ud, d):
return ud.tag
def _want_sortable_revision(self, url, ud, d):
return bb.data.getVar("BB_GIT_CLONE_FOR_SRCREV", d, True) or False
def _sortable_revision_disabled(self, url, ud, d):
def _sortable_buildindex_disabled(self, url, ud, d, rev):
"""
This is only called when _want_sortable_revision called true
We will have to get the updated revision.
Return a suitable buildindex for the revision specified. This is done by counting revisions
using "git rev-list" which may or may not work in different circumstances.
"""
gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.'))
repodir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
key = "GIT_CACHED_REVISION-%s-%s" % (gitsrcname, ud.tag)
if bb.data.getVar(key, d):
return bb.data.getVar(key, d)
# Runtime warning on wrongly configured sources
if ud.tag == "1":
bb.msg.error(1, bb.msg.domain.Fetcher, "SRCREV is '1'. This indicates a configuration error of %s" % url)
return "0+1"
cwd = os.getcwd()
# Check if we have the rev already
if not os.path.exists(repodir):
print "no repo"
if not os.path.exists(ud.clonedir):
print("no repo")
self.go(None, ud, d)
if not os.path.exists(ud.clonedir):
bb.msg.error(bb.msg.domain.Fetcher, "GIT repository for %s doesn't exist in %s, cannot get sortable buildnumber, using old value" % (url, ud.clonedir))
return None
os.chdir(ud.clonedir)
if not self._contains_ref(rev, d):
self.go(None, ud, d)
os.chdir(repodir)
if not self._contains_ref(ud.tag, d):
self.go(None, ud, d)
output = runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % ud.tag, d, quiet=True)
output = runfetchcmd("%s rev-list %s -- 2> /dev/null | wc -l" % (ud.basecmd, rev), d, quiet=True)
os.chdir(cwd)
sortable_revision = "%s+%s" % (output.split()[0], ud.tag)
bb.data.setVar(key, sortable_revision, d)
return sortable_revision
buildindex = "%s" % output.split()[0]
bb.msg.debug(1, bb.msg.domain.Fetcher, "GIT repository for %s in %s is returning %s revisions in rev-list before %s" % (url, ud.clonedir, buildindex, rev))
return buildindex

View File

@@ -24,7 +24,7 @@ BitBake 'Fetch' implementation for mercurial DRCS (hg).
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
import os
import sys
import bb
from bb import data
@@ -116,11 +116,6 @@ class Hg(Fetch):
def go(self, loc, ud, d):
"""Fetch url"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping hg checkout." % ud.localpath)
return
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory '" + ud.moddir + "'")
if os.access(os.path.join(ud.moddir, '.hg'), os.R_OK):
@@ -139,9 +134,9 @@ class Hg(Fetch):
os.chdir(ud.pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % fetchcmd)
runfetchcmd(fetchcmd, d)
# Even when we clone (fetch), we still need to update as hg's clone
# won't checkout the specified revision if its on a branch
# Even when we clone (fetch), we still need to update as hg's clone
# won't checkout the specified revision if its on a branch
updatecmd = self._buildhgcommand(ud, d, "update")
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % updatecmd)
runfetchcmd(updatecmd, d)
@@ -175,4 +170,3 @@ class Hg(Fetch):
Return a unique key for the url
"""
return "hg:" + ud.moddir

View File

@@ -25,17 +25,18 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
import os
import bb
import bb.utils
from bb import data
from bb.fetch import Fetch
class Local(Fetch):
def supports(self, url, urldata, d):
"""
Check to see if a given url can be fetched with cvs.
Check to see if a given url represents a local fetch.
"""
return urldata.type in ['file','patch']
return urldata.type in ['file']
def localpath(self, url, urldata, d):
"""
@@ -47,7 +48,7 @@ class Local(Fetch):
if path[0] != "/":
filespath = data.getVar('FILESPATH', d, 1)
if filespath:
newpath = bb.which(filespath, path)
newpath = bb.utils.which(filespath, path)
if not newpath:
filesdir = data.getVar('FILESDIR', d, 1)
if filesdir:
@@ -65,8 +66,8 @@ class Local(Fetch):
Check the status of the url
"""
if urldata.localpath.find("*") != -1:
bb.msg.note(1, bb.msg.domain.Fetcher, "URL %s looks like a glob and was therefore not checked." % url)
return True
bb.msg.note(1, bb.msg.domain.Fetcher, "URL %s looks like a glob and was therefore not checked." % url)
return True
if os.path.exists(urldata.localpath):
return True
return True
return False

View File

@@ -16,7 +16,7 @@ from bb.fetch import MissingParameterError
from bb.fetch import runfetchcmd
class Osc(Fetch):
"""Class to fetch a module or modules from Opensuse build server
"""Class to fetch a module or modules from Opensuse build server
repositories."""
def supports(self, url, ud, d):
@@ -64,7 +64,7 @@ class Osc(Fetch):
proto = "ocs"
if "proto" in ud.parm:
proto = ud.parm["proto"]
options = []
config = "-c %s" % self.generate_config(ud, d)
@@ -91,11 +91,6 @@ class Osc(Fetch):
Fetch url
"""
# Try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping osc checkout." % ud.localpath)
return
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory '" + ud.moddir + "'")
if os.access(os.path.join(data.expand('${OSCDIR}', d), ud.path, ud.module), os.R_OK):
@@ -113,7 +108,7 @@ class Osc(Fetch):
os.chdir(ud.pkgdir)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % oscfetchcmd)
runfetchcmd(oscfetchcmd, d)
os.chdir(os.path.join(ud.pkgdir + ud.path))
# tar them up to a defined filename
try:
@@ -136,7 +131,7 @@ class Osc(Fetch):
config_path = "%s/oscrc" % data.expand('${OSCDIR}', d)
if (os.path.exists(config_path)):
os.remove(config_path)
os.remove(config_path)
f = open(config_path, 'w')
f.write("[general]\n")
@@ -151,5 +146,5 @@ class Osc(Fetch):
f.write("user = %s\n" % ud.parm["user"])
f.write("pass = %s\n" % ud.parm["pswd"])
f.close()
return config_path

View File

@@ -25,26 +25,26 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
from future_builtins import zip
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
class Perforce(Fetch):
def supports(self, url, ud, d):
return ud.type in ['p4']
def doparse(url,d):
def doparse(url, d):
parm = {}
path = url.split("://")[1]
delim = path.find("@");
if delim != -1:
(user,pswd,host,port) = path.split('@')[0].split(":")
(user, pswd, host, port) = path.split('@')[0].split(":")
path = path.split('@')[1]
else:
(host,port) = data.getVar('P4PORT', d).split(':')
(host, port) = data.getVar('P4PORT', d).split(':')
user = ""
pswd = ""
@@ -54,19 +54,19 @@ class Perforce(Fetch):
plist = path.split(';')
for item in plist:
if item.count('='):
(key,value) = item.split('=')
(key, value) = item.split('=')
keys.append(key)
values.append(value)
parm = dict(zip(keys,values))
parm = dict(zip(keys, values))
path = "//" + path.split(';')[0]
host += ":%s" % (port)
parm["cset"] = Perforce.getcset(d, path, host, user, pswd, parm)
return host,path,user,pswd,parm
return host, path, user, pswd, parm
doparse = staticmethod(doparse)
def getcset(d, depot,host,user,pswd,parm):
def getcset(d, depot, host, user, pswd, parm):
p4opt = ""
if "cset" in parm:
return parm["cset"];
@@ -96,9 +96,9 @@ class Perforce(Fetch):
return cset.split(' ')[1]
getcset = staticmethod(getcset)
def localpath(self, url, ud, d):
def localpath(self, url, ud, d):
(host,path,user,pswd,parm) = Perforce.doparse(url,d)
(host, path, user, pswd, parm) = Perforce.doparse(url, d)
# If a label is specified, we use that as our filename
@@ -116,7 +116,7 @@ class Perforce(Fetch):
cset = Perforce.getcset(d, path, host, user, pswd, parm)
ud.localfile = data.expand('%s+%s+%s.tar.gz' % (host,base.replace('/', '.'), cset), d)
ud.localfile = data.expand('%s+%s+%s.tar.gz' % (host, base.replace('/', '.'), cset), d)
return os.path.join(data.getVar("DL_DIR", d, 1), ud.localfile)
@@ -125,12 +125,7 @@ class Perforce(Fetch):
Fetch urls
"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping perforce checkout." % ud.localpath)
return
(host,depot,user,pswd,parm) = Perforce.doparse(loc, d)
(host, depot, user, pswd, parm) = Perforce.doparse(loc, d)
if depot.find('/...') != -1:
path = depot[:depot.find('/...')]
@@ -166,14 +161,14 @@ class Perforce(Fetch):
tmppipe = os.popen(data.getVar('MKTEMPDIRCMD', localdata, 1) or "false")
tmpfile = tmppipe.readline().strip()
if not tmpfile:
bb.error("Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.")
bb.msg.error(bb.msg.domain.Fetcher, "Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.")
raise FetchError(module)
if "label" in parm:
depot = "%s@%s" % (depot,parm["label"])
depot = "%s@%s" % (depot, parm["label"])
else:
cset = Perforce.getcset(d, depot, host, user, pswd, parm)
depot = "%s@%s" % (depot,cset)
depot = "%s@%s" % (depot, cset)
os.chdir(tmpfile)
bb.msg.note(1, bb.msg.domain.Fetcher, "Fetch " + loc)
@@ -181,12 +176,12 @@ class Perforce(Fetch):
p4file = os.popen("%s%s files %s" % (p4cmd, p4opt, depot))
if not p4file:
bb.error("Fetch: unable to get the P4 files from %s" % (depot))
bb.msg.error(bb.msg.domain.Fetcher, "Fetch: unable to get the P4 files from %s" % (depot))
raise FetchError(module)
count = 0
for file in p4file:
for file in p4file:
list = file.split()
if list[2] == "delete":
@@ -195,11 +190,11 @@ class Perforce(Fetch):
dest = list[0][len(path)+1:]
where = dest.find("#")
os.system("%s%s print -o %s/%s %s" % (p4cmd, p4opt, module,dest[:where],list[0]))
os.system("%s%s print -o %s/%s %s" % (p4cmd, p4opt, module, dest[:where], list[0]))
count = count + 1
if count == 0:
bb.error("Fetch: No files gathered from the P4 fetch")
bb.msg.error(bb.msg.domain.Fetcher, "Fetch: No files gathered from the P4 fetch")
raise FetchError(module)
myret = os.system("tar -czf %s %s" % (ud.localpath, module))
@@ -211,5 +206,3 @@ class Perforce(Fetch):
raise FetchError(module)
# cleanup
os.system('rm -rf %s' % tmpfile)

View File

@@ -0,0 +1,105 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake "Fetch" repo (git) implementation
"""
# Copyright (C) 2009 Tom Rini <trini@embeddedalley.com>
#
# Based on git.py which is:
#Copyright (C) 2005 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import runfetchcmd
class Repo(Fetch):
"""Class to fetch a module or modules from repo (git) repositories"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with repo.
"""
return ud.type in ["repo"]
def localpath(self, url, ud, d):
"""
We don"t care about the git rev of the manifests repository, but
we do care about the manifest to use. The default is "default".
We also care about the branch or tag to be used. The default is
"master".
"""
if "protocol" in ud.parm:
ud.proto = ud.parm["protocol"]
else:
ud.proto = "git"
if "branch" in ud.parm:
ud.branch = ud.parm["branch"]
else:
ud.branch = "master"
if "manifest" in ud.parm:
manifest = ud.parm["manifest"]
if manifest.endswith(".xml"):
ud.manifest = manifest
else:
ud.manifest = manifest + ".xml"
else:
ud.manifest = "default.xml"
ud.localfile = data.expand("repo_%s%s_%s_%s.tar.gz" % (ud.host, ud.path.replace("/", "."), ud.manifest, ud.branch), d)
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def go(self, loc, ud, d):
"""Fetch url"""
if os.access(os.path.join(data.getVar("DL_DIR", d, True), ud.localfile), os.R_OK):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists (or was stashed). Skipping repo init / sync." % ud.localpath)
return
gitsrcname = "%s%s" % (ud.host, ud.path.replace("/", "."))
repodir = data.getVar("REPODIR", d, True) or os.path.join(data.getVar("DL_DIR", d, True), "repo")
codir = os.path.join(repodir, gitsrcname, ud.manifest)
if ud.user:
username = ud.user + "@"
else:
username = ""
bb.mkdirhier(os.path.join(codir, "repo"))
os.chdir(os.path.join(codir, "repo"))
if not os.path.exists(os.path.join(codir, "repo", ".repo")):
runfetchcmd("repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d)
runfetchcmd("repo sync", d)
os.chdir(codir)
# Create a cache
runfetchcmd("tar --exclude=.repo --exclude=.git -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d)
def suppports_srcrev(self):
return False
def _build_revision(self, url, ud, d):
return ud.manifest
def _want_sortable_revision(self, url, ud, d):
return False

View File

@@ -37,11 +37,9 @@ IETF secsh internet draft:
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import MissingParameterError
__pattern__ = re.compile(r'''
@@ -116,5 +114,5 @@ class SSH(Fetch):
(exitstatus, output) = commands.getstatusoutput(cmd)
if exitstatus != 0:
print output
print(output)
raise FetchError('Unable to fetch %s' % url)

View File

@@ -36,7 +36,7 @@ class Svk(Fetch):
"""Class to fetch a module or modules from svk repositories"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with cvs.
Check to see if a given url can be fetched with svk.
"""
return ud.type in ['svk']
@@ -62,9 +62,6 @@ class Svk(Fetch):
def go(self, loc, ud, d):
"""Fetch urls"""
if not self.forcefetch(loc, ud, d) and Fetch.try_mirror(d, ud.localfile):
return
svkroot = ud.host + ud.path
svkcmd = "svk co -r {%s} %s/%s" % (ud.date, svkroot, ud.module)

View File

@@ -23,7 +23,7 @@ BitBake 'Fetch' implementation for svn.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
import os
import sys
import bb
from bb import data
@@ -78,7 +78,7 @@ class Svn(Fetch):
ud.revision = rev
ud.date = ""
else:
ud.revision = ""
ud.revision = ""
ud.localfile = data.expand('%s_%s_%s_%s_%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.path.replace('/', '.'), ud.revision, ud.date), d)
@@ -136,11 +136,6 @@ class Svn(Fetch):
def go(self, loc, ud, d):
"""Fetch url"""
# try to use the tarball stash
if Fetch.try_mirror(d, ud.localfile):
bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists or was mirrored, skipping svn checkout." % ud.localpath)
return
bb.msg.debug(2, bb.msg.domain.Fetcher, "Fetch: checking for module directory '" + ud.moddir + "'")
if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK):

View File

@@ -25,24 +25,25 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
import os
import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import uri_replace
from bb.fetch import encodeurl, decodeurl
from bb.fetch import runfetchcmd
class Wget(Fetch):
"""Class to fetch urls via 'wget'"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with cvs.
Check to see if a given url can be fetched with wget.
"""
return ud.type in ['http','https','ftp']
return ud.type in ['http', 'https', 'ftp']
def localpath(self, url, ud, d):
url = bb.encodeurl([ud.type, ud.host, ud.path, ud.user, ud.pswd, {}])
url = encodeurl([ud.type, ud.host, ud.path, ud.user, ud.pswd, {}])
ud.basename = os.path.basename(ud.path)
ud.localfile = data.expand(os.path.basename(url), d)
@@ -61,37 +62,16 @@ class Wget(Fetch):
fetchcmd = data.getVar("FETCHCOMMAND", d, 1)
uri = uri.split(";")[0]
uri_decoded = list(bb.decodeurl(uri))
uri_decoded = list(decodeurl(uri))
uri_type = uri_decoded[0]
uri_host = uri_decoded[1]
bb.msg.note(1, bb.msg.domain.Fetcher, "fetch " + uri)
fetchcmd = fetchcmd.replace("${URI}", uri.split(";")[0])
fetchcmd = fetchcmd.replace("${FILE}", ud.basename)
httpproxy = None
ftpproxy = None
if uri_type == 'http':
httpproxy = data.getVar("HTTP_PROXY", d, True)
httpproxy_ignore = (data.getVar("HTTP_PROXY_IGNORE", d, True) or "").split()
for p in httpproxy_ignore:
if uri_host.endswith(p):
httpproxy = None
break
if uri_type == 'ftp':
ftpproxy = data.getVar("FTP_PROXY", d, True)
ftpproxy_ignore = (data.getVar("HTTP_PROXY_IGNORE", d, True) or "").split()
for p in ftpproxy_ignore:
if uri_host.endswith(p):
ftpproxy = None
break
if httpproxy:
fetchcmd = "http_proxy=" + httpproxy + " " + fetchcmd
if ftpproxy:
fetchcmd = "ftp_proxy=" + ftpproxy + " " + fetchcmd
bb.msg.note(1, bb.msg.domain.Fetcher, "fetch " + uri)
bb.msg.debug(2, bb.msg.domain.Fetcher, "executing " + fetchcmd)
ret = os.system(fetchcmd)
if ret != 0:
return False
runfetchcmd(fetchcmd, d)
# Sanity check since wget can pretend it succeed when it didn't
# Also, this used to happen if sourceforge sent us to the mirror page
@@ -105,24 +85,9 @@ class Wget(Fetch):
data.setVar('OVERRIDES', "wget:" + data.getVar('OVERRIDES', localdata), localdata)
data.update_data(localdata)
premirrors = [ i.split() for i in (data.getVar('PREMIRRORS', localdata, 1) or "").split('\n') if i ]
for (find, replace) in premirrors:
newuri = uri_replace(uri, find, replace, d)
if newuri != uri:
if fetch_uri(newuri, ud, localdata):
return True
if fetch_uri(uri, ud, localdata):
return True
# try mirrors
mirrors = [ i.split() for i in (data.getVar('MIRRORS', localdata, 1) or "").split('\n') if i ]
for (find, replace) in mirrors:
newuri = uri_replace(uri, find, replace, d)
if newuri != uri:
if fetch_uri(newuri, ud, localdata):
return True
raise FetchError(uri)

View File

@@ -1,144 +0,0 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, sys
import bb, bb.data
def getfields(line):
fields = {}
fieldmap = ( "pkg", "src", "dest", "type", "mode", "uid", "gid", "major", "minor", "start", "inc", "count" )
for f in xrange(len(fieldmap)):
fields[fieldmap[f]] = None
if not line:
return None
splitline = line.split()
if not len(splitline):
return None
try:
for f in xrange(len(fieldmap)):
if splitline[f] == '-':
continue
fields[fieldmap[f]] = splitline[f]
except IndexError:
pass
return fields
def parse (mfile, d):
manifest = []
while 1:
line = mfile.readline()
if not line:
break
if line.startswith("#"):
continue
fields = getfields(line)
if not fields:
continue
manifest.append(fields)
return manifest
def emit (func, manifest, d):
#str = "%s () {\n" % func
str = ""
for line in manifest:
emittedline = emit_line(func, line, d)
if not emittedline:
continue
str += emittedline + "\n"
# str += "}\n"
return str
def mangle (func, line, d):
import copy
newline = copy.copy(line)
src = bb.data.expand(newline["src"], d)
if src:
if not os.path.isabs(src):
src = "${WORKDIR}/" + src
dest = newline["dest"]
if not dest:
return
if dest.startswith("/"):
dest = dest[1:]
if func is "do_install":
dest = "${D}/" + dest
elif func is "do_populate":
dest = "${WORKDIR}/install/" + newline["pkg"] + "/" + dest
elif func is "do_stage":
varmap = {}
varmap["${bindir}"] = "${STAGING_DIR}/${HOST_SYS}/bin"
varmap["${libdir}"] = "${STAGING_DIR}/${HOST_SYS}/lib"
varmap["${includedir}"] = "${STAGING_DIR}/${HOST_SYS}/include"
varmap["${datadir}"] = "${STAGING_DATADIR}"
matched = 0
for key in varmap.keys():
if dest.startswith(key):
dest = varmap[key] + "/" + dest[len(key):]
matched = 1
if not matched:
newline = None
return
else:
newline = None
return
newline["src"] = src
newline["dest"] = dest
return newline
def emit_line (func, line, d):
import copy
newline = copy.deepcopy(line)
newline = mangle(func, newline, d)
if not newline:
return None
str = ""
type = newline["type"]
mode = newline["mode"]
src = newline["src"]
dest = newline["dest"]
if type is "d":
str = "install -d "
if mode:
str += "-m %s " % mode
str += dest
elif type is "f":
if not src:
return None
if dest.endswith("/"):
str = "install -d "
str += dest + "\n"
str += "install "
else:
str = "install -D "
if mode:
str += "-m %s " % mode
str += src + " " + dest
del newline
return str

View File

@@ -27,7 +27,7 @@
a method pool to do this task.
This pool will be used to compile and execute the functions. It
will be smart enough to
will be smart enough to
"""
from bb.utils import better_compile, better_exec
@@ -43,8 +43,8 @@ def insert_method(modulename, code, fn):
Add code of a module should be added. The methods
will be simply added, no checking will be done
"""
comp = better_compile(code, "<bb>", fn )
better_exec(comp, __builtins__, code, fn)
comp = better_compile(code, modulename, fn )
better_exec(comp, None, code, fn)
# now some instrumentation
code = comp.co_names
@@ -59,7 +59,7 @@ def insert_method(modulename, code, fn):
def check_insert_method(modulename, code, fn):
"""
Add the code if it wasnt added before. The module
name will be used for that
name will be used for that
Variables:
@modulename a short name e.g. base.bbclass
@@ -81,4 +81,4 @@ def get_parsed_dict():
"""
shortcut
"""
return _parsed_methods
return _parsed_methods

View File

@@ -22,34 +22,40 @@ Message handling infrastructure for bitbake
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys, os, re, bb
from bb import utils, event
debug_level = {}
import sys
import collections
import bb
import bb.event
debug_level = collections.defaultdict(lambda: 0)
verbose = False
domain = bb.utils.Enum(
'Build',
'Cache',
'Collection',
'Data',
'Depends',
'Fetcher',
'Parsing',
'PersistData',
'Provider',
'RunQueue',
'TaskData',
'Util')
def _NamedTuple(name, fields):
Tuple = collections.namedtuple(name, " ".join(fields))
return Tuple(*range(len(fields)))
domain = _NamedTuple("Domain", (
"Default",
"Build",
"Cache",
"Collection",
"Data",
"Depends",
"Fetcher",
"Parsing",
"PersistData",
"Provider",
"RunQueue",
"TaskData",
"Util"))
class MsgBase(bb.event.Event):
"""Base class for messages"""
def __init__(self, msg, d ):
def __init__(self, msg):
self._message = msg
event.Event.__init__(self, d)
bb.event.Event.__init__(self)
class MsgDebug(MsgBase):
"""Debug Message"""
@@ -74,56 +80,65 @@ class MsgPlain(MsgBase):
#
def set_debug_level(level):
bb.msg.debug_level = {}
for domain in bb.msg.domain:
bb.msg.debug_level[domain] = level
bb.msg.debug_level['default'] = level
for d in domain:
debug_level[d] = level
debug_level[domain.Default] = level
def get_debug_level(msgdomain = domain.Default):
return debug_level[msgdomain]
def set_verbose(level):
bb.msg.verbose = level
verbose = level
def set_debug_domains(domains):
for domain in domains:
found = False
for ddomain in bb.msg.domain:
if domain == str(ddomain):
bb.msg.debug_level[ddomain] = bb.msg.debug_level[ddomain] + 1
found = True
if not found:
bb.msg.warn(None, "Logging domain %s is not valid, ignoring" % domain)
def set_debug_domains(strdomains):
for domainstr in strdomains:
for d in domain:
if domain._fields[d] == domainstr:
debug_level[d] += 1
break
else:
warn(None, "Logging domain %s is not valid, ignoring" % domainstr)
#
# Message handling functions
#
def debug(level, domain, msg, fn = None):
bb.event.fire(MsgDebug(msg, None))
if not domain:
domain = 'default'
if debug_level[domain] >= level:
print 'DEBUG: ' + msg
def debug(level, msgdomain, msg, fn = None):
if not msgdomain:
msgdomain = domain.Default
def note(level, domain, msg, fn = None):
bb.event.fire(MsgNote(msg, None))
if not domain:
domain = 'default'
if level == 1 or verbose or debug_level[domain] >= 1:
print 'NOTE: ' + msg
if debug_level[msgdomain] >= level:
bb.event.fire(MsgDebug(msg), None)
if bb.event.useStdout:
print('DEBUG: %s' % (msg))
def warn(domain, msg, fn = None):
bb.event.fire(MsgWarn(msg, None))
print 'WARNING: ' + msg
def note(level, msgdomain, msg, fn = None):
if not msgdomain:
msgdomain = domain.Default
def error(domain, msg, fn = None):
bb.event.fire(MsgError(msg, None))
print 'ERROR: ' + msg
if level == 1 or verbose or debug_level[msgdomain] >= 1:
bb.event.fire(MsgNote(msg), None)
if bb.event.useStdout:
print('NOTE: %s' % (msg))
def fatal(domain, msg, fn = None):
bb.event.fire(MsgFatal(msg, None))
print 'ERROR: ' + msg
def warn(msgdomain, msg, fn = None):
bb.event.fire(MsgWarn(msg), None)
if bb.event.useStdout:
print('WARNING: %s' % (msg))
def error(msgdomain, msg, fn = None):
bb.event.fire(MsgError(msg), None)
if bb.event.useStdout:
print('ERROR: %s' % (msg))
def fatal(msgdomain, msg, fn = None):
bb.event.fire(MsgFatal(msg), None)
if bb.event.useStdout:
print('FATAL: %s' % (msg))
sys.exit(1)
def plain(msg, fn = None):
bb.event.fire(MsgPlain(msg, None))
print msg
bb.event.fire(MsgPlain(msg), None)
if bb.event.useStdout:
print(msg)

View File

@@ -24,11 +24,11 @@ File parsers for the BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
__all__ = [ 'ParseError', 'SkipPackage', 'cached_mtime', 'mark_dependency',
'supports', 'handle', 'init' ]
handlers = []
import bb, os
import bb.utils
import bb.siggen
class ParseError(Exception):
"""Exception raised when parsing fails"""
@@ -38,12 +38,12 @@ class SkipPackage(Exception):
__mtime_cache = {}
def cached_mtime(f):
if not __mtime_cache.has_key(f):
if f not in __mtime_cache:
__mtime_cache[f] = os.stat(f)[8]
return __mtime_cache[f]
def cached_mtime_noerror(f):
if not __mtime_cache.has_key(f):
if f not in __mtime_cache:
try:
__mtime_cache[f] = os.stat(f)[8]
except OSError:
@@ -57,8 +57,8 @@ def update_mtime(f):
def mark_dependency(d, f):
if f.startswith('./'):
f = "%s/%s" % (os.getcwd(), f[2:])
deps = bb.data.getVar('__depends', d) or []
deps.append( (f, cached_mtime(f)) )
deps = bb.data.getVar('__depends', d) or set()
deps.update([(f, cached_mtime(f))])
bb.data.setVar('__depends', deps, d)
def supports(fn, data):
@@ -80,5 +80,39 @@ def init(fn, data):
if h['supports'](fn):
return h['init'](data)
def init_parser(d, dumpsigs):
bb.parse.siggen = bb.siggen.init(d, dumpsigs)
from parse_py import __version__, ConfHandler, BBHandler
def resolve_file(fn, d):
if not os.path.isabs(fn):
bbpath = bb.data.getVar("BBPATH", d, True)
newfn = bb.which(bbpath, fn)
if not newfn:
raise IOError("file %s not found in %s" % (fn, bbpath))
fn = newfn
bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % fn)
return fn
# Used by OpenEmbedded metadata
__pkgsplit_cache__={}
def vars_from_file(mypkg, d):
if not mypkg:
return (None, None, None)
if mypkg in __pkgsplit_cache__:
return __pkgsplit_cache__[mypkg]
myfile = os.path.splitext(os.path.basename(mypkg))
parts = myfile[0].split('_')
__pkgsplit_cache__[mypkg] = parts
if len(parts) > 3:
raise ParseError("Unable to generate default variables from the filename: %s (too many underscores)" % mypkg)
exp = 3 - len(parts)
tmplist = []
while exp != 0:
exp -= 1
tmplist.append(None)
parts.extend(tmplist)
return parts
from bb.parse.parse_py import __version__, ConfHandler, BBHandler

445
bitbake/lib/bb/parse/ast.py Normal file
View File

@@ -0,0 +1,445 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
AbstractSyntaxTree classes for the Bitbake language
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2009 Holger Hans Peter Freyther
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from __future__ import absolute_import
from future_builtins import filter
import bb, re, string
from bb import methodpool
import itertools
__word__ = re.compile(r"\S+")
__parsed_methods__ = bb.methodpool.get_parsed_dict()
_bbversions_re = re.compile(r"\[(?P<from>[0-9]+)-(?P<to>[0-9]+)\]")
class StatementGroup(list):
def eval(self, data):
for statement in self:
statement.eval(data)
class AstNode(object):
pass
class IncludeNode(AstNode):
def __init__(self, what_file, fn, lineno, force):
self.what_file = what_file
self.from_fn = fn
self.from_lineno = lineno
self.force = force
def eval(self, data):
"""
Include the file and evaluate the statements
"""
s = bb.data.expand(self.what_file, data)
bb.msg.debug(3, bb.msg.domain.Parsing, "CONF %s:%d: including %s" % (self.from_fn, self.from_lineno, s))
# TODO: Cache those includes... maybe not here though
if self.force:
bb.parse.ConfHandler.include(self.from_fn, s, data, "include required")
else:
bb.parse.ConfHandler.include(self.from_fn, s, data, False)
class ExportNode(AstNode):
def __init__(self, var):
self.var = var
def eval(self, data):
bb.data.setVarFlag(self.var, "export", 1, data)
class DataNode(AstNode):
"""
Various data related updates. For the sake of sanity
we have one class doing all this. This means that all
this need to be re-evaluated... we might be able to do
that faster with multiple classes.
"""
def __init__(self, groupd):
self.groupd = groupd
def getFunc(self, key, data):
if 'flag' in self.groupd and self.groupd['flag'] != None:
return bb.data.getVarFlag(key, self.groupd['flag'], data)
else:
return bb.data.getVar(key, data)
def eval(self, data):
groupd = self.groupd
key = groupd["var"]
if "exp" in groupd and groupd["exp"] != None:
bb.data.setVarFlag(key, "export", 1, data)
if "ques" in groupd and groupd["ques"] != None:
val = self.getFunc(key, data)
if val == None:
val = groupd["value"]
elif "colon" in groupd and groupd["colon"] != None:
e = data.createCopy()
bb.data.update_data(e)
val = bb.data.expand(groupd["value"], e)
elif "append" in groupd and groupd["append"] != None:
val = "%s %s" % ((self.getFunc(key, data) or ""), groupd["value"])
elif "prepend" in groupd and groupd["prepend"] != None:
val = "%s %s" % (groupd["value"], (self.getFunc(key, data) or ""))
elif "postdot" in groupd and groupd["postdot"] != None:
val = "%s%s" % ((self.getFunc(key, data) or ""), groupd["value"])
elif "predot" in groupd and groupd["predot"] != None:
val = "%s%s" % (groupd["value"], (self.getFunc(key, data) or ""))
else:
val = groupd["value"]
if 'flag' in groupd and groupd['flag'] != None:
bb.data.setVarFlag(key, groupd['flag'], val, data)
elif groupd["lazyques"]:
assigned = bb.data.getVar("__lazy_assigned", data) or []
assigned.append(key)
bb.data.setVar("__lazy_assigned", assigned, data)
bb.data.setVarFlag(key, "defaultval", val, data)
else:
bb.data.setVar(key, val, data)
class MethodNode:
def __init__(self, func_name, body, lineno, fn):
self.func_name = func_name
self.body = body
self.fn = fn
self.lineno = lineno
def eval(self, data):
if self.func_name == "__anonymous":
funcname = ("__anon_%s_%s" % (self.lineno, self.fn.translate(string.maketrans('/.+-', '____'))))
if not funcname in bb.methodpool._parsed_fns:
text = "def %s(d):\n" % (funcname) + '\n'.join(self.body)
bb.methodpool.insert_method(funcname, text, self.fn)
anonfuncs = bb.data.getVar('__BBANONFUNCS', data) or []
anonfuncs.append(funcname)
bb.data.setVar('__BBANONFUNCS', anonfuncs, data)
else:
bb.data.setVarFlag(self.func_name, "func", 1, data)
bb.data.setVar(self.func_name, '\n'.join(self.body), data)
class PythonMethodNode(AstNode):
def __init__(self, funcname, root, body, fn):
self.func_name = funcname
self.root = root
self.body = body
self.fn = fn
def eval(self, data):
# Note we will add root to parsedmethods after having parse
# 'this' file. This means we will not parse methods from
# bb classes twice
text = '\n'.join(self.body)
if not bb.methodpool.parsed_module(self.root):
bb.methodpool.insert_method(self.root, text, self.fn)
bb.data.setVarFlag(self.func_name, "func", 1, data)
bb.data.setVarFlag(self.func_name, "python", 1, data)
bb.data.setVar(self.func_name, text, data)
class MethodFlagsNode(AstNode):
def __init__(self, key, m):
self.key = key
self.m = m
def eval(self, data):
if bb.data.getVar(self.key, data):
# clean up old version of this piece of metadata, as its
# flags could cause problems
bb.data.setVarFlag(self.key, 'python', None, data)
bb.data.setVarFlag(self.key, 'fakeroot', None, data)
if self.m.group("py") is not None:
bb.data.setVarFlag(self.key, "python", "1", data)
else:
bb.data.delVarFlag(self.key, "python", data)
if self.m.group("fr") is not None:
bb.data.setVarFlag(self.key, "fakeroot", "1", data)
else:
bb.data.delVarFlag(self.key, "fakeroot", data)
class ExportFuncsNode(AstNode):
def __init__(self, fns, classes):
self.n = __word__.findall(fns)
self.classes = classes
def eval(self, data):
for f in self.n:
allvars = []
allvars.append(f)
allvars.append(self.classes[-1] + "_" + f)
vars = [[ allvars[0], allvars[1] ]]
if len(self.classes) > 1 and self.classes[-2] is not None:
allvars.append(self.classes[-2] + "_" + f)
vars = []
vars.append([allvars[2], allvars[1]])
vars.append([allvars[0], allvars[2]])
for (var, calledvar) in vars:
if bb.data.getVar(var, data) and not bb.data.getVarFlag(var, 'export_func', data):
continue
if bb.data.getVar(var, data):
bb.data.setVarFlag(var, 'python', None, data)
bb.data.setVarFlag(var, 'func', None, data)
for flag in [ "func", "python" ]:
if bb.data.getVarFlag(calledvar, flag, data):
bb.data.setVarFlag(var, flag, bb.data.getVarFlag(calledvar, flag, data), data)
for flag in [ "dirs" ]:
if bb.data.getVarFlag(var, flag, data):
bb.data.setVarFlag(calledvar, flag, bb.data.getVarFlag(var, flag, data), data)
if bb.data.getVarFlag(calledvar, "python", data):
bb.data.setVar(var, "\tbb.build.exec_func('" + calledvar + "', d)\n", data)
else:
bb.data.setVar(var, "\t" + calledvar + "\n", data)
bb.data.setVarFlag(var, 'export_func', '1', data)
class AddTaskNode(AstNode):
def __init__(self, func, before, after):
self.func = func
self.before = before
self.after = after
def eval(self, data):
var = self.func
if self.func[:3] != "do_":
var = "do_" + self.func
bb.data.setVarFlag(var, "task", 1, data)
bbtasks = bb.data.getVar('__BBTASKS', data) or []
if not var in bbtasks:
bbtasks.append(var)
bb.data.setVar('__BBTASKS', bbtasks, data)
existing = bb.data.getVarFlag(var, "deps", data) or []
if self.after is not None:
# set up deps for function
for entry in self.after.split():
if entry not in existing:
existing.append(entry)
bb.data.setVarFlag(var, "deps", existing, data)
if self.before is not None:
# set up things that depend on this func
for entry in self.before.split():
existing = bb.data.getVarFlag(entry, "deps", data) or []
if var not in existing:
bb.data.setVarFlag(entry, "deps", [var] + existing, data)
class BBHandlerNode(AstNode):
def __init__(self, fns):
self.hs = __word__.findall(fns)
def eval(self, data):
bbhands = bb.data.getVar('__BBHANDLERS', data) or []
for h in self.hs:
bbhands.append(h)
bb.data.setVarFlag(h, "handler", 1, data)
bb.data.setVar('__BBHANDLERS', bbhands, data)
class InheritNode(AstNode):
def __init__(self, files):
self.n = __word__.findall(files)
def eval(self, data):
bb.parse.BBHandler.inherit(self.n, data)
def handleInclude(statements, m, fn, lineno, force):
statements.append(IncludeNode(m.group(1), fn, lineno, force))
def handleExport(statements, m):
statements.append(ExportNode(m.group(1)))
def handleData(statements, groupd):
statements.append(DataNode(groupd))
def handleMethod(statements, func_name, lineno, fn, body):
statements.append(MethodNode(func_name, body, lineno, fn))
def handlePythonMethod(statements, funcname, root, body, fn):
statements.append(PythonMethodNode(funcname, root, body, fn))
def handleMethodFlags(statements, key, m):
statements.append(MethodFlagsNode(key, m))
def handleExportFuncs(statements, m, classes):
statements.append(ExportFuncsNode(m.group(1), classes))
def handleAddTask(statements, m):
func = m.group("func")
before = m.group("before")
after = m.group("after")
if func is None:
return
statements.append(AddTaskNode(func, before, after))
def handleBBHandlers(statements, m):
statements.append(BBHandlerNode(m.group(1)))
def handleInherit(statements, m):
files = m.group(1)
n = __word__.findall(files)
statements.append(InheritNode(m.group(1)))
def finalize(fn, d, variant = None):
for lazykey in bb.data.getVar("__lazy_assigned", d) or ():
if bb.data.getVar(lazykey, d) is None:
val = bb.data.getVarFlag(lazykey, "defaultval", d)
bb.data.setVar(lazykey, val, d)
bb.data.expandKeys(d)
bb.data.update_data(d)
code = []
for funcname in bb.data.getVar("__BBANONFUNCS", d) or []:
code.append("%s(d)" % funcname)
bb.utils.simple_exec("\n".join(code), {"d": d})
bb.data.update_data(d)
all_handlers = {}
for var in bb.data.getVar('__BBHANDLERS', d) or []:
# try to add the handler
handler = bb.data.getVar(var, d)
bb.event.register(var, handler)
tasklist = bb.data.getVar('__BBTASKS', d) or []
bb.build.add_tasks(tasklist, d)
bb.parse.siggen.finalise(fn, d, variant)
bb.event.fire(bb.event.RecipeParsed(fn), d)
def _create_variants(datastores, names, function):
def create_variant(name, orig_d, arg = None):
new_d = bb.data.createCopy(orig_d)
function(arg or name, new_d)
datastores[name] = new_d
for variant, variant_d in datastores.items():
for name in names:
if not variant:
# Based on main recipe
create_variant(name, variant_d)
else:
create_variant("%s-%s" % (variant, name), variant_d, name)
def _expand_versions(versions):
def expand_one(version, start, end):
for i in xrange(start, end + 1):
ver = _bbversions_re.sub(str(i), version, 1)
yield ver
versions = iter(versions)
while True:
try:
version = next(versions)
except StopIteration:
break
range_ver = _bbversions_re.search(version)
if not range_ver:
yield version
else:
newversions = expand_one(version, int(range_ver.group("from")),
int(range_ver.group("to")))
versions = itertools.chain(newversions, versions)
def multi_finalize(fn, d):
appends = (d.getVar("__BBAPPEND", True) or "").split()
for append in appends:
bb.msg.debug(2, bb.msg.domain.Parsing, "Appending .bbappend file " + append + " to " + fn)
bb.parse.BBHandler.handle(append, d, True)
safe_d = d
d = bb.data.createCopy(safe_d)
try:
finalize(fn, d)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, d)
datastores = {"": safe_d}
versions = (d.getVar("BBVERSIONS", True) or "").split()
if versions:
pv = orig_pv = d.getVar("PV", True)
baseversions = {}
def verfunc(ver, d, pv_d = None):
if pv_d is None:
pv_d = d
overrides = d.getVar("OVERRIDES", True).split(":")
pv_d.setVar("PV", ver)
overrides.append(ver)
bpv = baseversions.get(ver) or orig_pv
pv_d.setVar("BPV", bpv)
overrides.append(bpv)
d.setVar("OVERRIDES", ":".join(overrides))
versions = list(_expand_versions(versions))
for pos, version in enumerate(list(versions)):
try:
pv, bpv = version.split(":", 2)
except ValueError:
pass
else:
versions[pos] = pv
baseversions[pv] = bpv
if pv in versions and not baseversions.get(pv):
versions.remove(pv)
else:
pv = versions.pop()
# This is necessary because our existing main datastore
# has already been finalized with the old PV, we need one
# that's been finalized with the new PV.
d = bb.data.createCopy(safe_d)
verfunc(pv, d, safe_d)
try:
finalize(fn, d)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, d)
_create_variants(datastores, versions, verfunc)
extended = d.getVar("BBCLASSEXTEND", True) or ""
if extended:
pn = d.getVar("PN", True)
def extendfunc(name, d):
d.setVar("PN", "%s-%s" % (pn, name))
bb.parse.BBHandler.inherit([name], d)
safe_d.setVar("BBCLASSEXTEND", extended)
_create_variants(datastores, extended.split(), extendfunc)
for variant, variant_d in datastores.iteritems():
if variant:
try:
finalize(fn, variant_d, variant)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, variant_d)
if len(datastores) > 1:
variants = filter(None, datastores.iterkeys())
safe_d.setVar("__VARIANTS", " ".join(variants))
datastores[""] = d
return datastores

View File

@@ -11,7 +11,7 @@
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
@@ -25,12 +25,17 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, bb, os, sys, time, string
from __future__ import absolute_import
import re, bb, os
import bb.fetch, bb.build, bb.utils
from bb import data, fetch, methodpool
from bb import data
from ConfHandler import include, localpath, obtain, init
from bb.parse import ParseError
from . import ConfHandler
from .. import resolve_file, ast
from .ConfHandler import include, init
# For compatibility
bb.deprecate_import(__name__, "bb.parse", ["vars_from_file"])
__func_start_regexp__ = re.compile( r"(((?P<py>python)|(?P<fr>fakeroot))\s*)*(?P<func>[\w\.\-\+\{\}\$]+)?\s*\(\s*\)\s*{$" )
__inherit_regexp__ = re.compile( r"inherit\s+(.+)" )
@@ -39,7 +44,7 @@ __addtask_regexp__ = re.compile("addtask\s+(?P<func>\w+)\s*((before\s*(?P<
__addhandler_regexp__ = re.compile( r"addhandler\s+(.+)" )
__def_regexp__ = re.compile( r"def\s+(\w+).*:" )
__python_func_regexp__ = re.compile( r"(\s+.*)|(^$)" )
__word__ = re.compile(r"\S+")
__infunc__ = ""
__inpython__ = False
@@ -47,6 +52,8 @@ __body__ = []
__classname__ = ""
classes = [ None, ]
cached_statements = {}
# We need to indicate EOF to the feeder. This code is so messy that
# factoring it out to a close_parse_file method is out of question.
# We will use the IN_PYTHON_EOF as an indicator to just close the method
@@ -54,18 +61,17 @@ classes = [ None, ]
# The two parts using it are tightly integrated anyway
IN_PYTHON_EOF = -9999999999999
__parsed_methods__ = methodpool.get_parsed_dict()
def supports(fn, d):
localfn = localpath(fn, d)
return localfn[-3:] == ".bb" or localfn[-8:] == ".bbclass" or localfn[-4:] == ".inc"
return fn[-3:] == ".bb" or fn[-8:] == ".bbclass" or fn[-4:] == ".inc"
def inherit(files, d):
__inherit_cache = data.getVar('__inherit_cache', d) or []
fn = ""
lineno = 0
files = data.expand(files, d)
for file in files:
file = data.expand(file, d)
if file[0] != "/" and file[-8:] != ".bbclass":
file = os.path.join('classes', '%s.bbclass' % file)
@@ -76,59 +82,45 @@ def inherit(files, d):
include(fn, file, d, "inherit")
__inherit_cache = data.getVar('__inherit_cache', d) or []
def get_statements(filename, absolute_filename, base_name):
global cached_statements
def finalise(fn, d):
data.expandKeys(d)
data.update_data(d)
anonqueue = data.getVar("__anonqueue", d, 1) or []
body = [x['content'] for x in anonqueue]
flag = { 'python' : 1, 'func' : 1 }
data.setVar("__anonfunc", "\n".join(body), d)
data.setVarFlags("__anonfunc", flag, d)
from bb import build
try:
t = data.getVar('T', d)
data.setVar('T', '${TMPDIR}/', d)
anonfuncs = data.getVar('__BBANONFUNCS', d) or []
code = ""
for f in anonfuncs:
code = code + " %s(d)\n" % f
data.setVar("__anonfunc", code, d)
build.exec_func_python("__anonfunc", d)
data.delVar('T', d)
if t:
data.setVar('T', t, d)
except Exception, e:
bb.msg.debug(1, bb.msg.domain.Parsing, "Exception when executing anonymous function: %s" % e)
raise
data.delVar("__anonqueue", d)
data.delVar("__anonfunc", d)
data.update_data(d)
return cached_statements[absolute_filename]
except KeyError:
file = open(absolute_filename, 'r')
statements = ast.StatementGroup()
all_handlers = {}
for var in data.getVar('__BBHANDLERS', d) or []:
# try to add the handler
handler = data.getVar(var,d)
bb.event.register(var, handler)
lineno = 0
while True:
lineno = lineno + 1
s = file.readline()
if not s: break
s = s.rstrip()
feeder(lineno, s, filename, base_name, statements)
if __inpython__:
# add a blank line to close out any python definition
feeder(IN_PYTHON_EOF, "", filename, base_name, statements)
tasklist = data.getVar('__BBTASKS', d) or []
bb.build.add_tasks(tasklist, d)
if filename.endswith(".bbclass") or filename.endswith(".inc"):
cached_statements[absolute_filename] = statements
return statements
def handle(fn, d, include = 0):
def handle(fn, d, include):
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __infunc__, __body__, __residue__
__body__ = []
__infunc__ = ""
__classname__ = ""
__residue__ = []
if include == 0:
bb.msg.debug(2, bb.msg.domain.Parsing, "BB " + fn + ": handle(data)")
else:
bb.msg.debug(2, bb.msg.domain.Parsing, "BB " + fn + ": handle(data, include)")
(root, ext) = os.path.splitext(os.path.basename(fn))
base_name = "%s%s" % (root,ext)
base_name = "%s%s" % (root, ext)
init(d)
if ext == ".bbclass":
@@ -144,83 +136,41 @@ def handle(fn, d, include = 0):
else:
oldfile = None
fn = obtain(fn, d)
bbpath = (data.getVar('BBPATH', d, 1) or '').split(':')
if not os.path.isabs(fn):
f = None
for p in bbpath:
j = os.path.join(p, fn)
if os.access(j, os.R_OK):
abs_fn = j
f = open(j, 'r')
break
if f is None:
raise IOError("file %s not found" % fn)
else:
f = open(fn,'r')
abs_fn = fn
abs_fn = resolve_file(fn, d)
if include:
bb.parse.mark_dependency(d, abs_fn)
# actual loading
statements = get_statements(fn, abs_fn, base_name)
# DONE WITH PARSING... time to evaluate
if ext != ".bbclass":
data.setVar('FILE', fn, d)
lineno = 0
while 1:
lineno = lineno + 1
s = f.readline()
if not s: break
s = s.rstrip()
feeder(lineno, s, fn, base_name, d)
if __inpython__:
# add a blank line to close out any python definition
feeder(IN_PYTHON_EOF, "", fn, base_name, d)
statements.eval(d)
if ext == ".bbclass":
classes.remove(__classname__)
else:
if include == 0:
multi = data.getVar('BBCLASSEXTEND', d, 1)
if multi:
based = bb.data.createCopy(d)
finalise(fn, based)
darray = {"": based}
for cls in multi.split():
pn = data.getVar('PN', d, True)
based = bb.data.createCopy(d)
data.setVar('PN', pn + '-' + cls, based)
inherit([cls], based)
finalise(fn, based)
darray[cls] = based
return darray
else:
finalise(fn, d)
bbpath.pop(0)
return ast.multi_finalize(fn, d)
if oldfile:
bb.data.setVar("FILE", oldfile, d)
# we have parsed the bb class now
if ext == ".bbclass" or ext == ".inc":
__parsed_methods__[base_name] = 1
bb.methodpool.get_parsed_dict()[base_name] = 1
return d
def feeder(lineno, s, fn, root, d):
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __def_regexp__, __python_func_regexp__, __inpython__,__infunc__, __body__, classes, bb, __residue__
def feeder(lineno, s, fn, root, statements):
global __func_start_regexp__, __inherit_regexp__, __export_func_regexp__, __addtask_regexp__, __addhandler_regexp__, __def_regexp__, __python_func_regexp__, __inpython__, __infunc__, __body__, classes, bb, __residue__
if __infunc__:
if s == '}':
__body__.append('')
if __infunc__ == "__anonymous":
funcname = ("__anon_%s_%s" % (lineno, fn.translate(string.maketrans('/.+-', '____'))))
if not funcname in methodpool._parsed_fns:
text = "def %s(d):\n" % (funcname) + '\n'.join(__body__)
methodpool.insert_method(funcname, text, fn)
anonfuncs = data.getVar('__BBANONFUNCS', d) or []
anonfuncs.append(funcname)
data.setVar('__BBANONFUNCS', anonfuncs, d)
else:
data.setVarFlag(__infunc__, "func", 1, d)
data.setVar(__infunc__, '\n'.join(__body__), d)
ast.handleMethod(statements, __infunc__, lineno, fn, __body__)
__infunc__ = ""
__body__ = []
else:
@@ -233,12 +183,7 @@ def feeder(lineno, s, fn, root, d):
__body__.append(s)
return
else:
# Note we will add root to parsedmethods after having parse
# 'this' file. This means we will not parse methods from
# bb classes twice
if not root in __parsed_methods__:
text = '\n'.join(__body__)
methodpool.insert_method( root, text, fn )
ast.handlePythonMethod(statements, __inpython__, root, __body__, fn)
__body__ = []
__inpython__ = False
@@ -259,141 +204,39 @@ def feeder(lineno, s, fn, root, d):
m = __func_start_regexp__.match(s)
if m:
__infunc__ = m.group("func") or "__anonymous"
key = __infunc__
if data.getVar(key, d):
# clean up old version of this piece of metadata, as its
# flags could cause problems
data.setVarFlag(key, 'python', None, d)
data.setVarFlag(key, 'fakeroot', None, d)
if m.group("py") is not None:
data.setVarFlag(key, "python", "1", d)
else:
data.delVarFlag(key, "python", d)
if m.group("fr") is not None:
data.setVarFlag(key, "fakeroot", "1", d)
else:
data.delVarFlag(key, "fakeroot", d)
ast.handleMethodFlags(statements, __infunc__, m)
return
m = __def_regexp__.match(s)
if m:
__body__.append(s)
__inpython__ = True
__inpython__ = m.group(1)
return
m = __export_func_regexp__.match(s)
if m:
fns = m.group(1)
n = __word__.findall(fns)
for f in n:
allvars = []
allvars.append(f)
allvars.append(classes[-1] + "_" + f)
vars = [[ allvars[0], allvars[1] ]]
if len(classes) > 1 and classes[-2] is not None:
allvars.append(classes[-2] + "_" + f)
vars = []
vars.append([allvars[2], allvars[1]])
vars.append([allvars[0], allvars[2]])
for (var, calledvar) in vars:
if data.getVar(var, d) and not data.getVarFlag(var, 'export_func', d):
continue
if data.getVar(var, d):
data.setVarFlag(var, 'python', None, d)
data.setVarFlag(var, 'func', None, d)
for flag in [ "func", "python" ]:
if data.getVarFlag(calledvar, flag, d):
data.setVarFlag(var, flag, data.getVarFlag(calledvar, flag, d), d)
for flag in [ "dirs" ]:
if data.getVarFlag(var, flag, d):
data.setVarFlag(calledvar, flag, data.getVarFlag(var, flag, d), d)
if data.getVarFlag(calledvar, "python", d):
data.setVar(var, "\tbb.build.exec_func('" + calledvar + "', d)\n", d)
else:
data.setVar(var, "\t" + calledvar + "\n", d)
data.setVarFlag(var, 'export_func', '1', d)
ast.handleExportFuncs(statements, m, classes)
return
m = __addtask_regexp__.match(s)
if m:
func = m.group("func")
before = m.group("before")
after = m.group("after")
if func is None:
return
var = "do_" + func
data.setVarFlag(var, "task", 1, d)
bbtasks = data.getVar('__BBTASKS', d) or []
if not var in bbtasks:
bbtasks.append(var)
data.setVar('__BBTASKS', bbtasks, d)
existing = data.getVarFlag(var, "deps", d) or []
if after is not None:
# set up deps for function
for entry in after.split():
if entry not in existing:
existing.append(entry)
data.setVarFlag(var, "deps", existing, d)
if before is not None:
# set up things that depend on this func
for entry in before.split():
existing = data.getVarFlag(entry, "deps", d) or []
if var not in existing:
data.setVarFlag(entry, "deps", [var] + existing, d)
ast.handleAddTask(statements, m)
return
m = __addhandler_regexp__.match(s)
if m:
fns = m.group(1)
hs = __word__.findall(fns)
bbhands = data.getVar('__BBHANDLERS', d) or []
for h in hs:
bbhands.append(h)
data.setVarFlag(h, "handler", 1, d)
data.setVar('__BBHANDLERS', bbhands, d)
ast.handleBBHandlers(statements, m)
return
m = __inherit_regexp__.match(s)
if m:
files = m.group(1)
n = __word__.findall(files)
inherit(n, d)
ast.handleInherit(statements, m)
return
from bb.parse import ConfHandler
return ConfHandler.feeder(lineno, s, fn, d)
__pkgsplit_cache__={}
def vars_from_file(mypkg, d):
if not mypkg:
return (None, None, None)
if mypkg in __pkgsplit_cache__:
return __pkgsplit_cache__[mypkg]
myfile = os.path.splitext(os.path.basename(mypkg))
parts = myfile[0].split('_')
__pkgsplit_cache__[mypkg] = parts
if len(parts) > 3:
raise ParseError("Unable to generate default variables from the filename: %s (too many underscores)" % mypkg)
exp = 3 - len(parts)
tmplist = []
while exp != 0:
exp -= 1
tmplist.append(None)
parts.extend(tmplist)
return parts
return ConfHandler.feeder(lineno, s, fn, statements)
# Add us to the handlers list
from bb.parse import handlers
from .. import handlers
handlers.append({'supports': supports, 'handle': handle, 'init': init})
del handlers

View File

@@ -10,7 +10,7 @@
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
@@ -24,71 +24,24 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, bb.data, os, sys
from bb.parse import ParseError
import re, bb.data, os
import bb.utils
from bb.parse import ParseError, resolve_file, ast
#__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}]+)\s*(?P<colon>:)?(?P<ques>\?)?=\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}/]+)(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?\s*((?P<colon>:=)|(?P<ques>\?=)|(?P<append>\+=)|(?P<prepend>=\+)|(?P<predot>=\.)|(?P<postdot>\.=)|=)\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}/]+)(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?\s*((?P<colon>:=)|(?P<lazyques>\?\?=)|(?P<ques>\?=)|(?P<append>\+=)|(?P<prepend>=\+)|(?P<predot>=\.)|(?P<postdot>\.=)|=)\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
__include_regexp__ = re.compile( r"include\s+(.+)" )
__require_regexp__ = re.compile( r"require\s+(.+)" )
__export_regexp__ = re.compile( r"export\s+(.+)" )
def init(data):
if not bb.data.getVar('TOPDIR', data):
topdir = bb.data.getVar('TOPDIR', data)
if not topdir:
bb.data.setVar('TOPDIR', os.getcwd(), data)
if not bb.data.getVar('BBPATH', data):
bb.data.setVar('BBPATH', os.path.join(sys.prefix, 'share', 'bitbake'), data)
def supports(fn, d):
return localpath(fn, d)[-5:] == ".conf"
def localpath(fn, d):
if os.path.exists(fn):
return fn
if "://" not in fn:
return fn
localfn = None
try:
localfn = bb.fetch.localpath(fn, d, False)
except bb.MalformedUrl:
pass
if not localfn:
return fn
return localfn
def obtain(fn, data):
import sys, bb
fn = bb.data.expand(fn, data)
localfn = bb.data.expand(localpath(fn, data), data)
if localfn != fn:
dldir = bb.data.getVar('DL_DIR', data, 1)
if not dldir:
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: DL_DIR not defined")
return localfn
bb.mkdirhier(dldir)
try:
bb.fetch.init([fn], data)
except bb.fetch.NoMethodError:
(type, value, traceback) = sys.exc_info()
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: no method: %s" % value)
return localfn
try:
bb.fetch.go(data)
except bb.fetch.MissingParameterError:
(type, value, traceback) = sys.exc_info()
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: missing parameters: %s" % value)
return localfn
except bb.fetch.FetchError:
(type, value, traceback) = sys.exc_info()
bb.msg.debug(1, bb.msg.domain.Parsing, "obtain: failed: %s" % value)
return localfn
return localfn
return fn[-5:] == ".conf"
def include(oldfn, fn, data, error_out):
"""
@@ -105,7 +58,7 @@ def include(oldfn, fn, data, error_out):
if not os.path.isabs(fn):
dname = os.path.dirname(oldfn)
bbpath = "%s:%s" % (dname, bb.data.getVar("BBPATH", data, 1))
abs_fn = bb.which(bbpath, fn)
abs_fn = bb.utils.which(bbpath, fn)
if abs_fn:
fn = abs_fn
@@ -117,11 +70,7 @@ def include(oldfn, fn, data, error_out):
raise ParseError("Could not %(error_out)s file %(fn)s" % vars() )
bb.msg.debug(2, bb.msg.domain.Parsing, "CONF file '%s' not found" % fn)
def handle(fn, data, include = 0):
if include:
inc_string = "including"
else:
inc_string = "reading"
def handle(fn, data, include):
init(data)
if include == 0:
@@ -129,30 +78,15 @@ def handle(fn, data, include = 0):
else:
oldfile = bb.data.getVar('FILE', data)
fn = obtain(fn, data)
if not os.path.isabs(fn):
f = None
bbpath = bb.data.getVar("BBPATH", data, 1) or []
for p in bbpath.split(":"):
currname = os.path.join(p, fn)
if os.access(currname, os.R_OK):
f = open(currname, 'r')
abs_fn = currname
bb.msg.debug(2, bb.msg.domain.Parsing, "CONF %s %s" % (inc_string, currname))
break
if f is None:
raise IOError("file '%s' not found" % fn)
else:
f = open(fn,'r')
bb.msg.debug(1, bb.msg.domain.Parsing, "CONF %s %s" % (inc_string,fn))
abs_fn = fn
abs_fn = resolve_file(fn, data)
f = open(abs_fn, 'r')
if include:
bb.parse.mark_dependency(data, abs_fn)
statements = ast.StatementGroup()
lineno = 0
bb.data.setVar('FILE', fn, data)
while 1:
while True:
lineno = lineno + 1
s = f.readline()
if not s: break
@@ -164,66 +98,36 @@ def handle(fn, data, include = 0):
s2 = f.readline()[:-1].strip()
lineno = lineno + 1
s = s[:-1] + s2
feeder(lineno, s, fn, data)
feeder(lineno, s, fn, statements)
# DONE WITH PARSING... time to evaluate
bb.data.setVar('FILE', fn, data)
statements.eval(data)
if oldfile:
bb.data.setVar('FILE', oldfile, data)
return data
def feeder(lineno, s, fn, data):
def getFunc(groupd, key, data):
if 'flag' in groupd and groupd['flag'] != None:
return bb.data.getVarFlag(key, groupd['flag'], data)
else:
return bb.data.getVar(key, data)
def feeder(lineno, s, fn, statements):
m = __config_regexp__.match(s)
if m:
groupd = m.groupdict()
key = groupd["var"]
if "exp" in groupd and groupd["exp"] != None:
bb.data.setVarFlag(key, "export", 1, data)
if "ques" in groupd and groupd["ques"] != None:
val = getFunc(groupd, key, data)
if val == None:
val = groupd["value"]
elif "colon" in groupd and groupd["colon"] != None:
e = data.createCopy()
bb.data.update_data(e)
val = bb.data.expand(groupd["value"], e)
elif "append" in groupd and groupd["append"] != None:
val = "%s %s" % ((getFunc(groupd, key, data) or ""), groupd["value"])
elif "prepend" in groupd and groupd["prepend"] != None:
val = "%s %s" % (groupd["value"], (getFunc(groupd, key, data) or ""))
elif "postdot" in groupd and groupd["postdot"] != None:
val = "%s%s" % ((getFunc(groupd, key, data) or ""), groupd["value"])
elif "predot" in groupd and groupd["predot"] != None:
val = "%s%s" % (groupd["value"], (getFunc(groupd, key, data) or ""))
else:
val = groupd["value"]
if 'flag' in groupd and groupd['flag'] != None:
bb.msg.debug(3, bb.msg.domain.Parsing, "setVarFlag(%s, %s, %s, data)" % (key, groupd['flag'], val))
bb.data.setVarFlag(key, groupd['flag'], val, data)
else:
bb.data.setVar(key, val, data)
ast.handleData(statements, groupd)
return
m = __include_regexp__.match(s)
if m:
s = bb.data.expand(m.group(1), data)
bb.msg.debug(3, bb.msg.domain.Parsing, "CONF %s:%d: including %s" % (fn, lineno, s))
include(fn, s, data, False)
ast.handleInclude(statements, m, fn, lineno, False)
return
m = __require_regexp__.match(s)
if m:
s = bb.data.expand(m.group(1), data)
include(fn, s, data, "include required")
ast.handleInclude(statements, m, fn, lineno, True)
return
m = __export_regexp__.match(s)
if m:
bb.data.setVarFlag(m.group(1), "export", 1, data)
ast.handleExport(statements, m)
return
raise ParseError("%s:%d: unparsed line: '%s'" % (fn, lineno, s));

View File

@@ -25,9 +25,9 @@ File parsers for the BitBake build tools.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
from __future__ import absolute_import
from . import ConfHandler
from . import BBHandler
__version__ = '1.0'
__all__ = [ 'ConfHandler', 'BBHandler']
import ConfHandler
import BBHandler

View File

@@ -16,6 +16,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import bb, os
import bb.utils
try:
import sqlite3
@@ -33,58 +34,63 @@ class PersistData:
"""
BitBake Persistent Data Store
Used to store data in a central location such that other threads/tasks can
Used to store data in a central location such that other threads/tasks can
access them at some future date.
The "domain" is used as a key to isolate each data pool and in this
implementation corresponds to an SQL table. The SQL table consists of a
The "domain" is used as a key to isolate each data pool and in this
implementation corresponds to an SQL table. The SQL table consists of a
simple key and value pair.
Why sqlite? It handles all the locking issues for us.
"""
def __init__(self, d):
def __init__(self, d, persistent_database_connection):
if "connection" in persistent_database_connection:
self.cursor = persistent_database_connection["connection"].cursor()
return
self.cachedir = bb.data.getVar("PERSISTENT_DIR", d, True) or bb.data.getVar("CACHE", d, True)
if self.cachedir in [None, '']:
bb.msg.fatal(bb.msg.domain.PersistData, "Please set the 'PERSISTENT_DIR' or 'CACHE' variable.")
try:
os.stat(self.cachedir)
except OSError:
bb.mkdirhier(self.cachedir)
bb.utils.mkdirhier(self.cachedir)
self.cachefile = os.path.join(self.cachedir,"bb_persist_data.sqlite3")
self.cachefile = os.path.join(self.cachedir, "bb_persist_data.sqlite3")
bb.msg.debug(1, bb.msg.domain.PersistData, "Using '%s' as the persistent data cache" % self.cachefile)
self.connection = sqlite3.connect(self.cachefile, timeout=5, isolation_level=None)
connection = sqlite3.connect(self.cachefile, timeout=5, isolation_level=None)
persistent_database_connection["connection"] = connection
self.cursor = persistent_database_connection["connection"].cursor()
def addDomain(self, domain):
"""
Should be called before any domain is used
Creates it if it doesn't exist.
"""
self.connection.execute("CREATE TABLE IF NOT EXISTS %s(key TEXT, value TEXT);" % domain)
self._execute("CREATE TABLE IF NOT EXISTS %s(key TEXT, value TEXT);" % domain)
def delDomain(self, domain):
"""
Removes a domain and all the data it contains
"""
self.connection.execute("DROP TABLE IF EXISTS %s;" % domain)
self._execute("DROP TABLE IF EXISTS %s;" % domain)
def getKeyValues(self, domain):
"""
Return a list of key + value pairs for a domain
"""
ret = {}
data = self.connection.execute("SELECT key, value from %s;" % domain)
data = self._execute("SELECT key, value from %s;" % domain)
for row in data:
ret[str(row[0])] = str(row[1])
return ret
return ret
def getValue(self, domain, key):
"""
Return the value of a key for a domain
"""
data = self.connection.execute("SELECT * from %s where key=?;" % domain, [key])
data = self._execute("SELECT * from %s where key=?;" % domain, [key])
for row in data:
return row[1]
@@ -92,7 +98,7 @@ class PersistData:
"""
Sets the value of a key for a domain
"""
data = self.connection.execute("SELECT * from %s where key=?;" % domain, [key])
data = self._execute("SELECT * from %s where key=?;" % domain, [key])
rows = 0
for row in data:
rows = rows + 1
@@ -107,15 +113,21 @@ class PersistData:
"""
self._execute("DELETE from %s where key=?;" % domain, [key])
#
# We wrap the sqlite execute calls as on contended machines or single threaded
# systems we can have multiple processes trying to access the DB at once and it seems
# sqlite sometimes doesn't wait for the timeout. We therefore loop but put in an
# emergency brake too
#
def _execute(self, *query):
while True:
count = 0
while True:
try:
self.connection.execute(*query)
return
except sqlite3.OperationalError, e:
if 'database is locked' in str(e):
ret = self.cursor.execute(*query)
#print "Had to retry %s times" % count
return ret
except sqlite3.OperationalError as e:
if 'database is locked' in str(e) and count < 500:
count = count + 1
continue
raise

View File

@@ -21,7 +21,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os, re
import re
from bb import data, utils
import bb
@@ -50,19 +50,27 @@ def sortPriorities(pn, dataCache, pkg_pn = None):
if preference not in priorities[priority]:
priorities[priority][preference] = []
priorities[priority][preference].append(f)
pri_list = priorities.keys()
pri_list.sort(lambda a, b: a - b)
tmp_pn = []
for pri in pri_list:
pref_list = priorities[pri].keys()
pref_list.sort(lambda a, b: b - a)
for pri in sorted(priorities, lambda a, b: a - b):
tmp_pref = []
for pref in pref_list:
for pref in sorted(priorities[pri], lambda a, b: b - a):
tmp_pref.extend(priorities[pri][pref])
tmp_pn = [tmp_pref] + tmp_pn
return tmp_pn
def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
"""
Check if the version pe,pv,pr is the preferred one.
If there is preferred version defined and ends with '%', then pv has to start with that version after removing the '%'
"""
if (pr == preferred_r or preferred_r == None):
if (pe == preferred_e or preferred_e == None):
if preferred_v == pv:
return True
if preferred_v != None and preferred_v.endswith('%') and pv.startswith(preferred_v[:len(preferred_v)-1]):
return True
return False
def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
"""
@@ -95,8 +103,8 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
for file_set in pkg_pn:
for f in file_set:
pe,pv,pr = dataCache.pkg_pepvpr[f]
if preferred_v == pv and (preferred_r == pr or preferred_r == None) and (preferred_e == pe or preferred_e == None):
pe, pv, pr = dataCache.pkg_pepvpr[f]
if preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
preferred_file = f
preferred_ver = (pe, pv, pr)
break
@@ -128,7 +136,7 @@ def findLatestProvider(pn, cfgData, dataCache, file_set):
latest_p = 0
latest_f = None
for file_name in file_set:
pe,pv,pr = dataCache.pkg_pepvpr[file_name]
pe, pv, pr = dataCache.pkg_pepvpr[file_name]
dp = dataCache.pkg_dp[file_name]
if (latest is None) or ((latest_p == dp) and (utils.vercmp(latest, (pe, pv, pr)) < 0)) or (dp > latest_p):
@@ -161,14 +169,14 @@ def findBestProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
def _filterProviders(providers, item, cfgData, dataCache):
"""
Take a list of providers and filter/reorder according to the
Take a list of providers and filter/reorder according to the
environment variables and previous build results
"""
eligible = []
preferred_versions = {}
sortpkg_pn = {}
# The order of providers depends on the order of the files on the disk
# The order of providers depends on the order of the files on the disk
# up to here. Sort pkg_pn to make dependency issues reproducible rather
# than effectively random.
providers.sort()
@@ -184,14 +192,14 @@ def _filterProviders(providers, item, cfgData, dataCache):
bb.msg.debug(1, bb.msg.domain.Provider, "providers for %s are: %s" % (item, pkg_pn.keys()))
# First add PREFERRED_VERSIONS
for pn in pkg_pn.keys():
for pn in pkg_pn:
sortpkg_pn[pn] = sortPriorities(pn, dataCache, pkg_pn)
preferred_versions[pn] = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn[pn], item)
if preferred_versions[pn][1]:
eligible.append(preferred_versions[pn][1])
# Now add latest verisons
for pn in pkg_pn.keys():
# Now add latest versions
for pn in sortpkg_pn:
if pn in preferred_versions and preferred_versions[pn][1]:
continue
preferred_versions[pn] = findLatestProvider(pn, cfgData, dataCache, sortpkg_pn[pn][0])
@@ -218,7 +226,7 @@ def _filterProviders(providers, item, cfgData, dataCache):
def filterProviders(providers, item, cfgData, dataCache):
"""
Take a list of providers and filter/reorder according to the
Take a list of providers and filter/reorder according to the
environment variables and previous build results
Takes a "normal" target item
"""
@@ -246,7 +254,7 @@ def filterProviders(providers, item, cfgData, dataCache):
def filterProvidersRunTime(providers, item, cfgData, dataCache):
"""
Take a list of providers and filter/reorder according to the
Take a list of providers and filter/reorder according to the
environment variables and previous build results
Takes a "runtime" target item
"""
@@ -289,7 +297,7 @@ def getRuntimeProviders(dataCache, rdepend):
rproviders = []
if rdepend in dataCache.rproviders:
rproviders += dataCache.rproviders[rdepend]
rproviders += dataCache.rproviders[rdepend]
if rdepend in dataCache.packages:
rproviders += dataCache.packages[rdepend]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,181 @@
#
# BitBake 'dummy' Passthrough Server
#
# Copyright (C) 2006 - 2007 Michael 'Mickey' Lauer
# Copyright (C) 2006 - 2008 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
This module implements an xmlrpc server for BitBake.
Use this by deriving a class from BitBakeXMLRPCServer and then adding
methods which you want to "export" via XMLRPC. If the methods have the
prefix xmlrpc_, then registering those function will happen automatically,
if not, you need to call register_function.
Use register_idle_function() to add a function which the xmlrpc server
calls from within server_forever when no requests are pending. Make sure
that those functions are non-blocking or else you will introduce latency
in the server's main loop.
"""
import time
import bb
from bb.ui import uievent
import xmlrpclib
import pickle
DEBUG = False
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
import inspect, select
class BitBakeServerCommands():
def __init__(self, server, cooker):
self.cooker = cooker
self.server = server
def runCommand(self, command):
"""
Run a cooker command on the server
"""
#print "Running Command %s" % command
return self.cooker.command.runCommand(command)
def terminateServer(self):
"""
Trigger the server to quit
"""
self.server.server_exit()
#print "Server (cooker) exitting"
return
def ping(self):
"""
Dummy method which can be used to check the server is still alive
"""
return True
eventQueue = []
class BBUIEventQueue:
class event:
def __init__(self, parent):
self.parent = parent
@staticmethod
def send(event):
bb.server.none.eventQueue.append(pickle.loads(event))
@staticmethod
def quit():
return
def __init__(self, BBServer):
self.eventQueue = bb.server.none.eventQueue
self.BBServer = BBServer
self.EventHandle = bb.event.register_UIHhandler(self)
def getEvent(self):
if len(self.eventQueue) == 0:
return None
return self.eventQueue.pop(0)
def waitEvent(self, delay):
event = self.getEvent()
if event:
return event
self.BBServer.idle_commands(delay)
return self.getEvent()
def queue_event(self, event):
self.eventQueue.append(event)
def system_quit( self ):
bb.event.unregister_UIHhandler(self.EventHandle)
class BitBakeServer():
# remove this when you're done with debugging
# allow_reuse_address = True
def __init__(self, cooker):
self._idlefuns = {}
self.commands = BitBakeServerCommands(self, cooker)
def register_idle_function(self, function, data):
"""Register a function to be called while the server is idle"""
assert hasattr(function, '__call__')
self._idlefuns[function] = data
def idle_commands(self, delay):
#print "Idle queue length %s" % len(self._idlefuns)
#print "Idle timeout, running idle functions"
#if len(self._idlefuns) == 0:
nextsleep = delay
for function, data in self._idlefuns.items():
try:
retval = function(self, data, False)
#print "Idle function returned %s" % (retval)
if retval is False:
del self._idlefuns[function]
elif retval is True:
nextsleep = None
elif nextsleep is None:
continue
elif retval < nextsleep:
nextsleep = retval
except SystemExit:
raise
except:
import traceback
traceback.print_exc()
self.commands.runCommand(["stateShutdown"])
pass
if nextsleep is not None:
#print "Sleeping for %s (%s)" % (nextsleep, delay)
time.sleep(nextsleep)
def server_exit(self):
# Tell idle functions we're exiting
for function, data in self._idlefuns.items():
try:
retval = function(self, data, True)
except:
pass
class BitbakeServerInfo():
def __init__(self, server):
self.server = server
self.commands = server.commands
class BitBakeServerFork():
def __init__(self, serverinfo, command, logfile):
serverinfo.forkCommand = command
serverinfo.logfile = logfile
class BitBakeServerConnection():
def __init__(self, serverinfo):
self.server = serverinfo.server
self.connection = serverinfo.commands
self.events = bb.server.none.BBUIEventQueue(self.server)
def terminate(self):
try:
self.events.system_quit()
except:
pass
try:
self.connection.terminateServer()
except:
pass

View File

@@ -0,0 +1,186 @@
#
# BitBake XMLRPC Server
#
# Copyright (C) 2006 - 2007 Michael 'Mickey' Lauer
# Copyright (C) 2006 - 2008 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
This module implements an xmlrpc server for BitBake.
Use this by deriving a class from BitBakeXMLRPCServer and then adding
methods which you want to "export" via XMLRPC. If the methods have the
prefix xmlrpc_, then registering those function will happen automatically,
if not, you need to call register_function.
Use register_idle_function() to add a function which the xmlrpc server
calls from within server_forever when no requests are pending. Make sure
that those functions are non-blocking or else you will introduce latency
in the server's main loop.
"""
import bb
import xmlrpclib, sys
from bb import daemonize
from bb.ui import uievent
DEBUG = False
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
import inspect, select
if sys.hexversion < 0x020600F0:
print("Sorry, python 2.6 or later is required for bitbake's XMLRPC mode")
sys.exit(1)
class BitBakeServerCommands():
def __init__(self, server, cooker):
self.cooker = cooker
self.server = server
def registerEventHandler(self, host, port):
"""
Register a remote UI Event Handler
"""
s = xmlrpclib.Server("http://%s:%d" % (host, port), allow_none=True)
return bb.event.register_UIHhandler(s)
def unregisterEventHandler(self, handlerNum):
"""
Unregister a remote UI Event Handler
"""
return bb.event.unregister_UIHhandler(handlerNum)
def runCommand(self, command):
"""
Run a cooker command on the server
"""
return self.cooker.command.runCommand(command)
def terminateServer(self):
"""
Trigger the server to quit
"""
self.server.quit = True
print("Server (cooker) exitting")
return
def ping(self):
"""
Dummy method which can be used to check the server is still alive
"""
return True
class BitBakeServer(SimpleXMLRPCServer):
# remove this when you're done with debugging
# allow_reuse_address = True
def __init__(self, cooker, interface = ("localhost", 0)):
"""
Constructor
"""
SimpleXMLRPCServer.__init__(self, interface,
requestHandler=SimpleXMLRPCRequestHandler,
logRequests=False, allow_none=True)
self._idlefuns = {}
self.host, self.port = self.socket.getsockname()
#self.register_introspection_functions()
commands = BitBakeServerCommands(self, cooker)
self.autoregister_all_functions(commands, "")
def autoregister_all_functions(self, context, prefix):
"""
Convenience method for registering all functions in the scope
of this class that start with a common prefix
"""
methodlist = inspect.getmembers(context, inspect.ismethod)
for name, method in methodlist:
if name.startswith(prefix):
self.register_function(method, name[len(prefix):])
def register_idle_function(self, function, data):
"""Register a function to be called while the server is idle"""
assert hasattr(function, '__call__')
self._idlefuns[function] = data
def serve_forever(self):
"""
Serve Requests. Overloaded to honor a quit command
"""
self.quit = False
self.timeout = 0 # Run Idle calls for our first callback
while not self.quit:
#print "Idle queue length %s" % len(self._idlefuns)
self.handle_request()
#print "Idle timeout, running idle functions"
nextsleep = None
for function, data in self._idlefuns.items():
try:
retval = function(self, data, False)
if retval is False:
del self._idlefuns[function]
elif retval is True:
nextsleep = 0
elif nextsleep is 0:
continue
elif nextsleep is None:
nextsleep = retval
elif retval < nextsleep:
nextsleep = retval
except SystemExit:
raise
except:
import traceback
traceback.print_exc()
pass
if nextsleep is None and len(self._idlefuns) > 0:
nextsleep = 0
self.timeout = nextsleep
# Tell idle functions we're exiting
for function, data in self._idlefuns.items():
try:
retval = function(self, data, True)
except:
pass
self.server_close()
return
class BitbakeServerInfo():
def __init__(self, server):
self.host = server.host
self.port = server.port
class BitBakeServerFork():
def __init__(self, serverinfo, command, logfile):
daemonize.createDaemon(command, logfile)
class BitBakeServerConnection():
def __init__(self, serverinfo):
self.connection = xmlrpclib.Server("http://%s:%s" % (serverinfo.host, serverinfo.port), allow_none=True)
self.events = uievent.BBUIEventQueue(self.connection)
def terminate(self):
# Don't wait for server indefinitely
import socket
socket.setdefaulttimeout(2)
try:
self.events.system_quit()
except:
pass
try:
self.connection.terminateServer()
except:
pass

View File

@@ -52,12 +52,14 @@ PROBLEMS:
# Import and setup global variables
##########################################################################
from __future__ import print_function
from functools import reduce
try:
set
except NameError:
from sets import Set as set
import sys, os, readline, socket, httplib, urllib, commands, popen2, copy, shlex, Queue, fnmatch
from bb import data, parse, build, fatal, cache, taskdata, runqueue, providers as Providers
import sys, os, readline, socket, httplib, urllib, commands, popen2, shlex, Queue, fnmatch
from bb import data, parse, build, cache, taskdata, runqueue, providers as Providers
__version__ = "0.5.3.1"
__credits__ = """BitBake Shell Version %s (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
@@ -98,7 +100,7 @@ class BitBakeShellCommands:
def _checkParsed( self ):
if not parsed:
print "SHELL: This command needs to parse bbfiles..."
print("SHELL: This command needs to parse bbfiles...")
self.parse( None )
def _findProvider( self, item ):
@@ -119,40 +121,37 @@ class BitBakeShellCommands:
"""Register a new name for a command"""
new, old = params
if not old in cmds:
print "ERROR: Command '%s' not known" % old
print("ERROR: Command '%s' not known" % old)
else:
cmds[new] = cmds[old]
print "OK"
print("OK")
alias.usage = "<alias> <command>"
def buffer( self, params ):
"""Dump specified output buffer"""
index = params[0]
print self._shell.myout.buffer( int( index ) )
print(self._shell.myout.buffer( int( index ) ))
buffer.usage = "<index>"
def buffers( self, params ):
"""Show the available output buffers"""
commands = self._shell.myout.bufferedCommands()
if not commands:
print "SHELL: No buffered commands available yet. Start doing something."
print("SHELL: No buffered commands available yet. Start doing something.")
else:
print "="*35, "Available Output Buffers", "="*27
print("="*35, "Available Output Buffers", "="*27)
for index, cmd in enumerate( commands ):
print "| %s %s" % ( str( index ).ljust( 3 ), cmd )
print "="*88
print("| %s %s" % ( str( index ).ljust( 3 ), cmd ))
print("="*88)
def build( self, params, cmd = "build" ):
"""Build a providee"""
global last_exception
globexpr = params[0]
self._checkParsed()
names = globfilter( cooker.status.pkg_pn.keys(), globexpr )
names = globfilter( cooker.status.pkg_pn, globexpr )
if len( names ) == 0: names = [ globexpr ]
print "SHELL: Building %s" % ' '.join( names )
oldcmd = cooker.configuration.cmd
cooker.configuration.cmd = cmd
print("SHELL: Building %s" % ' '.join( names ))
td = taskdata.TaskData(cooker.configuration.abort)
localdata = data.createCopy(cooker.configuration.data)
@@ -168,28 +167,27 @@ class BitBakeShellCommands:
if len(providers) == 0:
raise Providers.NoProvider
tasks.append([name, "do_%s" % cooker.configuration.cmd])
tasks.append([name, "do_%s" % cmd])
td.add_unresolved(localdata, cooker.status)
rq = runqueue.RunQueue(cooker, localdata, cooker.status, td, tasks)
rq.prepare_runqueue()
rq.execute_runqueue()
except Providers.NoProvider:
print "ERROR: No Provider"
print("ERROR: No Provider")
last_exception = Providers.NoProvider
except runqueue.TaskFailure, fnids:
except runqueue.TaskFailure as fnids:
for fnid in fnids:
print "ERROR: '%s' failed" % td.fn_index[fnid]
print("ERROR: '%s' failed" % td.fn_index[fnid])
last_exception = runqueue.TaskFailure
except build.EventException, e:
print "ERROR: Couldn't build '%s'" % names
except build.EventException as e:
print("ERROR: Couldn't build '%s'" % names)
last_exception = e
cooker.configuration.cmd = oldcmd
build.usage = "<providee>"
@@ -208,6 +206,11 @@ class BitBakeShellCommands:
self.build( params, "configure" )
configure.usage = "<providee>"
def install( self, params ):
"""Execute 'install' on a providee"""
self.build( params, "install" )
install.usage = "<providee>"
def edit( self, params ):
"""Call $EDITOR on a providee"""
name = params[0]
@@ -215,7 +218,7 @@ class BitBakeShellCommands:
if bbfile is not None:
os.system( "%s %s" % ( os.environ.get( "EDITOR", "vi" ), bbfile ) )
else:
print "ERROR: Nothing provides '%s'" % name
print("ERROR: Nothing provides '%s'" % name)
edit.usage = "<providee>"
def environment( self, params ):
@@ -238,20 +241,16 @@ class BitBakeShellCommands:
global last_exception
name = params[0]
bf = completeFilePath( name )
print "SHELL: Calling '%s' on '%s'" % ( cmd, bf )
oldcmd = cooker.configuration.cmd
cooker.configuration.cmd = cmd
print("SHELL: Calling '%s' on '%s'" % ( cmd, bf ))
try:
cooker.buildFile(bf)
cooker.buildFile(bf, cmd)
except parse.ParseError:
print "ERROR: Unable to open or parse '%s'" % bf
except build.EventException, e:
print "ERROR: Couldn't build '%s'" % name
print("ERROR: Unable to open or parse '%s'" % bf)
except build.EventException as e:
print("ERROR: Couldn't build '%s'" % name)
last_exception = e
cooker.configuration.cmd = oldcmd
fileBuild.usage = "<bbfile>"
def fileClean( self, params ):
@@ -273,64 +272,62 @@ class BitBakeShellCommands:
def fileReparse( self, params ):
"""(re)Parse a bb file"""
bbfile = params[0]
print "SHELL: Parsing '%s'" % bbfile
print("SHELL: Parsing '%s'" % bbfile)
parse.update_mtime( bbfile )
cooker.bb_cache.cacheValidUpdate(bbfile)
fromCache = cooker.bb_cache.loadData(bbfile, cooker.configuration.data, cooker.status)
cooker.bb_cache.sync()
if False: #fromCache:
print "SHELL: File has not been updated, not reparsing"
print("SHELL: File has not been updated, not reparsing")
else:
print "SHELL: Parsed"
print("SHELL: Parsed")
fileReparse.usage = "<bbfile>"
def abort( self, params ):
"""Toggle abort task execution flag (see bitbake -k)"""
cooker.configuration.abort = not cooker.configuration.abort
print "SHELL: Abort Flag is now '%s'" % repr( cooker.configuration.abort )
print("SHELL: Abort Flag is now '%s'" % repr( cooker.configuration.abort ))
def force( self, params ):
"""Toggle force task execution flag (see bitbake -f)"""
cooker.configuration.force = not cooker.configuration.force
print "SHELL: Force Flag is now '%s'" % repr( cooker.configuration.force )
print("SHELL: Force Flag is now '%s'" % repr( cooker.configuration.force ))
def help( self, params ):
"""Show a comprehensive list of commands and their purpose"""
print "="*30, "Available Commands", "="*30
allcmds = cmds.keys()
allcmds.sort()
for cmd in allcmds:
function,numparams,usage,helptext = cmds[cmd]
print "| %s | %s" % (usage.ljust(30), helptext)
print "="*78
print("="*30, "Available Commands", "="*30)
for cmd in sorted(cmds):
function, numparams, usage, helptext = cmds[cmd]
print("| %s | %s" % (usage.ljust(30), helptext))
print("="*78)
def lastError( self, params ):
"""Show the reason or log that was produced by the last BitBake event exception"""
if last_exception is None:
print "SHELL: No Errors yet (Phew)..."
print("SHELL: No Errors yet (Phew)...")
else:
reason, event = last_exception.args
print "SHELL: Reason for the last error: '%s'" % reason
print("SHELL: Reason for the last error: '%s'" % reason)
if ':' in reason:
msg, filename = reason.split( ':' )
filename = filename.strip()
print "SHELL: Dumping log file for last error:"
print("SHELL: Dumping log file for last error:")
try:
print open( filename ).read()
print(open( filename ).read())
except IOError:
print "ERROR: Couldn't open '%s'" % filename
print("ERROR: Couldn't open '%s'" % filename)
def match( self, params ):
"""Dump all files or providers matching a glob expression"""
what, globexpr = params
if what == "files":
self._checkParsed()
for key in globfilter( cooker.status.pkg_fn.keys(), globexpr ): print key
for key in globfilter( cooker.status.pkg_fn, globexpr ): print(key)
elif what == "providers":
self._checkParsed()
for key in globfilter( cooker.status.pkg_pn.keys(), globexpr ): print key
for key in globfilter( cooker.status.pkg_pn, globexpr ): print(key)
else:
print "Usage: match %s" % self.print_.usage
print("Usage: match %s" % self.print_.usage)
match.usage = "<files|providers> <glob>"
def new( self, params ):
@@ -340,15 +337,15 @@ class BitBakeShellCommands:
fulldirname = "%s/%s" % ( packages, dirname )
if not os.path.exists( fulldirname ):
print "SHELL: Creating '%s'" % fulldirname
print("SHELL: Creating '%s'" % fulldirname)
os.mkdir( fulldirname )
if os.path.exists( fulldirname ) and os.path.isdir( fulldirname ):
if os.path.exists( "%s/%s" % ( fulldirname, filename ) ):
print "SHELL: ERROR: %s/%s already exists" % ( fulldirname, filename )
print("SHELL: ERROR: %s/%s already exists" % ( fulldirname, filename ))
return False
print "SHELL: Creating '%s/%s'" % ( fulldirname, filename )
print("SHELL: Creating '%s/%s'" % ( fulldirname, filename ))
newpackage = open( "%s/%s" % ( fulldirname, filename ), "w" )
print >>newpackage,"""DESCRIPTION = ""
print("""DESCRIPTION = ""
SECTION = ""
AUTHOR = ""
HOMEPAGE = ""
@@ -375,7 +372,7 @@ SRC_URI = ""
#do_install() {
#
#}
"""
""", file=newpackage)
newpackage.close()
os.system( "%s %s/%s" % ( os.environ.get( "EDITOR" ), fulldirname, filename ) )
new.usage = "<directory> <filename>"
@@ -395,14 +392,14 @@ SRC_URI = ""
def pasteLog( self, params ):
"""Send the last event exception error log (if there is one) to http://rafb.net/paste"""
if last_exception is None:
print "SHELL: No Errors yet (Phew)..."
print("SHELL: No Errors yet (Phew)...")
else:
reason, event = last_exception.args
print "SHELL: Reason for the last error: '%s'" % reason
print("SHELL: Reason for the last error: '%s'" % reason)
if ':' in reason:
msg, filename = reason.split( ':' )
filename = filename.strip()
print "SHELL: Pasting log file to pastebin..."
print("SHELL: Pasting log file to pastebin...")
file = open( filename ).read()
sendToPastebin( "contents of " + filename, file )
@@ -424,23 +421,23 @@ SRC_URI = ""
cooker.buildDepgraph()
global parsed
parsed = True
print
print()
def reparse( self, params ):
"""(re)Parse a providee's bb file"""
bbfile = self._findProvider( params[0] )
if bbfile is not None:
print "SHELL: Found bbfile '%s' for '%s'" % ( bbfile, params[0] )
print("SHELL: Found bbfile '%s' for '%s'" % ( bbfile, params[0] ))
self.fileReparse( [ bbfile ] )
else:
print "ERROR: Nothing provides '%s'" % params[0]
print("ERROR: Nothing provides '%s'" % params[0])
reparse.usage = "<providee>"
def getvar( self, params ):
"""Dump the contents of an outer BitBake environment variable"""
var = params[0]
value = data.getVar( var, cooker.configuration.data, 1 )
print value
print(value)
getvar.usage = "<variable>"
def peek( self, params ):
@@ -450,9 +447,9 @@ SRC_URI = ""
if bbfile is not None:
the_data = cooker.bb_cache.loadDataFull(bbfile, cooker.configuration.data)
value = the_data.getVar( var, 1 )
print value
print(value)
else:
print "ERROR: Nothing provides '%s'" % name
print("ERROR: Nothing provides '%s'" % name)
peek.usage = "<providee> <variable>"
def poke( self, params ):
@@ -460,7 +457,7 @@ SRC_URI = ""
name, var, value = params
bbfile = self._findProvider( name )
if bbfile is not None:
print "ERROR: Sorry, this functionality is currently broken"
print("ERROR: Sorry, this functionality is currently broken")
#d = cooker.pkgdata[bbfile]
#data.setVar( var, value, d )
@@ -468,7 +465,7 @@ SRC_URI = ""
#cooker.pkgdata.setDirty(bbfile, d)
#print "OK"
else:
print "ERROR: Nothing provides '%s'" % name
print("ERROR: Nothing provides '%s'" % name)
poke.usage = "<providee> <variable> <value>"
def print_( self, params ):
@@ -476,12 +473,12 @@ SRC_URI = ""
what = params[0]
if what == "files":
self._checkParsed()
for key in cooker.status.pkg_fn.keys(): print key
for key in cooker.status.pkg_fn: print(key)
elif what == "providers":
self._checkParsed()
for key in cooker.status.providers.keys(): print key
for key in cooker.status.providers: print(key)
else:
print "Usage: print %s" % self.print_.usage
print("Usage: print %s" % self.print_.usage)
print_.usage = "<files|providers>"
def python( self, params ):
@@ -493,7 +490,7 @@ SRC_URI = ""
interpreter.interact( "SHELL: Expert Mode - BitBake Python %s\nType 'help' for more information, press CTRL-D to switch back to BBSHELL." % sys.version )
def showdata( self, params ):
"""Show the parsed metadata for a given providee"""
"""Execute 'showdata' on a providee"""
cooker.showEnvironment(None, params)
showdata.usage = "<providee>"
@@ -501,7 +498,7 @@ SRC_URI = ""
"""Set an outer BitBake environment variable"""
var, value = params
data.setVar( var, value, cooker.configuration.data )
print "OK"
print("OK")
setVar.usage = "<variable> <value>"
def rebuild( self, params ):
@@ -513,7 +510,7 @@ SRC_URI = ""
def shell( self, params ):
"""Execute a shell command and dump the output"""
if params != "":
print commands.getoutput( " ".join( params ) )
print(commands.getoutput( " ".join( params ) ))
shell.usage = "<...>"
def stage( self, params ):
@@ -523,17 +520,17 @@ SRC_URI = ""
def status( self, params ):
"""<just for testing>"""
print "-" * 78
print "building list = '%s'" % cooker.building_list
print "build path = '%s'" % cooker.build_path
print "consider_msgs_cache = '%s'" % cooker.consider_msgs_cache
print "build stats = '%s'" % cooker.stats
if last_exception is not None: print "last_exception = '%s'" % repr( last_exception.args )
print "memory output contents = '%s'" % self._shell.myout._buffer
print("-" * 78)
print("building list = '%s'" % cooker.building_list)
print("build path = '%s'" % cooker.build_path)
print("consider_msgs_cache = '%s'" % cooker.consider_msgs_cache)
print("build stats = '%s'" % cooker.stats)
if last_exception is not None: print("last_exception = '%s'" % repr( last_exception.args ))
print("memory output contents = '%s'" % self._shell.myout._buffer)
def test( self, params ):
"""<just for testing>"""
print "testCommand called with '%s'" % params
print("testCommand called with '%s'" % params)
def unpack( self, params ):
"""Execute 'unpack' on a providee"""
@@ -558,12 +555,12 @@ SRC_URI = ""
try:
providers = cooker.status.providers[item]
except KeyError:
print "SHELL: ERROR: Nothing provides", preferred
print("SHELL: ERROR: Nothing provides", preferred)
else:
for provider in providers:
if provider == pf: provider = " (***) %s" % provider
else: provider = " %s" % provider
print provider
print(provider)
which.usage = "<providee>"
##########################################################################
@@ -574,7 +571,7 @@ def completeFilePath( bbfile ):
"""Get the complete bbfile path"""
if not cooker.status: return bbfile
if not cooker.status.pkg_fn: return bbfile
for key in cooker.status.pkg_fn.keys():
for key in cooker.status.pkg_fn:
if key.endswith( bbfile ):
return key
return bbfile
@@ -588,7 +585,7 @@ def sendToPastebin( desc, content ):
mydata["nick"] = "%s@%s" % ( os.environ.get( "USER", "unknown" ), socket.gethostname() or "unknown" )
mydata["text"] = content
params = urllib.urlencode( mydata )
headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
host = "rafb.net"
conn = httplib.HTTPConnection( "%s:80" % host )
@@ -599,9 +596,9 @@ def sendToPastebin( desc, content ):
if response.status == 302:
location = response.getheader( "location" ) or "unknown"
print "SHELL: Pasted to http://%s%s" % ( host, location )
print("SHELL: Pasted to http://%s%s" % ( host, location ))
else:
print "ERROR: %s %s" % ( response.status, response.reason )
print("ERROR: %s %s" % ( response.status, response.reason ))
def completer( text, state ):
"""Return a possible readline completion"""
@@ -618,7 +615,7 @@ def completer( text, state ):
allmatches = cooker.configuration.data.keys()
elif u == "<bbfile>":
if cooker.status.pkg_fn is None: allmatches = [ "(No Matches Available. Parsed yet?)" ]
else: allmatches = [ x.split("/")[-1] for x in cooker.status.pkg_fn.keys() ]
else: allmatches = [ x.split("/")[-1] for x in cooker.status.pkg_fn ]
elif u == "<providee>":
if cooker.status.pkg_fn is None: allmatches = [ "(No Matches Available. Parsed yet?)" ]
else: allmatches = cooker.status.providers.iterkeys()
@@ -648,7 +645,7 @@ def columnize( alist, width = 80 ):
return reduce(lambda line, word, width=width: '%s%s%s' %
(line,
' \n'[(len(line[line.rfind('\n')+1:])
+ len(word.split('\n',1)[0]
+ len(word.split('\n', 1)[0]
) >= width)],
word),
alist
@@ -723,7 +720,7 @@ class BitBakeShell:
except IOError:
pass # It doesn't exist yet.
print __credits__
print(__credits__)
def cleanup( self ):
"""Write readline history and clean up resources"""
@@ -731,7 +728,7 @@ class BitBakeShell:
try:
readline.write_history_file( self.historyfilename )
except:
print "SHELL: Unable to save command history"
print("SHELL: Unable to save command history")
def registerCommand( self, command, function, numparams = 0, usage = "", helptext = "" ):
"""Register a command"""
@@ -745,11 +742,11 @@ class BitBakeShell:
try:
function, numparams, usage, helptext = cmds[command]
except KeyError:
print "SHELL: ERROR: '%s' command is not a valid command." % command
print("SHELL: ERROR: '%s' command is not a valid command." % command)
self.myout.removeLast()
else:
if (numparams != -1) and (not len( params ) == numparams):
print "Usage: '%s'" % usage
print("Usage: '%s'" % usage)
return
result = function( self.commands, params )
@@ -764,7 +761,7 @@ class BitBakeShell:
if not cmdline:
continue
if "|" in cmdline:
print "ERROR: '|' in startup file is not allowed. Ignoring line"
print("ERROR: '|' in startup file is not allowed. Ignoring line")
continue
self.commandQ.put( cmdline.strip() )
@@ -806,10 +803,10 @@ class BitBakeShell:
sys.stdout.write( pipe.fromchild.read() )
#
except EOFError:
print
print()
return
except KeyboardInterrupt:
print
print()
##########################################################################
# Start function - called from the BitBake command line utility
@@ -824,4 +821,4 @@ def start( aCooker ):
bbshell.cleanup()
if __name__ == "__main__":
print "SHELL: Sorry, this program should only be called by BitBake."
print("SHELL: Sorry, this program should only be called by BitBake.")

260
bitbake/lib/bb/siggen.py Normal file
View File

@@ -0,0 +1,260 @@
import hashlib
import re
try:
import cPickle as pickle
except ImportError:
import pickle
bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.")
def init(d, dumpsigs):
siggens = [obj for obj in globals().itervalues()
if type(obj) is type and issubclass(obj, SignatureGenerator)]
desired = bb.data.getVar("BB_SIGNATURE_HANDLER", d, True) or "noop"
for sg in siggens:
if desired == sg.name:
return sg(d, dumpsigs)
break
else:
bb.error("Invalid signature generator '%s', using default 'noop' generator" % desired)
bb.error("Available generators: %s" % ", ".join(obj.name for obj in siggens))
return SignatureGenerator(d, dumpsigs)
class SignatureGenerator(object):
"""
"""
name = "noop"
def __init__(self, data, dumpsigs):
return
def finalise(self, fn, d):
return
class SignatureGeneratorBasic(SignatureGenerator):
"""
"""
name = "basic"
def __init__(self, data, dumpsigs):
self.basehash = {}
self.taskhash = {}
self.taskdeps = {}
self.runtaskdeps = {}
self.gendeps = {}
self.lookupcache = {}
self.basewhitelist = (data.getVar("BB_HASHBASE_WHITELIST", True) or "").split()
self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST", True) or None
if self.taskwhitelist:
self.twl = re.compile(self.taskwhitelist)
else:
self.twl = None
self.dumpsigs = dumpsigs
def _build_data(self, fn, d):
taskdeps, gendeps = bb.data.generate_dependencies(d)
basehash = {}
lookupcache = {}
for task in taskdeps:
data = d.getVar(task, False)
lookupcache[task] = data
for dep in sorted(taskdeps[task]):
if dep in self.basewhitelist:
continue
if dep in lookupcache:
var = lookupcache[dep]
else:
var = d.getVar(dep, False)
lookupcache[dep] = var
if var:
data = data + var
self.basehash[fn + "." + task] = hashlib.md5(data).hexdigest()
#bb.note("Hash for %s is %s" % (task, tashhash[task]))
if self.dumpsigs:
self.taskdeps[fn] = taskdeps
self.gendeps[fn] = gendeps
self.lookupcache[fn] = lookupcache
return taskdeps
def finalise(self, fn, d, variant):
if variant:
fn = "virtual:" + variant + ":" + fn
taskdeps = self._build_data(fn, d)
#Slow but can be useful for debugging mismatched basehashes
#for task in self.taskdeps[fn]:
# self.dump_sigtask(fn, task, d.getVar("STAMP", True), False)
for task in taskdeps:
d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + "." + task])
def get_taskhash(self, fn, task, deps, dataCache):
k = fn + "." + task
data = dataCache.basetaskhash[k]
self.runtaskdeps[k] = deps
for dep in sorted(deps):
if self.twl and self.twl.search(dataCache.pkg_fn[fn]):
#bb.note("Skipping %s" % dep)
continue
if dep not in self.taskhash:
bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?", dep)
data = data + self.taskhash[dep]
h = hashlib.md5(data).hexdigest()
self.taskhash[k] = h
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
return h
def set_taskdata(self, hashes, deps):
self.runtaskdeps = deps
self.taskhash = hashes
def dump_sigtask(self, fn, task, stampbase, runtime):
k = fn + "." + task
if runtime == "customfile":
sigfile = stampbase
elif runtime:
sigfile = stampbase + "." + task + ".sigdata" + "." + self.taskhash[k]
else:
sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[k]
data = {}
data['basewhitelist'] = self.basewhitelist
data['taskwhitelist'] = self.taskwhitelist
data['taskdeps'] = self.taskdeps[fn][task]
data['basehash'] = self.basehash[k]
data['gendeps'] = {}
data['varvals'] = {}
data['varvals'][task] = self.lookupcache[fn][task]
for dep in self.taskdeps[fn][task]:
if dep in self.basewhitelist:
continue
data['gendeps'][dep] = self.gendeps[fn][dep]
data['varvals'][dep] = self.lookupcache[fn][dep]
if runtime:
data['runtaskdeps'] = self.runtaskdeps[k]
data['runtaskhashes'] = {}
for dep in data['runtaskdeps']:
data['runtaskhashes'][dep] = self.taskhash[dep]
p = pickle.Pickler(file(sigfile, "wb"), -1)
p.dump(data)
def dump_sigs(self, dataCache):
for fn in self.taskdeps:
for task in self.taskdeps[fn]:
k = fn + "." + task
if k not in self.taskhash:
continue
if dataCache.basetaskhash[k] != self.basehash[k]:
bb.error("Bitbake's cached basehash does not match the one we just generated!")
bb.error("The mismatched hashes were %s and %s" % (dataCache.basetaskhash[k], self.basehash[k]))
self.dump_sigtask(fn, task, dataCache.stamp[fn], True)
def dump_this_task(outfile, d):
fn = d.getVar("BB_FILENAME", True)
task = "do_" + d.getVar("BB_CURRENTTASK", True)
bb.parse.siggen.dump_sigtask(fn, task, outfile, "customfile")
def compare_sigfiles(a, b):
p1 = pickle.Unpickler(file(a, "rb"))
a_data = p1.load()
p2 = pickle.Unpickler(file(b, "rb"))
b_data = p2.load()
#print "Checking"
#print str(a_data)
#print str(b_data)
def dict_diff(a, b):
sa = set(a.keys())
sb = set(b.keys())
common = sa & sb
changed = set()
for i in common:
if a[i] != b[i]:
changed.add(i)
added = sa - sb
removed = sb - sa
return changed, added, removed
if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']:
print "basewhitelist changed from %s to %s" % (a_data['basewhitelist'], b_data['basewhitelist'])
if 'taskwhitelist' in a_data and a_data['taskwhitelist'] != b_data['taskwhitelist']:
print "taskwhitelist changed from %s to %s" % (a_data['taskwhitelist'], b_data['taskwhitelist'])
if a_data['taskdeps'] != b_data['taskdeps']:
print "Task dependencies changed from %s to %s" % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps']))
if a_data['basehash'] != b_data['basehash']:
print "basehash changed from %s to %s" % (a_data['basehash'], b_data['basehash'])
changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'])
if changed:
for dep in changed:
print "List of dependencies for variable %s changed from %s to %s" % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep])
if added:
for dep in added:
print "Dependency on variable %s was added" % (dep)
if removed:
for dep in removed:
print "Dependency on Variable %s was removed" % (dep)
changed, added, removed = dict_diff(a_data['varvals'], b_data['varvals'])
if changed:
for dep in changed:
print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])
#if added:
# print "Dependency on variable %s was added (value %s)" % (dep, b_data['gendeps'][dep])
#if removed:
# print "Dependency on Variable %s was removed (value %s)" % (dep, a_data['gendeps'][dep])
if 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and a_data['runtaskdeps'] != b_data['runtaskdeps']:
print "Tasks this task depends on changed from %s to %s" % (a_data['taskdeps'], b_data['taskdeps'])
if 'runtaskhashes' in a_data:
for dep in a_data['runtaskhashes']:
if a_data['runtaskhashes'][dep] != b_data['runtaskhashes'][dep]:
print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep])
def dump_sigfile(a):
p1 = pickle.Unpickler(file(a, "rb"))
a_data = p1.load()
print "basewhitelist: %s" % (a_data['basewhitelist'])
print "taskwhitelist: %s" % (a_data['taskwhitelist'])
print "Task dependencies: %s" % (sorted(a_data['taskdeps']))
print "basehash: %s" % (a_data['basehash'])
for dep in a_data['gendeps']:
print "List of dependencies for variable %s is %s" % (dep, a_data['gendeps'][dep])
for dep in a_data['varvals']:
print "Variable %s value is %s" % (dep, a_data['varvals'][dep])
if 'runtaskdeps' in a_data:
print "Tasks this task depends on: %s" % (a_data['runtaskdeps'])
if 'runtaskhashes' in a_data:
for dep in a_data['runtaskhashes']:
print "Hash for dependent task %s is %s" % (dep, a_data['runtaskhashes'][dep])

View File

@@ -23,8 +23,20 @@ Task data collection and handling
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from bb import data, event, mkdirhier, utils
import bb, os
import bb
def re_match_strings(target, strings):
"""
Whether or not the string 'target' matches
any one string of the strings which can be regular expression string
"""
import re
for name in strings:
if (name==target or
re.search(name, target)!=None):
return True
return False
class TaskData:
"""
@@ -72,7 +84,7 @@ class TaskData:
def getrun_id(self, name):
"""
Return an ID number for the run target name.
Return an ID number for the run target name.
If it doesn't exist, create one.
"""
if not name in self.run_names_index:
@@ -83,7 +95,7 @@ class TaskData:
def getfn_id(self, name):
"""
Return an ID number for the filename.
Return an ID number for the filename.
If it doesn't exist, create one.
"""
if not name in self.fn_index:
@@ -161,6 +173,8 @@ class TaskData:
ids = []
for dep in task_deps['depends'][task].split():
if dep:
if ":" not in dep:
bb.msg.fatal(bb.msg.domain.TaskData, "Error, dependency %s does not contain ':' character\n. Task 'depends' should be specified in the form 'packagename:task'" % (dep, fn))
ids.append(((self.getbuild_id(dep.split(":")[0])), dep.split(":")[1]))
self.tasks_idepends[taskid].extend(ids)
@@ -257,12 +271,12 @@ class TaskData:
def get_unresolved_build_targets(self, dataCache):
"""
Return a list of build targets who's providers
Return a list of build targets who's providers
are unknown.
"""
unresolved = []
for target in self.build_names_index:
if target in dataCache.ignored_dependencies:
if re_match_strings(target, dataCache.ignored_dependencies):
continue
if self.build_names_index.index(target) in self.failed_deps:
continue
@@ -272,12 +286,12 @@ class TaskData:
def get_unresolved_run_targets(self, dataCache):
"""
Return a list of runtime targets who's providers
Return a list of runtime targets who's providers
are unknown.
"""
unresolved = []
for target in self.run_names_index:
if target in dataCache.ignored_dependencies:
if re_match_strings(target, dataCache.ignored_dependencies):
continue
if self.run_names_index.index(target) in self.failed_rdeps:
continue
@@ -290,7 +304,7 @@ class TaskData:
Return a list of providers of item
"""
targetid = self.getbuild_id(item)
return self.build_targets[targetid]
def get_dependees(self, itemid):
@@ -340,32 +354,23 @@ class TaskData:
self.add_provider_internal(cfgData, dataCache, item)
except bb.providers.NoProvider:
if self.abort:
if self.get_rdependees_str(item):
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item)))
else:
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item))
raise
targetid = self.getbuild_id(item)
self.remove_buildtarget(targetid)
self.remove_buildtarget(self.getbuild_id(item))
self.mark_external_target(item)
def add_provider_internal(self, cfgData, dataCache, item):
"""
Add the providers of item to the task data
Mark entries were specifically added externally as against dependencies
Mark entries were specifically added externally as against dependencies
added internally during dependency resolution
"""
if item in dataCache.ignored_dependencies:
if re_match_strings(item, dataCache.ignored_dependencies):
return
if not item in dataCache.providers:
if self.get_rdependees_str(item):
bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item)))
else:
bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item))
bb.event.fire(bb.event.NoProvider(item, cfgData))
bb.event.fire(bb.event.NoProvider(item, dependees=self.get_rdependees_str(item)), cfgData)
raise bb.providers.NoProvider(item)
if self.have_build_target(item):
@@ -374,15 +379,10 @@ class TaskData:
all_p = dataCache.providers[item]
eligible, foundUnique = bb.providers.filterProviders(all_p, item, cfgData, dataCache)
for p in eligible:
fnid = self.getfn_id(p)
if fnid in self.failed_fnids:
eligible.remove(p)
eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids]
if not eligible:
bb.msg.note(2, bb.msg.domain.Provider, "No buildable provider PROVIDES '%s' but '%s' DEPENDS on or otherwise requires it. Enable debugging and see earlier logs to find unbuildable providers." % (item, self.get_dependees_str(item)))
bb.event.fire(bb.event.NoProvider(item, cfgData))
bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees_str(item)), cfgData)
raise bb.providers.NoProvider(item)
if len(eligible) > 1 and foundUnique == False:
@@ -390,9 +390,7 @@ class TaskData:
providers_list = []
for fn in eligible:
providers_list.append(dataCache.pkg_fn[fn])
bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list)))
bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item)
bb.event.fire(bb.event.MultipleProviders(item, providers_list, cfgData))
bb.event.fire(bb.event.MultipleProviders(item, providers_list), cfgData)
self.consider_msgs_cache.append(item)
for fn in eligible:
@@ -412,7 +410,7 @@ class TaskData:
(takes item names from RDEPENDS/PACKAGES namespace)
"""
if item in dataCache.ignored_dependencies:
if re_match_strings(item, dataCache.ignored_dependencies):
return
if self.have_runtime_target(item):
@@ -421,20 +419,14 @@ class TaskData:
all_p = bb.providers.getRuntimeProviders(dataCache, item)
if not all_p:
bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables" % (self.get_rdependees_str(item), item))
bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True))
bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees_str(item)), cfgData)
raise bb.providers.NoRProvider(item)
eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache)
for p in eligible:
fnid = self.getfn_id(p)
if fnid in self.failed_fnids:
eligible.remove(p)
eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids]
if not eligible:
bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables of any buildable targets.\nEnable debugging and see earlier logs to find unbuildable targets." % (self.get_rdependees_str(item), item))
bb.event.fire(bb.event.NoProvider(item, cfgData, runtime=True))
bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees_str(item)), cfgData)
raise bb.providers.NoRProvider(item)
if len(eligible) > 1 and numberPreferred == 0:
@@ -442,9 +434,7 @@ class TaskData:
providers_list = []
for fn in eligible:
providers_list.append(dataCache.pkg_fn[fn])
bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list)))
bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item)
bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True))
bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData)
self.consider_msgs_cache.append(item)
if numberPreferred > 1:
@@ -452,9 +442,7 @@ class TaskData:
providers_list = []
for fn in eligible:
providers_list.append(dataCache.pkg_fn[fn])
bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (top %s entries preferred) (%s);" % (item, numberPreferred, ", ".join(providers_list)))
bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item)
bb.event.fire(bb.event.MultipleProviders(item,providers_list, cfgData, runtime=True))
bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData)
self.consider_msgs_cache.append(item)
# run through the list until we find one that we can build
@@ -509,8 +497,9 @@ class TaskData:
self.fail_fnid(self.tasks_fnid[taskid], missing_list)
if self.abort and targetid in self.external_targets:
bb.msg.error(bb.msg.domain.Provider, "Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s" % (self.build_names_index[targetid], missing_list))
raise bb.providers.NoProvider
target = self.build_names_index[targetid]
bb.msg.error(bb.msg.domain.Provider, "Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s" % (target, missing_list))
raise bb.providers.NoProvider(target)
def remove_runtarget(self, targetid, missing_list = []):
"""
@@ -533,7 +522,7 @@ class TaskData:
Resolve all unresolved build and runtime targets
"""
bb.msg.note(1, bb.msg.domain.TaskData, "Resolving any missing task queue dependencies")
while 1:
while True:
added = 0
for target in self.get_unresolved_build_targets(dataCache):
try:
@@ -542,10 +531,6 @@ class TaskData:
except bb.providers.NoProvider:
targetid = self.getbuild_id(target)
if self.abort and targetid in self.external_targets:
if self.get_rdependees_str(target):
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (target, self.get_dependees_str(target)))
else:
bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (target))
raise
self.remove_buildtarget(targetid)
for target in self.get_unresolved_run_targets(dataCache):
@@ -554,7 +539,7 @@ class TaskData:
added = added + 1
except bb.providers.NoRProvider:
self.remove_runtarget(self.getrun_id(target))
bb.msg.debug(1, bb.msg.domain.TaskData, "Resolved " + str(added) + " extra dependecies")
bb.msg.debug(1, bb.msg.domain.TaskData, "Resolved " + str(added) + " extra dependencies")
if added == 0:
break
# self.dump_data()
@@ -588,9 +573,9 @@ class TaskData:
bb.msg.debug(3, bb.msg.domain.TaskData, "tasks:")
for task in range(len(self.tasks_name)):
bb.msg.debug(3, bb.msg.domain.TaskData, " (%s)%s - %s: %s" % (
task,
self.fn_index[self.tasks_fnid[task]],
self.tasks_name[task],
task,
self.fn_index[self.tasks_fnid[task]],
self.tasks_name[task],
self.tasks_tdepends[task]))
bb.msg.debug(3, bb.msg.domain.TaskData, "dependency ids (per fn):")
@@ -600,5 +585,3 @@ class TaskData:
bb.msg.debug(3, bb.msg.domain.TaskData, "runtime dependency ids (per fn):")
for fnid in self.rdepids:
bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.rdepids[fnid]))

View File

@@ -0,0 +1,17 @@
#
# BitBake UI Implementation
#
# Copyright (C) 2006-2007 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Some files were not shown because too many files have changed in this diff Show More