Compare commits

..

1761 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
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
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
4896 changed files with 125392 additions and 113252 deletions

27
.gitignore vendored
View File

@@ -3,33 +3,24 @@
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
*~
handbook/poky-doc-tools/Makefile
handbook/poky-doc-tools/Makefile.in
handbook/poky-doc-tools/aclocal.m4
handbook/poky-doc-tools/autom4te.cache/
handbook/poky-doc-tools/common/Makefile
handbook/poky-doc-tools/common/Makefile.in
handbook/poky-doc-tools/common/fop-config.xml
handbook/poky-doc-tools/config.log
handbook/poky-doc-tools/config.status
handbook/poky-doc-tools/configure
handbook/poky-doc-tools/install-sh
handbook/poky-doc-tools/missing
handbook/poky-doc-tools/poky-docbook-to-pdf
handbook/poky-handbook.html
handbook/poky-handbook.pdf
handbook/poky-handbook.tgz
handbook/bsp-guide.html
handbook/bsp-guide.pdf
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>

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

@@ -138,7 +138,7 @@ Changes in Bitbake 1.9.x:
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
- 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)

View File

@@ -22,143 +22,160 @@
# 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 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.9.0"
__version__ = "1.11.0"
if sys.hexversion < 0x020500F0:
print "Sorry, python 2.5 or later is required for this version of bitbake"
sys.exit(1)
#============================================================================#
# BBOptions
#============================================================================#
class BBConfiguration( object ):
class BBConfiguration(object):
"""
Manages build options and configurations for one run
"""
def __init__( self, options ):
def __init__(self, options):
for key, val in options.__dict__.items():
setattr( self, key, val )
setattr(self, key, val)
self.pkgs_to_build = []
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
"""Send exception information through bb.msg"""
bb.fatal("".join(format_exception(exc, value, tb, limit=8)))
sys.__excepthook__(exc, value, tb)
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():
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)
return_value = 1
parser = optparse.OptionParser( version = "BitBake Build Tool Core version %s, %%prog version %s" % ( bb.__version__, __version__ ),
usage = """%prog [options] [package ...]
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 = """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("-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( "-u", "--ui", help = "userinterface to use",
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 )
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']
#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")
cooker_logfile = os.path.join(os.getcwd(), "cooker.log")
cooker = bb.cooker.BBCooker(configuration, server)
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. This is necessary to ensure the correct operation
# of the UIs (e.g. for DISPLAY, etc.)
bb.utils.clean_environment()
cooker = bb.cooker.BBCooker(configuration, server)
cooker.parseCommandLine()
serverinfo = server.BitbakeServerInfo(cooker.server)
@@ -166,8 +183,6 @@ Default BBFILES are the .bb files in the current directory.""" )
server.BitBakeServerFork(serverinfo, cooker.serve, cooker_logfile)
del cooker
sys.excepthook = print_exception
# Setup a connection to the server (cooker)
serverConnection = server.BitBakeServerConnection(serverinfo)
@@ -178,19 +193,24 @@ Default BBFILES are the .bb files in the current directory.""" )
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(serverConnection.connection, serverConnection.events)"
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 due to exception: %s." % (configuration.ui, e)
# 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
return return_value
if __name__ == "__main__":
ret = main()

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:

View File

@@ -215,13 +215,11 @@ 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>)
@@ -318,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>

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,29 +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 __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
@@ -59,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:
@@ -77,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
@@ -98,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
@@ -118,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__:
@@ -127,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)]
@@ -153,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):
@@ -176,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'")
@@ -199,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()

View File

@@ -21,39 +21,14 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
__version__ = "1.9.0"
__version__ = "1.11.0"
__all__ = [
import sys
if sys.version_info < (2, 6, 0):
raise RuntimeError("Sorry, python 2.6.0 or later is required for this version of bitbake")
"debug",
"note",
"error",
"fatal",
"mkdirhier",
"movefile",
"vercmp",
# fetch
"decodeurl",
"encodeurl",
# modules
"parse",
"data",
"command",
"event",
"build",
"fetch",
"manifest",
"methodpool",
"cache",
"runqueue",
"taskdata",
"providers",
]
import sys, os, types, re, string
import os
import bb.msg
if "BBDEBUG" in os.environ:
level = int(os.environ["BBDEBUG"])
@@ -81,14 +56,45 @@ def fatal(*args):
bb.msg.fatal(None, ''.join(args))
def deprecated(func, name = None, advice = ""):
"""This is a decorator which can be used to mark functions
as deprecated. It will result in a warning being emmitted
when the function is used."""
import warnings
if advice:
advice = ": %s" % advice
if name is None:
name = func.__name__
def newFunc(*args, **kwargs):
warnings.warn("Call to deprecated function %s%s." % (name,
advice),
category = PendingDeprecationWarning,
stacklevel = 2)
return func(*args, **kwargs)
newFunc.__name__ = func.__name__
newFunc.__doc__ = func.__doc__
newFunc.__dict__.update(func.__dict__)
return newFunc
# For compatibility
from bb.fetch import MalformedUrl, encodeurl, decodeurl
from bb.data import VarExpandError
from bb.utils import mkdirhier, movefile, copyfile, which
from bb.utils import vercmp
def deprecate_import(current, modulename, fromlist, renames = None):
"""Import objects from one module into another, wrapping them with a DeprecationWarning"""
import sys
module = __import__(modulename, fromlist = fromlist)
for position, objname in enumerate(fromlist):
obj = getattr(module, objname)
newobj = deprecated(obj, "{0}.{1}".format(current, objname),
"Please use {0}.{1} instead".format(modulename, objname))
if renames:
newname = renames[position]
else:
newname = objname
if __name__ == "__main__":
import doctest, bb
bb.msg.set_debug_level(0)
doctest.testmod(bb)
setattr(sys.modules[current], newname, newobj)
deprecate_import(__name__, "bb.fetch", ("MalformedUrl", "encodeurl", "decodeurl"))
deprecate_import(__name__, "bb.utils", ("mkdirhier", "movefile", "copyfile", "which"))
deprecate_import(__name__, "bb.utils", ["vercmp_string"], ["vercmp"])

View File

@@ -27,8 +27,9 @@
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.
@@ -43,12 +44,6 @@ class FuncFailed(Exception):
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"""
@@ -79,7 +74,7 @@ class TaskFailed(TaskBase):
self.msg = msg
TaskBase.__init__(self, t, d)
class InvalidTask(TaskBase):
class TaskInvalid(TaskBase):
"""Invalid Task"""
# functions
@@ -89,27 +84,29 @@ 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)
@@ -120,45 +117,23 @@ def exec_func(func, d, dirs = None):
except OSError:
prevdir = data.getVar('TOPDIR', d, True)
# Setup logfiles
# Setup scriptfile
t = data.getVar('T', d, 1)
if not t:
bb.msg.fatal(bb.msg.domain.Build, "T not set")
mkdirhier(t)
logfile = "%s/log.%s.%s" % (t, func, str(os.getpid()))
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)
# 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))
lockfiles = flags['lockfiles']
if lockfiles:
for lock in data.expand(lockfiles, d).split():
locks.append(bb.utils.lockfile(lock))
try:
# Run the function
@@ -179,47 +154,25 @@ def exec_func(func, d, dirs = None):
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 + '()'
tmp = "def " + func + "(d):\n%s" % data.getVar(func, d)
tmp += '\n' + func + '(d)'
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)
utils.better_exec(comp, {"d": d}, tmp, bbfile)
except:
(t,value,tb) = sys.exc_info()
(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)
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.
@@ -241,32 +194,29 @@ def exec_func_shell(func, d, runfile, logfile, flags):
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("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 = ''
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))
ret = os.system('%ssh -e %s' % (lang_environment, 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):
def exec_task(fn, task, d):
"""Execute an BB 'task'
The primary difference between executing a task versus executing
@@ -275,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)
@@ -284,29 +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)
data.setVar('BB_FILENAME', fn, d)
data.setVar('BB_CURRENTTASK', task[3:], d)
event.fire(TaskStarted(task, localdata), localdata)
# 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)
except FuncFailed, message:
# 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
bb.msg.note(1, bb.msg.domain.Build, "Task failed: %s" % message )
failedevent = TaskFailed(msg, logfile, task, d)
event.fire(failedevent, d)
raise EventException("Function failed in task: %s" % message, failedevent)
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
# 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 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]
@@ -323,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):
@@ -363,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] = {}
@@ -375,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)
@@ -389,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__ = "131"
__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,14 +128,14 @@ class Cache:
self.data = data
# Make sure __depends makes the depends_cache
# If we're a virtual class we need to make sure all our depends are appended
# 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, True) or []
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
for dep in depends:
if dep not in self.depends_cache[fn]["__depends"]:
self.depends_cache[fn]["__depends"].append(dep)
else:
self.depends_cache[fn]["__depends"].update(depends)
# Make sure the variants always make it into the cache too
self.getVar('__VARIANTS', virtualfn, True)
@@ -171,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.
@@ -181,10 +175,10 @@ class Cache:
bb.msg.debug(1, bb.msg.domain.Cache, "Parsing %s (full)" % fn)
bb_data = self.load_bbfile(fn, cfgData)
bb_data = self.load_bbfile(fn, appends, cfgData)
return bb_data[cls]
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,
@@ -212,12 +206,12 @@ class Cache:
bb.msg.debug(1, bb.msg.domain.Cache, "Parsing %s" % fn)
bb_data = self.load_bbfile(fn, cfgData)
bb_data = self.load_bbfile(fn, appends, cfgData)
for data in bb_data:
virtualfn = self.realfn2virtual(fn, data)
self.setData(virtualfn, fn, bb_data[data])
if self.getVar("__SKIPPED", virtualfn, True):
if self.getVar("__SKIPPED", virtualfn):
skipped += 1
bb.msg.debug(1, bb.msg.domain.Cache, "Skipping %s" % virtualfn)
else:
@@ -258,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
@@ -275,7 +269,7 @@ 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 old_mtime != 0 and fmtime == 0:
@@ -291,11 +285,25 @@ class Cache:
if not fn in self.clean:
self.clean[fn] = ""
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
# 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
@@ -345,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 "")
@@ -360,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:
@@ -369,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]
@@ -400,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:
@@ -441,42 +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('__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)
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
@@ -486,7 +509,7 @@ def init(cooker):
Files causing parsing errors are evicted from the cache.
"""
return Cache(cooker)
return Cache(cooker.configuration.data)
@@ -522,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
@@ -62,7 +62,7 @@ class Command:
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]
@@ -89,7 +89,17 @@ 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
@@ -268,6 +278,3 @@ class CookerCommandSetExitCode(bb.event.Event):
def __init__(self, exitcode):
bb.event.Event.__init__(self)
self.exitcode = int(exitcode)

View File

@@ -22,11 +22,13 @@
# 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
from __future__ import print_function
import sys, os, glob, os.path, re, time
import sre_constants
from cStringIO import StringIO
from contextlib import closing
import bb
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue
from bb import command
import itertools, sre_constants
from bb import utils, data, parse, event, cache, providers, taskdata, command, runqueue
class MultipleMatches(Exception):
"""
@@ -68,23 +70,16 @@ class BBCooker:
self.cache = None
self.bb_cache = None
self.server = server.BitBakeServer(self)
if server:
self.server = server.BitBakeServer(self)
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()
if not server:
bb.data.setVar("BB_WORKERCONTEXT", "1", self.configuration.data)
bb.data.inheritFromOS(self.configuration.data)
self.parseConfigurationFiles(self.configuration.file)
@@ -132,11 +127,11 @@ class BBCooker:
self.commandlineAction = None
if 'world' in self.configuration.pkgs_to_build:
bb.error("'world' is not a valid target for --environment.")
bb.msg.error(bb.msg.domain.Build, "'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.")
bb.msg.error(bb.msg.domain.Build, "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.")
bb.msg.error(bb.msg.domain.Build, "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:
@@ -149,21 +144,18 @@ class BBCooker:
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.")
bb.msg.error(bb.msg.domain.Build, "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.")
bb.msg.error(bb.msg.domain.Build, "Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
def runCommands(self, server, data, abort):
"""
@@ -174,38 +166,6 @@ class BBCooker:
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
@@ -217,7 +177,7 @@ class BBCooker:
# Sort by priority
for pn in pkg_pn:
(last_ver,last_file,pref_ver,pref_file) = bb.providers.findBestProvider(pn, self.configuration.data, self.status)
(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)
@@ -270,28 +230,23 @@ class BBCooker:
if fn:
try:
envdata = self.bb_cache.loadDataFull(fn, self.configuration.data)
except IOError, e:
envdata = self.bb_cache.loadDataFull(fn, self.get_file_appends(fn), self.configuration.data)
except IOError as e:
bb.msg.error(bb.msg.domain.Parsing, "Unable to read %s: %s" % (fn, e))
raise
except Exception, e:
except Exception as 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:
with closing(StringIO()) as env:
data.emit_env(env, envdata, True)
bb.msg.plain(env.getvalue())
except Exception as 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():
@@ -324,9 +279,9 @@ class BBCooker:
taskdata.add_unresolved(localdata, self.status)
rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist)
rq.prepare_runqueue()
rq.rqdata.prepare()
seen_fnids = []
seen_fnids = []
depend_tree = {}
depend_tree["depends"] = {}
depend_tree["tdepends"] = {}
@@ -336,9 +291,9 @@ class BBCooker:
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]
for task in range(len(rq.rqdata.runq_fnid)):
taskname = rq.rqdata.runq_task[task]
fnid = rq.rqdata.runq_fnid[task]
fn = taskdata.fn_index[fnid]
pn = self.status.pkg_fn[fn]
version = "%s:%s-%s" % self.status.pkg_pepvpr[fn]
@@ -346,13 +301,13 @@ class BBCooker:
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]]
for dep in rq.rqdata.runq_depends[task]:
depfn = taskdata.fn_index[rq.rqdata.runq_fnid[dep]]
deppn = self.status.pkg_fn[depfn]
dotname = "%s.%s" % (pn, rq.runq_task[task])
dotname = "%s.%s" % (pn, rq.rqdata.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]))
depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, rq.rqdata.runq_task[dep]))
if fnid not in seen_fnids:
seen_fnids.append(fnid)
packages = []
@@ -363,7 +318,7 @@ class BBCooker:
depend_tree["rdepends-pn"][pn] = []
for rdep in taskdata.rdepids[fnid]:
depend_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep])
depend_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep])
rdepends = self.status.rundeps[fn]
for package in rdepends:
@@ -408,51 +363,51 @@ class BBCooker:
# 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 {"
print("digraph depends {", file=depends_file)
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)
print('"%s" [label="%s %s\\n%s"]' % (pn, pn, version, fn), file=depends_file)
for pn in depgraph["depends"]:
for depend in depgraph["depends"][pn]:
print >> depends_file, '"%s" -> "%s"' % (pn, depend)
print('"%s" -> "%s"' % (pn, depend), file=depends_file)
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, "}"
print('"%s" -> "%s" [style=dashed]' % (pn, rdepend), file=depends_file)
print("}", file=depends_file)
bb.msg.plain("PN dependencies saved to 'pn-depends.dot'")
depends_file = file('package-depends.dot', 'w' )
print >> depends_file, "digraph depends {"
print("digraph depends {", file=depends_file)
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)
print('"%s" [label="%s %s\\n%s"]' % (pn, pn, version, fn), file=depends_file)
else:
print >> depends_file, '"%s" [label="%s(%s) %s\\n%s"]' % (package, package, pn, version, fn)
print('"%s" [label="%s(%s) %s\\n%s"]' % (package, package, pn, version, fn), file=depends_file)
for depend in depgraph["depends"][pn]:
print >> depends_file, '"%s" -> "%s"' % (package, depend)
print('"%s" -> "%s"' % (package, depend), file=depends_file)
for package in depgraph["rdepends-pkg"]:
for rdepend in depgraph["rdepends-pkg"][package]:
print >> depends_file, '"%s" -> "%s" [style=dashed]' % (package, rdepend)
print('"%s" -> "%s" [style=dashed]' % (package, rdepend), file=depends_file)
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, "}"
print('"%s" -> "%s" [style=dashed]' % (package, rdepend), file=depends_file)
print("}", file=depends_file)
bb.msg.plain("Package dependencies saved to 'package-depends.dot'")
tdepends_file = file('task-depends.dot', 'w' )
print >> tdepends_file, "digraph depends {"
print("digraph depends {", file=tdepends_file)
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)
print('"%s.%s" [label="%s %s\\n%s\\n%s"]' % (pn, taskname, pn, taskname, version, fn), file=tdepends_file)
for dep in depgraph["tdepends"][task]:
print >> tdepends_file, '"%s" -> "%s"' % (task, dep)
print >> tdepends_file, "}"
print('"%s" -> "%s"' % (task, dep), file=tdepends_file)
print("}", file=tdepends_file)
bb.msg.plain("Task dependencies saved to 'task-depends.dot'")
def buildDepgraph( self ):
@@ -463,9 +418,12 @@ class BBCooker:
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
matched = set()
def calc_bbfile_priority(filename):
for (regex, pri) in self.status.bbfile_config_priorities:
for _, _, regex, pri in self.status.bbfile_config_priorities:
if regex.match(filename):
if not regex in matched:
matched.add(regex)
return pri
return 0
@@ -484,6 +442,11 @@ class BBCooker:
for p in self.status.pkg_fn:
self.status.bbfile_priority[p] = calc_bbfile_priority(p)
for collection, pattern, regex, _ in self.status.bbfile_config_priorities:
if not regex in matched:
bb.msg.warn(bb.msg.domain.Provider, "No bb files matched BBFILE_PATTERN_%s '%s'" %
(collection, pattern))
def buildWorldTargetList(self):
"""
Build package list for "bitbake world"
@@ -516,31 +479,59 @@ class BBCooker:
"""Drop off into a shell"""
try:
from bb import shell
except ImportError, details:
except ImportError as details:
bb.msg.fatal(bb.msg.domain.Parsing, "Sorry, shell not available (%s)" % details )
else:
shell.start( self )
def _findLayerConf(self):
path = os.getcwd()
while path != "/":
bblayers = os.path.join(path, "conf", "bblayers.conf")
if os.path.exists(bblayers):
return bblayers
path, _ = os.path.split(path)
def parseConfigurationFiles(self, files):
try:
data = self.configuration.data
bb.parse.init_parser(data, self.configuration.dump_signatures)
for f in files:
data = bb.parse.handle(f, data)
layerconf = os.path.join(os.getcwd(), "conf", "bblayers.conf")
if os.path.exists(layerconf):
layerconf = self._findLayerConf()
if layerconf:
bb.msg.debug(2, bb.msg.domain.Parsing, "Found bblayers.conf (%s)" % layerconf)
data = bb.parse.handle(layerconf, data)
layers = (bb.data.getVar('BBLAYERS', data, True) or "").split()
data = bb.data.createCopy(data)
for layer in layers:
bb.msg.debug(2, bb.msg.domain.Parsing, "Adding layer %s" % layer)
bb.data.setVar('LAYERDIR', layer, data)
data = bb.parse.handle(os.path.join(layer, "conf", "layer.conf"), data)
# XXX: Hack, relies on the local keys of the datasmart
# instance being stored in the 'dict' attribute and makes
# assumptions about how variable expansion works, but
# there's no better way to force an expansion of a single
# variable across the datastore today, and this at least
# lets us reference LAYERDIR without having to immediately
# eval all our variables that use it.
for key in data.dict:
if key != "_data":
value = data.getVar(key, False)
if value and "${LAYERDIR}" in value:
data.setVar(key, value.replace("${LAYERDIR}", layer))
bb.data.delVar('LAYERDIR', data)
if not data.getVar("BBPATH", True):
bb.fatal("The BBPATH variable is not set")
data = bb.parse.handle(os.path.join("conf", "bitbake.conf"), data)
self.configuration.data = data
@@ -552,16 +543,20 @@ class BBCooker:
# 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))
for var in bb.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)
if bb.data.getVar("BB_WORKERCONTEXT", self.configuration.data) is None:
bb.fetch.fetcher_init(self.configuration.data)
bb.codeparser.parser_cache_init(self.configuration.data)
bb.parse.init_parser(data, self.configuration.dump_signatures)
bb.event.fire(bb.event.ConfigParsed(), self.configuration.data)
except IOError, e:
except IOError as e:
bb.msg.fatal(bb.msg.domain.Parsing, "Error when parsing %s: %s" % (files, str(e)))
except bb.parse.ParseError, details:
except bb.parse.ParseError as details:
bb.msg.fatal(bb.msg.domain.Parsing, "Unable to parse %s (%s)" % (files, details) )
def handleCollections( self, collections ):
@@ -584,7 +579,7 @@ class BBCooker:
continue
try:
pri = int(priority)
self.status.bbfile_config_priorities.append((cre, pri))
self.status.bbfile_config_priorities.append((c, regex, cre, pri))
except ValueError:
bb.msg.error(bb.msg.domain.Parsing, "invalid value for BBFILE_PRIORITY_%s: \"%s\"" % (c, priority))
@@ -593,8 +588,8 @@ class BBCooker:
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)
bb.data.setVar("BUILDNAME", time.strftime('%Y%m%d%H%M'), self.configuration.data)
bb.data.setVar("BUILDSTART", time.strftime('%m/%d/%Y %H:%M:%S', time.gmtime()), self.configuration.data)
def matchFiles(self, buildfile):
"""
@@ -602,11 +597,11 @@ class BBCooker:
"""
bf = os.path.abspath(buildfile)
(filelist, masked) = self.collect_bbfiles()
try:
os.stat(bf)
return [bf]
except OSError:
(filelist, masked) = self.collect_bbfiles()
regexp = re.compile(buildfile)
matches = []
for f in filelist:
@@ -641,13 +636,19 @@ class BBCooker:
if (task == None):
task = self.configuration.cmd
fn = self.matchFile(buildfile)
self.bb_cache = bb.cache.init(self)
self.status = bb.cache.CacheData()
(fn, cls) = self.bb_cache.virtualfn2realfn(buildfile)
buildfile = self.matchFile(fn)
fn = self.bb_cache.realfn2virtual(buildfile, cls)
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)
the_data = self.bb_cache.loadDataFull(fn, self.get_file_appends(fn), self.configuration.data)
self.bb_cache.setData(fn, buildfile, the_data)
self.bb_cache.handle_data(fn, self.status)
# Tweak some variables
item = self.bb_cache.getVar('PN', fn, True)
@@ -672,6 +673,9 @@ class BBCooker:
buildname = bb.data.getVar("BUILDNAME", self.configuration.data)
bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.configuration.event_data)
# Clear locks
bb.fetch.persistent_database_connection = {}
# Execute the runqueue
runlist = [[item, "do_%s" % task]]
@@ -686,8 +690,8 @@ class BBCooker:
failures = 0
try:
retval = rq.execute_runqueue()
except runqueue.TaskFailure, fnids:
for fnid in fnids:
except runqueue.TaskFailure as exc:
for fnid in exc.args:
bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid])
failures = failures + 1
retval = False
@@ -695,6 +699,8 @@ class BBCooker:
bb.event.fire(bb.event.BuildCompleted(buildname, item, failures), self.configuration.event_data)
self.command.finishAsyncCommand()
return False
if retval is True:
return True
return 0.5
self.server.register_idle_function(buildFileIdle, rq)
@@ -714,7 +720,6 @@ class BBCooker:
targets = self.checkPackages(targets)
def buildTargetsIdle(server, rq, abort):
if abort or self.cookerAction == cookerStop:
rq.finish_runqueue(True)
elif self.cookerAction == cookerShutdown:
@@ -722,8 +727,8 @@ class BBCooker:
failures = 0
try:
retval = rq.execute_runqueue()
except runqueue.TaskFailure, fnids:
for fnid in fnids:
except runqueue.TaskFailure as exc:
for fnid in exc.args:
bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid])
failures = failures + 1
retval = False
@@ -731,6 +736,8 @@ class BBCooker:
bb.event.fire(bb.event.BuildCompleted(buildname, targets, failures), self.configuration.event_data)
self.command.finishAsyncCommand()
return None
if retval is True:
return True
return 0.5
self.buildSetVars()
@@ -750,6 +757,9 @@ class BBCooker:
runlist.append([k, "do_%s" % task])
taskdata.add_unresolved(localdata, self.status)
# Clear locks
bb.fetch.persistent_database_connection = {}
rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist)
self.server.register_idle_function(buildTargetsIdle, rq)
@@ -780,13 +790,12 @@ class BBCooker:
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)
@@ -821,11 +830,11 @@ class BBCooker:
for f in contents:
(root, ext) = os.path.splitext(f)
if ext == ".bb":
bbfiles.append(os.path.abspath(os.path.join(os.getcwd(),f)))
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"""
"""Find all the .bb and .bbappend files in a directory"""
from os.path import join
found = []
@@ -833,7 +842,7 @@ class BBCooker:
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')]
found += [join(dir, f) for f in files if (f.endswith('.bb') or f.endswith('.bbappend'))]
return found
@@ -842,6 +851,8 @@ class BBCooker:
parsed, cached, skipped, masked = 0, 0, 0, 0
self.bb_cache = bb.cache.init(self)
bb.msg.debug(1, bb.msg.domain.Collection, "collecting .bb files")
files = (data.getVar( "BBFILES", self.configuration.data, 1 ) or "").split()
data.setVar("BBFILES", " ".join(files), self.configuration.data)
@@ -856,9 +867,7 @@ class BBCooker:
for f in files:
if os.path.isdir(f):
dirfiles = self.find_bbfiles(f)
if dirfiles:
newfiles.update(dirfiles)
continue
newfiles.update(dirfiles)
else:
globbed = glob.glob(f)
if not globbed and os.path.exists(f):
@@ -867,23 +876,45 @@ class BBCooker:
bbmask = bb.data.getVar('BBMASK', self.configuration.data, 1)
if not bbmask:
return (list(newfiles), 0)
if bbmask:
try:
bbmask_compiled = re.compile(bbmask)
except sre_constants.error:
bb.msg.fatal(bb.msg.domain.Collection, "BBMASK is not a valid regular expression.")
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 = []
bbfiles = []
bbappend = []
for f in newfiles:
if bbmask_compiled.search(f):
if bbmask and bbmask_compiled.search(f):
bb.msg.debug(1, bb.msg.domain.Collection, "skipping masked file %s" % f)
masked += 1
continue
finalfiles.append(f)
if f.endswith('.bb'):
bbfiles.append(f)
elif f.endswith('.bbappend'):
bbappend.append(f)
else:
bb.msg.note(1, bb.msg.domain.Collection, "File %s of unknown filetype in BBFILES? Ignorning..." % f)
return (finalfiles, masked)
# Build a list of .bbappend files for each .bb file
self.appendlist = {}
for f in bbappend:
base = os.path.basename(f).replace('.bbappend', '.bb')
if not base in self.appendlist:
self.appendlist[base] = []
self.appendlist[base].append(f)
return (bbfiles, masked)
def get_file_appends(self, fn):
"""
Returns a list of .bbappend files to apply to fn
NB: collect_files() must have been called prior to this
"""
f = os.path.basename(fn)
if f in self.appendlist:
return self.appendlist[f]
return []
def serve(self):
@@ -917,9 +948,9 @@ class BBCooker:
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
@@ -948,12 +979,12 @@ class CookerParser:
self.pointer = 0
def parse_next(self):
cooker = self.cooker
if self.pointer < len(self.filelist):
f = self.filelist[self.pointer]
cooker = self.cooker
try:
fromCache, skipped, virtuals = cooker.bb_cache.loadData(f, cooker.configuration.data, cooker.status)
fromCache, skipped, virtuals = cooker.bb_cache.loadData(f, cooker.get_file_appends(f), cooker.configuration.data, cooker.status)
if fromCache:
self.cached += 1
else:
@@ -962,7 +993,7 @@ class CookerParser:
self.skipped += skipped
self.virtuals += virtuals
except IOError, e:
except IOError as e:
self.error += 1
cooker.bb_cache.remove(f)
bb.msg.error(bb.msg.domain.Collection, "opening %s: %s" % (f, e))
@@ -971,7 +1002,7 @@ class CookerParser:
cooker.bb_cache.remove(f)
cooker.bb_cache.sync()
raise
except Exception, e:
except Exception as e:
self.error += 1
cooker.bb_cache.remove(f)
bb.msg.error(bb.msg.domain.Collection, "%s while parsing %s" % (e, f))
@@ -985,8 +1016,8 @@ class CookerParser:
if self.pointer >= self.total:
cooker.bb_cache.sync()
bb.codeparser.parser_cache_save(cooker.configuration.data)
if self.error > 0:
raise ParsingErrorsFound
return False
return True

View File

@@ -1,191 +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, 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)
"""
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,39 +37,41 @@ the speed is more critical here.
#
#Based on functions from the base bb module, Copyright 2003 Holger Schurig
import sys, os, re, 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
class VarExpandError(Exception):
pass
_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"""
@@ -77,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
@@ -170,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):
@@ -295,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():
@@ -351,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
@@ -375,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))
@@ -393,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,22 +28,49 @@ 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"\${@.+?}")
_expand_globals = {
"os": os,
"bb": bb,
"time": time,
}
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:
@@ -55,69 +82,121 @@ class DataSmart:
self._seen_overrides = seen
self.expand_cache = {}
self.expand_locals = {"d": self}
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]
s = eval(code, _expand_globals, self.expand_locals)
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:
@@ -130,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__:
@@ -145,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 )
@@ -157,23 +236,23 @@ 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 not None:
@@ -187,30 +266,30 @@ class DataSmart:
dest = self.getVarFlag(newkey, 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
@@ -220,7 +299,7 @@ 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)
@@ -229,7 +308,7 @@ class DataSmart:
continue
self.dict[var][i] = flags[i]
def getVarFlags(self,var):
def getVarFlags(self, var):
local_var = self._findVar(var)
flags = {}
@@ -244,7 +323,7 @@ class DataSmart:
return flags
def delVarFlags(self,var):
def delVarFlags(self, var):
if not var in self.dict:
self._makeShadowCopy(var)
@@ -274,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,7 +22,8 @@ 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, sys
import os, sys
import warnings
import bb.utils
import pickle
@@ -30,6 +31,7 @@ import pickle
# the runqueue forks off.
worker_pid = 0
worker_pipe = None
useStdout = True
class Event:
"""Base class for events"""
@@ -38,7 +40,7 @@ class Event:
self.pid = worker_pid
NotHandled = 0
Handled = 1
Handled = 1
Registered = 10
AlreadyRegistered = 14
@@ -48,13 +50,25 @@ _handlers = {}
_ui_handlers = {}
_ui_handler_seq = 0
# For compatibility
bb.utils._context["NotHandled"] = NotHandled
bb.utils._context["Handled"] = Handled
def fire_class_handlers(event, d):
import bb.msg
if isinstance(event, bb.msg.MsgBase):
return
for handler in _handlers:
h = _handlers[handler]
event.data = d
if type(h).__name__ == "code":
exec(h)
tmpHandler(event)
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:
h(event)
del event.data
@@ -76,9 +90,9 @@ def fire_ui_handlers(event, d):
def fire(event, d):
"""Fire off an Event"""
# We can fire class handlers in the worker process context and this is
# 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
# 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)
@@ -89,16 +103,14 @@ def fire(event, d):
def worker_fire(event, d):
data = "<event>" + pickle.dumps(event) + "</event>"
try:
if os.write(worker_pipe, data) != len (data):
print "Error sending event to server (short write)"
except OSError:
sys.exit(1)
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"
print("Error, not an event %s" % event)
return
#print "Got event %s" % event
event = pickle.loads(event[7:-8])
fire_ui_handlers(event, d)
@@ -127,6 +139,7 @@ def remove(name, 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 unregister_UIHhandler(handlerNum):
@@ -222,10 +235,11 @@ class BuildCompleted(BuildBase):
class NoProvider(Event):
"""No Provider for an Event"""
def __init__(self, item, runtime=False):
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
@@ -284,4 +298,3 @@ class DepTreeGenerated(Event):
def __init__(self, depgraph):
Event.__init__(self)
self._depgraph = depgraph

View File

@@ -24,6 +24,8 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
from __future__ import absolute_import
from __future__ import print_function
import os, re
import bb
from bb import data
@@ -53,24 +55,6 @@ class InvalidSRCREV(Exception):
def decodeurl(url):
"""Decodes an URL into the tokens (scheme, network location, path,
user, password, parameters).
>>> decodeurl("http://www.google.com/index.html")
('http', 'www.google.com', '/index.html', '', '', {})
>>> decodeurl("file://gas/COPYING")
('file', '', 'gas/COPYING', '', '', {})
CVS url with username, host and cvsroot. The cvs module to check out is in the
parameters:
>>> decodeurl("cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg")
('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', '', {'module': 'familiar/dist/ipkg'})
Dito, but this time the username has a password part. And we also request a special tag
to check out.
>>> decodeurl("cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;module=familiar/dist/ipkg;tag=V0-99-81")
('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', {'tag': 'V0-99-81', 'module': 'familiar/dist/ipkg'})
"""
m = re.compile('(?P<type>[^:]*)://((?P<user>.+)@)?(?P<location>[^;]+)(;(?P<parm>.*))?').match(url)
@@ -103,7 +87,7 @@ def decodeurl(url):
p = {}
if parm:
for s in parm.split(';'):
s1,s2 = s.split('=')
s1, s2 = s.split('=')
p[s1] = s2
return (type, host, path, user, pswd, p)
@@ -111,27 +95,12 @@ def decodeurl(url):
def encodeurl(decoded):
"""Encodes a URL from tokens (scheme, network location, path,
user, password, parameters).
>>> encodeurl(['http', 'www.google.com', '/index.html', '', '', {}])
'http://www.google.com/index.html'
CVS with username, host and cvsroot. The cvs module to check out is in the
parameters:
>>> encodeurl(['cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', '', {'module': 'familiar/dist/ipkg'}])
'cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg'
Dito, but this time the username has a password part. And we also request a special tag
to check out.
>>> encodeurl(['cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', {'tag': 'V0-99-81', 'module': 'familiar/dist/ipkg'}])
'cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg'
"""
(type, host, path, user, pswd, p) = decoded
if not type or not path:
bb.msg.fatal(bb.msg.domain.Fetcher, "invalid or missing parameters for url encoding")
raise MissingParameterError("Type or path url components missing when encoding %s" % decoded)
url = '%s://' % type
if user:
url += "%s" % user
@@ -151,15 +120,14 @@ 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:
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:
@@ -174,19 +142,20 @@ def uri_replace(uri, uri_find, uri_replace, d):
# else:
# 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)
@@ -198,7 +167,7 @@ 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"):
@@ -214,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
@@ -236,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]
@@ -247,11 +217,20 @@ 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 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
@@ -264,49 +243,47 @@ def go(d, urls = None):
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
localpath = ""
# First try fetching uri, u, from PREMIRRORS
mirrors = [ i.split() for i in (bb.data.getVar('PREMIRRORS', d, 1) or "").split('\n') if i ]
localpath = try_mirrors(d, u, mirrors)
if not 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:
except FetchError:
# Remove any incomplete file
removefile(ud.localpath)
# Finally, try fetching uri, u, from MIRRORS
mirrors = [ i.split() for i in (bb.data.getVar('MIRRORS', d, 1) or "").split('\n') if i ]
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)
if localpath:
ud.localpath = localpath
if ud.localfile:
if not m.forcefetch(u, ud, d):
Fetch.write_md5sum(u, ud, d)
bb.utils.unlockfile(lf)
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):
"""
@@ -318,9 +295,9 @@ 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)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
# First try checking uri, u, from PREMIRRORS
mirrors = [ i.split() for i in (bb.data.getVar('PREMIRRORS', d, 1) or "").split('\n') if i ]
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
ret = try_mirrors(d, u, mirrors, True)
if not ret:
# Next try checking from the original uri, u
@@ -328,11 +305,11 @@ def checkstatus(d):
ret = m.checkstatus(u, ud, d)
except:
# Finally, try checking uri, u, from MIRRORS
mirrors = [ i.split() for i in (bb.data.getVar('MIRRORS', d, 1) or "").split('\n') if i ]
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
ret = try_mirrors (d, u, mirrors, True)
if not ret:
bb.msg.error(bb.msg.domain.Fetcher, "URL %s doesn't work" % u)
raise FetchError("URL %s doesn't work" % u)
def localpaths(d):
"""
@@ -342,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
@@ -354,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!
@@ -372,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]
@@ -385,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)
@@ -408,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)
@@ -427,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)
@@ -440,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
@@ -459,7 +440,7 @@ def runfetchcmd(cmd, d, quiet = False):
return output
def try_mirrors(d, uri, mirrors, check = False):
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.
@@ -469,7 +450,7 @@ def try_mirrors(d, uri, mirrors, check = False):
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):
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
@@ -497,6 +478,7 @@ def try_mirrors(d, uri, mirrors, check = False):
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
@@ -507,7 +489,7 @@ class FetchData(object):
"""
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:
@@ -526,12 +508,13 @@ 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:
premirrors = bb.data.getVar('PREMIRRORS', d, True)
local = ""
if premirrors and self.url:
aurl = self.url.split(";")[0]
mirrors = [ i.split() for i in (premirrors or "").split('\n') if i ]
mirrors = mirror_from_string(premirrors)
for (find, replace) in mirrors:
if replace.startswith("file://"):
path = aurl.split("://")[1]
@@ -550,10 +533,11 @@ class FetchData(object):
# Horrible...
bb.data.delVar("ISHOULDNEVEREXIST", d)
# 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'
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):
@@ -571,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
@@ -603,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
@@ -632,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:
@@ -645,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":
@@ -665,7 +664,7 @@ class Fetch(object):
b) None otherwise
"""
localcount= None
localcount = None
if 'name' in ud.parm:
pn = data.getVar("PN", d, 1)
localcount = data.getVar("LOCALCOUNT_" + ud.parm['name'], d, 1)
@@ -706,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:
@@ -718,12 +717,12 @@ class Fetch(object):
def sortable_revision(self, url, ud, d):
"""
"""
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)
@@ -758,18 +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
import repo
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())

View File

@@ -46,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):
@@ -145,4 +145,3 @@ class Bzr(Fetch):
def _build_revision(self, url, ud, d):
return ud.revision

View File

@@ -139,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)
@@ -157,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

@@ -57,12 +57,12 @@ class Git(Fetch):
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)
subdir = ud.parm.get("subpath", "")
if subdir != "":
@@ -79,8 +79,33 @@ class Git(Fetch):
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"""
@@ -94,27 +119,40 @@ class Git(Fetch):
coname = '%s' % (ud.tag)
codir = os.path.join(ud.clonedir, coname)
if not os.path.exists(ud.clonedir):
# 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)
bb.mkdirhier(ud.clonedir)
os.chdir(ud.clonedir)
runfetchcmd("tar -xzf %s" % (repofile), d)
except:
runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
pass
# 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)
# Remove all but the .git directory
if not self._contains_ref(ud.tag, d):
# 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("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), 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)
# Generate a mirror tarball if needed
os.chdir(ud.clonedir)
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
if mirror_tarballs != "0" or 'fullclone' in ud.parm:
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)
@@ -165,7 +203,7 @@ class Git(Fetch):
"""
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):
"""
@@ -188,7 +226,7 @@ class Git(Fetch):
def _sortable_buildindex_disabled(self, url, ud, d, rev):
"""
Return a suitable buildindex for the revision specified. This is done by counting revisions
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.
"""
@@ -197,7 +235,7 @@ class Git(Fetch):
# Check if we have the rev already
if not os.path.exists(ud.clonedir):
print "no repo"
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))
@@ -213,5 +251,4 @@ class Git(Fetch):
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
return buildindex

View File

@@ -134,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)
@@ -170,4 +170,3 @@ class Hg(Fetch):
Return a unique key for the url
"""
return "hg:" + ud.moddir

View File

@@ -27,6 +27,7 @@ BitBake build tools.
import os
import bb
import bb.utils
from bb import data
from bb.fetch import Fetch
@@ -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)
@@ -108,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:
@@ -131,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")
@@ -146,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,6 +25,7 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
from future_builtins import zip
import os
import bb
from bb import data
@@ -35,15 +36,15 @@ 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 = ""
@@ -53,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"];
@@ -95,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
@@ -115,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)
@@ -124,7 +125,7 @@ class Perforce(Fetch):
Fetch urls
"""
(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('/...')]
@@ -160,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)
@@ -175,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":
@@ -189,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))
@@ -205,5 +206,3 @@ class Perforce(Fetch):
raise FetchError(module)
# cleanup
os.system('rm -rf %s' % tmpfile)

View File

@@ -23,11 +23,10 @@ BitBake "Fetch" repo (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 Repo(Fetch):

View File

@@ -114,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

@@ -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)

View File

@@ -30,6 +30,8 @@ import bb
from bb import data
from bb.fetch import Fetch
from bb.fetch import FetchError
from bb.fetch import encodeurl, decodeurl
from bb.fetch import runfetchcmd
class Wget(Fetch):
"""Class to fetch urls via 'wget'"""
@@ -37,11 +39,11 @@ class Wget(Fetch):
"""
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)
@@ -60,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

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,26 +22,32 @@ 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, bb
from bb import 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):
@@ -49,7 +55,7 @@ class MsgBase(bb.event.Event):
def __init__(self, msg):
self._message = msg
event.Event.__init__(self)
bb.event.Event.__init__(self)
class MsgDebug(MsgBase):
"""Debug Message"""
@@ -74,52 +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):
if not domain:
domain = 'default'
if debug_level[domain] >= level:
def debug(level, msgdomain, msg, fn = None):
if not msgdomain:
msgdomain = domain.Default
if debug_level[msgdomain] >= level:
bb.event.fire(MsgDebug(msg), None)
if bb.event.useStdout:
print('DEBUG: %s' % (msg))
def note(level, domain, msg, fn = None):
if not domain:
domain = 'default'
if level == 1 or verbose or debug_level[domain] >= 1:
def note(level, msgdomain, msg, fn = None):
if not msgdomain:
msgdomain = domain.Default
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 warn(domain, msg, fn = None):
def warn(msgdomain, msg, fn = None):
bb.event.fire(MsgWarn(msg), None)
if bb.event.useStdout:
print('WARNING: %s' % (msg))
def error(domain, msg, fn = None):
def error(msgdomain, msg, fn = None):
bb.event.fire(MsgError(msg), None)
print 'ERROR: ' + msg
if bb.event.useStdout:
print('ERROR: %s' % (msg))
def fatal(domain, msg, fn = None):
def fatal(msgdomain, msg, fn = None):
bb.event.fire(MsgFatal(msg), None)
print 'FATAL: ' + msg
if bb.event.useStdout:
print('FATAL: %s' % (msg))
sys.exit(1)
def plain(msg, fn = None):
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,11 +80,16 @@ 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)
def resolve_file(fn, d):
if not os.path.isabs(fn):
fn = bb.which(bb.data.getVar("BBPATH", d, 1), fn)
if not fn:
raise IOError("file %s not found" % 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

View File

@@ -21,8 +21,11 @@
# 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 itertools import chain
from bb import methodpool
import itertools
__word__ = re.compile(r"\S+")
__parsed_methods__ = bb.methodpool.get_parsed_dict()
@@ -30,7 +33,8 @@ _bbversions_re = re.compile(r"\[(?P<from>[0-9]+)-(?P<to>[0-9]+)\]")
class StatementGroup(list):
def eval(self, data):
map(lambda x: x.eval(data), self)
for statement in self:
statement.eval(data)
class AstNode(object):
pass
@@ -103,7 +107,6 @@ class DataNode(AstNode):
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)
elif groupd["lazyques"]:
assigned = bb.data.getVar("__lazy_assigned", data) or []
@@ -134,7 +137,8 @@ class MethodNode:
bb.data.setVar(self.func_name, '\n'.join(self.body), data)
class PythonMethodNode(AstNode):
def __init__(self, root, body, fn):
def __init__(self, funcname, root, body, fn):
self.func_name = funcname
self.root = root
self.body = body
self.fn = fn
@@ -143,9 +147,12 @@ class PythonMethodNode(AstNode):
# 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 self.root in __parsed_methods__:
text = '\n'.join(self.body)
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):
@@ -254,7 +261,7 @@ class InheritNode(AstNode):
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))
@@ -267,8 +274,8 @@ def handleData(statements, groupd):
def handleMethod(statements, func_name, lineno, fn, body):
statements.append(MethodNode(func_name, body, lineno, fn))
def handlePythonMethod(statements, root, body, fn):
statements.append(PythonMethodNode(root, body, 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))
@@ -293,7 +300,7 @@ def handleInherit(statements, m):
n = __word__.findall(files)
statements.append(InheritNode(m.group(1)))
def finalise(fn, d):
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)
@@ -301,40 +308,23 @@ def finalise(fn, d):
bb.data.expandKeys(d)
bb.data.update_data(d)
anonqueue = bb.data.getVar("__anonqueue", d, 1) or []
body = [x['content'] for x in anonqueue]
flag = { 'python' : 1, 'func' : 1 }
bb.data.setVar("__anonfunc", "\n".join(body), d)
bb.data.setVarFlags("__anonfunc", flag, d)
from bb import build
try:
t = bb.data.getVar('T', d)
bb.data.setVar('T', '${TMPDIR}/anonfunc/', d)
anonfuncs = bb.data.getVar('__BBANONFUNCS', d) or []
code = ""
for f in anonfuncs:
code = code + " %s(d)\n" % f
bb.data.setVar("__anonfunc", code, d)
build.exec_func("__anonfunc", d)
bb.data.delVar('T', d)
if t:
bb.data.setVar('T', t, d)
except Exception, e:
bb.msg.debug(1, bb.msg.domain.Parsing, "Exception when executing anonymous function: %s" % e)
raise
bb.data.delVar("__anonqueue", d)
bb.data.delVar("__anonfunc", 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 = {}
all_handlers = {}
for var in bb.data.getVar('__BBHANDLERS', d) or []:
# try to add the handler
handler = bb.data.getVar(var,d)
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):
@@ -360,7 +350,7 @@ def _expand_versions(versions):
versions = iter(versions)
while True:
try:
version = versions.next()
version = next(versions)
except StopIteration:
break
@@ -370,14 +360,18 @@ def _expand_versions(versions):
else:
newversions = expand_one(version, int(range_ver.group("from")),
int(range_ver.group("to")))
versions = chain(newversions, versions)
versions = itertools.chain(newversions, versions)
def multi_finalize(fn, d):
safe_d = 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:
finalise(fn, d)
finalize(fn, d)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, d)
datastores = {"": safe_d}
@@ -420,7 +414,7 @@ def multi_finalize(fn, d):
d = bb.data.createCopy(safe_d)
verfunc(pv, d, safe_d)
try:
finalise(fn, d)
finalize(fn, d)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, d)
@@ -436,15 +430,15 @@ def multi_finalize(fn, d):
safe_d.setVar("BBCLASSEXTEND", extended)
_create_variants(datastores, extended.split(), extendfunc)
for variant, variant_d in datastores.items():
for variant, variant_d in datastores.iteritems():
if variant:
try:
finalise(fn, variant_d)
finalize(fn, variant_d, variant)
except bb.parse.SkipPackage:
bb.data.setVar("__SKIPPED", True, variant_d)
if len(datastores) > 1:
variants = filter(None, datastores.keys())
variants = filter(None, datastores.iterkeys())
safe_d.setVar("__VARIANTS", " ".join(variants))
datastores[""] = d

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,15 +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
from bb import data
from ConfHandler import include, init
from bb.parse import ParseError, resolve_file, ast
from . import ConfHandler
from .. import resolve_file, ast
from .ConfHandler import include, init
# For compatibility
from bb.parse import vars_from_file
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+(.+)" )
@@ -68,8 +70,8 @@ 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)
@@ -80,17 +82,17 @@ def inherit(files, d):
include(fn, file, d, "inherit")
__inherit_cache = data.getVar('__inherit_cache', d) or []
def get_statements(filename, absolsute_filename, base_name):
def get_statements(filename, absolute_filename, base_name):
global cached_statements
try:
return cached_statements[absolsute_filename]
return cached_statements[absolute_filename]
except KeyError:
file = open(absolsute_filename, 'r')
file = open(absolute_filename, 'r')
statements = ast.StatementGroup()
lineno = 0
while 1:
while True:
lineno = lineno + 1
s = file.readline()
if not s: break
@@ -101,7 +103,7 @@ def get_statements(filename, absolsute_filename, base_name):
feeder(IN_PYTHON_EOF, "", filename, base_name, statements)
if filename.endswith(".bbclass") or filename.endswith(".inc"):
cached_statements[absolsute_filename] = statements
cached_statements[absolute_filename] = statements
return statements
def handle(fn, d, include):
@@ -118,7 +120,7 @@ def handle(fn, d, include):
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":
@@ -164,7 +166,7 @@ def handle(fn, d, include):
return d
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__
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('')
@@ -181,7 +183,7 @@ def feeder(lineno, s, fn, root, statements):
__body__.append(s)
return
else:
ast.handlePythonMethod(statements, root, __body__, fn)
ast.handlePythonMethod(statements, __inpython__, root, __body__, fn)
__body__ = []
__inpython__ = False
@@ -208,7 +210,8 @@ def feeder(lineno, s, fn, root, statements):
m = __def_regexp__.match(s)
if m:
__body__.append(s)
__inpython__ = True
__inpython__ = m.group(1)
return
m = __export_func_regexp__.match(s)
@@ -231,10 +234,9 @@ def feeder(lineno, s, fn, root, statements):
ast.handleInherit(statements, m)
return
from bb.parse import ConfHandler
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,7 +24,8 @@
# 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
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)$")
@@ -36,10 +37,7 @@ __export_regexp__ = re.compile( r"export\s+(.+)" )
def init(data):
topdir = bb.data.getVar('TOPDIR', data)
if not topdir:
topdir = os.getcwd()
bb.data.setVar('TOPDIR', topdir, data)
if not bb.data.getVar('BBPATH', data):
bb.fatal("The BBPATH environment variable must be set")
bb.data.setVar('TOPDIR', os.getcwd(), data)
def supports(fn, d):
@@ -60,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
@@ -88,7 +86,7 @@ def handle(fn, data, include):
statements = ast.StatementGroup()
lineno = 0
while 1:
while True:
lineno = lineno + 1
s = f.readline()
if not s: break

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

@@ -62,7 +62,7 @@ def sortPriorities(pn, dataCache, pkg_pn = None):
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 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):
@@ -103,7 +103,7 @@ 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]
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)
@@ -136,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):
@@ -169,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()
@@ -198,7 +198,7 @@ def _filterProviders(providers, item, cfgData, dataCache):
if preferred_versions[pn][1]:
eligible.append(preferred_versions[pn][1])
# Now add latest verisons
# Now add latest versions
for pn in sortpkg_pn:
if pn in preferred_versions and preferred_versions[pn][1]:
continue
@@ -226,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
"""
@@ -254,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
"""
@@ -297,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

@@ -102,7 +102,7 @@ class BBUIEventQueue:
def queue_event(self, event):
self.eventQueue.append(event)
def system_quit( self ):
def system_quit( self ):
bb.event.unregister_UIHhandler(self.EventHandle)
class BitBakeServer():
@@ -115,7 +115,7 @@ class BitBakeServer():
def register_idle_function(self, function, data):
"""Register a function to be called while the server is idle"""
assert callable(function)
assert hasattr(function, '__call__')
self._idlefuns[function] = data
def idle_commands(self, delay):
@@ -140,6 +140,7 @@ class BitBakeServer():
except:
import traceback
traceback.print_exc()
self.commands.runCommand(["stateShutdown"])
pass
if nextsleep is not None:
#print "Sleeping for %s (%s)" % (nextsleep, delay)
@@ -178,4 +179,3 @@ class BitBakeServerConnection():
self.connection.terminateServer()
except:
pass

View File

@@ -42,7 +42,7 @@ 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"
print("Sorry, python 2.6 or later is required for bitbake's XMLRPC mode")
sys.exit(1)
class BitBakeServerCommands():
@@ -74,7 +74,7 @@ class BitBakeServerCommands():
Trigger the server to quit
"""
self.server.quit = True
print "Server (cooker) exitting"
print("Server (cooker) exitting")
return
def ping(self):
@@ -89,8 +89,8 @@ class BitBakeServer(SimpleXMLRPCServer):
def __init__(self, cooker, interface = ("localhost", 0)):
"""
Constructor
"""
Constructor
"""
SimpleXMLRPCServer.__init__(self, interface,
requestHandler=SimpleXMLRPCRequestHandler,
logRequests=False, allow_none=True)
@@ -112,7 +112,7 @@ class BitBakeServer(SimpleXMLRPCServer):
def register_idle_function(self, function, data):
"""Register a function to be called while the server is idle"""
assert callable(function)
assert hasattr(function, '__call__')
self._idlefuns[function] = data
def serve_forever(self):
@@ -146,7 +146,7 @@ class BitBakeServer(SimpleXMLRPCServer):
traceback.print_exc()
pass
if nextsleep is None and len(self._idlefuns) > 0:
nextsleep = 0
nextsleep = 0
self.timeout = nextsleep
# Tell idle functions we're exiting
for function, data in self._idlefuns.items():
@@ -175,7 +175,7 @@ class BitBakeServerConnection():
def terminate(self):
# Don't wait for server indefinitely
import socket
socket.setdefaulttimeout(2)
socket.setdefaulttimeout(2)
try:
self.events.system_quit()
except:
@@ -184,4 +184,3 @@ class BitBakeServerConnection():
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,28 +121,28 @@ 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"""
@@ -149,7 +151,7 @@ class BitBakeShellCommands:
self._checkParsed()
names = globfilter( cooker.status.pkg_pn, globexpr )
if len( names ) == 0: names = [ globexpr ]
print "SHELL: Building %s" % ' '.join( names )
print("SHELL: Building %s" % ' '.join( names ))
td = taskdata.TaskData(cooker.configuration.abort)
localdata = data.createCopy(cooker.configuration.data)
@@ -168,22 +170,22 @@ class BitBakeShellCommands:
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
@@ -216,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 ):
@@ -239,14 +241,14 @@ class BitBakeShellCommands:
global last_exception
name = params[0]
bf = completeFilePath( name )
print "SHELL: Calling '%s' on '%s'" % ( cmd, bf )
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
print("ERROR: Unable to open or parse '%s'" % bf)
except build.EventException as e:
print("ERROR: Couldn't build '%s'" % name)
last_exception = e
fileBuild.usage = "<bbfile>"
@@ -270,62 +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
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
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, 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, 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 ):
@@ -335,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 = ""
@@ -370,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>"
@@ -390,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 )
@@ -419,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 ):
@@ -445,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 ):
@@ -455,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 )
@@ -463,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 ):
@@ -471,12 +473,12 @@ SRC_URI = ""
what = params[0]
if what == "files":
self._checkParsed()
for key in cooker.status.pkg_fn: print key
for key in cooker.status.pkg_fn: print(key)
elif what == "providers":
self._checkParsed()
for key in cooker.status.providers: 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 ):
@@ -496,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 ):
@@ -508,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 ):
@@ -518,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"""
@@ -553,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>"
##########################################################################
@@ -583,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 )
@@ -594,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"""
@@ -643,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
@@ -718,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"""
@@ -726,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"""
@@ -740,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 )
@@ -759,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() )
@@ -801,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
@@ -819,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

@@ -34,7 +34,7 @@ def re_match_strings(target, strings):
for name in strings:
if (name==target or
re.search(name,target)!=None):
re.search(name, target)!=None):
return True
return False
@@ -84,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:
@@ -95,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:
@@ -271,7 +271,7 @@ 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 = []
@@ -286,7 +286,7 @@ 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 = []
@@ -304,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):
@@ -354,20 +354,15 @@ 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
"""
@@ -375,11 +370,7 @@ class TaskData:
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):
@@ -391,8 +382,7 @@ class TaskData:
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:
@@ -400,8 +390,6 @@ 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)
self.consider_msgs_cache.append(item)
@@ -431,16 +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, runtime=True), cfgData)
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)
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, runtime=True), cfgData)
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:
@@ -448,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, runtime=True), cfgData)
bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData)
self.consider_msgs_cache.append(item)
if numberPreferred > 1:
@@ -458,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, runtime=True), cfgData)
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
@@ -515,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 = []):
"""
@@ -539,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:
@@ -548,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):
@@ -594,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):")
@@ -606,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

@@ -15,4 +15,3 @@
# 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

@@ -15,4 +15,3 @@
# 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

@@ -28,7 +28,7 @@ import time
class BuildConfiguration:
""" Represents a potential *or* historic *or* concrete build. It
encompasses all the things that we need to tell bitbake to do to make it
build what we want it to build.
build what we want it to build.
It also stored the metadata URL and the set of possible machines (and the
distros / images / uris for these. Apart from the metdata URL these are
@@ -73,34 +73,33 @@ class BuildConfiguration:
return self.urls
# It might be a lot lot better if we stored these in like, bitbake conf
# file format.
@staticmethod
# file format.
@staticmethod
def load_from_file (filename):
f = open (filename, "r")
conf = BuildConfiguration()
for line in f.readlines():
data = line.split (";")[1]
if (line.startswith ("metadata-url;")):
conf.metadata_url = data.strip()
continue
if (line.startswith ("url;")):
conf.urls += [data.strip()]
continue
if (line.startswith ("extra-url;")):
conf.extra_urls += [data.strip()]
continue
if (line.startswith ("machine;")):
conf.machine = data.strip()
continue
if (line.startswith ("distribution;")):
conf.distro = data.strip()
continue
if (line.startswith ("image;")):
conf.image = data.strip()
continue
with open(filename, "r") as f:
for line in f:
data = line.split (";")[1]
if (line.startswith ("metadata-url;")):
conf.metadata_url = data.strip()
continue
if (line.startswith ("url;")):
conf.urls += [data.strip()]
continue
if (line.startswith ("extra-url;")):
conf.extra_urls += [data.strip()]
continue
if (line.startswith ("machine;")):
conf.machine = data.strip()
continue
if (line.startswith ("distribution;")):
conf.distro = data.strip()
continue
if (line.startswith ("image;")):
conf.image = data.strip()
continue
f.close ()
return conf
# Serialise to a file. This is part of the build process and we use this
@@ -140,13 +139,13 @@ class BuildResult(gobject.GObject):
".conf" in the directory for the build.
This is GObject so that it can be included in the TreeStore."""
(STATE_COMPLETE, STATE_FAILED, STATE_ONGOING) = \
(0, 1, 2)
def __init__ (self, parent, identifier):
gobject.GObject.__init__ (self)
self.date = None
self.date = None
self.files = []
self.status = None
@@ -157,8 +156,8 @@ class BuildResult(gobject.GObject):
# format build-<year><month><day>-<ordinal> we can easily
# pull it out.
# TODO: Better to stat a file?
(_ , date, revision) = identifier.split ("-")
print date
(_, date, revision) = identifier.split ("-")
print(date)
year = int (date[0:4])
month = int (date[4:6])
@@ -181,7 +180,7 @@ class BuildResult(gobject.GObject):
self.add_file (file)
def add_file (self, file):
# Just add the file for now. Don't care about the type.
# Just add the file for now. Don't care about the type.
self.files += [(file, None)]
class BuildManagerModel (gtk.TreeStore):
@@ -194,7 +193,7 @@ class BuildManagerModel (gtk.TreeStore):
def __init__ (self):
gtk.TreeStore.__init__ (self,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
@@ -207,7 +206,7 @@ class BuildManager (gobject.GObject):
"results" directory but is also used for starting a new build."""
__gsignals__ = {
'population-finished' : (gobject.SIGNAL_RUN_LAST,
'population-finished' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'populate-error' : (gobject.SIGNAL_RUN_LAST,
@@ -220,13 +219,13 @@ class BuildManager (gobject.GObject):
date = long (time.mktime (result.date.timetuple()))
# Add a top level entry for the build
self.model.set (iter,
self.model.set (iter,
BuildManagerModel.COL_IDENT, result.identifier,
BuildManagerModel.COL_DESC, result.conf.image,
BuildManagerModel.COL_MACHINE, result.conf.machine,
BuildManagerModel.COL_DISTRO, result.conf.distro,
BuildManagerModel.COL_BUILD_RESULT, result,
BuildManagerModel.COL_MACHINE, result.conf.machine,
BuildManagerModel.COL_DISTRO, result.conf.distro,
BuildManagerModel.COL_BUILD_RESULT, result,
BuildManagerModel.COL_DATE, date,
BuildManagerModel.COL_STATE, result.state)
@@ -257,7 +256,7 @@ class BuildManager (gobject.GObject):
while (iter):
(ident, state) = self.model.get(iter,
BuildManagerModel.COL_IDENT,
BuildManagerModel.COL_IDENT,
BuildManagerModel.COL_STATE)
if state == BuildResult.STATE_ONGOING:
@@ -385,8 +384,8 @@ class BuildManager (gobject.GObject):
build_directory])
server.runCommand(["buildTargets", [conf.image], "rootfs"])
except Exception, e:
print e
except Exception as e:
print(e)
class BuildManagerTreeView (gtk.TreeView):
""" The tree view for the build manager. This shows the historic builds
@@ -422,29 +421,29 @@ class BuildManagerTreeView (gtk.TreeView):
# Misc descriptiony thing
renderer = gtk.CellRendererText ()
col = gtk.TreeViewColumn (None, renderer,
col = gtk.TreeViewColumn (None, renderer,
text=BuildManagerModel.COL_DESC)
self.append_column (col)
# Machine
renderer = gtk.CellRendererText ()
col = gtk.TreeViewColumn ("Machine", renderer,
col = gtk.TreeViewColumn ("Machine", renderer,
text=BuildManagerModel.COL_MACHINE)
self.append_column (col)
# distro
renderer = gtk.CellRendererText ()
col = gtk.TreeViewColumn ("Distribution", renderer,
col = gtk.TreeViewColumn ("Distribution", renderer,
text=BuildManagerModel.COL_DISTRO)
self.append_column (col)
# date (using a custom function for formatting the cell contents it
# takes epoch -> human readable string)
renderer = gtk.CellRendererText ()
col = gtk.TreeViewColumn ("Date", renderer,
col = gtk.TreeViewColumn ("Date", renderer,
text=BuildManagerModel.COL_DATE)
self.append_column (col)
col.set_cell_data_func (renderer,
col.set_cell_data_func (renderer,
self.date_format_custom_cell_data_func)
# For status.
@@ -454,4 +453,3 @@ class BuildManagerTreeView (gtk.TreeView):
self.append_column (col)
col.set_cell_data_func (renderer,
self.state_format_custom_cell_data_fun)

View File

@@ -24,7 +24,7 @@ import gobject
class RunningBuildModel (gtk.TreeStore):
(COL_TYPE, COL_PACKAGE, COL_TASK, COL_MESSAGE, COL_ICON, COL_ACTIVE) = (0, 1, 2, 3, 4, 5)
def __init__ (self):
gtk.TreeStore.__init__ (self,
gtk.TreeStore.__init__ (self,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
@@ -34,7 +34,7 @@ class RunningBuildModel (gtk.TreeStore):
class RunningBuild (gobject.GObject):
__gsignals__ = {
'build-succeeded' : (gobject.SIGNAL_RUN_LAST,
'build-succeeded' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'build-failed' : (gobject.SIGNAL_RUN_LAST,
@@ -63,7 +63,7 @@ class RunningBuild (gobject.GObject):
# for the message.
if hasattr(event, 'pid'):
pid = event.pid
if self.pids_to_task.has_key(pid):
if pid in self.pids_to_task:
(package, task) = self.pids_to_task[pid]
parent = self.tasks_to_iter[(package, task)]
@@ -82,29 +82,29 @@ class RunningBuild (gobject.GObject):
# Add the message to the tree either at the top level if parent is
# None otherwise as a descendent of a task.
self.model.append (parent,
self.model.append (parent,
(event.__name__.split()[-1], # e.g. MsgWarn, MsgError
package,
package,
task,
event._message,
icon,
icon,
False))
elif isinstance(event, bb.build.TaskStarted):
(package, task) = (event._package, event._task)
# Save out this PID.
self.pids_to_task[pid] = (package,task)
self.pids_to_task[pid] = (package, task)
# Check if we already have this package in our model. If so then
# that can be the parent for the task. Otherwise we create a new
# top level for the package.
if (self.tasks_to_iter.has_key ((package, None))):
if ((package, None) in self.tasks_to_iter):
parent = self.tasks_to_iter[(package, None)]
else:
parent = self.model.append (None, (None,
package,
parent = self.model.append (None, (None,
package,
None,
"Package: %s" % (package),
"Package: %s" % (package),
None,
False))
self.tasks_to_iter[(package, None)] = parent
@@ -114,10 +114,10 @@ class RunningBuild (gobject.GObject):
self.model.set(parent, self.model.COL_ICON, "gtk-execute")
# Add an entry in the model for this task
i = self.model.append (parent, (None,
package,
i = self.model.append (parent, (None,
package,
task,
"Task: %s" % (task),
"Task: %s" % (task),
None,
False))
@@ -176,5 +176,3 @@ class RunningBuildTreeView (gtk.TreeView):
renderer = gtk.CellRendererText ()
col = gtk.TreeViewColumn ("Message", renderer, text=3)
self.append_column (col)

View File

@@ -201,14 +201,14 @@ def init(server, eventHandler):
try:
cmdline = server.runCommand(["getCmdLineAction"])
if not cmdline or cmdline[0] != "generateDotGraph":
print "This UI is only compatible with the -g option"
print("This UI is only compatible with the -g option")
return
ret = server.runCommand(["generateDepTreeEvent", cmdline[1], cmdline[2]])
if ret != True:
print "Couldn't run command! %s" % ret
print("Couldn't run command! %s" % ret)
return
except xmlrpclib.Fault, x:
print "XMLRPC Fault getting commandline:\n %s" % x
except xmlrpclib.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return
shutdown = 0
@@ -233,8 +233,8 @@ def init(server, eventHandler):
x = event.sofar
y = event.total
if x == y:
print("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors."
% ( event.cached, event.parsed, event.skipped, event.masked, event.errors))
print(("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors."
% ( event.cached, event.parsed, event.skipped, event.masked, event.errors)))
pbar.hide()
gtk.gdk.threads_enter()
pbar.progress.set_fraction(float(x)/float(y))
@@ -250,7 +250,7 @@ def init(server, eventHandler):
if isinstance(event, bb.command.CookerCommandCompleted):
continue
if isinstance(event, bb.command.CookerCommandFailed):
print "Command execution failed: %s" % event.error
print("Command execution failed: %s" % event.error)
break
if isinstance(event, bb.cooker.CookerExit):
break
@@ -259,14 +259,13 @@ def init(server, eventHandler):
except KeyboardInterrupt:
if shutdown == 2:
print "\nThird Keyboard Interrupt, exit.\n"
print("\nThird Keyboard Interrupt, exit.\n")
break
if shutdown == 1:
print "\nSecond Keyboard Interrupt, stopping...\n"
print("\nSecond Keyboard Interrupt, stopping...\n")
server.runCommand(["stateStop"])
if shutdown == 0:
print "\nKeyboard Interrupt, closing down...\n"
print("\nKeyboard Interrupt, closing down...\n")
server.runCommand(["stateShutdown"])
shutdown = shutdown + 1
pass

View File

@@ -25,13 +25,13 @@ from bb.ui.crumbs.runningbuild import RunningBuildTreeView, RunningBuild
def event_handle_idle_func (eventHandler, build):
# Consume as many messages as we can in the time available to us
event = eventHandler.getEvent()
while event:
build.handle_event (event)
event = eventHandler.getEvent()
# Consume as many messages as we can in the time available to us
event = eventHandler.getEvent()
while event:
build.handle_event (event)
event = eventHandler.getEvent()
return True
return True
class MainWindow (gtk.Window):
def __init__ (self):
@@ -55,15 +55,15 @@ def init (server, eventHandler):
window.cur_build_tv.set_model (running_build.model)
try:
cmdline = server.runCommand(["getCmdLineAction"])
print cmdline
print(cmdline)
if not cmdline:
return 1
ret = server.runCommand(cmdline)
if ret != True:
print "Couldn't get default commandline! %s" % ret
print("Couldn't get default commandline! %s" % ret)
return 1
except xmlrpclib.Fault, x:
print "XMLRPC Fault getting commandline:\n %s" % x
except xmlrpclib.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return 1
# Use a timeout function for probing the event queue to find out if we
@@ -74,4 +74,3 @@ def init (server, eventHandler):
running_build)
gtk.main()

View File

@@ -18,8 +18,9 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
from __future__ import division
import os
import sys
import itertools
import xmlrpclib
@@ -44,10 +45,10 @@ def init(server, eventHandler):
return 1
ret = server.runCommand(cmdline)
if ret != True:
print "Couldn't get default commandline! %s" % ret
print("Couldn't get default commandline! %s" % ret)
return 1
except xmlrpclib.Fault, x:
print "XMLRPC Fault getting commandline:\n %s" % x
except xmlrpclib.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return 1
shutdown = 0
@@ -65,39 +66,39 @@ def init(server, eventHandler):
if shutdown and helper.needUpdate:
activetasks, failedtasks = helper.getTasks()
if activetasks:
print "Waiting for %s active tasks to finish:" % len(activetasks)
print("Waiting for %s active tasks to finish:" % len(activetasks))
tasknum = 1
for task in activetasks:
print "%s: %s (pid %s)" % (tasknum, activetasks[task]["title"], task)
print("%s: %s (pid %s)" % (tasknum, activetasks[task]["title"], task))
tasknum = tasknum + 1
if isinstance(event, bb.msg.MsgPlain):
print event._message
print(event._message)
continue
if isinstance(event, bb.msg.MsgDebug):
print 'DEBUG: ' + event._message
print('DEBUG: ' + event._message)
continue
if isinstance(event, bb.msg.MsgNote):
print 'NOTE: ' + event._message
print('NOTE: ' + event._message)
continue
if isinstance(event, bb.msg.MsgWarn):
print 'WARNING: ' + event._message
print('WARNING: ' + event._message)
continue
if isinstance(event, bb.msg.MsgError):
return_value = 1
print 'ERROR: ' + event._message
print('ERROR: ' + event._message)
continue
if isinstance(event, bb.msg.MsgFatal):
return_value = 1
print 'FATAL: ' + event._message
break
print('FATAL: ' + event._message)
continue
if isinstance(event, bb.build.TaskFailed):
return_value = 1
logfile = event.logfile
if logfile:
print "ERROR: Logfile of failure stored in: %s" % logfile
if logfile and os.path.exists(logfile):
print("ERROR: Logfile of failure stored in: %s" % logfile)
if 1 or includelogs:
print "Log data follows:"
print("Log data follows:")
f = open(logfile, "r")
lines = []
while True:
@@ -110,19 +111,19 @@ def init(server, eventHandler):
if len(lines) > int(loglines):
lines.pop(0)
else:
print '| %s' % l
print('| %s' % l)
f.close()
if lines:
for line in lines:
print line
print(line)
if isinstance(event, bb.build.TaskBase):
print "NOTE: %s" % event._message
print("NOTE: %s" % event._message)
continue
if isinstance(event, bb.event.ParseProgress):
x = event.sofar
y = event.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.write("\rNOTE: Handling BitBake files: %s (%04d/%04d) [%2d %%]" % ( next(parsespin), x, y, x*100//y ) )
sys.stdout.flush()
else:
if x == 1:
@@ -132,8 +133,8 @@ def init(server, eventHandler):
sys.stdout.write("done.")
sys.stdout.flush()
if x == y:
print("\nParsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
% ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))
print(("\nParsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
% ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))
continue
if isinstance(event, bb.command.CookerCommandCompleted):
@@ -143,39 +144,48 @@ def init(server, eventHandler):
continue
if isinstance(event, bb.command.CookerCommandFailed):
return_value = 1
print "Command execution failed: %s" % event.error
print("Command execution failed: %s" % event.error)
break
if isinstance(event, bb.cooker.CookerExit):
break
if isinstance(event, bb.event.MultipleProviders):
print("NOTE: multiple providers are available for %s%s (%s)" % (event._is_runtime and "runtime " or "",
event._item,
", ".join(event._candidates)))
print("NOTE: consider defining a PREFERRED_PROVIDER entry to match %s" % event._item)
continue
if isinstance(event, bb.event.NoProvider):
if event._runtime:
r = "R"
else:
r = ""
if event._dependees:
print("ERROR: Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)" % (r, event._item, ", ".join(event._dependees), r))
else:
print("ERROR: Nothing %sPROVIDES '%s'" % (r, event._item))
continue
# ignore
if isinstance(event, bb.event.BuildStarted):
if isinstance(event, (bb.event.BuildBase,
bb.event.StampUpdate,
bb.event.ConfigParsed,
bb.event.RecipeParsed,
bb.runqueue.runQueueEvent,
bb.runqueue.runQueueExitWait)):
continue
if isinstance(event, bb.event.BuildCompleted):
continue
if isinstance(event, bb.event.MultipleProviders):
continue
if isinstance(event, bb.runqueue.runQueueEvent):
continue
if isinstance(event, bb.runqueue.runQueueExitWait):
continue
if isinstance(event, bb.event.StampUpdate):
continue
if isinstance(event, bb.event.ConfigParsed):
continue
if isinstance(event, bb.event.RecipeParsed):
continue
print "Unknown Event: %s" % event
print("Unknown Event: %s" % event)
except KeyboardInterrupt:
if shutdown == 2:
print "\nThird Keyboard Interrupt, exit.\n"
print("\nThird Keyboard Interrupt, exit.\n")
break
if shutdown == 1:
print "\nSecond Keyboard Interrupt, stopping...\n"
print("\nSecond Keyboard Interrupt, stopping...\n")
server.runCommand(["stateStop"])
if shutdown == 0:
print "\nKeyboard Interrupt, closing down...\n"
print("\nKeyboard Interrupt, closing down...\n")
server.runCommand(["stateShutdown"])
shutdown = shutdown + 1
pass

View File

@@ -44,6 +44,8 @@
"""
from __future__ import division
import os, sys, curses, itertools, time
import bb
import xmlrpclib
@@ -136,7 +138,7 @@ class NCursesUI:
"""Thread Activity Window"""
def __init__( self, x, y, width, height ):
NCursesUI.DecoratedWindow.__init__( self, "Thread Activity", x, y, width, height )
def setStatus( self, thread, text ):
line = "%02d: %s" % ( thread, text )
width = self.dimensions[WIDTH]
@@ -199,8 +201,8 @@ class NCursesUI:
main_left = 0
main_top = 0
main_height = ( height / 3 * 2 )
main_width = ( width / 3 ) * 2
main_height = ( height // 3 * 2 )
main_width = ( width // 3 ) * 2
clo_left = main_left
clo_top = main_top + main_height
clo_height = height - main_height - main_top - 1
@@ -225,17 +227,17 @@ class NCursesUI:
helper = uihelper.BBUIHelper()
shutdown = 0
try:
cmdline = server.runCommand(["getCmdLineAction"])
if not cmdline:
return
ret = server.runCommand(cmdline)
if ret != True:
print "Couldn't get default commandlind! %s" % ret
print("Couldn't get default commandlind! %s" % ret)
return
except xmlrpclib.Fault, x:
print "XMLRPC Fault getting commandline:\n %s" % x
except xmlrpclib.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return
exitflag = False
@@ -246,7 +248,7 @@ class NCursesUI:
continue
helper.eventHandler(event)
#mw.appendText("%s\n" % event[0])
if isinstance(event, bb.build.Task):
if isinstance(event, bb.build.TaskBase):
mw.appendText("NOTE: %s\n" % event._message)
if isinstance(event, bb.msg.MsgDebug):
mw.appendText('DEBUG: ' + event._message + '\n')
@@ -263,10 +265,10 @@ class NCursesUI:
y = event.total
if x == y:
mw.setStatus("Idle")
mw.appendText("Parsing finished. %d cached, %d parsed, %d skipped, %d masked."
mw.appendText("Parsing finished. %d cached, %d parsed, %d skipped, %d masked."
% ( event.cached, event.parsed, event.skipped, event.masked ))
else:
mw.setStatus("Parsing: %s (%04d/%04d) [%2d %%]" % ( parsespin.next(), x, y, x*100/y ) )
mw.setStatus("Parsing: %s (%04d/%04d) [%2d %%]" % ( next(parsespin), x, y, x*100//y ) )
# if isinstance(event, bb.build.TaskFailed):
# if event.logfile:
# if data.getVar("BBINCLUDELOGS", d):
@@ -301,12 +303,12 @@ class NCursesUI:
taw.setText(0, 0, "")
if activetasks:
taw.appendText("Active Tasks:\n")
for task in activetasks:
taw.appendText(task)
for task in activetasks.itervalues():
taw.appendText(task["title"])
if failedtasks:
taw.appendText("Failed Tasks:\n")
for task in failedtasks:
taw.appendText(task)
taw.appendText(task["title"])
curses.doupdate()
except KeyboardInterrupt:
@@ -324,7 +326,7 @@ class NCursesUI:
def init(server, eventHandler):
if not os.isatty(sys.stdout.fileno()):
print "FATAL: Unable to run 'ncurses' UI without a TTY."
print("FATAL: Unable to run 'ncurses' UI without a TTY.")
return
ui = NCursesUI()
try:
@@ -332,4 +334,3 @@ def init(server, eventHandler):
except:
import traceback
traceback.print_exc()

View File

@@ -24,6 +24,7 @@ import gtk.glade
import threading
import urllib2
import os
import contextlib
from bb.ui.crumbs.buildmanager import BuildManager, BuildConfiguration
from bb.ui.crumbs.buildmanager import BuildManagerTreeView
@@ -38,7 +39,7 @@ class MetaDataLoader(gobject.GObject):
on what machines are available. The distribution and images available for
the machine and the the uris to use for building the given machine."""
__gsignals__ = {
'success' : (gobject.SIGNAL_RUN_LAST,
'success' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'error' : (gobject.SIGNAL_RUN_LAST,
@@ -77,20 +78,19 @@ class MetaDataLoader(gobject.GObject):
def run (self):
result = {}
try:
f = urllib2.urlopen (self.url)
with contextlib.closing (urllib2.urlopen (self.url)) as f:
# Parse the metadata format. The format is....
# <machine>;<default distro>|<distro>...;<default image>|<image>...;<type##url>|...
for line in f:
components = line.split(";")
if (len (components) < 4):
raise MetaDataLoader.LoaderThread.LoaderImportException
machine = components[0]
distros = components[1].split("|")
images = components[2].split("|")
urls = components[3].split("|")
# Parse the metadata format. The format is....
# <machine>;<default distro>|<distro>...;<default image>|<image>...;<type##url>|...
for line in f.readlines():
components = line.split(";")
if (len (components) < 4):
raise MetaDataLoader.LoaderThread.LoaderImportException
machine = components[0]
distros = components[1].split("|")
images = components[2].split("|")
urls = components[3].split("|")
result[machine] = (distros, images, urls)
result[machine] = (distros, images, urls)
# Create an object representing this *potential*
# configuration. It can become concrete if the machine, distro
@@ -104,13 +104,13 @@ class MetaDataLoader(gobject.GObject):
gobject.idle_add (MetaDataLoader.emit_success_signal,
self.loader)
except MetaDataLoader.LoaderThread.LoaderImportException, e:
except MetaDataLoader.LoaderThread.LoaderImportException as e:
gobject.idle_add (MetaDataLoader.emit_error_signal, self.loader,
"Repository metadata corrupt")
except Exception, e:
except Exception as e:
gobject.idle_add (MetaDataLoader.emit_error_signal, self.loader,
"Unable to download repository metadata")
print e
print(e)
def try_fetch_from_url (self, url):
# Try and download the metadata. Firing a signal if successful
@@ -211,7 +211,7 @@ class BuildSetupDialog (gtk.Dialog):
# Build
button = gtk.Button ("_Build", None, True)
image = gtk.Image ()
image.set_from_stock (gtk.STOCK_EXECUTE,gtk.ICON_SIZE_BUTTON)
image.set_from_stock (gtk.STOCK_EXECUTE, gtk.ICON_SIZE_BUTTON)
button.set_image (image)
self.add_action_widget (button, BuildSetupDialog.RESPONSE_BUILD)
button.show_all ()
@@ -293,7 +293,7 @@ class BuildSetupDialog (gtk.Dialog):
if (active_iter):
self.configuration.machine = model.get(active_iter, 0)[0]
# Extract the chosen distro from the combo
# Extract the chosen distro from the combo
model = self.distribution_combo.get_model()
active_iter = self.distribution_combo.get_active_iter()
if (active_iter):
@@ -311,62 +311,62 @@ class BuildSetupDialog (gtk.Dialog):
#
# TODO: Should be a method on the RunningBuild class
def event_handle_timeout (eventHandler, build):
# Consume as many messages as we can ...
event = eventHandler.getEvent()
while event:
build.handle_event (event)
event = eventHandler.getEvent()
return True
# Consume as many messages as we can ...
event = eventHandler.getEvent()
while event:
build.handle_event (event)
event = eventHandler.getEvent()
return True
class MainWindow (gtk.Window):
# Callback that gets fired when the user hits a button in the
# BuildSetupDialog.
def build_dialog_box_response_cb (self, dialog, response_id):
conf = None
if (response_id == BuildSetupDialog.RESPONSE_BUILD):
dialog.update_configuration()
print dialog.configuration.machine, dialog.configuration.distro, \
dialog.configuration.image
conf = dialog.configuration
# Callback that gets fired when the user hits a button in the
# BuildSetupDialog.
def build_dialog_box_response_cb (self, dialog, response_id):
conf = None
if (response_id == BuildSetupDialog.RESPONSE_BUILD):
dialog.update_configuration()
print(dialog.configuration.machine, dialog.configuration.distro, \
dialog.configuration.image)
conf = dialog.configuration
dialog.destroy()
dialog.destroy()
if conf:
self.manager.do_build (conf)
if conf:
self.manager.do_build (conf)
def build_button_clicked_cb (self, button):
dialog = BuildSetupDialog ()
def build_button_clicked_cb (self, button):
dialog = BuildSetupDialog ()
# For some unknown reason Dialog.run causes nice little deadlocks ... :-(
dialog.connect ("response", self.build_dialog_box_response_cb)
dialog.show()
# For some unknown reason Dialog.run causes nice little deadlocks ... :-(
dialog.connect ("response", self.build_dialog_box_response_cb)
dialog.show()
def __init__ (self):
gtk.Window.__init__ (self)
def __init__ (self):
gtk.Window.__init__ (self)
# Pull in *just* the main vbox from the Glade XML data and then pack
# that inside the window
gxml = gtk.glade.XML (os.path.dirname(__file__) + "/crumbs/puccho.glade",
root = "main_window_vbox")
vbox = gxml.get_widget ("main_window_vbox")
self.add (vbox)
# Pull in *just* the main vbox from the Glade XML data and then pack
# that inside the window
gxml = gtk.glade.XML (os.path.dirname(__file__) + "/crumbs/puccho.glade",
root = "main_window_vbox")
vbox = gxml.get_widget ("main_window_vbox")
self.add (vbox)
# Create the tree views for the build manager view and the progress view
self.build_manager_view = BuildManagerTreeView()
self.running_build_view = RunningBuildTreeView()
# Create the tree views for the build manager view and the progress view
self.build_manager_view = BuildManagerTreeView()
self.running_build_view = RunningBuildTreeView()
# Grab the scrolled windows that we put the tree views into
self.results_scrolledwindow = gxml.get_widget ("results_scrolledwindow")
self.progress_scrolledwindow = gxml.get_widget ("progress_scrolledwindow")
# Grab the scrolled windows that we put the tree views into
self.results_scrolledwindow = gxml.get_widget ("results_scrolledwindow")
self.progress_scrolledwindow = gxml.get_widget ("progress_scrolledwindow")
# Put the tree views inside ...
self.results_scrolledwindow.add (self.build_manager_view)
self.progress_scrolledwindow.add (self.running_build_view)
# Put the tree views inside ...
self.results_scrolledwindow.add (self.build_manager_view)
self.progress_scrolledwindow.add (self.running_build_view)
# Hook up the build button...
self.build_button = gxml.get_widget ("main_toolbutton_build")
self.build_button.connect ("clicked", self.build_button_clicked_cb)
# Hook up the build button...
self.build_button = gxml.get_widget ("main_toolbutton_build")
self.build_button.connect ("clicked", self.build_button_clicked_cb)
# I'm not very happy about the current ownership of the RunningBuild. I have
# my suspicions that this object should be held by the BuildManager since we
@@ -383,11 +383,11 @@ def running_build_succeeded_cb (running_build, manager):
# BuildManager. It can then hook onto the signals directly and drive
# interesting things it cares about.
manager.notify_build_succeeded ()
print "build succeeded"
print("build succeeded")
def running_build_failed_cb (running_build, manager):
# As above
print "build failed"
print("build failed")
manager.notify_build_failed ()
def init (server, eventHandler):

View File

@@ -19,7 +19,7 @@
"""
Use this class to fork off a thread to recieve event callbacks from the bitbake
Use this class to fork off a thread to recieve event callbacks from the bitbake
server and queue them for the UI to process. This process must be used to avoid
client/server deadlocks.
"""
@@ -110,16 +110,15 @@ class UIXMLRPCServer (SimpleXMLRPCServer):
return (sock, addr)
except socket.timeout:
pass
return (None,None)
return (None, None)
def close_request(self, request):
if request is None:
return
SimpleXMLRPCServer.close_request(self, request)
def process_request(self, request, client_address):
if request is None:
return
SimpleXMLRPCServer.process_request(self, request, client_address)

View File

@@ -19,10 +19,22 @@ BitBake Utility Functions
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, fcntl, os, string, stat, shutil, time
import sys
import bb
import errno
import bb.msg
from commands import getstatusoutput
# Version comparison
separators = ".-"
import re, fcntl, os, types, bb, string, stat, shutil
from commands import getstatusoutput
# Context used in better_exec, eval
_context = {
"os": os,
"bb": bb,
"time": time,
}
def explode_version(s):
r = []
@@ -60,9 +72,9 @@ def vercmp_part(a, b):
if ca == None and cb == None:
return 0
if type(ca) is types.StringType:
if isinstance(ca, basestring):
sa = ca in separators
if type(cb) is types.StringType:
if isinstance(cb, basestring):
sb = cb in separators
if sa and not sb:
return -1
@@ -85,6 +97,131 @@ def vercmp(ta, tb):
r = vercmp_part(ra, rb)
return r
_package_weights_ = {"pre":-2, "p":0, "alpha":-4, "beta":-3, "rc":-1} # dicts are unordered
_package_ends_ = ["pre", "p", "alpha", "beta", "rc", "cvs", "bk", "HEAD" ] # so we need ordered list
def relparse(myver):
"""Parses the last elements of a version number into a triplet, that can
later be compared.
"""
number = 0
p1 = 0
p2 = 0
mynewver = myver.split('_')
if len(mynewver) == 2:
# an _package_weights_
number = float(mynewver[0])
match = 0
for x in _package_ends_:
elen = len(x)
if mynewver[1][:elen] == x:
match = 1
p1 = _package_weights_[x]
try:
p2 = float(mynewver[1][elen:])
except:
p2 = 0
break
if not match:
# normal number or number with letter at end
divider = len(myver)-1
if myver[divider:] not in "1234567890":
# letter at end
p1 = ord(myver[divider:])
number = float(myver[0:divider])
else:
number = float(myver)
else:
# normal number or number with letter at end
divider = len(myver)-1
if myver[divider:] not in "1234567890":
#letter at end
p1 = ord(myver[divider:])
number = float(myver[0:divider])
else:
number = float(myver)
return [number, p1, p2]
__vercmp_cache__ = {}
def vercmp_string(val1, val2):
"""This takes two version strings and returns an integer to tell you whether
the versions are the same, val1>val2 or val2>val1.
"""
# quick short-circuit
if val1 == val2:
return 0
valkey = val1 + " " + val2
# cache lookup
try:
return __vercmp_cache__[valkey]
try:
return - __vercmp_cache__[val2 + " " + val1]
except KeyError:
pass
except KeyError:
pass
# consider 1_p2 vc 1.1
# after expansion will become (1_p2,0) vc (1,1)
# then 1_p2 is compared with 1 before 0 is compared with 1
# to solve the bug we need to convert it to (1,0_p2)
# by splitting _prepart part and adding it back _after_expansion
val1_prepart = val2_prepart = ''
if val1.count('_'):
val1, val1_prepart = val1.split('_', 1)
if val2.count('_'):
val2, val2_prepart = val2.split('_', 1)
# replace '-' by '.'
# FIXME: Is it needed? can val1/2 contain '-'?
val1 = val1.split("-")
if len(val1) == 2:
val1[0] = val1[0] + "." + val1[1]
val2 = val2.split("-")
if len(val2) == 2:
val2[0] = val2[0] + "." + val2[1]
val1 = val1[0].split('.')
val2 = val2[0].split('.')
# add back decimal point so that .03 does not become "3" !
for x in range(1, len(val1)):
if val1[x][0] == '0' :
val1[x] = '.' + val1[x]
for x in range(1, len(val2)):
if val2[x][0] == '0' :
val2[x] = '.' + val2[x]
# extend varion numbers
if len(val2) < len(val1):
val2.extend(["0"]*(len(val1)-len(val2)))
elif len(val1) < len(val2):
val1.extend(["0"]*(len(val2)-len(val1)))
# add back _prepart tails
if val1_prepart:
val1[-1] += '_' + val1_prepart
if val2_prepart:
val2[-1] += '_' + val2_prepart
# The above code will extend version numbers out so they
# have the same number of digits.
for x in range(0, len(val1)):
cmp1 = relparse(val1[x])
cmp2 = relparse(val2[x])
for y in range(0, 3):
myret = cmp1[y] - cmp2[y]
if myret != 0:
__vercmp_cache__[valkey] = myret
return myret
__vercmp_cache__[valkey] = 0
return 0
def explode_deps(s):
"""
Take an RDEPENDS style string of format:
@@ -113,10 +250,10 @@ 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.
and return a dictionary of dependencies and versions.
"""
r = {}
l = s.split()
l = s.replace(",", "").split()
lastdep = None
lastver = ""
inversion = False
@@ -138,40 +275,61 @@ def explode_dep_versions(s):
return r
def join_deps(deps):
"""
Take the result from explode_dep_versions and generate a dependency string
"""
result = []
for dep in deps:
if deps[dep]:
result.append(dep + " (" + deps[dep] + ")")
else:
result.append(dep)
return ", ".join(result)
def extend_deps(dest, src):
"""
Extend the results from explode_dep_versions by appending all of the items
in the second list, avoiding duplicates.
"""
for dep in src:
if dep not in dest:
dest[dep] = src[dep]
elif dest[dep] != src[dep]:
dest[dep] = src[dep]
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):
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):
def better_compile(text, file, realfile, mode = "exec"):
"""
A better compile method. This method
will print the offending lines.
"""
try:
return compile(text, file, "exec")
except Exception, e:
import bb,sys
return compile(text, file, mode)
except Exception as e:
# 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 leading to 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)
bb.msg.error(bb.msg.domain.Util, "Error in compiling python function in: %s" % (realfile))
bb.msg.error(bb.msg.domain.Util, str(e))
if e.lineno:
bb.msg.error(bb.msg.domain.Util, "The lines leading to 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)
else:
bb.msg.error(bb.msg.domain.Util, "The function causing this error was:")
for line in body:
bb.msg.error(bb.msg.domain.Util, line)
raise
def better_exec(code, context, text, realfile):
"""
@@ -179,69 +337,40 @@ def better_exec(code, context, text, realfile):
print the lines that are responsible for the
error.
"""
import bb,sys
import bb.parse
try:
exec code in context
exec(code, _context, context)
except:
(t,value,tb) = sys.exc_info()
(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) )
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
# Strip 'us' from the stack (better_exec call)
tb = tb.tb_next
import traceback
line = traceback.tb_lineno(tb)
tbextract = traceback.extract_tb(tb)
tbextract = "\n".join(traceback.format_list(tbextract))
bb.msg.error(bb.msg.domain.Util, "Traceback:")
for line in tbextract.split('\n'):
bb.msg.error(bb.msg.domain.Util, line)
line = traceback.tb_lineno(tb)
bb.msg.error(bb.msg.domain.Util, "The lines leading to this error were:")
_print_trace( text.split('\n'), line )
raise
def Enum(*names):
"""
A simple class to give Enum support
"""
def simple_exec(code, context):
exec(code, _context, context)
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 better_eval(source, locals):
return eval(source, _context, locals)
def lockfile(name):
"""
@@ -250,37 +379,36 @@ def lockfile(name):
"""
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
# 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
# This implementation is unfair since the last person to request the
# lock is the most likely to win it.
try:
lf = open(name, "a+")
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
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:
except Exception as e:
continue
def unlockfile(lf):
"""
Unlock a file locked using lockfile()
Unlock a file locked using lockfile()
"""
os.unlink(lf.name)
fcntl.flock(lf.fileno(), fcntl.LOCK_UN)
@@ -296,7 +424,7 @@ def md5_file(filename):
except ImportError:
import md5
m = md5.new()
for line in open(filename):
m.update(line)
return m.hexdigest()
@@ -324,6 +452,7 @@ def preserved_envvars_list():
'BB_PRESERVE_ENV',
'BB_ENV_WHITELIST',
'BB_ENV_EXTRAWHITE',
'BB_TASKHASH',
'COLORTERM',
'DBUS_SESSION_BUS_ADDRESS',
'DESKTOP_SESSION',
@@ -356,19 +485,17 @@ def filter_environment(good_vars):
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))
bb.msg.debug(1, bb.msg.domain.Util, "Removed the following variables from the environment: %s" % (", ".join(removed_vars)))
return removed_vars
@@ -398,7 +525,7 @@ def build_environment(d):
"""
Build an environment from all exported variables.
"""
import bb
import bb.data
for var in bb.data.keys(d):
export = bb.data.getVarFlag(var, "export", d)
if export:
@@ -407,7 +534,7 @@ def build_environment(d):
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 root, dirs, files in os.walk(topdir, topdown = False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
@@ -422,7 +549,7 @@ def prunedir(topdir):
# 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
# See if var ends with any of the suffixes listed and
# remove it if found
for suffix in suffixes:
if var.endswith(suffix):
@@ -434,169 +561,172 @@ def mkdirhier(dir):
directory already exists like os.makedirs
"""
bb.debug(3, "mkdirhier(%s)" % dir)
bb.msg.debug(3, bb.msg.domain.Util, "mkdirhier(%s)" % dir)
try:
os.makedirs(dir)
bb.debug(2, "created " + dir)
except OSError, e:
if e.errno != 17: raise e
bb.msg.debug(2, bb.msg.domain.Util, "created " + dir)
except OSError as e:
if e.errno != errno.EEXIST:
raise e
import stat
def movefile(src,dest,newmtime=None,sstat=None):
def movefile(src, dest, newmtime = None, sstat = None):
"""Moves a file from src to dest, preserving all permissions and
attributes; mtime will be preserved even when moving across
filesystems. Returns true on success and false on failure. Move is
atomic.
"""
#print "movefile("+src+","+dest+","+str(newmtime)+","+str(sstat)+")"
#print "movefile(" + src + "," + dest + "," + str(newmtime) + "," + str(sstat) + ")"
try:
if not sstat:
sstat=os.lstat(src)
except Exception, e:
print "movefile: Stating source file failed...", e
sstat = os.lstat(src)
except Exception as e:
print("movefile: Stating source file failed...", e)
return None
destexists=1
destexists = 1
try:
dstat=os.lstat(dest)
dstat = os.lstat(dest)
except:
dstat=os.lstat(os.path.dirname(dest))
destexists=0
dstat = os.lstat(os.path.dirname(dest))
destexists = 0
if destexists:
if stat.S_ISLNK(dstat[stat.ST_MODE]):
try:
os.unlink(dest)
destexists=0
except Exception, e:
destexists = 0
except Exception as e:
pass
if stat.S_ISLNK(sstat[stat.ST_MODE]):
try:
target=os.readlink(src)
target = os.readlink(src)
if destexists and not stat.S_ISDIR(dstat[stat.ST_MODE]):
os.unlink(dest)
os.symlink(target,dest)
os.symlink(target, dest)
#os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
os.unlink(src)
return os.lstat(dest)
except Exception, e:
print "movefile: failed to properly create symlink:", dest, "->", target, e
except Exception as e:
print("movefile: failed to properly create symlink:", dest, "->", target, e)
return None
renamefailed=1
if sstat[stat.ST_DEV]==dstat[stat.ST_DEV]:
renamefailed = 1
if sstat[stat.ST_DEV] == dstat[stat.ST_DEV]:
try:
ret=os.rename(src,dest)
renamefailed=0
except Exception, e:
import errno
if e[0]!=errno.EXDEV:
os.rename(src, dest)
renamefailed = 0
except Exception as e:
if e[0] != errno.EXDEV:
# Some random error.
print "movefile: Failed to move", src, "to", dest, e
print("movefile: Failed to move", src, "to", dest, e)
return None
# Invalid cross-device-link 'bind' mounted or actually Cross-Device
if renamefailed:
didcopy=0
didcopy = 0
if stat.S_ISREG(sstat[stat.ST_MODE]):
try: # For safety copy then move it over.
shutil.copyfile(src,dest+"#new")
os.rename(dest+"#new",dest)
didcopy=1
except Exception, e:
print 'movefile: copy', src, '->', dest, 'failed.', e
shutil.copyfile(src, dest + "#new")
os.rename(dest + "#new", dest)
didcopy = 1
except Exception as e:
print('movefile: copy', src, '->', dest, 'failed.', e)
return None
else:
#we don't yet handle special, so we need to fall back to /bin/mv
a=getstatusoutput("/bin/mv -f "+"'"+src+"' '"+dest+"'")
if a[0]!=0:
print "movefile: Failed to move special file:" + src + "' to '" + dest + "'", a
a = getstatusoutput("/bin/mv -f " + "'" + src + "' '" + dest + "'")
if a[0] != 0:
print("movefile: Failed to move special file:" + src + "' to '" + dest + "'", a)
return None # failure
try:
if didcopy:
os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
os.lchown(dest, sstat[stat.ST_UID], sstat[stat.ST_GID])
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
os.unlink(src)
except Exception, e:
print "movefile: Failed to chown/chmod/unlink", dest, e
except Exception as e:
print("movefile: Failed to chown/chmod/unlink", dest, e)
return None
if newmtime:
os.utime(dest,(newmtime,newmtime))
os.utime(dest, (newmtime, newmtime))
else:
os.utime(dest, (sstat[stat.ST_ATIME], sstat[stat.ST_MTIME]))
newmtime=sstat[stat.ST_MTIME]
newmtime = sstat[stat.ST_MTIME]
return newmtime
def copyfile(src,dest,newmtime=None,sstat=None):
def copyfile(src, dest, newmtime = None, sstat = None):
"""
Copies a file from src to dest, preserving all permissions and
attributes; mtime will be preserved even when moving across
filesystems. Returns true on success and false on failure.
"""
#print "copyfile("+src+","+dest+","+str(newmtime)+","+str(sstat)+")"
#print "copyfile(" + src + "," + dest + "," + str(newmtime) + "," + str(sstat) + ")"
try:
if not sstat:
sstat=os.lstat(src)
except Exception, e:
print "copyfile: Stating source file failed...", e
sstat = os.lstat(src)
except Exception as e:
print("copyfile: Stating source file failed...", e)
return False
destexists=1
destexists = 1
try:
dstat=os.lstat(dest)
dstat = os.lstat(dest)
except:
dstat=os.lstat(os.path.dirname(dest))
destexists=0
dstat = os.lstat(os.path.dirname(dest))
destexists = 0
if destexists:
if stat.S_ISLNK(dstat[stat.ST_MODE]):
try:
os.unlink(dest)
destexists=0
except Exception, e:
destexists = 0
except Exception as e:
pass
if stat.S_ISLNK(sstat[stat.ST_MODE]):
try:
target=os.readlink(src)
target = os.readlink(src)
if destexists and not stat.S_ISDIR(dstat[stat.ST_MODE]):
os.unlink(dest)
os.symlink(target,dest)
os.symlink(target, dest)
#os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
return os.lstat(dest)
except Exception, e:
print "copyfile: failed to properly create symlink:", dest, "->", target, e
except Exception as e:
print("copyfile: failed to properly create symlink:", dest, "->", target, e)
return False
if stat.S_ISREG(sstat[stat.ST_MODE]):
try: # For safety copy then move it over.
shutil.copyfile(src,dest+"#new")
os.rename(dest+"#new",dest)
except Exception, e:
print 'copyfile: copy', src, '->', dest, 'failed.', e
return False
os.chmod(src, stat.S_IRUSR) # Make sure we can read it
try: # For safety copy then move it over.
shutil.copyfile(src, dest + "#new")
os.rename(dest + "#new", dest)
except Exception as e:
print('copyfile: copy', src, '->', dest, 'failed.', e)
return False
finally:
os.chmod(src, sstat[stat.ST_MODE])
os.utime(src, (sstat[stat.ST_ATIME], sstat[stat.ST_MTIME]))
else:
#we don't yet handle special, so we need to fall back to /bin/mv
a=getstatusoutput("/bin/cp -f "+"'"+src+"' '"+dest+"'")
if a[0]!=0:
print "copyfile: Failed to copy special file:" + src + "' to '" + dest + "'", a
return False # failure
#we don't yet handle special, so we need to fall back to /bin/mv
a = getstatusoutput("/bin/cp -f " + "'" + src + "' '" + dest + "'")
if a[0] != 0:
print("copyfile: Failed to copy special file:" + src + "' to '" + dest + "'", a)
return False # failure
try:
os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
os.lchown(dest, sstat[stat.ST_UID], sstat[stat.ST_GID])
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
except Exception, e:
print "copyfile: Failed to chown/chmod/unlink", dest, e
except Exception as e:
print("copyfile: Failed to chown/chmod/unlink", dest, e)
return False
if newmtime:
os.utime(dest,(newmtime,newmtime))
os.utime(dest, (newmtime, newmtime))
else:
os.utime(dest, (sstat[stat.ST_ATIME], sstat[stat.ST_MTIME]))
newmtime=sstat[stat.ST_MTIME]
newmtime = sstat[stat.ST_MTIME]
return newmtime
def which(path, item, direction = 0):
@@ -614,3 +744,19 @@ def which(path, item, direction = 0):
return next
return ""
def init_logger(logger, verbose, debug, debug_domains):
"""
Set verbosity and debug levels in the logger
"""
if verbose:
logger.set_verbose(True)
if debug:
logger.set_debug_level(debug)
else:
logger.set_debug_level(0)
if debug_domains:
logger.set_debug_domains(debug_domains)

570
bitbake/lib/codegen.py Normal file
View File

@@ -0,0 +1,570 @@
# -*- coding: utf-8 -*-
"""
codegen
~~~~~~~
Extension to ast that allow ast -> python code generation.
:copyright: Copyright 2008 by Armin Ronacher.
:license: BSD.
"""
from ast import *
BOOLOP_SYMBOLS = {
And: 'and',
Or: 'or'
}
BINOP_SYMBOLS = {
Add: '+',
Sub: '-',
Mult: '*',
Div: '/',
FloorDiv: '//',
Mod: '%',
LShift: '<<',
RShift: '>>',
BitOr: '|',
BitAnd: '&',
BitXor: '^'
}
CMPOP_SYMBOLS = {
Eq: '==',
Gt: '>',
GtE: '>=',
In: 'in',
Is: 'is',
IsNot: 'is not',
Lt: '<',
LtE: '<=',
NotEq: '!=',
NotIn: 'not in'
}
UNARYOP_SYMBOLS = {
Invert: '~',
Not: 'not',
UAdd: '+',
USub: '-'
}
ALL_SYMBOLS = {}
ALL_SYMBOLS.update(BOOLOP_SYMBOLS)
ALL_SYMBOLS.update(BINOP_SYMBOLS)
ALL_SYMBOLS.update(CMPOP_SYMBOLS)
ALL_SYMBOLS.update(UNARYOP_SYMBOLS)
def to_source(node, indent_with=' ' * 4, add_line_information=False):
"""This function can convert a node tree back into python sourcecode.
This is useful for debugging purposes, especially if you're dealing with
custom asts not generated by python itself.
It could be that the sourcecode is evaluable when the AST itself is not
compilable / evaluable. The reason for this is that the AST contains some
more data than regular sourcecode does, which is dropped during
conversion.
Each level of indentation is replaced with `indent_with`. Per default this
parameter is equal to four spaces as suggested by PEP 8, but it might be
adjusted to match the application's styleguide.
If `add_line_information` is set to `True` comments for the line numbers
of the nodes are added to the output. This can be used to spot wrong line
number information of statement nodes.
"""
generator = SourceGenerator(indent_with, add_line_information)
generator.visit(node)
return ''.join(generator.result)
class SourceGenerator(NodeVisitor):
"""This visitor is able to transform a well formed syntax tree into python
sourcecode. For more details have a look at the docstring of the
`node_to_source` function.
"""
def __init__(self, indent_with, add_line_information=False):
self.result = []
self.indent_with = indent_with
self.add_line_information = add_line_information
self.indentation = 0
self.new_lines = 0
def write(self, x):
if self.new_lines:
if self.result:
self.result.append('\n' * self.new_lines)
self.result.append(self.indent_with * self.indentation)
self.new_lines = 0
self.result.append(x)
def newline(self, node=None, extra=0):
self.new_lines = max(self.new_lines, 1 + extra)
if node is not None and self.add_line_information:
self.write('# line: %s' % node.lineno)
self.new_lines = 1
def body(self, statements):
self.new_line = True
self.indentation += 1
for stmt in statements:
self.visit(stmt)
self.indentation -= 1
def body_or_else(self, node):
self.body(node.body)
if node.orelse:
self.newline()
self.write('else:')
self.body(node.orelse)
def signature(self, node):
want_comma = []
def write_comma():
if want_comma:
self.write(', ')
else:
want_comma.append(True)
padding = [None] * (len(node.args) - len(node.defaults))
for arg, default in zip(node.args, padding + node.defaults):
write_comma()
self.visit(arg)
if default is not None:
self.write('=')
self.visit(default)
if node.vararg is not None:
write_comma()
self.write('*' + node.vararg)
if node.kwarg is not None:
write_comma()
self.write('**' + node.kwarg)
def decorators(self, node):
for decorator in node.decorator_list:
self.newline(decorator)
self.write('@')
self.visit(decorator)
# Statements
def visit_Assign(self, node):
self.newline(node)
for idx, target in enumerate(node.targets):
if idx:
self.write(', ')
self.visit(target)
self.write(' = ')
self.visit(node.value)
def visit_AugAssign(self, node):
self.newline(node)
self.visit(node.target)
self.write(BINOP_SYMBOLS[type(node.op)] + '=')
self.visit(node.value)
def visit_ImportFrom(self, node):
self.newline(node)
self.write('from %s%s import ' % ('.' * node.level, node.module))
for idx, item in enumerate(node.names):
if idx:
self.write(', ')
self.write(item)
def visit_Import(self, node):
self.newline(node)
for item in node.names:
self.write('import ')
self.visit(item)
def visit_Expr(self, node):
self.newline(node)
self.generic_visit(node)
def visit_FunctionDef(self, node):
self.newline(extra=1)
self.decorators(node)
self.newline(node)
self.write('def %s(' % node.name)
self.signature(node.args)
self.write('):')
self.body(node.body)
def visit_ClassDef(self, node):
have_args = []
def paren_or_comma():
if have_args:
self.write(', ')
else:
have_args.append(True)
self.write('(')
self.newline(extra=2)
self.decorators(node)
self.newline(node)
self.write('class %s' % node.name)
for base in node.bases:
paren_or_comma()
self.visit(base)
# XXX: the if here is used to keep this module compatible
# with python 2.6.
if hasattr(node, 'keywords'):
for keyword in node.keywords:
paren_or_comma()
self.write(keyword.arg + '=')
self.visit(keyword.value)
if node.starargs is not None:
paren_or_comma()
self.write('*')
self.visit(node.starargs)
if node.kwargs is not None:
paren_or_comma()
self.write('**')
self.visit(node.kwargs)
self.write(have_args and '):' or ':')
self.body(node.body)
def visit_If(self, node):
self.newline(node)
self.write('if ')
self.visit(node.test)
self.write(':')
self.body(node.body)
while True:
else_ = node.orelse
if len(else_) == 1 and isinstance(else_[0], If):
node = else_[0]
self.newline()
self.write('elif ')
self.visit(node.test)
self.write(':')
self.body(node.body)
else:
self.newline()
self.write('else:')
self.body(else_)
break
def visit_For(self, node):
self.newline(node)
self.write('for ')
self.visit(node.target)
self.write(' in ')
self.visit(node.iter)
self.write(':')
self.body_or_else(node)
def visit_While(self, node):
self.newline(node)
self.write('while ')
self.visit(node.test)
self.write(':')
self.body_or_else(node)
def visit_With(self, node):
self.newline(node)
self.write('with ')
self.visit(node.context_expr)
if node.optional_vars is not None:
self.write(' as ')
self.visit(node.optional_vars)
self.write(':')
self.body(node.body)
def visit_Pass(self, node):
self.newline(node)
self.write('pass')
def visit_Print(self, node):
# XXX: python 2.6 only
self.newline(node)
self.write('print ')
want_comma = False
if node.dest is not None:
self.write(' >> ')
self.visit(node.dest)
want_comma = True
for value in node.values:
if want_comma:
self.write(', ')
self.visit(value)
want_comma = True
if not node.nl:
self.write(',')
def visit_Delete(self, node):
self.newline(node)
self.write('del ')
for idx, target in enumerate(node):
if idx:
self.write(', ')
self.visit(target)
def visit_TryExcept(self, node):
self.newline(node)
self.write('try:')
self.body(node.body)
for handler in node.handlers:
self.visit(handler)
def visit_TryFinally(self, node):
self.newline(node)
self.write('try:')
self.body(node.body)
self.newline(node)
self.write('finally:')
self.body(node.finalbody)
def visit_Global(self, node):
self.newline(node)
self.write('global ' + ', '.join(node.names))
def visit_Nonlocal(self, node):
self.newline(node)
self.write('nonlocal ' + ', '.join(node.names))
def visit_Return(self, node):
self.newline(node)
self.write('return ')
self.visit(node.value)
def visit_Break(self, node):
self.newline(node)
self.write('break')
def visit_Continue(self, node):
self.newline(node)
self.write('continue')
def visit_Raise(self, node):
# XXX: Python 2.6 / 3.0 compatibility
self.newline(node)
self.write('raise')
if hasattr(node, 'exc') and node.exc is not None:
self.write(' ')
self.visit(node.exc)
if node.cause is not None:
self.write(' from ')
self.visit(node.cause)
elif hasattr(node, 'type') and node.type is not None:
self.visit(node.type)
if node.inst is not None:
self.write(', ')
self.visit(node.inst)
if node.tback is not None:
self.write(', ')
self.visit(node.tback)
# Expressions
def visit_Attribute(self, node):
self.visit(node.value)
self.write('.' + node.attr)
def visit_Call(self, node):
want_comma = []
def write_comma():
if want_comma:
self.write(', ')
else:
want_comma.append(True)
self.visit(node.func)
self.write('(')
for arg in node.args:
write_comma()
self.visit(arg)
for keyword in node.keywords:
write_comma()
self.write(keyword.arg + '=')
self.visit(keyword.value)
if node.starargs is not None:
write_comma()
self.write('*')
self.visit(node.starargs)
if node.kwargs is not None:
write_comma()
self.write('**')
self.visit(node.kwargs)
self.write(')')
def visit_Name(self, node):
self.write(node.id)
def visit_Str(self, node):
self.write(repr(node.s))
def visit_Bytes(self, node):
self.write(repr(node.s))
def visit_Num(self, node):
self.write(repr(node.n))
def visit_Tuple(self, node):
self.write('(')
idx = -1
for idx, item in enumerate(node.elts):
if idx:
self.write(', ')
self.visit(item)
self.write(idx and ')' or ',)')
def sequence_visit(left, right):
def visit(self, node):
self.write(left)
for idx, item in enumerate(node.elts):
if idx:
self.write(', ')
self.visit(item)
self.write(right)
return visit
visit_List = sequence_visit('[', ']')
visit_Set = sequence_visit('{', '}')
del sequence_visit
def visit_Dict(self, node):
self.write('{')
for idx, (key, value) in enumerate(zip(node.keys, node.values)):
if idx:
self.write(', ')
self.visit(key)
self.write(': ')
self.visit(value)
self.write('}')
def visit_BinOp(self, node):
self.visit(node.left)
self.write(' %s ' % BINOP_SYMBOLS[type(node.op)])
self.visit(node.right)
def visit_BoolOp(self, node):
self.write('(')
for idx, value in enumerate(node.values):
if idx:
self.write(' %s ' % BOOLOP_SYMBOLS[type(node.op)])
self.visit(value)
self.write(')')
def visit_Compare(self, node):
self.write('(')
self.write(node.left)
for op, right in zip(node.ops, node.comparators):
self.write(' %s %%' % CMPOP_SYMBOLS[type(op)])
self.visit(right)
self.write(')')
def visit_UnaryOp(self, node):
self.write('(')
op = UNARYOP_SYMBOLS[type(node.op)]
self.write(op)
if op == 'not':
self.write(' ')
self.visit(node.operand)
self.write(')')
def visit_Subscript(self, node):
self.visit(node.value)
self.write('[')
self.visit(node.slice)
self.write(']')
def visit_Slice(self, node):
if node.lower is not None:
self.visit(node.lower)
self.write(':')
if node.upper is not None:
self.visit(node.upper)
if node.step is not None:
self.write(':')
if not (isinstance(node.step, Name) and node.step.id == 'None'):
self.visit(node.step)
def visit_ExtSlice(self, node):
for idx, item in node.dims:
if idx:
self.write(', ')
self.visit(item)
def visit_Yield(self, node):
self.write('yield ')
self.visit(node.value)
def visit_Lambda(self, node):
self.write('lambda ')
self.signature(node.args)
self.write(': ')
self.visit(node.body)
def visit_Ellipsis(self, node):
self.write('Ellipsis')
def generator_visit(left, right):
def visit(self, node):
self.write(left)
self.visit(node.elt)
for comprehension in node.generators:
self.visit(comprehension)
self.write(right)
return visit
visit_ListComp = generator_visit('[', ']')
visit_GeneratorExp = generator_visit('(', ')')
visit_SetComp = generator_visit('{', '}')
del generator_visit
def visit_DictComp(self, node):
self.write('{')
self.visit(node.key)
self.write(': ')
self.visit(node.value)
for comprehension in node.generators:
self.visit(comprehension)
self.write('}')
def visit_IfExp(self, node):
self.visit(node.body)
self.write(' if ')
self.visit(node.test)
self.write(' else ')
self.visit(node.orelse)
def visit_Starred(self, node):
self.write('*')
self.visit(node.value)
def visit_Repr(self, node):
# XXX: python 2.6 only
self.write('`')
self.visit(node.value)
self.write('`')
# Helper Nodes
def visit_alias(self, node):
self.write(node.name)
if node.asname is not None:
self.write(' as ' + node.asname)
def visit_comprehension(self, node):
self.write(' for ')
self.visit(node.target)
self.write(' in ')
self.visit(node.iter)
if node.ifs:
for if_ in node.ifs:
self.write(' if ')
self.visit(if_)
def visit_excepthandler(self, node):
self.newline(node)
self.write('except')
if node.type is not None:
self.write(' ')
self.visit(node.type)
if node.name is not None:
self.write(' as ')
self.visit(node.name)
self.write(':')
self.body(node.body)

View File

@@ -0,0 +1,4 @@
# PLY package
# Author: David Beazley (dave@dabeaz.com)
__all__ = ['lex','yacc']

1058
bitbake/lib/ply/lex.py Normal file

File diff suppressed because it is too large Load Diff

3276
bitbake/lib/ply/yacc.py Normal file

File diff suppressed because it is too large Load Diff

710
bitbake/lib/pysh/builtin.py Normal file
View File

@@ -0,0 +1,710 @@
# builtin.py - builtins and utilities definitions for pysh.
#
# Copyright 2007 Patrick Mezard
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
"""Builtin and internal utilities implementations.
- Beware not to use python interpreter environment as if it were the shell
environment. For instance, commands working directory must be explicitely handled
through env['PWD'] instead of relying on python working directory.
"""
import errno
import optparse
import os
import re
import subprocess
import sys
import time
def has_subprocess_bug():
return getattr(subprocess, 'list2cmdline') and \
( subprocess.list2cmdline(['']) == '' or \
subprocess.list2cmdline(['foo|bar']) == 'foo|bar')
# Detect python bug 1634343: "subprocess swallows empty arguments under win32"
# <http://sourceforge.net/tracker/index.php?func=detail&aid=1634343&group_id=5470&atid=105470>
# Also detect: "[ 1710802 ] subprocess must escape redirection characters under win32"
# <http://sourceforge.net/tracker/index.php?func=detail&aid=1710802&group_id=5470&atid=105470>
if has_subprocess_bug():
import subprocess_fix
subprocess.list2cmdline = subprocess_fix.list2cmdline
from sherrors import *
class NonExitingParser(optparse.OptionParser):
"""OptionParser default behaviour upon error is to print the error message and
exit. Raise a utility error instead.
"""
def error(self, msg):
raise UtilityError(msg)
#-------------------------------------------------------------------------------
# set special builtin
#-------------------------------------------------------------------------------
OPT_SET = NonExitingParser(usage="set - set or unset options and positional parameters")
OPT_SET.add_option( '-f', action='store_true', dest='has_f', default=False,
help='The shell shall disable pathname expansion.')
OPT_SET.add_option('-e', action='store_true', dest='has_e', default=False,
help="""When this option is on, if a simple command fails for any of the \
reasons listed in Consequences of Shell Errors or returns an exit status \
value >0, and is not part of the compound list following a while, until, \
or if keyword, and is not a part of an AND or OR list, and is not a \
pipeline preceded by the ! reserved word, then the shell shall immediately \
exit.""")
OPT_SET.add_option('-x', action='store_true', dest='has_x', default=False,
help="""The shell shall write to standard error a trace for each command \
after it expands the command and before it executes it. It is unspecified \
whether the command that turns tracing off is traced.""")
def builtin_set(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
option, args = OPT_SET.parse_args(args)
env = interp.get_env()
if option.has_f:
env.set_opt('-f')
if option.has_e:
env.set_opt('-e')
if option.has_x:
env.set_opt('-x')
return 0
#-------------------------------------------------------------------------------
# shift special builtin
#-------------------------------------------------------------------------------
def builtin_shift(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
params = interp.get_env().get_positional_args()
if args:
try:
n = int(args[0])
if n > len(params):
raise ValueError()
except ValueError:
return 1
else:
n = 1
params[:n] = []
interp.get_env().set_positional_args(params)
return 0
#-------------------------------------------------------------------------------
# export special builtin
#-------------------------------------------------------------------------------
OPT_EXPORT = NonExitingParser(usage="set - set or unset options and positional parameters")
OPT_EXPORT.add_option('-p', action='store_true', dest='has_p', default=False)
def builtin_export(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
option, args = OPT_EXPORT.parse_args(args)
if option.has_p:
raise NotImplementedError()
for arg in args:
try:
name, value = arg.split('=', 1)
except ValueError:
name, value = arg, None
env = interp.get_env().export(name, value)
return 0
#-------------------------------------------------------------------------------
# return special builtin
#-------------------------------------------------------------------------------
def builtin_return(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
res = 0
if args:
try:
res = int(args[0])
except ValueError:
res = 0
if not 0<=res<=255:
res = 0
# BUG: should be last executed command exit code
raise ReturnSignal(res)
#-------------------------------------------------------------------------------
# trap special builtin
#-------------------------------------------------------------------------------
def builtin_trap(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
if len(args) < 2:
stderr.write('trap: usage: trap [[arg] signal_spec ...]\n')
return 2
action = args[0]
for sig in args[1:]:
try:
env.traps[sig] = action
except Exception, e:
stderr.write('trap: %s\n' % str(e))
return 0
#-------------------------------------------------------------------------------
# unset special builtin
#-------------------------------------------------------------------------------
OPT_UNSET = NonExitingParser("unset - unset values and attributes of variables and functions")
OPT_UNSET.add_option( '-f', action='store_true', dest='has_f', default=False)
OPT_UNSET.add_option( '-v', action='store_true', dest='has_v', default=False)
def builtin_unset(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
option, args = OPT_UNSET.parse_args(args)
status = 0
env = interp.get_env()
for arg in args:
try:
if option.has_f:
env.remove_function(arg)
else:
del env[arg]
except KeyError:
pass
except VarAssignmentError:
status = 1
return status
#-------------------------------------------------------------------------------
# wait special builtin
#-------------------------------------------------------------------------------
def builtin_wait(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return interp.wait([int(arg) for arg in args])
#-------------------------------------------------------------------------------
# cat utility
#-------------------------------------------------------------------------------
def utility_cat(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
if not args:
args = ['-']
status = 0
for arg in args:
if arg == '-':
data = stdin.read()
else:
path = os.path.join(env['PWD'], arg)
try:
f = file(path, 'rb')
try:
data = f.read()
finally:
f.close()
except IOError, e:
if e.errno != errno.ENOENT:
raise
status = 1
continue
stdout.write(data)
stdout.flush()
return status
#-------------------------------------------------------------------------------
# cd utility
#-------------------------------------------------------------------------------
OPT_CD = NonExitingParser("cd - change the working directory")
def utility_cd(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
option, args = OPT_CD.parse_args(args)
env = interp.get_env()
directory = None
printdir = False
if not args:
home = env.get('HOME')
if home:
# Unspecified, do nothing
return 0
else:
directory = home
elif len(args)==1:
directory = args[0]
if directory=='-':
if 'OLDPWD' not in env:
raise UtilityError("OLDPWD not set")
printdir = True
directory = env['OLDPWD']
else:
raise UtilityError("too many arguments")
curpath = None
# Absolute directories will be handled correctly by the os.path.join call.
if not directory.startswith('.') and not directory.startswith('..'):
cdpaths = env.get('CDPATH', '.').split(';')
for cdpath in cdpaths:
p = os.path.join(cdpath, directory)
if os.path.isdir(p):
curpath = p
break
if curpath is None:
curpath = directory
curpath = os.path.join(env['PWD'], directory)
env['OLDPWD'] = env['PWD']
env['PWD'] = curpath
if printdir:
stdout.write('%s\n' % curpath)
return 0
#-------------------------------------------------------------------------------
# colon utility
#-------------------------------------------------------------------------------
def utility_colon(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return 0
#-------------------------------------------------------------------------------
# echo utility
#-------------------------------------------------------------------------------
def utility_echo(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
# Echo only takes arguments, no options. Use printf if you need fancy stuff.
output = ' '.join(args) + '\n'
stdout.write(output)
stdout.flush()
return 0
#-------------------------------------------------------------------------------
# egrep utility
#-------------------------------------------------------------------------------
# egrep is usually a shell script.
# Unfortunately, pysh does not support shell scripts *with arguments* right now,
# so the redirection is implemented here, assuming grep is available.
def utility_egrep(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return run_command('grep', ['-E'] + args, interp, env, stdin, stdout,
stderr, debugflags)
#-------------------------------------------------------------------------------
# env utility
#-------------------------------------------------------------------------------
def utility_env(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
if args and args[0]=='-i':
raise NotImplementedError('env: -i option is not implemented')
i = 0
for arg in args:
if '=' not in arg:
break
# Update the current environment
name, value = arg.split('=', 1)
env[name] = value
i += 1
if args[i:]:
# Find then execute the specified interpreter
utility = env.find_in_path(args[i])
if not utility:
return 127
args[i:i+1] = utility
name = args[i]
args = args[i+1:]
try:
return run_command(name, args, interp, env, stdin, stdout, stderr,
debugflags)
except UtilityError:
stderr.write('env: failed to execute %s' % ' '.join([name]+args))
return 126
else:
for pair in env.get_variables().iteritems():
stdout.write('%s=%s\n' % pair)
return 0
#-------------------------------------------------------------------------------
# exit utility
#-------------------------------------------------------------------------------
def utility_exit(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
res = None
if args:
try:
res = int(args[0])
except ValueError:
res = None
if not 0<=res<=255:
res = None
if res is None:
# BUG: should be last executed command exit code
res = 0
raise ExitSignal(res)
#-------------------------------------------------------------------------------
# fgrep utility
#-------------------------------------------------------------------------------
# see egrep
def utility_fgrep(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return run_command('grep', ['-F'] + args, interp, env, stdin, stdout,
stderr, debugflags)
#-------------------------------------------------------------------------------
# gunzip utility
#-------------------------------------------------------------------------------
# see egrep
def utility_gunzip(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return run_command('gzip', ['-d'] + args, interp, env, stdin, stdout,
stderr, debugflags)
#-------------------------------------------------------------------------------
# kill utility
#-------------------------------------------------------------------------------
def utility_kill(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
for arg in args:
pid = int(arg)
status = subprocess.call(['pskill', '/T', str(pid)],
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
# pskill is asynchronous, hence the stupid polling loop
while 1:
p = subprocess.Popen(['pslist', str(pid)],
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
output = p.communicate()[0]
if ('process %d was not' % pid) in output:
break
time.sleep(1)
return status
#-------------------------------------------------------------------------------
# mkdir utility
#-------------------------------------------------------------------------------
OPT_MKDIR = NonExitingParser("mkdir - make directories.")
OPT_MKDIR.add_option('-p', action='store_true', dest='has_p', default=False)
def utility_mkdir(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
# TODO: implement umask
# TODO: implement proper utility error report
option, args = OPT_MKDIR.parse_args(args)
for arg in args:
path = os.path.join(env['PWD'], arg)
if option.has_p:
try:
os.makedirs(path)
except IOError, e:
if e.errno != errno.EEXIST:
raise
else:
os.mkdir(path)
return 0
#-------------------------------------------------------------------------------
# netstat utility
#-------------------------------------------------------------------------------
def utility_netstat(name, args, interp, env, stdin, stdout, stderr, debugflags):
# Do you really expect me to implement netstat ?
# This empty form is enough for Mercurial tests since it's
# supposed to generate nothing upon success. Faking this test
# is not a big deal either.
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return 0
#-------------------------------------------------------------------------------
# pwd utility
#-------------------------------------------------------------------------------
OPT_PWD = NonExitingParser("pwd - return working directory name")
OPT_PWD.add_option('-L', action='store_true', dest='has_L', default=True,
help="""If the PWD environment variable contains an absolute pathname of \
the current directory that does not contain the filenames dot or dot-dot, \
pwd shall write this pathname to standard output. Otherwise, the -L option \
shall behave as the -P option.""")
OPT_PWD.add_option('-P', action='store_true', dest='has_L', default=False,
help="""The absolute pathname written shall not contain filenames that, in \
the context of the pathname, refer to files of type symbolic link.""")
def utility_pwd(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
option, args = OPT_PWD.parse_args(args)
stdout.write('%s\n' % env['PWD'])
return 0
#-------------------------------------------------------------------------------
# printf utility
#-------------------------------------------------------------------------------
RE_UNESCAPE = re.compile(r'(\\x[a-zA-Z0-9]{2}|\\[0-7]{1,3}|\\.)')
def utility_printf(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
def replace(m):
assert m.group()
g = m.group()[1:]
if g.startswith('x'):
return chr(int(g[1:], 16))
if len(g) <= 3 and len([c for c in g if c in '01234567']) == len(g):
# Yay, an octal number
return chr(int(g, 8))
return {
'a': '\a',
'b': '\b',
'f': '\f',
'n': '\n',
'r': '\r',
't': '\t',
'v': '\v',
'\\': '\\',
}.get(g)
# Convert escape sequences
format = re.sub(RE_UNESCAPE, replace, args[0])
stdout.write(format % tuple(args[1:]))
return 0
#-------------------------------------------------------------------------------
# true utility
#-------------------------------------------------------------------------------
def utility_true(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
return 0
#-------------------------------------------------------------------------------
# sed utility
#-------------------------------------------------------------------------------
RE_SED = re.compile(r'^s(.).*\1[a-zA-Z]*$')
# cygwin sed fails with some expressions when they do not end with a single space.
# see unit tests for details. Interestingly, the same expressions works perfectly
# in cygwin shell.
def utility_sed(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
# Scan pattern arguments and append a space if necessary
for i in xrange(len(args)):
if not RE_SED.search(args[i]):
continue
args[i] = args[i] + ' '
return run_command(name, args, interp, env, stdin, stdout,
stderr, debugflags)
#-------------------------------------------------------------------------------
# sleep utility
#-------------------------------------------------------------------------------
def utility_sleep(name, args, interp, env, stdin, stdout, stderr, debugflags):
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
time.sleep(int(args[0]))
return 0
#-------------------------------------------------------------------------------
# sort utility
#-------------------------------------------------------------------------------
OPT_SORT = NonExitingParser("sort - sort, merge, or sequence check text files")
def utility_sort(name, args, interp, env, stdin, stdout, stderr, debugflags):
def sort(path):
if path == '-':
lines = stdin.readlines()
else:
try:
f = file(path)
try:
lines = f.readlines()
finally:
f.close()
except IOError, e:
stderr.write(str(e) + '\n')
return 1
if lines and lines[-1][-1]!='\n':
lines[-1] = lines[-1] + '\n'
return lines
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
option, args = OPT_SORT.parse_args(args)
alllines = []
if len(args)<=0:
args += ['-']
# Load all files lines
curdir = os.getcwd()
try:
os.chdir(env['PWD'])
for path in args:
alllines += sort(path)
finally:
os.chdir(curdir)
alllines.sort()
for line in alllines:
stdout.write(line)
return 0
#-------------------------------------------------------------------------------
# hg utility
#-------------------------------------------------------------------------------
hgcommands = [
'add',
'addremove',
'commit', 'ci',
'debugrename',
'debugwalk',
'falabala', # Dummy command used in a mercurial test
'incoming',
'locate',
'pull',
'push',
'qinit',
'remove', 'rm',
'rename', 'mv',
'revert',
'showconfig',
'status', 'st',
'strip',
]
def rewriteslashes(name, args):
# Several hg commands output file paths, rewrite the separators
if len(args) > 1 and name.lower().endswith('python') \
and args[0].endswith('hg'):
for cmd in hgcommands:
if cmd in args[1:]:
return True
# svn output contains many paths with OS specific separators.
# Normalize these to unix paths.
base = os.path.basename(name)
if base.startswith('svn'):
return True
return False
def rewritehg(output):
if not output:
return output
# Rewrite os specific messages
output = output.replace(': The system cannot find the file specified',
': No such file or directory')
output = re.sub(': Access is denied.*$', ': Permission denied', output)
output = output.replace(': No connection could be made because the target machine actively refused it',
': Connection refused')
return output
def run_command(name, args, interp, env, stdin, stdout,
stderr, debugflags):
# Execute the command
if 'debug-utility' in debugflags:
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
hgbin = interp.options().hgbinary
ishg = hgbin and ('hg' in name or args and 'hg' in args[0])
unixoutput = 'cygwin' in name or ishg
exec_env = env.get_variables()
try:
# BUG: comparing file descriptor is clearly not a reliable way to tell
# whether they point on the same underlying object. But in pysh limited
# scope this is usually right, we do not expect complicated redirections
# besides usual 2>&1.
# Still there is one case we have but cannot deal with is when stdout
# and stderr are redirected *by pysh caller*. This the reason for the
# --redirect pysh() option.
# Now, we want to know they are the same because we sometimes need to
# transform the command output, mostly remove CR-LF to ensure that
# command output is unix-like. Cygwin utilies are a special case because
# they explicitely set their output streams to binary mode, so we have
# nothing to do. For all others commands, we have to guess whether they
# are sending text data, in which case the transformation must be done.
# Again, the NUL character test is unreliable but should be enough for
# hg tests.
redirected = stdout.fileno()==stderr.fileno()
if not redirected:
p = subprocess.Popen([name] + args, cwd=env['PWD'], env=exec_env,
stdin=stdin, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
p = subprocess.Popen([name] + args, cwd=env['PWD'], env=exec_env,
stdin=stdin, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = p.communicate()
except WindowsError, e:
raise UtilityError(str(e))
if not unixoutput:
def encode(s):
if '\0' in s:
return s
return s.replace('\r\n', '\n')
else:
encode = lambda s: s
if rewriteslashes(name, args):
encode1_ = encode
def encode(s):
s = encode1_(s)
s = s.replace('\\\\', '\\')
s = s.replace('\\', '/')
return s
if ishg:
encode2_ = encode
def encode(s):
return rewritehg(encode2_(s))
stdout.write(encode(out))
if not redirected:
stderr.write(encode(err))
return p.returncode

1367
bitbake/lib/pysh/interp.py Normal file

File diff suppressed because it is too large Load Diff

116
bitbake/lib/pysh/lsprof.py Normal file
View File

@@ -0,0 +1,116 @@
#! /usr/bin/env python
import sys
from _lsprof import Profiler, profiler_entry
__all__ = ['profile', 'Stats']
def profile(f, *args, **kwds):
"""XXX docstring"""
p = Profiler()
p.enable(subcalls=True, builtins=True)
try:
f(*args, **kwds)
finally:
p.disable()
return Stats(p.getstats())
class Stats(object):
"""XXX docstring"""
def __init__(self, data):
self.data = data
def sort(self, crit="inlinetime"):
"""XXX docstring"""
if crit not in profiler_entry.__dict__:
raise ValueError("Can't sort by %s" % crit)
self.data.sort(lambda b, a: cmp(getattr(a, crit),
getattr(b, crit)))
for e in self.data:
if e.calls:
e.calls.sort(lambda b, a: cmp(getattr(a, crit),
getattr(b, crit)))
def pprint(self, top=None, file=None, limit=None, climit=None):
"""XXX docstring"""
if file is None:
file = sys.stdout
d = self.data
if top is not None:
d = d[:top]
cols = "% 12s %12s %11.4f %11.4f %s\n"
hcols = "% 12s %12s %12s %12s %s\n"
cols2 = "+%12s %12s %11.4f %11.4f + %s\n"
file.write(hcols % ("CallCount", "Recursive", "Total(ms)",
"Inline(ms)", "module:lineno(function)"))
count = 0
for e in d:
file.write(cols % (e.callcount, e.reccallcount, e.totaltime,
e.inlinetime, label(e.code)))
count += 1
if limit is not None and count == limit:
return
ccount = 0
if e.calls:
for se in e.calls:
file.write(cols % ("+%s" % se.callcount, se.reccallcount,
se.totaltime, se.inlinetime,
"+%s" % label(se.code)))
count += 1
ccount += 1
if limit is not None and count == limit:
return
if climit is not None and ccount == climit:
break
def freeze(self):
"""Replace all references to code objects with string
descriptions; this makes it possible to pickle the instance."""
# this code is probably rather ickier than it needs to be!
for i in range(len(self.data)):
e = self.data[i]
if not isinstance(e.code, str):
self.data[i] = type(e)((label(e.code),) + e[1:])
if e.calls:
for j in range(len(e.calls)):
se = e.calls[j]
if not isinstance(se.code, str):
e.calls[j] = type(se)((label(se.code),) + se[1:])
_fn2mod = {}
def label(code):
if isinstance(code, str):
return code
try:
mname = _fn2mod[code.co_filename]
except KeyError:
for k, v in sys.modules.items():
if v is None:
continue
if not hasattr(v, '__file__'):
continue
if not isinstance(v.__file__, str):
continue
if v.__file__.startswith(code.co_filename):
mname = _fn2mod[code.co_filename] = k
break
else:
mname = _fn2mod[code.co_filename] = '<%s>'%code.co_filename
return '%s:%d(%s)' % (mname, code.co_firstlineno, code.co_name)
if __name__ == '__main__':
import os
sys.argv = sys.argv[1:]
if not sys.argv:
print >> sys.stderr, "usage: lsprof.py <script> <arguments...>"
sys.exit(2)
sys.path.insert(0, os.path.abspath(os.path.dirname(sys.argv[0])))
stats = profile(execfile, sys.argv[0], globals(), locals())
stats.sort()
stats.pprint()

167
bitbake/lib/pysh/pysh.py Normal file
View File

@@ -0,0 +1,167 @@
# pysh.py - command processing for pysh.
#
# Copyright 2007 Patrick Mezard
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
import optparse
import os
import sys
import interp
SH_OPT = optparse.OptionParser(prog='pysh', usage="%prog [OPTIONS]", version='0.1')
SH_OPT.add_option('-c', action='store_true', dest='command_string', default=None,
help='A string that shall be interpreted by the shell as one or more commands')
SH_OPT.add_option('--redirect-to', dest='redirect_to', default=None,
help='Redirect script commands stdout and stderr to the specified file')
# See utility_command in builtin.py about the reason for this flag.
SH_OPT.add_option('--redirected', dest='redirected', action='store_true', default=False,
help='Tell the interpreter that stdout and stderr are actually the same objects, which is really stdout')
SH_OPT.add_option('--debug-parsing', action='store_true', dest='debug_parsing', default=False,
help='Trace PLY execution')
SH_OPT.add_option('--debug-tree', action='store_true', dest='debug_tree', default=False,
help='Display the generated syntax tree.')
SH_OPT.add_option('--debug-cmd', action='store_true', dest='debug_cmd', default=False,
help='Trace command execution before parameters expansion and exit status.')
SH_OPT.add_option('--debug-utility', action='store_true', dest='debug_utility', default=False,
help='Trace utility calls, after parameters expansions')
SH_OPT.add_option('--ast', action='store_true', dest='ast', default=False,
help='Encoded commands to execute in a subprocess')
SH_OPT.add_option('--profile', action='store_true', default=False,
help='Profile pysh run')
def split_args(args):
# Separate shell arguments from command ones
# Just stop at the first argument not starting with a dash. I know, this is completely broken,
# it ignores files starting with a dash or may take option values for command file. This is not
# supposed to happen for now
command_index = len(args)
for i,arg in enumerate(args):
if not arg.startswith('-'):
command_index = i
break
return args[:command_index], args[command_index:]
def fixenv(env):
path = env.get('PATH')
if path is not None:
parts = path.split(os.pathsep)
# Remove Windows utilities from PATH, they are useless at best and
# some of them (find) may be confused with other utilities.
parts = [p for p in parts if 'system32' not in p.lower()]
env['PATH'] = os.pathsep.join(parts)
if env.get('HOME') is None:
# Several utilities, including cvsps, cannot work without
# a defined HOME directory.
env['HOME'] = os.path.expanduser('~')
return env
def _sh(cwd, shargs, cmdargs, options, debugflags=None, env=None):
if os.environ.get('PYSH_TEXT') != '1':
import msvcrt
for fp in (sys.stdin, sys.stdout, sys.stderr):
msvcrt.setmode(fp.fileno(), os.O_BINARY)
hgbin = os.environ.get('PYSH_HGTEXT') != '1'
if debugflags is None:
debugflags = []
if options.debug_parsing: debugflags.append('debug-parsing')
if options.debug_utility: debugflags.append('debug-utility')
if options.debug_cmd: debugflags.append('debug-cmd')
if options.debug_tree: debugflags.append('debug-tree')
if env is None:
env = fixenv(dict(os.environ))
if cwd is None:
cwd = os.getcwd()
if not cmdargs:
# Nothing to do
return 0
ast = None
command_file = None
if options.command_string:
input = cmdargs[0]
if not options.ast:
input += '\n'
else:
args, input = interp.decodeargs(input), None
env, ast = args
cwd = env.get('PWD', cwd)
else:
command_file = cmdargs[0]
arguments = cmdargs[1:]
prefix = interp.resolve_shebang(command_file, ignoreshell=True)
if prefix:
input = ' '.join(prefix + [command_file] + arguments)
else:
# Read commands from file
f = file(command_file)
try:
# Trailing newline to help the parser
input = f.read() + '\n'
finally:
f.close()
redirect = None
try:
if options.redirected:
stdout = sys.stdout
stderr = stdout
elif options.redirect_to:
redirect = open(options.redirect_to, 'wb')
stdout = redirect
stderr = redirect
else:
stdout = sys.stdout
stderr = sys.stderr
# TODO: set arguments to environment variables
opts = interp.Options()
opts.hgbinary = hgbin
ip = interp.Interpreter(cwd, debugflags, stdout=stdout, stderr=stderr,
opts=opts)
try:
# Export given environment in shell object
for k,v in env.iteritems():
ip.get_env().export(k,v)
return ip.execute_script(input, ast, scriptpath=command_file)
finally:
ip.close()
finally:
if redirect is not None:
redirect.close()
def sh(cwd=None, args=None, debugflags=None, env=None):
if args is None:
args = sys.argv[1:]
shargs, cmdargs = split_args(args)
options, shargs = SH_OPT.parse_args(shargs)
if options.profile:
import lsprof
p = lsprof.Profiler()
p.enable(subcalls=True)
try:
return _sh(cwd, shargs, cmdargs, options, debugflags, env)
finally:
p.disable()
stats = lsprof.Stats(p.getstats())
stats.sort()
stats.pprint(top=10, file=sys.stderr, climit=5)
else:
return _sh(cwd, shargs, cmdargs, options, debugflags, env)
def main():
sys.exit(sh())
if __name__=='__main__':
main()

888
bitbake/lib/pysh/pyshlex.py Normal file
View File

@@ -0,0 +1,888 @@
# pyshlex.py - PLY compatible lexer for pysh.
#
# Copyright 2007 Patrick Mezard
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
# TODO:
# - review all "char in 'abc'" snippets: the empty string can be matched
# - test line continuations within quoted/expansion strings
# - eof is buggy wrt sublexers
# - the lexer cannot really work in pull mode as it would be required to run
# PLY in pull mode. It was designed to work incrementally and it would not be
# that hard to enable pull mode.
import re
try:
s = set()
del s
except NameError:
from Set import Set as set
from ply import lex
from sherrors import *
class NeedMore(Exception):
pass
def is_blank(c):
return c in (' ', '\t')
_RE_DIGITS = re.compile(r'^\d+$')
def are_digits(s):
return _RE_DIGITS.search(s) is not None
_OPERATORS = dict([
('&&', 'AND_IF'),
('||', 'OR_IF'),
(';;', 'DSEMI'),
('<<', 'DLESS'),
('>>', 'DGREAT'),
('<&', 'LESSAND'),
('>&', 'GREATAND'),
('<>', 'LESSGREAT'),
('<<-', 'DLESSDASH'),
('>|', 'CLOBBER'),
('&', 'AMP'),
(';', 'COMMA'),
('<', 'LESS'),
('>', 'GREATER'),
('(', 'LPARENS'),
(')', 'RPARENS'),
])
#Make a function to silence pychecker "Local variable shadows global"
def make_partial_ops():
partials = {}
for k in _OPERATORS:
for i in range(1, len(k)+1):
partials[k[:i]] = None
return partials
_PARTIAL_OPERATORS = make_partial_ops()
def is_partial_op(s):
"""Return True if s matches a non-empty subpart of an operator starting
at its first character.
"""
return s in _PARTIAL_OPERATORS
def is_op(s):
"""If s matches an operator, returns the operator identifier. Return None
otherwise.
"""
return _OPERATORS.get(s)
_RESERVEDS = dict([
('if', 'If'),
('then', 'Then'),
('else', 'Else'),
('elif', 'Elif'),
('fi', 'Fi'),
('do', 'Do'),
('done', 'Done'),
('case', 'Case'),
('esac', 'Esac'),
('while', 'While'),
('until', 'Until'),
('for', 'For'),
('{', 'Lbrace'),
('}', 'Rbrace'),
('!', 'Bang'),
('in', 'In'),
('|', 'PIPE'),
])
def get_reserved(s):
return _RESERVEDS.get(s)
_RE_NAME = re.compile(r'^[0-9a-zA-Z_]+$')
def is_name(s):
return _RE_NAME.search(s) is not None
def find_chars(seq, chars):
for i,v in enumerate(seq):
if v in chars:
return i,v
return -1, None
class WordLexer:
"""WordLexer parse quoted or expansion expressions and return an expression
tree. The input string can be any well formed sequence beginning with quoting
or expansion character. Embedded expressions are handled recursively. The
resulting tree is made of lists and strings. Lists represent quoted or
expansion expressions. Each list first element is the opening separator,
the last one the closing separator. In-between can be any number of strings
or lists for sub-expressions. Non quoted/expansion expression can written as
strings or as lists with empty strings as starting and ending delimiters.
"""
NAME_CHARSET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
NAME_CHARSET = dict(zip(NAME_CHARSET, NAME_CHARSET))
SPECIAL_CHARSET = '@*#?-$!0'
#Characters which can be escaped depends on the current delimiters
ESCAPABLE = {
'`': set(['$', '\\', '`']),
'"': set(['$', '\\', '`', '"']),
"'": set(),
}
def __init__(self, heredoc = False):
# _buffer is the unprocessed input characters buffer
self._buffer = []
# _stack is empty or contains a quoted list being processed
# (this is the DFS path to the quoted expression being evaluated).
self._stack = []
self._escapable = None
# True when parsing unquoted here documents
self._heredoc = heredoc
def add(self, data, eof=False):
"""Feed the lexer with more data. If the quoted expression can be
delimited, return a tuple (expr, remaining) containing the expression
tree and the unconsumed data.
Otherwise, raise NeedMore.
"""
self._buffer += list(data)
self._parse(eof)
result = self._stack[0]
remaining = ''.join(self._buffer)
self._stack = []
self._buffer = []
return result, remaining
def _is_escapable(self, c, delim=None):
if delim is None:
if self._heredoc:
# Backslashes works as if they were double quoted in unquoted
# here-documents
delim = '"'
else:
if len(self._stack)<=1:
return True
delim = self._stack[-2][0]
escapables = self.ESCAPABLE.get(delim, None)
return escapables is None or c in escapables
def _parse_squote(self, buf, result, eof):
if not buf:
raise NeedMore()
try:
pos = buf.index("'")
except ValueError:
raise NeedMore()
result[-1] += ''.join(buf[:pos])
result += ["'"]
return pos+1, True
def _parse_bquote(self, buf, result, eof):
if not buf:
raise NeedMore()
if buf[0]=='\n':
#Remove line continuations
result[:] = ['', '', '']
elif self._is_escapable(buf[0]):
result[-1] += buf[0]
result += ['']
else:
#Keep as such
result[:] = ['', '\\'+buf[0], '']
return 1, True
def _parse_dquote(self, buf, result, eof):
if not buf:
raise NeedMore()
pos, sep = find_chars(buf, '$\\`"')
if pos==-1:
raise NeedMore()
result[-1] += ''.join(buf[:pos])
if sep=='"':
result += ['"']
return pos+1, True
else:
#Keep everything until the separator and defer processing
return pos, False
def _parse_command(self, buf, result, eof):
if not buf:
raise NeedMore()
chars = '$\\`"\''
if result[0] == '$(':
chars += ')'
pos, sep = find_chars(buf, chars)
if pos == -1:
raise NeedMore()
result[-1] += ''.join(buf[:pos])
if (result[0]=='$(' and sep==')') or (result[0]=='`' and sep=='`'):
result += [sep]
return pos+1, True
else:
return pos, False
def _parse_parameter(self, buf, result, eof):
if not buf:
raise NeedMore()
pos, sep = find_chars(buf, '$\\`"\'}')
if pos==-1:
raise NeedMore()
result[-1] += ''.join(buf[:pos])
if sep=='}':
result += [sep]
return pos+1, True
else:
return pos, False
def _parse_dollar(self, buf, result, eof):
sep = result[0]
if sep=='$':
if not buf:
#TODO: handle empty $
raise NeedMore()
if buf[0]=='(':
if len(buf)==1:
raise NeedMore()
if buf[1]=='(':
result[0] = '$(('
buf[:2] = []
else:
result[0] = '$('
buf[:1] = []
elif buf[0]=='{':
result[0] = '${'
buf[:1] = []
else:
if buf[0] in self.SPECIAL_CHARSET:
result[-1] = buf[0]
read = 1
else:
for read,c in enumerate(buf):
if c not in self.NAME_CHARSET:
break
else:
if not eof:
raise NeedMore()
read += 1
result[-1] += ''.join(buf[0:read])
if not result[-1]:
result[:] = ['', result[0], '']
else:
result += ['']
return read,True
sep = result[0]
if sep=='$(':
parsefunc = self._parse_command
elif sep=='${':
parsefunc = self._parse_parameter
else:
raise NotImplementedError()
pos, closed = parsefunc(buf, result, eof)
return pos, closed
def _parse(self, eof):
buf = self._buffer
stack = self._stack
recurse = False
while 1:
if not stack or recurse:
if not buf:
raise NeedMore()
if buf[0] not in ('"\\`$\''):
raise ShellSyntaxError('Invalid quoted string sequence')
stack.append([buf[0], ''])
buf[:1] = []
recurse = False
result = stack[-1]
if result[0]=="'":
parsefunc = self._parse_squote
elif result[0]=='\\':
parsefunc = self._parse_bquote
elif result[0]=='"':
parsefunc = self._parse_dquote
elif result[0]=='`':
parsefunc = self._parse_command
elif result[0][0]=='$':
parsefunc = self._parse_dollar
else:
raise NotImplementedError()
read, closed = parsefunc(buf, result, eof)
buf[:read] = []
if closed:
if len(stack)>1:
#Merge in parent expression
parsed = stack.pop()
stack[-1] += [parsed]
stack[-1] += ['']
else:
break
else:
recurse = True
def normalize_wordtree(wtree):
"""Fold back every literal sequence (delimited with empty strings) into
parent sequence.
"""
def normalize(wtree):
result = []
for part in wtree[1:-1]:
if isinstance(part, list):
part = normalize(part)
if part[0]=='':
#Move the part content back at current level
result += part[1:-1]
continue
elif not part:
#Remove empty strings
continue
result.append(part)
if not result:
result = ['']
return [wtree[0]] + result + [wtree[-1]]
return normalize(wtree)
def make_wordtree(token, here_document=False):
"""Parse a delimited token and return a tree similar to the ones returned by
WordLexer. token may contain any combinations of expansion/quoted fields and
non-ones.
"""
tree = ['']
remaining = token
delimiters = '\\$`'
if not here_document:
delimiters += '\'"'
while 1:
pos, sep = find_chars(remaining, delimiters)
if pos==-1:
tree += [remaining, '']
return normalize_wordtree(tree)
tree.append(remaining[:pos])
remaining = remaining[pos:]
try:
result, remaining = WordLexer(heredoc = here_document).add(remaining, True)
except NeedMore:
raise ShellSyntaxError('Invalid token "%s"')
tree.append(result)
def wordtree_as_string(wtree):
"""Rewrite an expression tree generated by make_wordtree as string."""
def visit(node, output):
for child in node:
if isinstance(child, list):
visit(child, output)
else:
output.append(child)
output = []
visit(wtree, output)
return ''.join(output)
def unquote_wordtree(wtree):
"""Fold the word tree while removing quotes everywhere. Other expansion
sequences are joined as such.
"""
def unquote(wtree):
unquoted = []
if wtree[0] in ('', "'", '"', '\\'):
wtree = wtree[1:-1]
for part in wtree:
if isinstance(part, list):
part = unquote(part)
unquoted.append(part)
return ''.join(unquoted)
return unquote(wtree)
class HereDocLexer:
"""HereDocLexer delimits whatever comes from the here-document starting newline
not included to the closing delimiter line included.
"""
def __init__(self, op, delim):
assert op in ('<<', '<<-')
if not delim:
raise ShellSyntaxError('invalid here document delimiter %s' % str(delim))
self._op = op
self._delim = delim
self._buffer = []
self._token = []
def add(self, data, eof):
"""If the here-document was delimited, return a tuple (content, remaining).
Raise NeedMore() otherwise.
"""
self._buffer += list(data)
self._parse(eof)
token = ''.join(self._token)
remaining = ''.join(self._buffer)
self._token, self._remaining = [], []
return token, remaining
def _parse(self, eof):
while 1:
#Look for first unescaped newline. Quotes may be ignored
escaped = False
for i,c in enumerate(self._buffer):
if escaped:
escaped = False
elif c=='\\':
escaped = True
elif c=='\n':
break
else:
i = -1
if i==-1 or self._buffer[i]!='\n':
if not eof:
raise NeedMore()
#No more data, maybe the last line is closing delimiter
line = ''.join(self._buffer)
eol = ''
self._buffer[:] = []
else:
line = ''.join(self._buffer[:i])
eol = self._buffer[i]
self._buffer[:i+1] = []
if self._op=='<<-':
line = line.lstrip('\t')
if line==self._delim:
break
self._token += [line, eol]
if i==-1:
break
class Token:
#TODO: check this is still in use
OPERATOR = 'OPERATOR'
WORD = 'WORD'
def __init__(self):
self.value = ''
self.type = None
def __getitem__(self, key):
#Behave like a two elements tuple
if key==0:
return self.type
if key==1:
return self.value
raise IndexError(key)
class HereDoc:
def __init__(self, op, name=None):
self.op = op
self.name = name
self.pendings = []
TK_COMMA = 'COMMA'
TK_AMPERSAND = 'AMP'
TK_OP = 'OP'
TK_TOKEN = 'TOKEN'
TK_COMMENT = 'COMMENT'
TK_NEWLINE = 'NEWLINE'
TK_IONUMBER = 'IO_NUMBER'
TK_ASSIGNMENT = 'ASSIGNMENT_WORD'
TK_HERENAME = 'HERENAME'
class Lexer:
"""Main lexer.
Call add() until the script AST is returned.
"""
# Here-document handling makes the whole thing more complex because they basically
# force tokens to be reordered: here-content must come right after the operator
# and the here-document name, while some other tokens might be following the
# here-document expression on the same line.
#
# So, here-doc states are basically:
# *self._state==ST_NORMAL
# - self._heredoc.op is None: no here-document
# - self._heredoc.op is not None but name is: here-document operator matched,
# waiting for the document name/delimiter
# - self._heredoc.op and name are not None: here-document is ready, following
# tokens are being stored and will be pushed again when the document is
# completely parsed.
# *self._state==ST_HEREDOC
# - The here-document is being delimited by self._herelexer. Once it is done
# the content is pushed in front of the pending token list then all these
# tokens are pushed once again.
ST_NORMAL = 'ST_NORMAL'
ST_OP = 'ST_OP'
ST_BACKSLASH = 'ST_BACKSLASH'
ST_QUOTED = 'ST_QUOTED'
ST_COMMENT = 'ST_COMMENT'
ST_HEREDOC = 'ST_HEREDOC'
#Match end of backquote strings
RE_BACKQUOTE_END = re.compile(r'(?<!\\)(`)')
def __init__(self, parent_state = None):
self._input = []
self._pos = 0
self._token = ''
self._type = TK_TOKEN
self._state = self.ST_NORMAL
self._parent_state = parent_state
self._wordlexer = None
self._heredoc = HereDoc(None)
self._herelexer = None
### Following attributes are not used for delimiting token and can safely
### be changed after here-document detection (see _push_toke)
# Count the number of tokens following a 'For' reserved word. Needed to
# return an 'In' reserved word if it comes in third place.
self._for_count = None
def add(self, data, eof=False):
"""Feed the lexer with data.
When eof is set to True, returns unconsumed data or raise if the lexer
is in the middle of a delimiting operation.
Raise NeedMore otherwise.
"""
self._input += list(data)
self._parse(eof)
self._input[:self._pos] = []
return ''.join(self._input)
def _parse(self, eof):
while self._state:
if self._pos>=len(self._input):
if not eof:
raise NeedMore()
elif self._state not in (self.ST_OP, self.ST_QUOTED, self.ST_HEREDOC):
#Delimit the current token and leave cleanly
self._push_token('')
break
else:
#Let the sublexer handle the eof themselves
pass
if self._state==self.ST_NORMAL:
self._parse_normal()
elif self._state==self.ST_COMMENT:
self._parse_comment()
elif self._state==self.ST_OP:
self._parse_op(eof)
elif self._state==self.ST_QUOTED:
self._parse_quoted(eof)
elif self._state==self.ST_HEREDOC:
self._parse_heredoc(eof)
else:
assert False, "Unknown state " + str(self._state)
if self._heredoc.op is not None:
raise ShellSyntaxError('missing here-document delimiter')
def _parse_normal(self):
c = self._input[self._pos]
if c=='\n':
self._push_token(c)
self._token = c
self._type = TK_NEWLINE
self._push_token('')
self._pos += 1
elif c in ('\\', '\'', '"', '`', '$'):
self._state = self.ST_QUOTED
elif is_partial_op(c):
self._push_token(c)
self._type = TK_OP
self._token += c
self._pos += 1
self._state = self.ST_OP
elif is_blank(c):
self._push_token(c)
#Discard blanks
self._pos += 1
elif self._token:
self._token += c
self._pos += 1
elif c=='#':
self._state = self.ST_COMMENT
self._type = TK_COMMENT
self._pos += 1
else:
self._pos += 1
self._token += c
def _parse_op(self, eof):
assert self._token
while 1:
if self._pos>=len(self._input):
if not eof:
raise NeedMore()
c = ''
else:
c = self._input[self._pos]
op = self._token + c
if c and is_partial_op(op):
#Still parsing an operator
self._token = op
self._pos += 1
else:
#End of operator
self._push_token(c)
self._state = self.ST_NORMAL
break
def _parse_comment(self):
while 1:
if self._pos>=len(self._input):
raise NeedMore()
c = self._input[self._pos]
if c=='\n':
#End of comment, do not consume the end of line
self._state = self.ST_NORMAL
break
else:
self._token += c
self._pos += 1
def _parse_quoted(self, eof):
"""Precondition: the starting backquote/dollar is still in the input queue."""
if not self._wordlexer:
self._wordlexer = WordLexer()
if self._pos<len(self._input):
#Transfer input queue character into the subparser
input = self._input[self._pos:]
self._pos += len(input)
wtree, remaining = self._wordlexer.add(input, eof)
self._wordlexer = None
self._token += wordtree_as_string(wtree)
#Put unparsed character back in the input queue
if remaining:
self._input[self._pos:self._pos] = list(remaining)
self._state = self.ST_NORMAL
def _parse_heredoc(self, eof):
assert not self._token
if self._herelexer is None:
self._herelexer = HereDocLexer(self._heredoc.op, self._heredoc.name)
if self._pos<len(self._input):
#Transfer input queue character into the subparser
input = self._input[self._pos:]
self._pos += len(input)
self._token, remaining = self._herelexer.add(input, eof)
#Reset here-document state
self._herelexer = None
heredoc, self._heredoc = self._heredoc, HereDoc(None)
if remaining:
self._input[self._pos:self._pos] = list(remaining)
self._state = self.ST_NORMAL
#Push pending tokens
heredoc.pendings[:0] = [(self._token, self._type, heredoc.name)]
for token, type, delim in heredoc.pendings:
self._token = token
self._type = type
self._push_token(delim)
def _push_token(self, delim):
if not self._token:
return 0
if self._heredoc.op is not None:
if self._heredoc.name is None:
#Here-document name
if self._type!=TK_TOKEN:
raise ShellSyntaxError("expecting here-document name, got '%s'" % self._token)
self._heredoc.name = unquote_wordtree(make_wordtree(self._token))
self._type = TK_HERENAME
else:
#Capture all tokens until the newline starting the here-document
if self._type==TK_NEWLINE:
assert self._state==self.ST_NORMAL
self._state = self.ST_HEREDOC
self._heredoc.pendings.append((self._token, self._type, delim))
self._token = ''
self._type = TK_TOKEN
return 1
# BEWARE: do not change parser state from here to the end of the function:
# when parsing between an here-document operator to the end of the line
# tokens are stored in self._heredoc.pendings. Therefore, they will not
# reach the section below.
#Check operators
if self._type==TK_OP:
#False positive because of partial op matching
op = is_op(self._token)
if not op:
self._type = TK_TOKEN
else:
#Map to the specific operator
self._type = op
if self._token in ('<<', '<<-'):
#Done here rather than in _parse_op because there is no need
#to change the parser state since we are still waiting for
#the here-document name
if self._heredoc.op is not None:
raise ShellSyntaxError("syntax error near token '%s'" % self._token)
assert self._heredoc.op is None
self._heredoc.op = self._token
if self._type==TK_TOKEN:
if '=' in self._token and not delim:
if self._token.startswith('='):
#Token is a WORD... a TOKEN that is.
pass
else:
prev = self._token[:self._token.find('=')]
if is_name(prev):
self._type = TK_ASSIGNMENT
else:
#Just a token (unspecified)
pass
else:
reserved = get_reserved(self._token)
if reserved is not None:
if reserved=='In' and self._for_count!=2:
#Sorry, not a reserved word after all
pass
else:
self._type = reserved
if reserved in ('For', 'Case'):
self._for_count = 0
elif are_digits(self._token) and delim in ('<', '>'):
#Detect IO_NUMBER
self._type = TK_IONUMBER
elif self._token==';':
self._type = TK_COMMA
elif self._token=='&':
self._type = TK_AMPERSAND
elif self._type==TK_COMMENT:
#Comments are not part of sh grammar, ignore them
self._token = ''
self._type = TK_TOKEN
return 0
if self._for_count is not None:
#Track token count in 'For' expression to detect 'In' reserved words.
#Can only be in third position, no need to go beyond
self._for_count += 1
if self._for_count==3:
self._for_count = None
self.on_token((self._token, self._type))
self._token = ''
self._type = TK_TOKEN
return 1
def on_token(self, token):
raise NotImplementedError
tokens = [
TK_TOKEN,
# To silence yacc unused token warnings
# TK_COMMENT,
TK_NEWLINE,
TK_IONUMBER,
TK_ASSIGNMENT,
TK_HERENAME,
]
#Add specific operators
tokens += _OPERATORS.values()
#Add reserved words
tokens += _RESERVEDS.values()
class PLYLexer(Lexer):
"""Bridge Lexer and PLY lexer interface."""
def __init__(self):
Lexer.__init__(self)
self._tokens = []
self._current = 0
self.lineno = 0
def on_token(self, token):
value, type = token
self.lineno = 0
t = lex.LexToken()
t.value = value
t.type = type
t.lexer = self
t.lexpos = 0
t.lineno = 0
self._tokens.append(t)
def is_empty(self):
return not bool(self._tokens)
#PLY compliant interface
def token(self):
if self._current>=len(self._tokens):
return None
t = self._tokens[self._current]
self._current += 1
return t
def get_tokens(s):
"""Parse the input string and return a tuple (tokens, unprocessed) where
tokens is a list of parsed tokens and unprocessed is the part of the input
string left untouched by the lexer.
"""
lexer = PLYLexer()
untouched = lexer.add(s, True)
tokens = []
while 1:
token = lexer.token()
if token is None:
break
tokens.append(token)
tokens = [(t.value, t.type) for t in tokens]
return tokens, untouched

View File

@@ -0,0 +1,772 @@
# pyshyacc.py - PLY grammar definition for pysh
#
# Copyright 2007 Patrick Mezard
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
"""PLY grammar file.
"""
import sys
import pyshlex
tokens = pyshlex.tokens
from ply import yacc
import sherrors
class IORedirect:
def __init__(self, op, filename, io_number=None):
self.op = op
self.filename = filename
self.io_number = io_number
class HereDocument:
def __init__(self, op, name, content, io_number=None):
self.op = op
self.name = name
self.content = content
self.io_number = io_number
def make_io_redirect(p):
"""Make an IORedirect instance from the input 'io_redirect' production."""
name, io_number, io_target = p
assert name=='io_redirect'
if io_target[0]=='io_file':
io_type, io_op, io_file = io_target
return IORedirect(io_op, io_file, io_number)
elif io_target[0]=='io_here':
io_type, io_op, io_name, io_content = io_target
return HereDocument(io_op, io_name, io_content, io_number)
else:
assert False, "Invalid IO redirection token %s" % repr(io_type)
class SimpleCommand:
"""
assigns contains (name, value) pairs.
"""
def __init__(self, words, redirs, assigns):
self.words = list(words)
self.redirs = list(redirs)
self.assigns = list(assigns)
class Pipeline:
def __init__(self, commands, reverse_status=False):
self.commands = list(commands)
assert self.commands #Grammar forbids this
self.reverse_status = reverse_status
class AndOr:
def __init__(self, op, left, right):
self.op = str(op)
self.left = left
self.right = right
class ForLoop:
def __init__(self, name, items, cmds):
self.name = str(name)
self.items = list(items)
self.cmds = list(cmds)
class WhileLoop:
def __init__(self, condition, cmds):
self.condition = list(condition)
self.cmds = list(cmds)
class UntilLoop:
def __init__(self, condition, cmds):
self.condition = list(condition)
self.cmds = list(cmds)
class FunDef:
def __init__(self, name, body):
self.name = str(name)
self.body = body
class BraceGroup:
def __init__(self, cmds):
self.cmds = list(cmds)
class IfCond:
def __init__(self, cond, if_cmds, else_cmds):
self.cond = list(cond)
self.if_cmds = if_cmds
self.else_cmds = else_cmds
class Case:
def __init__(self, name, items):
self.name = name
self.items = items
class SubShell:
def __init__(self, cmds):
self.cmds = cmds
class RedirectList:
def __init__(self, cmd, redirs):
self.cmd = cmd
self.redirs = list(redirs)
def get_production(productions, ptype):
"""productions must be a list of production tuples like (name, obj) where
name is the production string identifier.
Return the first production named 'ptype'. Raise KeyError if None can be
found.
"""
for production in productions:
if production is not None and production[0]==ptype:
return production
raise KeyError(ptype)
#-------------------------------------------------------------------------------
# PLY grammar definition
#-------------------------------------------------------------------------------
def p_multiple_commands(p):
"""multiple_commands : newline_sequence
| complete_command
| multiple_commands complete_command"""
if len(p)==2:
if p[1] is not None:
p[0] = [p[1]]
else:
p[0] = []
else:
p[0] = p[1] + [p[2]]
def p_complete_command(p):
"""complete_command : list separator
| list"""
if len(p)==3 and p[2] and p[2][1] == '&':
p[0] = ('async', p[1])
else:
p[0] = p[1]
def p_list(p):
"""list : list separator_op and_or
| and_or"""
if len(p)==2:
p[0] = [p[1]]
else:
#if p[2]!=';':
# raise NotImplementedError('AND-OR list asynchronous execution is not implemented')
p[0] = p[1] + [p[3]]
def p_and_or(p):
"""and_or : pipeline
| and_or AND_IF linebreak pipeline
| and_or OR_IF linebreak pipeline"""
if len(p)==2:
p[0] = p[1]
else:
p[0] = ('and_or', AndOr(p[2], p[1], p[4]))
def p_maybe_bang_word(p):
"""maybe_bang_word : Bang"""
p[0] = ('maybe_bang_word', p[1])
def p_pipeline(p):
"""pipeline : pipe_sequence
| bang_word pipe_sequence"""
if len(p)==3:
p[0] = ('pipeline', Pipeline(p[2][1:], True))
else:
p[0] = ('pipeline', Pipeline(p[1][1:]))
def p_pipe_sequence(p):
"""pipe_sequence : command
| pipe_sequence PIPE linebreak command"""
if len(p)==2:
p[0] = ['pipe_sequence', p[1]]
else:
p[0] = p[1] + [p[4]]
def p_command(p):
"""command : simple_command
| compound_command
| compound_command redirect_list
| function_definition"""
if p[1][0] in ( 'simple_command',
'for_clause',
'while_clause',
'until_clause',
'case_clause',
'if_clause',
'function_definition',
'subshell',
'brace_group',):
if len(p) == 2:
p[0] = p[1]
else:
p[0] = ('redirect_list', RedirectList(p[1], p[2][1:]))
else:
raise NotImplementedError('%s command is not implemented' % repr(p[1][0]))
def p_compound_command(p):
"""compound_command : brace_group
| subshell
| for_clause
| case_clause
| if_clause
| while_clause
| until_clause"""
p[0] = p[1]
def p_subshell(p):
"""subshell : LPARENS compound_list RPARENS"""
p[0] = ('subshell', SubShell(p[2][1:]))
def p_compound_list(p):
"""compound_list : term
| newline_list term
| term separator
| newline_list term separator"""
productions = p[1:]
try:
sep = get_production(productions, 'separator')
if sep[1]!=';':
raise NotImplementedError()
except KeyError:
pass
term = get_production(productions, 'term')
p[0] = ['compound_list'] + term[1:]
def p_term(p):
"""term : term separator and_or
| and_or"""
if len(p)==2:
p[0] = ['term', p[1]]
else:
if p[2] is not None and p[2][1] == '&':
p[0] = ['term', ('async', p[1][1:])] + [p[3]]
else:
p[0] = p[1] + [p[3]]
def p_maybe_for_word(p):
# Rearrange 'For' priority wrt TOKEN. See p_for_word
"""maybe_for_word : For"""
p[0] = ('maybe_for_word', p[1])
def p_for_clause(p):
"""for_clause : for_word name linebreak do_group
| for_word name linebreak in sequential_sep do_group
| for_word name linebreak in wordlist sequential_sep do_group"""
productions = p[1:]
do_group = get_production(productions, 'do_group')
try:
items = get_production(productions, 'in')[1:]
except KeyError:
raise NotImplementedError('"in" omission is not implemented')
try:
items = get_production(productions, 'wordlist')[1:]
except KeyError:
items = []
name = p[2]
p[0] = ('for_clause', ForLoop(name, items, do_group[1:]))
def p_name(p):
"""name : token""" #Was NAME instead of token
p[0] = p[1]
def p_in(p):
"""in : In"""
p[0] = ('in', p[1])
def p_wordlist(p):
"""wordlist : wordlist token
| token"""
if len(p)==2:
p[0] = ['wordlist', ('TOKEN', p[1])]
else:
p[0] = p[1] + [('TOKEN', p[2])]
def p_case_clause(p):
"""case_clause : Case token linebreak in linebreak case_list Esac
| Case token linebreak in linebreak case_list_ns Esac
| Case token linebreak in linebreak Esac"""
if len(p) < 8:
items = []
else:
items = p[6][1:]
name = p[2]
p[0] = ('case_clause', Case(name, [c[1] for c in items]))
def p_case_list_ns(p):
"""case_list_ns : case_list case_item_ns
| case_item_ns"""
p_case_list(p)
def p_case_list(p):
"""case_list : case_list case_item
| case_item"""
if len(p)==2:
p[0] = ['case_list', p[1]]
else:
p[0] = p[1] + [p[2]]
def p_case_item_ns(p):
"""case_item_ns : pattern RPARENS linebreak
| pattern RPARENS compound_list linebreak
| LPARENS pattern RPARENS linebreak
| LPARENS pattern RPARENS compound_list linebreak"""
p_case_item(p)
def p_case_item(p):
"""case_item : pattern RPARENS linebreak DSEMI linebreak
| pattern RPARENS compound_list DSEMI linebreak
| LPARENS pattern RPARENS linebreak DSEMI linebreak
| LPARENS pattern RPARENS compound_list DSEMI linebreak"""
if len(p) < 7:
name = p[1][1:]
else:
name = p[2][1:]
try:
cmds = get_production(p[1:], "compound_list")[1:]
except KeyError:
cmds = []
p[0] = ('case_item', (name, cmds))
def p_pattern(p):
"""pattern : token
| pattern PIPE token"""
if len(p)==2:
p[0] = ['pattern', ('TOKEN', p[1])]
else:
p[0] = p[1] + [('TOKEN', p[2])]
def p_maybe_if_word(p):
# Rearrange 'If' priority wrt TOKEN. See p_if_word
"""maybe_if_word : If"""
p[0] = ('maybe_if_word', p[1])
def p_maybe_then_word(p):
# Rearrange 'Then' priority wrt TOKEN. See p_then_word
"""maybe_then_word : Then"""
p[0] = ('maybe_then_word', p[1])
def p_if_clause(p):
"""if_clause : if_word compound_list then_word compound_list else_part Fi
| if_word compound_list then_word compound_list Fi"""
else_part = []
if len(p)==7:
else_part = p[5]
p[0] = ('if_clause', IfCond(p[2][1:], p[4][1:], else_part))
def p_else_part(p):
"""else_part : Elif compound_list then_word compound_list else_part
| Elif compound_list then_word compound_list
| Else compound_list"""
if len(p)==3:
p[0] = p[2][1:]
else:
else_part = []
if len(p)==6:
else_part = p[5]
p[0] = ('elif', IfCond(p[2][1:], p[4][1:], else_part))
def p_while_clause(p):
"""while_clause : While compound_list do_group"""
p[0] = ('while_clause', WhileLoop(p[2][1:], p[3][1:]))
def p_maybe_until_word(p):
# Rearrange 'Until' priority wrt TOKEN. See p_until_word
"""maybe_until_word : Until"""
p[0] = ('maybe_until_word', p[1])
def p_until_clause(p):
"""until_clause : until_word compound_list do_group"""
p[0] = ('until_clause', UntilLoop(p[2][1:], p[3][1:]))
def p_function_definition(p):
"""function_definition : fname LPARENS RPARENS linebreak function_body"""
p[0] = ('function_definition', FunDef(p[1], p[5]))
def p_function_body(p):
"""function_body : compound_command
| compound_command redirect_list"""
if len(p)!=2:
raise NotImplementedError('functions redirections lists are not implemented')
p[0] = p[1]
def p_fname(p):
"""fname : TOKEN""" #Was NAME instead of token
p[0] = p[1]
def p_brace_group(p):
"""brace_group : Lbrace compound_list Rbrace"""
p[0] = ('brace_group', BraceGroup(p[2][1:]))
def p_maybe_done_word(p):
#See p_assignment_word for details.
"""maybe_done_word : Done"""
p[0] = ('maybe_done_word', p[1])
def p_maybe_do_word(p):
"""maybe_do_word : Do"""
p[0] = ('maybe_do_word', p[1])
def p_do_group(p):
"""do_group : do_word compound_list done_word"""
#Do group contains a list of AndOr
p[0] = ['do_group'] + p[2][1:]
def p_simple_command(p):
"""simple_command : cmd_prefix cmd_word cmd_suffix
| cmd_prefix cmd_word
| cmd_prefix
| cmd_name cmd_suffix
| cmd_name"""
words, redirs, assigns = [], [], []
for e in p[1:]:
name = e[0]
if name in ('cmd_prefix', 'cmd_suffix'):
for sube in e[1:]:
subname = sube[0]
if subname=='io_redirect':
redirs.append(make_io_redirect(sube))
elif subname=='ASSIGNMENT_WORD':
assigns.append(sube)
else:
words.append(sube)
elif name in ('cmd_word', 'cmd_name'):
words.append(e)
cmd = SimpleCommand(words, redirs, assigns)
p[0] = ('simple_command', cmd)
def p_cmd_name(p):
"""cmd_name : TOKEN"""
p[0] = ('cmd_name', p[1])
def p_cmd_word(p):
"""cmd_word : token"""
p[0] = ('cmd_word', p[1])
def p_maybe_assignment_word(p):
#See p_assignment_word for details.
"""maybe_assignment_word : ASSIGNMENT_WORD"""
p[0] = ('maybe_assignment_word', p[1])
def p_cmd_prefix(p):
"""cmd_prefix : io_redirect
| cmd_prefix io_redirect
| assignment_word
| cmd_prefix assignment_word"""
try:
prefix = get_production(p[1:], 'cmd_prefix')
except KeyError:
prefix = ['cmd_prefix']
try:
value = get_production(p[1:], 'assignment_word')[1]
value = ('ASSIGNMENT_WORD', value.split('=', 1))
except KeyError:
value = get_production(p[1:], 'io_redirect')
p[0] = prefix + [value]
def p_cmd_suffix(p):
"""cmd_suffix : io_redirect
| cmd_suffix io_redirect
| token
| cmd_suffix token
| maybe_for_word
| cmd_suffix maybe_for_word
| maybe_done_word
| cmd_suffix maybe_done_word
| maybe_do_word
| cmd_suffix maybe_do_word
| maybe_until_word
| cmd_suffix maybe_until_word
| maybe_assignment_word
| cmd_suffix maybe_assignment_word
| maybe_if_word
| cmd_suffix maybe_if_word
| maybe_then_word
| cmd_suffix maybe_then_word
| maybe_bang_word
| cmd_suffix maybe_bang_word"""
try:
suffix = get_production(p[1:], 'cmd_suffix')
token = p[2]
except KeyError:
suffix = ['cmd_suffix']
token = p[1]
if isinstance(token, tuple):
if token[0]=='io_redirect':
p[0] = suffix + [token]
else:
#Convert maybe_* to TOKEN if necessary
p[0] = suffix + [('TOKEN', token[1])]
else:
p[0] = suffix + [('TOKEN', token)]
def p_redirect_list(p):
"""redirect_list : io_redirect
| redirect_list io_redirect"""
if len(p) == 2:
p[0] = ['redirect_list', make_io_redirect(p[1])]
else:
p[0] = p[1] + [make_io_redirect(p[2])]
def p_io_redirect(p):
"""io_redirect : io_file
| IO_NUMBER io_file
| io_here
| IO_NUMBER io_here"""
if len(p)==3:
p[0] = ('io_redirect', p[1], p[2])
else:
p[0] = ('io_redirect', None, p[1])
def p_io_file(p):
#Return the tuple (operator, filename)
"""io_file : LESS filename
| LESSAND filename
| GREATER filename
| GREATAND filename
| DGREAT filename
| LESSGREAT filename
| CLOBBER filename"""
#Extract the filename from the file
p[0] = ('io_file', p[1], p[2][1])
def p_filename(p):
#Return the filename
"""filename : TOKEN"""
p[0] = ('filename', p[1])
def p_io_here(p):
"""io_here : DLESS here_end
| DLESSDASH here_end"""
p[0] = ('io_here', p[1], p[2][1], p[2][2])
def p_here_end(p):
"""here_end : HERENAME TOKEN"""
p[0] = ('here_document', p[1], p[2])
def p_newline_sequence(p):
# Nothing in the grammar can handle leading NEWLINE productions, so add
# this one with the lowest possible priority relatively to newline_list.
"""newline_sequence : newline_list"""
p[0] = None
def p_newline_list(p):
"""newline_list : NEWLINE
| newline_list NEWLINE"""
p[0] = None
def p_linebreak(p):
"""linebreak : newline_list
| empty"""
p[0] = None
def p_separator_op(p):
"""separator_op : COMMA
| AMP"""
p[0] = p[1]
def p_separator(p):
"""separator : separator_op linebreak
| newline_list"""
if len(p)==2:
#Ignore newlines
p[0] = None
else:
#Keep the separator operator
p[0] = ('separator', p[1])
def p_sequential_sep(p):
"""sequential_sep : COMMA linebreak
| newline_list"""
p[0] = None
# Low priority TOKEN => for_word conversion.
# Let maybe_for_word be used as a token when necessary in higher priority
# rules.
def p_for_word(p):
"""for_word : maybe_for_word"""
p[0] = p[1]
def p_if_word(p):
"""if_word : maybe_if_word"""
p[0] = p[1]
def p_then_word(p):
"""then_word : maybe_then_word"""
p[0] = p[1]
def p_done_word(p):
"""done_word : maybe_done_word"""
p[0] = p[1]
def p_do_word(p):
"""do_word : maybe_do_word"""
p[0] = p[1]
def p_until_word(p):
"""until_word : maybe_until_word"""
p[0] = p[1]
def p_assignment_word(p):
"""assignment_word : maybe_assignment_word"""
p[0] = ('assignment_word', p[1][1])
def p_bang_word(p):
"""bang_word : maybe_bang_word"""
p[0] = ('bang_word', p[1][1])
def p_token(p):
"""token : TOKEN
| Fi"""
p[0] = p[1]
def p_empty(p):
'empty :'
p[0] = None
# Error rule for syntax errors
def p_error(p):
msg = []
w = msg.append
w('%r\n' % p)
w('followed by:\n')
for i in range(5):
n = yacc.token()
if not n:
break
w(' %r\n' % n)
raise sherrors.ShellSyntaxError(''.join(msg))
# Build the parser
try:
import pyshtables
except ImportError:
yacc.yacc(tabmodule = 'pyshtables')
else:
yacc.yacc(tabmodule = 'pysh.pyshtables', write_tables = 0, debug = 0)
def parse(input, eof=False, debug=False):
"""Parse a whole script at once and return the generated AST and unconsumed
data in a tuple.
NOTE: eof is probably meaningless for now, the parser being unable to work
in pull mode. It should be set to True.
"""
lexer = pyshlex.PLYLexer()
remaining = lexer.add(input, eof)
if lexer.is_empty():
return [], remaining
if debug:
debug = 2
return yacc.parse(lexer=lexer, debug=debug), remaining
#-------------------------------------------------------------------------------
# AST rendering helpers
#-------------------------------------------------------------------------------
def format_commands(v):
"""Return a tree made of strings and lists. Make command trees easier to
display.
"""
if isinstance(v, list):
return [format_commands(c) for c in v]
if isinstance(v, tuple):
if len(v)==2 and isinstance(v[0], str) and not isinstance(v[1], str):
if v[0] == 'async':
return ['AsyncList', map(format_commands, v[1])]
else:
#Avoid decomposing tuples like ('pipeline', Pipeline(...))
return format_commands(v[1])
return format_commands(list(v))
elif isinstance(v, IfCond):
name = ['IfCond']
name += ['if', map(format_commands, v.cond)]
name += ['then', map(format_commands, v.if_cmds)]
name += ['else', map(format_commands, v.else_cmds)]
return name
elif isinstance(v, ForLoop):
name = ['ForLoop']
name += [repr(v.name)+' in ', map(str, v.items)]
name += ['commands', map(format_commands, v.cmds)]
return name
elif isinstance(v, AndOr):
return [v.op, format_commands(v.left), format_commands(v.right)]
elif isinstance(v, Pipeline):
name = 'Pipeline'
if v.reverse_status:
name = '!' + name
return [name, format_commands(v.commands)]
elif isinstance(v, SimpleCommand):
name = ['SimpleCommand']
if v.words:
name += ['words', map(str, v.words)]
if v.assigns:
assigns = [tuple(a[1]) for a in v.assigns]
name += ['assigns', map(str, assigns)]
if v.redirs:
name += ['redirs', map(format_commands, v.redirs)]
return name
elif isinstance(v, RedirectList):
name = ['RedirectList']
if v.redirs:
name += ['redirs', map(format_commands, v.redirs)]
name += ['command', format_commands(v.cmd)]
return name
elif isinstance(v, IORedirect):
return ' '.join(map(str, (v.io_number, v.op, v.filename)))
elif isinstance(v, HereDocument):
return ' '.join(map(str, (v.io_number, v.op, repr(v.name), repr(v.content))))
elif isinstance(v, SubShell):
return ['SubShell', map(format_commands, v.cmds)]
else:
return repr(v)
def print_commands(cmds, output=sys.stdout):
"""Pretty print a command tree."""
def print_tree(cmd, spaces, output):
if isinstance(cmd, list):
for c in cmd:
print_tree(c, spaces + 3, output)
else:
print >>output, ' '*spaces + str(cmd)
formatted = format_commands(cmds)
print_tree(formatted, 0, output)
def stringify_commands(cmds):
"""Serialize a command tree as a string.
Returned string is not pretty and is currently used for unit tests only.
"""
def stringify(value):
output = []
if isinstance(value, list):
formatted = []
for v in value:
formatted.append(stringify(v))
formatted = ' '.join(formatted)
output.append(''.join(['<', formatted, '>']))
else:
output.append(value)
return ' '.join(output)
return stringify(format_commands(cmds))
def visit_commands(cmds, callable):
"""Visit the command tree and execute callable on every Pipeline and
SimpleCommand instances.
"""
if isinstance(cmds, (tuple, list)):
map(lambda c: visit_commands(c,callable), cmds)
elif isinstance(cmds, (Pipeline, SimpleCommand)):
callable(cmds)

View File

@@ -0,0 +1,41 @@
# sherrors.py - shell errors and signals
#
# Copyright 2007 Patrick Mezard
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
"""Define shell exceptions and error codes.
"""
class ShellError(Exception):
pass
class ShellSyntaxError(ShellError):
pass
class UtilityError(ShellError):
"""Raised upon utility syntax error (option or operand error)."""
pass
class ExpansionError(ShellError):
pass
class CommandNotFound(ShellError):
"""Specified command was not found."""
pass
class RedirectionError(ShellError):
pass
class VarAssignmentError(ShellError):
"""Variable assignment error."""
pass
class ExitSignal(ShellError):
"""Exit signal."""
pass
class ReturnSignal(ShellError):
"""Exit signal."""
pass

View File

@@ -0,0 +1,77 @@
# subprocess - Subprocesses with accessible I/O streams
#
# For more information about this module, see PEP 324.
#
# This module should remain compatible with Python 2.2, see PEP 291.
#
# Copyright (c) 2003-2005 by Peter Astrand <astrand@lysator.liu.se>
#
# Licensed to PSF under a Contributor Agreement.
# See http://www.python.org/2.4/license for licensing details.
def list2cmdline(seq):
"""
Translate a sequence of arguments into a command line
string, using the same rules as the MS C runtime:
1) Arguments are delimited by white space, which is either a
space or a tab.
2) A string surrounded by double quotation marks is
interpreted as a single argument, regardless of white space
contained within. A quoted string can be embedded in an
argument.
3) A double quotation mark preceded by a backslash is
interpreted as a literal double quotation mark.
4) Backslashes are interpreted literally, unless they
immediately precede a double quotation mark.
5) If backslashes immediately precede a double quotation mark,
every pair of backslashes is interpreted as a literal
backslash. If the number of backslashes is odd, the last
backslash escapes the next double quotation mark as
described in rule 3.
"""
# See
# http://msdn.microsoft.com/library/en-us/vccelng/htm/progs_12.asp
result = []
needquote = False
for arg in seq:
bs_buf = []
# Add a space to separate this argument from the others
if result:
result.append(' ')
needquote = (" " in arg) or ("\t" in arg) or ("|" in arg) or arg == ""
if needquote:
result.append('"')
for c in arg:
if c == '\\':
# Don't know if we need to double yet.
bs_buf.append(c)
elif c == '"':
# Double backspaces.
result.append('\\' * len(bs_buf)*2)
bs_buf = []
result.append('\\"')
else:
# Normal char
if bs_buf:
result.extend(bs_buf)
bs_buf = []
result.append(c)
# Add remaining backspaces, if any.
if bs_buf:
result.extend(bs_buf)
if needquote:
result.extend(bs_buf)
result.append('"')
return ''.join(result)

View File

@@ -1,9 +0,0 @@
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "1"
BBFILES ?= ""
BBLAYERS = " \
${OEROOT}/meta \
${OEROOT}/meta-moblin \
"

View File

@@ -0,0 +1,38 @@
all: html pdf tarball
pdf:
../tools/poky-docbook-to-pdf poky-ref-manual.xml ../template
../tools/poky-docbook-to-pdf bsp-guide.xml ../template
XSLTOPTS = --stringparam html.stylesheet style.css \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current
XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
html:
# See http://www.sagehill.net/docbookxsl/HtmlOutput.html
xsltproc $(XSLTOPTS) -o poky-ref-manual.html $(XSL_XHTML_URI) poky-ref-manual.xml
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
tarball: html
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css figures/yocto-project-transp.png figures/poky-ref-manual.png
validate:
xmllint --postvalid --xinclude --noout poky-ref-manual.xml
OUTPUTS = poky-ref-manual.tgz poky-ref-manual.html poky-ref-manual.pdf bsp-guide.pdf bsp-guide.html
SOURCES = *.png *.xml *.css *.svg
publish:
scp -r $(OUTPUTS) $(SOURCES) o-hand.com:/srv/www/pokylinux.org/doc/
clean:
rm -f $(OUTPUTS)

View File

@@ -9,7 +9,7 @@
<mediaobject>
<imageobject>
<imagedata fileref='common/poky-handbook.png'
<imagedata fileref='poky-ref-manual.png'
format='SVG'
align='center' scalefit='1' width='100%'/>
</imageobject>
@@ -37,7 +37,7 @@
<copyright>
<year>2010</year>
<holder>Intel Corporation</holder>
<holder>Linux Foundation</holder>
</copyright>
<legalnotice>

View File

@@ -0,0 +1,451 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id='bsp'>
<title>Board Support Packages (BSP) - Developers Guide</title>
<para>
A Board Support Package (BSP) is a collection of information which together
defines how to support a particular hardware device, set of devices, or
hardware platform. It will include information about the hardware features
present on the device and kernel configuration information along with any
additional hardware drivers required. It will also list any additional software
components required in addition to a generic Linux software stack for both
essential and optional platform features.
</para>
<para>
The intent of this document is to define a structure for these components
so that BSPs follow a commonly understood layout, allowing them to be
provided in a common form that everyone understands. It also allows end-users
to become familiar with one common format and encourages standardisation
of software support of hardware.
</para>
<para>
The proposed format does have elements that are specific to the Poky and
OpenEmbedded build systems. It is intended that this information can be
used by other systems besides Poky/OpenEmbedded and that it will be simple
to extract information and convert to other formats if required. The format
described can be directly accepted as a layer by Poky using its standard
layers mechanism, but it is important to recognise that the BSP captures all
the hardware specific details in one place in a standard format, which is
useful for any person wishing to use the hardware platform regardless of
the build system in use.
</para>
<para>
The BSP specification does not include a build system or other tools -
it is concerned with the hardware specific components only. At the end
distribution point the BSP may be shipped combined with a build system
and other tools, but it is important to maintain the distinction that these
are separate components which may just be combined in certain end products.
</para>
<section id='bsp-filelayout'>
<title>Example Filesystem Layout</title>
<para>
The BSP consists of a file structure inside a base directory, meta-bsp in this example, where "bsp" is a placeholder for the machine or platform name. Examples of some files that it could contain are:
</para>
<para>
<programlisting>
meta-bsp/
meta-bsp/binary/zImage
meta-bsp/binary/poky-image-minimal.directdisk
meta-bsp/conf/layer.conf
meta-bsp/conf/machine/*.conf
meta-bsp/conf/machine/include/tune-*.inc
meta-bsp/packages/bootloader/bootloader_0.1.bb
meta-bsp/packages/linux/linux-bsp-2.6.50/*.patch
meta-bsp/packages/linux/linux-bsp-2.6.50/defconfig-bsp
meta-bsp/packages/linux/linux-bsp_2.6.50.bb
meta-bsp/packages/modem/modem-driver_0.1.bb
meta-bsp/packages/modem/modem-daemon_0.1.bb
meta-bsp/packages/image-creator/image-creator-native_0.1.bb
meta-bsp/prebuilds/
</programlisting>
</para>
<para>
The following sections detail what these files and directories could contain.
</para>
</section>
<section id='bsp-filelayout-binary'>
<title>Prebuilt User Binaries (meta-bsp/binary/*)</title>
<para>
This optional area contains useful prebuilt kernels and userspace filesystem
images appropriate to the target system. Users could use these to get a system
running and quickly get started on development tasks. The exact types of binaries
present will be highly hardware-dependent but a README file should be present
explaining how to use them with the target hardware. If prebuilt binaries are
present, source code to meet licensing requirements must also be provided in
some form.
</para>
</section>
<section id='bsp-filelayout-layer'>
<title>Layer Configuration (meta-bsp/conf/layer.conf)</title>
<para>
This file identifies the structure as a Poky layer. This file identifies the
contents of the layer and contains information about how Poky should use
it. In general it will most likely be a standard boilerplate file consisting of:
</para>
<para>
<programlisting>
# We have a conf directory, add to BBPATH
BBPATH := "${BBPATH}${LAYERDIR}"
# We have a recipes directory containing .bb and .bbappend files, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb ${LAYERDIR}/recipes/*/*.bbappend"
BBFILE_COLLECTIONS += "bsp"
BBFILE_PATTERN_bsp := "^${LAYERDIR}/"
BBFILE_PRIORITY_bsp = "5"
</programlisting>
</para>
<para>
which simply makes bitbake aware of the recipes and conf directories.
</para>
<para>
This file is required for recognition of the BSP by Poky.
</para>
</section>
<section id='bsp-filelayout-machine'>
<title>Hardware Configuration Options (meta-bsp/conf/machine/*.conf)</title>
<para>
The machine files bind together all the information contained elsewhere
in the BSP into a format that Poky/OpenEmbedded can understand. If
the BSP supports multiple machines, multiple machine configuration files
can be present. These filenames correspond to the values users set the
MACHINE variable to.
</para>
<para>
These files would define things like which kernel package to use
(PREFERRED_PROVIDER of virtual/kernel), which hardware drivers to
include in different types of images, any special software components
that are needed, any bootloader information, and also any special image
format requirements.
</para>
<para>
At least one machine file is required for a Poky BSP layer but more than one may be present.
</para>
</section>
<section id='bsp-filelayout-tune'>
<title>Hardware Optimisation Options (meta-bsp/conf/machine/include/tune-*.inc)</title>
<para>
These are shared hardware "tuning" definitions and are commonly used to
pass specific optimisation flags to the compiler. An example is
tune-atom.inc:
</para>
<para>
<programlisting>
BASE_PACKAGE_ARCH = "core2"
TARGET_CC_ARCH = "-m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse"
</programlisting>
</para>
<para>
which defines a new package architecture called "core2" and uses the
optimization flags specified, which are carefully chosen to give best
performance on atom cpus.
</para>
<para>
The tune file would be included by the machine definition and can be
contained in the BSP or reference one from the standard core set of
files included with Poky itself.
</para>
<para>
These files are optional for a Poky BSP layer.
</para>
</section>
<section id='bsp-filelayout-kernel'>
<title>Linux Kernel Configuration (meta-bsp/packages/linux/*)</title>
<para>
These files make up the definition of a kernel to use with this
hardware. In this case it is a complete self-contained kernel with its own
configuration and patches but kernels can be shared between many
machines as well. Taking some specific example files:
</para>
<para>
<programlisting>
meta-bsp/packages/linux/linux-bsp_2.6.50.bb
</programlisting>
</para>
<para>
which is the core kernel recipe which firstly details where to get the kernel
source from. All standard source code locations are supported so this could
be a release tarball, some git repository, or source included in
the directory within the BSP itself. It then contains information about which
patches to apply and how to configure and build it. It can reuse the main
Poky kernel build class, so the definitions here can remain very simple.
</para>
<para>
<programlisting>
linux-bsp-2.6.50/*.patch
</programlisting>
</para>
<para>
which are patches which may be applied against the base kernel, wherever
they may have been obtained from.
</para>
<para>
<programlisting>
meta-bsp/packages/linux/linux-bsp-2.6.50/defconfig-bsp
</programlisting>
</para>
<para>
which is the configuration information to use to configure the kernel.
</para>
<para>
Examples of kernel recipes are available in Poky itself. These files are
optional since a kernel from Poky itself could be selected, although it
would be unusual not to have a kernel configuration.
</para>
</section>
<section id='bsp-filelayout-packages'>
<title>Other Software (meta-bsp/packages/*)</title>
<para>
This area includes other pieces of software which the hardware may need for best
operation. These are just examples of the kind of things that may be
encountered. These are standard .bb file recipes in the usual Poky format,
so for examples, see standard Poky recipes. The source can be included directly,
referred to in source control systems or release tarballs of external software projects.
</para>
<para>
<programlisting>
meta-bsp/packages/bootloader/bootloader_0.1.bb
</programlisting>
</para>
<para>
Some kind of bootloader recipe which may be used to generate a new
bootloader binary. Sometimes these are included in the final image
format and needed to reflash hardware.
</para>
<para>
<programlisting>
meta-bsp/packages/modem/modem-driver_0.1.bb
meta-bsp/packages/modem/modem-daemon_0.1.bb
</programlisting>
</para>
<para>
These are examples of a hardware driver and also a hardware daemon which
may need to be included in images to make the hardware useful. "modem"
is one example but there may be other components needed like firmware.
</para>
<para>
<programlisting>
meta-bsp/packages/image-creator/image-creator-native_0.1.bb
</programlisting>
</para>
<para>
Sometimes the device will need an image in a very specific format for
its update mechanism to accept and reflash with it. Recipes to build the
tools needed to do this can be included with the BSP.
</para>
<para>
These files only need be provided if the platform requires them.
</para>
</section>
<section id='bs-filelayout-bbappend'>
<title>Append BSP specific information to existing recipes</title>
<para>
Say you have a recipe like pointercal which has machine-specific information in it,
and then you have your new BSP code in a layer. Before the .bbappend extension was
introduced, you'd have to copy the whole pointercal recipe and files into your layer,
and then add the single file for your machine, which is ugly.
.bbappend makes the above work much easier, to allow BSP-specific information to be merged
with the original recipe easily. When bitbake finds any X.bbappend files, they will be
included after bitbake loads X.bb but before finalise or anonymous methods run.
This allows the BSP layer to poke around and do whatever it might want to customise
the original recipe.
If your recipe needs to reference extra files it can use the FILESEXTRAPATH variable
to specify their location. The example below shows extra files contained in a folder
called ${PN} (the package name).
</para>
<programlisting>
FILESEXTRAPATHS := "${THISDIR}/${PN}"
</programlisting>
<para>
Then the BSP could add machine-specific config files in layer directory, which will be
added by bitbake. You can look at meta-emenlow/packages/formfactor as an example.
</para>
</section>
<section id='bsp-filelayout-prebuilds'>
<title>Prebuild Data (meta-bsp/prebuilds/*)</title>
<para>
The location can contain a precompiled representation of the source code
contained elsewhere in the BSP layer. It can be processed and used by
Poky to provide much faster build times, assuming a compatible configuration is used.
</para>
<para>
These files are optional.
</para>
</section>
<section id='bsp-click-through-licensing'>
<title>BSP 'Click-through' Licensing Procedure</title>
<note><para> This section is here as a description of how
click-through licensing is expected to work, and is
not yet not impemented.
</para></note>
<para>
In some cases, a BSP may contain separately licensed IP
(Intellectual Property) for a component, which imposes
upon the user a requirement to accept the terms of a
'click-through' license. Once the license is accepted
(in whatever form that may be, see details below) the
Poky build system can then build and include the
corresponding component in the final BSP image. Some
affected components may be essential to the normal
functioning of the system and have no 'free' replacement
i.e. the resulting system would be non-functional
without them. Other components may be simply
'good-to-have' or purely elective, or if essential
nonetheless have a 'free' (possibly less-capable)
version which may substituted for in the BSP recipe.
</para>
<para>
For the latter cases, where it is possible to do so from
a functionality perspective, the Poky website will make
available a 'de-featured' BSP completely free of
encumbered IP, which can be used directly and without
any further licensing requirements. If present, this
fully 'de-featured' BSP will be named meta-bsp (i.e. the
normal default naming convention). This is the simplest
and therefore preferred option if available, assuming
the resulting functionality meets requirements.
</para>
<para>
If however, a non-encumbered version is unavailable or
the 'free' version would provide unsuitable
functionality or quality, an encumbered version can be
used. Encumbered versions of a BSP are given names of
the form meta-bsp-nonfree. There are several ways
within the Poky build system to satisfy the licensing
requirements for an encumbered BSP, in roughly the
following order of preference:
</para>
<itemizedlist>
<listitem>
<para>
Get a license key (or keys) for the encumbered BSP
by
visiting <ulink url='https://pokylinux.org/bsp-keys.html'>https://pokylinux.org/bsp-keys.html</ulink>
and give the web form there the name of the BSP
and your e-mail address.
</para>
<programlisting>
[screenshot of dialog box]
</programlisting>
<para>
After agreeing to any applicable license terms, the
BSP key(s) will be immediately sent to the address
given and can be used by specifying BSPKEY_&lt;keydomain&gt;
environment variables when building the image:
</para>
<programlisting>
$ BSPKEY_&lt;keydomain&gt;=&lt;key&gt; bitbake poky-image-sato
</programlisting>
<para>
This will allow the encumbered image to be built
with no change at all to the normal build process.
</para>
<para>
Equivalently and probably more conveniently, a line
for each key can instead be put into the user's
local.conf file.
</para>
<para>
The &lt;keydomain&gt; component of the
BSPKEY_&lt;keydomain&gt; is required because there
may be multiple licenses in effect for a give BSP; a
given &lt;keydomain&gt; in such cases corresponds to
a particular license. In order for an encumbered
BSP encompassing multiple key domains to be built
successfully, a &lt;keydomain&gt; entry for each
applicable license must be present in local.conf or
supplied on the command-line.
</para>
</listitem>
<listitem>
<para>
Do nothing - build as you normally would, and follow
any license prompts that originate from the
encumbered BSP (the build will cleanly stop at this
point). These usually take the form of instructions
needed to manually fetch the encumbered package(s)
and md5 sums into e.g. the poky/build/downloads
directory. Once the manual package fetch has been
completed, restarting the build will continue where
it left off, this time without the prompt since the
license requirements will have been satisfied.
</para>
</listitem>
<listitem>
<para>
Get a full-featured BSP recipe rather than a key, by
visiting
<ulink url='https://pokylinux.org/bsps.html'>https://pokylinux.org/bsps.html</ulink>.
Accepting the license agreement(s) presented will
subsequently allow you to download a tarball
containing a full-featured BSP legally cleared for
your use by the just-given license agreement(s).
This method will also allow the encumbered image to
be built with no change at all to the normal build
process.
</para>
</listitem>
</itemizedlist>
<para>
Note that method 3 is also the only option available
when downloading pre-compiled images generated from
non-free BSPs. Those images are likewise available at
<ulink url='https://pokylinux.org/bsps.html'>https://pokylinux.org/bsps.html</ulink>.
</para>
</section>
</chapter>

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@
<para>
Before writing a recipe from scratch it is often useful to check
someone else hasn't written one already. OpenEmbedded is a good place
whether someone else has written one already. OpenEmbedded is a good place
to look as it has a wider scope and hence a wider range of packages.
Poky aims to be compatible with OpenEmbedded so most recipes should
just work in Poky.
@@ -43,8 +43,8 @@
<title>Single .c File Package (Hello World!)</title>
<para>
To build an application from a single file stored locally requires a
recipe which has the file listed in the <glossterm><link
To build an application from a single file stored locally (e.g. under "files/")
requires a recipe which has the file listed in the <glossterm><link
linkend='var-SRC_URI'>SRC_URI</link></glossterm> variable. In addition
the <function>do_compile</function> and <function>do_install</function>
tasks need to be manually written. The <glossterm><link linkend='var-S'>
@@ -56,7 +56,7 @@
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=ae764cfda68da96df20af9fbf9fe49bd"
PR = "r0"
SRC_URI = "file://helloworld.c"
@@ -73,8 +73,9 @@ do_install() {
</programlisting>
<para>
As a result of the build process "helloworld" and "helloworld-dbg"
packages will be built.
As a result of the build process "helloworld", "helloworld-dbg" and "hellworld-dev"
packages will be built by default. It is possible to<link linkend='usingpoky-extend-addpkg-files'>
customise the packaging process</link>.
</para>
</section>
@@ -93,20 +94,28 @@ do_install() {
The result of the build will be automatically packaged and if
the application uses NLS to localise then packages with
locale information will be generated (one package per
language).
language). Below is one example (hello_2.2.bb)
</para>
<programlisting>
DESCRIPTION = "GNU Helloworld application"
SECTION = "examples"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=ae764cfda68da96df20af9fbf9fe49bd"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
PR = "r0"
SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.bz2"
SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.gz"
inherit autotools
inherit autotools gettext
</programlisting>
<para>
<glossterm><link linkend='var-LIC_FILES_CHKSUM'>LIC_FILES_CHKSUM</link>
</glossterm> is used to <link linkend='usingpoky-configuring-LIC_FILES_CHKSUM'>
track source license change</link>. Autotool based recipe can be quickly
created this way like above example.
</para>
</section>
<section id='usingpoky-extend-addpkg-makefile'>
@@ -132,23 +141,38 @@ inherit autotools
Some applications may require extra parameters to be passed to
the compiler, for example an additional header path. This can
be done buy adding to the <glossterm><link
linkend='var-CFLAGS'>CFLAGS</link></glossterm> variable, as in the example below.
linkend='var-CFLAGS'>CFLAGS</link></glossterm> variable, as in the example below:
</para>
<programlisting>
CFLAGS_prepend = "-I ${S}/include "
</programlisting>
<para>
mtd-utils is an example as Makefile-based:
</para>
<programlisting>
DESCRIPTION = "Tools for managing memory technology devices."
SECTION = "base"
DEPENDS = "zlib"
DEPENDS = "zlib lzo e2fsprogs util-linux"
HOMEPAGE = "http://www.linux-mtd.infradead.org/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=ae764cfda68da96df20af9fbf9fe49bd"
SRC_URI = "ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-${PV}.tar.gz"
SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=v${PV}"
CFLAGS_prepend = "-I ${S}/include "
S = "${WORKDIR}/git/"
do_install() {
oe_runmake install DESTDIR=${D}
EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' \
'BUILDDIR=${S}'"
do_install () {
oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
INCLUDEDIR=${includedir}
install -d ${D}${includedir}/mtd/
for f in ${S}/include/mtd/*.h; do
install -m 0644 $f ${D}${includedir}/mtd/
done
}
</programlisting>
@@ -165,7 +189,7 @@ do_install() {
</para>
<para>
Below the "libXpm" recipe is used as an example. By
Below the "libXpm" recipe (libxpm_3.5.7.bb) is used as an example. By
default the "libXpm" recipe generates one package
which contains the library
and also a few binaries. The recipe can be adapted to
@@ -177,8 +201,9 @@ require xorg-lib-common.inc
DESCRIPTION = "X11 Pixmap library"
LICENSE = "X-BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=ae764cfda68da96df20af9fbf9fe49bd"
DEPENDS += "libxext"
DEPENDS += "libxext libsm libxt"
PR = "r3"
PE = "1"
XORG_PN = "libXpm"
@@ -194,9 +219,12 @@ FILES_sxpm = "${bindir}/sxpm"
package as standard we prepend the <glossterm><link
linkend='var-PACKAGES'>PACKAGES</link></glossterm> variable so
additional package names are added to the start of list. The
extra <glossterm><link linkend='var-PN'>FILES</link></glossterm>_*
extra <glossterm><link linkend='var-FILES'>FILES</link></glossterm>_*
variables then contain information to specify which files and
directories goes into which package.
directories goes into which package. Files included by earlier
package are skipped by latter packages, and thus main <glossterm>
<link linkend='var-PN'>PN</link></glossterm> will not include
above listed files
</para>
</section>
@@ -208,7 +236,10 @@ FILES_sxpm = "${bindir}/sxpm"
a <function>pkg_postinst_PACKAGENAME()</function>
function to the .bb file
where PACKAGENAME is the name of the package to attach
the postinst script to. A post-installation function has the following structure:
the postinst script to. Normally <glossterm><link
linkend='var-PN'>PN</link></glossterm> can be used which expands
to PACKAGENAME automatically. A post-installation function has the
following structure:
</para>
<programlisting>
pkg_postinst_PACKAGENAME () {
@@ -236,9 +267,9 @@ pkg_postinst_PACKAGENAME () {
pkg_postinst_PACKAGENAME () {
#!/bin/sh -e
if [ x"$D" = "x" ]; then
# Actions to carry out on the device go here
# Actions to carry out on the device go here
else
exit 1
exit 1
fi
}
</programlisting>
@@ -349,7 +380,7 @@ RRECOMMENDS_task-custom-tools = "\
</para>
<para>
In this example, two tasks packages are created, task-custom-apps and
In this example, two task packages are created, task-custom-apps and
task-custom-tools with the dependencies and recommended package dependencies
listed. To build an image using these task packages, you would then add
"task-custom-apps" and/or "task-custom-tools" to <glossterm><link
@@ -367,8 +398,9 @@ RRECOMMENDS_task-custom-tools = "\
variable. To create these, the best reference is <filename>meta/classes/poky-image.bbclass</filename>
which illustrates how poky achieves this. In summary, the file looks at the contents of the
<glossterm><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></glossterm>
variable and based on this generates the <glossterm><link linkend='var-IMAGE_INSTALL'>
IMAGE_INSTALL</link></glossterm> variable automatically. Extra features can be added by
variable and then maps this into a set of tasks or packages. Based on this then the
<glossterm><link linkend='var-IMAGE_INSTALL'> IMAGE_INSTALL</link></glossterm>
variable is generated automatically. Extra features can be added by
extending the class or creating a custom class for use with specialised image .bb files.
</para>
</section>
@@ -397,11 +429,11 @@ DISTRO_EXTRA_RDEPENDS += "strace"
DISTRO_EXTRA_RDEPENDS</link></glossterm> variable is for
distribution maintainers this method does not make
adding packages as simple as a custom .bb file. Using
this method, a few packages will need to be recreated
and the the image built.
this method, a few packages will need to be recreated if they have been
created before and then the image is rebuilt.
</para>
<programlisting>
bitbake -cclean task-boot task-base task-poky
bitbake -c clean task-boot task-base task-poky
bitbake poky-image-sato
</programlisting>
@@ -410,7 +442,7 @@ bitbake poky-image-sato
<glossterm><link linkend='var-DISTRO_EXTRA_RDEPENDS'>
DISTRO_EXTRA_RDEPENDS</link></glossterm> variable. There is no need to
build them by hand as Poky images depend on the packages they contain so
dependencies will be built automatically. For this reason we don't use the
dependencies will be built automatically when building the image. For this reason we don't use the
"rebuild" task in this case since "rebuild" does not care about
dependencies - it only rebuilds the specified package.
</para>
@@ -451,7 +483,8 @@ bitbake poky-image-sato
</glossterm> (e.g. "zImage") and <glossterm><link linkend='var-IMAGE_FSTYPES'>
IMAGE_FSTYPES</link></glossterm> (e.g. "tar.gz jffs2") might also be
needed. Full details on what these variables do and the meaning of
their contents is available through the links.
their contents is available through the links. There're lots of existing
machine .conf files which can be easily leveraged from meta/conf/machine/.
</para>
</section>
@@ -461,10 +494,10 @@ bitbake poky-image-sato
Poky needs to be able to build a kernel for the machine. You need
to either create a new kernel recipe for this machine or extend an
existing recipe. There are plenty of kernel examples in the
packages/linux directory which can be used as references.
meta/recipes-kernel/linux directory which can be used as references.
</para>
<para>
If creating a new recipe the "normal" recipe writing rules apply
If creating a new recipe the "normal" recipe writing rules apply
for setting up a <glossterm><link linkend='var-SRC_URI'>SRC_URI
</link></glossterm> including any patches and setting <glossterm>
<link linkend='var-S'>S</link></glossterm> to point at the source
@@ -481,8 +514,11 @@ bitbake poky-image-sato
machine's defconfig files in a given kernel, possibly listing it in
the SRC_URI and adding the machine to the expression in <glossterm>
<link linkend='var-COMPATIBLE_MACHINE'>COMPATIBLE_MACHINE</link>
</glossterm>.
</glossterm>:
</para>
<programlisting>
COMPATIBLE_MACHINE = '(qemux86|qemumips)'
</programlisting>
</section>
<section id="platdev-newmachine-formfactor">
@@ -502,8 +538,21 @@ bitbake poky-image-sato
under <filename>meta/packages/formfactor/files/MACHINENAME/</filename>
where <literal>MACHINENAME</literal> is the name for which this infomation
applies. For information about the settings available and the defaults, please see
<filename>meta/packages/formfactor/files/config</filename>.
<filename>meta/packages/formfactor/files/config</filename>. Below is one
example for qemuarm:
</para>
<programlisting>
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=1
DISPLAY_CAN_ROTATE=0
DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=640
#DISPLAY_HEIGHT_PIXELS=480
#DISPLAY_BPP=16
DISPLAY_DPI=150
DISPLAY_SUBPIXEL_ORDER=vrgb
</programlisting>
</section>
</section>
@@ -535,51 +584,52 @@ bitbake poky-image-sato
supported and non-invasive fashion.
</para>
<para>
The Poky tree includes two additional layers which demonstrate
this functionality, meta-moblin and meta-extras.
The meta-extras repostory is not enabled by default but enabling
it is as easy as adding the layers path to the BBLAYERS variable in
your bblayers.conf, this is how all layers are enabled in Poky builds:
<para>
The Poky tree includes several additional layers which demonstrate
this functionality, such as meta-emenlow and meta-extras.
The meta-emenlow layer is an example layer enabled by default. The meta-extras
repostory is not enabled by default but enabling any layer is as easy as adding
the layers path to the BBLAYERS variable in your bblayers.conf. this is how
meta-extras are enabled in Poky builds:
</para>
<para>
<literallayout class='monospaced'>LCONF_VERSION = "1"
BBFILES ?= ""
BBLAYERS = " \
${OEROOT}/meta \
${OEROOT}/meta-moblin \
${OEROOT}/meta-extras \
/path/to/poky/meta \
/path/to/poky/meta-emenlow \
/path/to/poky/meta-extras \
"
</literallayout>
</para>
</para>
<para>
Bitbake parses the conf/layer.conf of each of the layers in BBLAYERS
to add the layers packages, classes and configuration to Poky.
to add the recipes, classes and configuration contained within the layer to Poky.
To create your own layer, independent of the main Poky repository,
you need only create a directory with a conf/layer.conf file and
add the directory to your bblayers.conf.
</para>
<para>
The meta-extras layer.conf demonstrates the required syntax:
The meta-emenlow/conf/layer.conf demonstrates the required syntax:
<literallayout class='monospaced'># We have a conf and classes directory, add to BBPATH
BBPATH := "${BBPATH}${LAYERDIR}"
BBPATH := "${BBPATH}:${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb"
# We have a recipes directory containing both .bb and .bbappend files, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb \
${LAYERDIR}/recipes/*/*.bbappend"
BBFILE_COLLECTIONS += "extras"
BBFILE_PATTERN_extras := "^${LAYERDIR}/"
BBFILE_PRIORITY_extras = "5"
require conf/distro/include/poky-extras-src-revisions.inc
BBFILE_COLLECTIONS += "emenlow"
BBFILE_PATTERN_emenlow := "^${LAYERDIR}/"
BBFILE_PRIORITY_emenlow = "6"
</literallayout>
</para>
<para>
As can be seen, the layers recipes are added to BBFILES. The
As can be seen, the layers recipes are added to
<glossterm> <link linkend='var-BBFILES'>BBFILES</link></glossterm>. The
BBFILE_COLLECTIONS variable is then appended to with the
layer name. The BBFILE_PATTERN variable is immediately expanded
with a regular expression used to match files from BBFILES into
@@ -588,15 +638,18 @@ require conf/distro/include/poky-extras-src-revisions.inc
priorities to the files in different layers. This is useful
in situations where the same package might appear in multiple
layers and allows you to choose which layer should 'win'.
Note the use of LAYERDIR with the immediate expansion operator.
LAYERDIR expands to the directory of the current layer and
Note the use of <glossterm><link linkend='var-LAYERDIR'>
LAYERDIR</link></glossterm> with the immediate expansion operator.
<glossterm><link linkend='var-LAYERDIR'>LAYERDIR</link></glossterm>
expands to the directory of the current layer and
requires use of the immediate expansion operator so that Bitbake
does not lazily expand the variable when it's parsing a
different directory.
</para>
<para>
Extra bbclasses and configuration are added to the BBPATH
Additional bbclass and configuration files can be locationed by
bitbake through the addition to the BBPATH
environment variable. In this case, the first file with the
matching name found in BBPATH is the one that is used, just
like the PATH variable for binaries. It is therefore recommended
@@ -609,7 +662,7 @@ require conf/distro/include/poky-extras-src-revisions.inc
git repository of the format meta-prvt-XXXX and have this repository
cloned alongside the other meta directories in the Poky tree.
This way you can keep your Poky tree and it's configuration entirely
inside OEROOT.
inside POKYBASE.
</para>
</section>
@@ -630,9 +683,19 @@ require conf/distro/include/poky-extras-src-revisions.inc
summarises the change and starts with the name of any package affected
work well. Not all changes are to specific packages so the prefix could
also be a machine name or class name instead. If a change needs a longer
description this should follow the summary.
description this should follow the summary:
</para>
<literallayout class='monospaced'>
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
</literallayout>
<para>
Any commit should be self contained in that it should leave the
metadata in a consistent state, buildable before and after the
@@ -650,10 +713,12 @@ require conf/distro/include/poky-extras-src-revisions.inc
</glossterm> variable needs to be increased (commonly referred to
as 'bumped') as part of that commit. Only integer values are used
and <glossterm><link linkend='var-PR'>PR</link></glossterm> =
"r0" should not be added into new recipes as this is default value.
"r0" should be added into new recipes as, while this is the
default value, not having the variable defined in a recipe makes
it easy to miss incrementing it when updating the recipe.
When upgrading the version of a package (<glossterm><link
linkend='var-PV'>PV</link></glossterm>), the <glossterm><link
linkend='var-PR'>PR</link></glossterm> variable should be removed.
linkend='var-PR'>PR</link></glossterm> variable should be reset to "r0".
</para>
<para>
@@ -673,7 +738,7 @@ require conf/distro/include/poky-extras-src-revisions.inc
the repository and don't have to remember to rebuild any sections.
The second is to ensure that target users are able to upgrade their
devices via their package manager such as with the <command>
opkg update;opkg upgrade</command> commands (or similar for
opkg upgrade</command> commands (or similar for
dpkg/apt or rpm based systems). The aim is to ensure Poky has
upgradable packages in all cases.
</para>
@@ -706,6 +771,8 @@ require conf/distro/include/poky-extras-src-revisions.inc
are builds that build everything from the ground up and test everything.
They usually happen at preset times such as at night when the machine
load isn't high from the incremental builds.
<ulink url='http://autobuilder.pokylinux.org:8010'>poky autobuilder</ulink>
is an example implementation with buildbot.
</para>
<para>
@@ -781,11 +848,14 @@ src/gz beagleboard http://www.mysite.com/somedir/deploy/ipk/beagleboard</literal
</para>
<programlisting>
bitbake --cmd compile --force NAME_OF_PACKAGE
bitbake -c compile -f NAME_OF_PACKAGE
</programlisting>
<para>
Other tasks may also be called this way.
"-f" or "--force" is used to force re-execution of the specified task.
Other tasks may also be called this way. But note that all the modifications
in <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>
are gone once you executes "-c clean" for a package.
</para>
<section id='usingpoky-modifying-packages-quilt'>
@@ -838,10 +908,11 @@ SRC_URI += "file://NAME-OF-PATCH.patch"
</section>
<section id='usingpoky-configuring-LIC_FILES_CHKSUM'>
<title>Configuring the LIC_FILES_CHKSUM variable</title>
<title>Track license change</title>
<para>
The changes in the license text inside source code files is tracked
using the LIC_FILES_CHKSUM metadata variable.
The license of one upstream project may change in the future, and Poky provides
one mechanism to track such license change - <glossterm>
<link linkend='var-LIC_FILES_CHKSUM'>LIC_FILES_CHKSUM</link></glossterm> variable.
</para>
<section id='usingpoky-specifying-LIC_FILES_CHKSUM'>
@@ -853,6 +924,26 @@ LIC_FILES_CHKSUM = "file://COPYING; md5=xxxx \
file://licfile2.txt; endline=50;md5=zzzz \
..."
</programlisting>
<para>
<glossterm><link linkend='var-S'>S</link></glossterm> is the default directory
for searching files listed in <glossterm><link linkend='var-LIC_FILES_CHKSUM'>
LIC_FILES_CHKSUM</link></glossterm>. Relative path could be used too:
</para>
<programlisting>
LIC_FILES_CHKSUM = "file://src/ls.c;startline=5;endline=16;\
md5=bb14ed3c4cda583abc85401304b5cd4e"
LIC_FILES_CHKSUM = "file://../license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
</programlisting>
<para>
The first line locates a file in <glossterm><link linkend='var-S'>
S</link></glossterm>/src/ls.c, and the second line refers to a file in
<glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>, which is the parent
of <glossterm><link linkend='var-S'>S</link></glossterm>
</para>
</section>
<section id='usingpoky-LIC_FILES_CHKSUM-explanation-of-syntax'>
@@ -871,12 +962,12 @@ to specify "beginline" and "endline" parameters.
</para>
<para>
The "md5" parameter stores the md5 checksum of the license text. So if
the license text changes in any way from a file, then it's md5 sum will differ and will not
the license text changes in any way from a file, then its md5 sum will differ and will not
match with the previously stored md5 checksum. This mismatch will trigger build
failure, notifying developer about the license text md5 mismatch, and allowing
the developer to review the license text changes. Also note that if md5 checksum
is not matched while building, the correct md5 checksum is printed in the build
log.
log which can be easily copied to .bb file.
</para>
<para>
There is no limit on how many files can be specified on this parameter. But generally every
@@ -889,7 +980,7 @@ is valid then tracking only that file would be enough.
<para>
1. If you specify empty or invalid "md5" parameter; then while building
the package, bitbake will give md5 not matched error, and also show the correct
"md5" parameter value in the build log
"md5" parameter value both on the screen and in the build log
</para>
<para>
2. If the whole file contains only license text, then there is no need to
@@ -899,25 +990,26 @@ specify "beginline" and "endline" parameters.
</section>
</section>
<section id='usingpoky-configuring-DISTRO_PN_ALIAS'>
<title>Configuring the DISTRO_PN_ALIAS variable</title>
<title>Handle package name alias</title>
<para>
Sometimes the names of the same packages are different in different
linux distributions; and that can becomes an issue for the distro_check
task to check if the given recipe package exists in other linux distros.
This issue is avoided by defining per distro recipe name alias:
DISTRO_PN_ALIAS
Poky implements a distro_check task which automatically connects to major distributions
and checks whether they contains same package. Sometimes the same package has different
names in different distributions, which results in a mismatch from distro_check task
This can be solved by defining per distro recipe name alias -
<glossterm><link linkend='var-DISTRO_PN_ALIAS'>DISTRO_PN_ALIAS</link></glossterm>
</para>
<section id='usingpoky-specifying-DISTRO_PN_ALIAS'>
<title>Specifying the DISTRO_PN_ALIAS variable </title>
<programlisting>
DISTRO_PN_ALIAS = "distro1=package_name_alias1; distro2=package_name_alias2 \
distro3=package_name_alias3; \
..."
DISTRO_PN_ALIAS_pn-PACKAGENAME = "distro1=package_name_alias1 \
distro2=package_name_alias2 \
distro3=package_name_alias3 \
..."
</programlisting>
<para>
Look at the meta/packages/xorg-app/xset_1.0.4.bb recipe file for an example.
Use space as the delimiter if there're multiple distro aliases
</para>
<tip>
<para>

View File

@@ -43,7 +43,7 @@
</listitem>
<listitem>
<para>
We have a Buildbot which provides continuous build and integration tests
We have an autobuilder which provides continuous build and integration tests
</para>
</listitem>
</itemizedlist>
@@ -207,7 +207,7 @@
<qandaentry>
<question>
<para>
I see lots of 404 responses for files on http://folks.o-hand.com/~richard/poky/sources/*. Is something wrong?
I see lots of 404 responses for files on http://pokylinux.org/sources/*. Is something wrong?
</para>
</question>
<answer>
@@ -278,7 +278,7 @@
</question>
<answer>
<para>
The *-native targets are designed to run on the system the buil is running on. These are usually tools that are needed to assist the build in some way such as quilt-native which is used to apply patches. The non-native version is the one that would run on the target device.
The *-native targets are designed to run on the system the build is running on. These are usually tools that are needed to assist the build in some way such as quilt-native which is used to apply patches. The non-native version is the one that would run on the target device.
</para>
</answer>
</qandaentry>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -0,0 +1,155 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id='intro'>
<title>Introduction</title>
<section id='intro-welcome'>
<title>Welcome to Poky!</title>
<para>
Poky is the the build tool in Yocto Project.
It is at the heart of Yocto Project.
You use Poky within Yocto Project to build the images (kernel software) for targeted hardware.
</para>
<para>
Before jumping into Poky you should have an understanding of Yokto Project.
Be sure you are familiar with the information in the Yocto Project Quick Start.
You can find this documentation on the public <ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
</para>
</section>
<section>
<title>What is Poky?</title>
<para>
Poky provides an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build tool within Yocto Project.
It creates a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.
Poky fully supports a wide range of x86 ARM, MIPS and PowerPC hardware and device virtulisation.
</para>
<para>
Poky is primarily a platform builder which generates filesystem images
based on open source software such as the Kdrive X server, the Matchbox
window manager, the GTK+ toolkit and the D-Bus message bus system. Images
for many kinds of devices can be generated, however the standard example
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and
real reference boards for each of these architectures.
Poky's ability to boot inside a QEMU
emulator makes it particularly suitable as a test platform for development
of embedded software.
</para>
<para>
An important component integrated within Poky is Sato, a GNOME Mobile
based user interface environment.
It is designed to work well with screens at very high DPI and restricted
size, such as those often found on smartphones and PDAs. It is coded with
focus on efficiency and speed so that it works smoothly on hand-held and
other embedded hardware. It will sit neatly on top of any device
using the GNOME Mobile stack, providing a well defined user experience.
</para>
<screenshot>
<mediaobject>
<imageobject>
<imagedata fileref="screenshots/ss-sato.png" format="PNG" align='center' scalefit='1' width="100%" contentdepth="100%"/>
</imageobject>
<caption>
<para>The Sato Desktop - A screenshot from a machine running a Poky built image</para>
</caption>
</mediaobject>
</screenshot>
<para>
Poky has a growing open source community and is also backed up by commercial organisations including <ulink url="http://www.intel.com/">Intel Corporation</ulink>.
</para>
</section>
<section id='intro-manualoverview'>
<title>Documentation Overview</title>
<para>
The Poky User Guide is split into sections covering different aspects of Poky.
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview of the components that make up Poky followed by information about using Poky and debugging images created in Yocto Project.
The <link linkend='extendpoky'>'Extending Poky' section</link> gives information about how to extend and customise Poky along with advice on how to manage these changes.
The <link linkend='platdev'>'Platform Development with Poky' section</link> gives information about interaction between Poky and target hardware for common platform development tasks such as software development, debugging and profiling.
The rest of the manual consists of several reference sections each giving details on a specific section of Poky functionality.
</para>
<para>
This manual applies to Poky Release 3.3 (Green).
</para>
</section>
<section id='intro-requirements'>
<title>System Requirements</title>
<para>
We recommend Debian-based distributions, in particular a recent Ubuntu
release (10.04 or newer), as the host system for Poky. Nothing in Poky is
distribution specific and other distributions will most likely work as long
as the appropriate prerequisites are installed - we know of Poky being used
successfully on Redhat, SUSE, Gentoo and Slackware host systems.
For information on what you need to develop images using Yocto Project and Poky
you should see the Yocto Project Quick Start on the public
<ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
</para>
</section>
<section id='intro-getit'>
<title>Obtaining Poky</title>
<section id='intro-getit-releases'>
<title>Releases</title>
<para>Periodically, we make releases of Poky and these are available
at <ulink url='http://pokylinux.org/releases/'/>.
These are more stable and tested than the nightly development images.</para>
</section>
<section id='intro-getit-nightly'>
<title>Nightly Builds</title>
<para>
We make nightly builds of Poky for testing purposes and to make the
latest developments available. The output from these builds is available
at <ulink url='http://autobuilder.pokylinux.org/'/>
where the numbers increase for each subsequent build and can be used to reference it.
</para>
<para>
Automated builds are available for "standard" Poky and for Poky SDKs and toolchains as well
as any testing versions we might have such as poky-bleeding. The toolchains can
be used either as external standalone toolchains or can be combined with Poky as a
prebuilt toolchain to reduce build time. Using the external toolchains is simply a
case of untarring the tarball into the root of your system (it only creates files in
<filename class="directory">/opt/poky</filename>) and then enabling the option
in <filename>local.conf</filename>.
</para>
</section>
<section id='intro-getit-dev'>
<title>Development Checkouts</title>
<para>
Poky is available from our GIT repository located at
git://git.pokylinux.org/poky.git; a web interface to the repository
can be accessed at <ulink url='http://git.pokylinux.org/'/>.
</para>
<para>
The 'master' is where the deveopment work takes place and you should use this if you're
after to work with the latest cutting edge developments. It is possible trunk
can suffer temporary periods of instability while new features are developed and
if this is undesireable we recommend using one of the release branches.
</para>
</section>
</section>
</chapter>
<!--
vim: expandtab tw=80 ts=4
-->

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -0,0 +1,101 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id='poky-ref-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
<bookinfo>
<mediaobject>
<imageobject>
<imagedata fileref='figures/poky-ref-manual.png'
format='SVG'
align='center' scalefit='1' width='100%'/>
</imageobject>
</mediaobject>
<title>Poky Reference Manual</title>
<subtitle>A Guide and Reference to Poky</subtitle>
<authorgroup>
<author>
<firstname>Richard</firstname> <surname>Purdie</surname>
<affiliation>
<orgname>Intel Corporation</orgname>
</affiliation>
<email>richard@linux.intel.com</email>
</author>
<author>
<firstname>Tomas</firstname> <surname>Frydrych</surname>
<affiliation>
<orgname>Intel Corporation</orgname>
</affiliation>
</author>
<author>
<firstname>Marcin</firstname> <surname>Juszkiewicz</surname>
</author>
<author>
<firstname>Dodji</firstname> <surname>Seketeli</surname>
</author>
</authorgroup>
<revhistory>
<revision>
<revnumber>4.0+git</revnumber>
<date>27 Oct 2010</date>
<revremark>Poky Master Documentation</revremark>
</revision>
</revhistory>
<copyright>
<year>2007-2010</year>
<holder>Linux Foundation</holder>
</copyright>
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/">Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
</para>
</legalnotice>
</bookinfo>
<xi:include href="introduction.xml"/>
<xi:include href="usingpoky.xml"/>
<xi:include href="extendpoky.xml"/>
<xi:include href="bsp.xml"/>
<xi:include href="development.xml"/>
<xi:include href="ref-structure.xml"/>
<xi:include href="ref-bitbake.xml"/>
<xi:include href="ref-classes.xml"/>
<xi:include href="ref-images.xml"/>
<xi:include href="ref-features.xml"/>
<xi:include href="ref-variables.xml"/>
<xi:include href="ref-varlocality.xml"/>
<xi:include href="faq.xml"/>
<xi:include href="resources.xml"/>
<index id='index'>
<title>Index</title>
</index>
</book>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -6,7 +6,7 @@
<title>Reference: Bitbake</title>
<para>
Bitbake a program written in Python which interprets the metadata
Bitbake is a program written in Python that interprets the metadata
that makes up Poky. At some point, people wonder what actually happens
when you type <command>bitbake poky-image-sato</command>. This section
aims to give an overview of what happens behind the scenes from a
@@ -16,7 +16,7 @@
<para>
It is worth noting that bitbake aims to be a generic "task" executor
capable of handling complex dependency relationships. As such it has no
real knowledge of what the tasks its executing actually do. It just
real knowledge of what the tasks it is executing actually do. It just
considers a list of tasks with dependencies and handles metadata
consisting of variables in a certain format which get passed to the
tasks.
@@ -117,7 +117,7 @@
specified on the commandline) and looks for providers of that target.
Once a provider is selected, BitBake resolves all the dependencies for
the target. In the case of "poky-image-sato", it would lead to
<filename>task-oh.bb</filename> and <filename>task-base.bb</filename>
<filename>task-base.bb</filename>
which in turn would lead to packages like <application>Contacts</application>,
<application>Dates</application>, <application>BusyBox</application>
and these in turn depend on glibc and the toolchain.
@@ -154,7 +154,8 @@
"1" makes it likely the package will be used.
<glossterm><link
linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></glossterm> overrides
any default preference. <glossterm><link
any <glossterm><link
linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE</link></glossterm>. <glossterm><link
linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE</link></glossterm>
is often used to mark more
experimental new versions of packages until they've undergone sufficient
@@ -176,7 +177,7 @@
multi-core systems, BitBake considers each task as an independent
entity with a set of dependencies. There are many variables that
are used to signify these dependencies and more information can be found
found about these in the <ulink url='http://bitbake.berlios.de/manual/'>
about these in the <ulink url='http://bitbake.berlios.de/manual/'>
BitBake manual</ulink>. At a basic level it is sufficient to know
that BitBake uses the <glossterm><link
linkend='var-DEPENDS'>DEPENDS</link></glossterm> and
@@ -196,7 +197,7 @@
order. The build now starts with BitBake forking off threads up to
the limit set in the <glossterm><link
linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link></glossterm> variable
as long there are tasks ready to run, i.e. tasks with all their
as long as there are tasks ready to run, i.e. tasks with all their
dependencies met.
</para>
@@ -271,9 +272,9 @@ Options:
target that failed, and those that depend on it,
cannot be remade, the other dependencies of these
targets can be processed all the same.
-a, --tryaltconfigs continue with builds by trying to use alternative
providers where possible.
-f, --force force run of specified cmd, regardless of stamp status
-i, --interactive drop into the interactive mode also called the BitBake
shell.
-c CMD, --cmd=CMD 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
@@ -286,6 +287,9 @@ Options:
-D, --debug Increase the debug level. You can specify this more
than once.
-n, --dry-run don't execute, just go through the motions
-S, --dump-signatures
don't execute, just dump out the signature
construction information
-p, --parse-only quit after parsing the BB files (developers only)
-d, --disable-psyco disable using the psyco just-in-time compiler (not
recommended)
@@ -294,13 +298,16 @@ Options:
what used to be bbread)
-g, --graphviz emit the dependency trees of the specified packages in
the dot syntax
-I IGNORED_DOT_DEPS, --ignore-deps=IGNORED_DOT_DEPS
Stop processing at the given list of dependencies when
generating dependency graphs. This can help to make
the graph more appealing
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile profile the command and print a report</screen>
-P, --profile profile the command and print a report
-u UI, --ui=UI userinterface to use
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not</screen>
</section>

View File

@@ -11,9 +11,9 @@
file. Class files are identified by the extension
<filename class="extension">.bbclass</filename> and are usually placed
in a <filename class="directory">classes/</filename> directory beneath the
<filename class="directory">meta/</filename> directory or the <filename
class="directory">build/</filename> directory in the same way as <filename
class="extension">.conf</filename> files in the <filename
<filename class="directory">meta*/</filename> directory or the directory pointed
by BUILDDIR (e.g. <filename class="directory">build/</filename>)in the same way as
<filename class="extension">.conf</filename> files in the <filename
class="directory">conf</filename> directory. Class files are searched for
in BBPATH in the same was as <filename class="extension">.conf</filename> files too.
</para>
@@ -34,10 +34,8 @@
(runs any Makefile present), installing (empty by default) and packaging
(empty by default). These are often overridden or extended by other classes
such as <filename>autotools.bbclass</filename> or
<filename>package.bbclass</filename>. The class contains some commonly
some commonly used functions such as <function>oe_libinstall</function>
and <function>oe_runmake</function>. The end of the class file has a
list of standard mirrors for software projects for use by the fetcher code.
<filename>package.bbclass</filename>. The class also contains some commonly
used functions such as <function>oe_runmake</function>.
</para>
</section>
@@ -55,14 +53,14 @@
</para>
<para>
Its useful to have some idea of the tasks this class defines work and
what they do behind the scenes.
It's useful to have some idea of how the tasks defined by this class work
and what they do behind the scenes.
</para>
<itemizedlist>
<listitem>
<para>
'do_configure' regenearates the configure script and
'do_configure' regenearates the configure script (using autoreconf) and
then launches it with a standard set of arguments used during
cross-compilation. Additional parameters can be passed to
<command>configure</command> through the <glossterm><link
@@ -86,16 +84,6 @@
</listitem>
</itemizedlist>
<para>
By default the class does not stage headers and libraries so
the recipe author needs to add their own <function>do_stage()</function>
task. For typical recipes the following example code will usually be
enough:
<programlisting>
do_stage() {
autotools_stage_all
}</programlisting>
</para>
</section>
<section id='ref-classes-update-alternatives'>
@@ -150,6 +138,10 @@ autotools_stage_all
</listitem>
</varlistentry>
</variablelist>
<para>
Currently, only one binary per package is supported.
</para>
</section>
<section id='ref-classes-update-rc.d'>
@@ -171,7 +163,7 @@ autotools_stage_all
<title>Binary config scripts - <filename>binconfig.bbclass</filename></title>
<para>
Before pkg-config became widespread, libraries shipped shell
Before pkg-config had become widespread, libraries shipped shell
scripts to give information about the libraries and include paths needed
to build software (usually named 'LIBNAME-config'). This class assists
any recipe using such scripts.
@@ -305,8 +297,8 @@ autotools_stage_all
output. The core generic functionality is in
<filename>package.bbclass</filename>, code specific to particular package
types is contained in various sub classes such as
<filename>package_deb.bbclass</filename> and <filename>package_ipk.bbclass</filename>.
Most users will
<filename>package_deb.bbclass</filename>, <filename>package_ipk.bbclass</filename>
and <filename>package_rpm.bbclass</filename>. Most users will
want one or more of these classes and this is controlled by the <glossterm>
<link linkend='var-PACKAGE_CLASSES'>PACKAGE_CLASSES</link></glossterm>
variable. The first class listed in this variable will be used for image
@@ -326,10 +318,10 @@ autotools_stage_all
directory to allow building of out-of-tree modules using <filename>module.bbclass</filename>.
</para>
<para>
The means that each kerel module built is packaged separately and inter-module dependencies are
This means that each kernel module built is packaged separately and inter-module dependencies are
created by parsing the <command>modinfo</command> output. If all modules are
required then installing the "kernel-modules" package will install all
packages with modules and various other kernel packages such as "kernel-vmlinux" are also generated.
packages with modules and various other kernel packages such as "kernel-vmlinux".
</para>
<para>
@@ -362,11 +354,11 @@ autotools_stage_all
<title>Host System sanity checks - <filename>sanity.bbclass</filename></title>
<para>
This class checks prerequisite software is present to try and identify
and notify the user of problems which will affect their build. It also
performs basic checks of the users configuration from local.conf to
prevent common mistakes and resulting build failures. Its usually up to
distribution policy to include this class (Poky does).
This class checks prerequisite software is present to
notify the users of potential problems that will affect their build. It
also performs basic checks of the user configuration from local.conf to
prevent common mistakes resulting in build failures. It's usually up to
distribution policy whether to include this class (Poky does).
</para>
</section>
@@ -376,10 +368,9 @@ autotools_stage_all
<para>
This class adds a step to package generation which sanity checks the
packages generated by Poky. There are an ever increasing range of checks
this makes, checking for common problems which break builds/packages/images,
see the bbclass file for more information. Its usually up to distribution
policy to include this class (Poky does).
to soon).
it performs, checking for common problems which break builds/packages/images,
see the bbclass file for more information. It's usually up to distribution
policy whether to include this class (Poky does).
</para>
</section>
@@ -421,6 +412,7 @@ autotools_stage_all
bootimg.bbclass
ccache.inc
ccdv.bbclass
cmake.bbclass
cml1.bbclass
cross.bbclass
flow-lossage.bbclass
@@ -430,6 +422,7 @@ autotools_stage_all
gtk-icon-cache.bbclass
icecc.bbclass
lib_package.bbclass
mirrors.bbclass
mozilla.bbclass
multimachine.bbclass
native.bbclass
@@ -450,6 +443,7 @@ autotools_stage_all
syslinux.bbclass
tinderclient.bbclass
tmake.bbclass
utils.bbclass
xfce.bbclass
xlibs.bbclass
-->

View File

@@ -6,9 +6,12 @@
<para>
Poky has several standard images covering most people's standard needs. A full
list of image targets can be found by looking in the <filename class="directory">
meta/packages/images/</filename> directory. The standard images are listed below
along with details of what they contain:
list of image targets can be found by looking in the directories
<filename class="directory"> meta/recipes-core/images/</filename>,
<filename class="directory"> meta/recipes-extended/images/</filename>,
<filename class="directory"> meta/recipes-sato/images/</filename> and
<filename class="directory"> meta/recipes-tbd/meta/</filename>. The standard
images are listed below along with details of what they contain:
</para>
<itemizedlist>
@@ -48,7 +51,7 @@
<para>
<emphasis>meta-toolchain</emphasis> - This generates a tarball containing
a standalone toolchain which can be used externally to Poky. It is self
contained and unpacks to the <filename class="directory">/usr/local/poky</filename>
contained and unpacks to the <filename class="directory">/opt/poky</filename>
directory. It also contains a copy of QEMU and the scripts neccessary to run
poky QEMU images.
</para>

View File

@@ -0,0 +1,505 @@
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<appendix id='ref-structure'>
<title>Reference: Directory Structure</title>
<para>
Poky consists of several components and understanding what these are
and where they're located is one of the keys to using it. This section walks
through the Poky directory structure giving information about the various
files and directories.
</para>
<section id='structure-core'>
<title>Top level core components</title>
<section id='structure-core-bitbake'>
<title><filename class="directory">bitbake/</filename></title>
<para>
A copy of BitBake is included within Poky for ease of use, and should
usually match the current BitBake stable release from the BitBake project.
Bitbake, a metadata interpreter, reads the Poky metadata and runs the tasks
defined in the Poky metadata. Failures are usually from the metadata, not
BitBake itself, so most users don't need to worry about BitBake. The
<filename class="directory">bitbake/bin/</filename> directory is placed
into the PATH environment variable by the <link
linkend="structure-core-script">poky-init-build-env</link> script.
</para>
<para>
For more information on BitBake please see the BitBake project site at
<ulink url="http://bitbake.berlios.de/"/>
and the BitBake on-line manual at <ulink url="http://bitbake.berlios.de/manual/"/>.
</para>
</section>
<section id='structure-core-build'>
<title><filename class="directory">build/</filename></title>
<para>
This directory contains user configuration files and the output
generated by Poky in its standard configuration where the source tree is
combined with the output. It is also possible to place output and configuration
files in a directory separate from the Poky source, see the section <link
linkend='structure-core-script'>seperate output directory</link>.
</para>
</section>
<section id='structure-core-meta'>
<title><filename class="directory">meta/</filename></title>
<para>
This directory contains the core metadata, a key part of Poky. Within this
directory there are definitions of the machines, the Poky distribution
and the packages that make up a given system.
</para>
</section>
<section id='structure-core-meta-extras'>
<title><filename class="directory">meta-extras/</filename></title>
<para>
This directory is similar to <filename class="directory">meta/</filename>,
and contains some extra metadata not included in standard Poky. These are
disabled by default, and are not supported as part of Poky.
</para>
</section>
<section id='structure-core-meta-***'>
<title><filename class="directory">meta-***/</filename></title>
<para>
These directories are optional layers to be added to core metadata, which
are enabled by adding them to conf/bblayers.conf.
</para>
</section>
<section id='structure-core-scripts'>
<title><filename class="directory">scripts/</filename></title>
<para>
This directory contains various integration scripts which implement
extra functionality in the Poky environment, such as the QEMU
scripts. This directory is appended to the PATH environment variable by the
<link linkend="structure-core-script">poky-init-build-env</link> script.
</para>
</section>
<section id='structure-core-sources'>
<title><filename class="directory">sources/</filename></title>
<para>
While not part of a checkout, Poky will create this directory as
part of any build. Any downloads are placed in this directory (as
specified by the <glossterm><link linkend='var-DL_DIR'>DL_DIR</link>
</glossterm> variable). This directory can be shared between Poky
builds to save downloading files multiple times. SCM checkouts are
also stored here as e.g. <filename class="directory">sources/svn/
</filename>, <filename class="directory">sources/cvs/</filename> or
<filename class="directory">sources/git/</filename> and the
sources directory may contain archives of checkouts for various
revisions or dates.
</para>
<para>
It's worth noting that BitBake creates <filename class="extension">.md5
</filename> stamp files for downloads. It uses these to mark downloads as
complete as well as for checksum and access accounting purposes. If you add
a file manually to the directory, you need to touch the corresponding
<filename class="extension">.md5</filename> file too.
</para>
<para>
This location can be overridden by setting <glossterm><link
linkend='var-DL_DIR'>DL_DIR</link></glossterm> in <filename>local.conf
</filename>. This directory can be shared between builds and even between
machines via NFS, so downloads are only made once, speeding up builds.
</para>
</section>
<section id='handbook'>
<title><filename class="directory">documentation</filename></title>
<para>
This is the location for documentaiton about poky including this handbook.
</para>
</section>
<section id='structure-core-script'>
<title><filename>poky-init-build-env</filename></title>
<para>
This script is used to setup the Poky build environment. Sourcing this file in
a shell makes changes to PATH and sets other core BitBake variables based on the
current working directory. You need to use this before running Poky commands.
Internally it uses scripts within the <filename class="directory">scripts/
</filename> directory to do the bulk of the work. This script supports
specifying any directory as the build output:
</para>
<programlisting>
source POKY_SRC/poky-init-build-env [BUILDDIR]
</programlisting>
<para>
The above command can be typed from any directory, as long as POKY_SRC points to
the desired Poky source tree. The optional BUILDDIR could be any directory you'd
like Poky to generate the build output into.
</para>
</section>
</section>
<section id='structure-build'>
<title><filename class="directory">build/</filename> - The Build Directory</title>
<section id='structure-build-conf-local.conf'>
<title><filename>build/conf/local.conf</filename></title>
<para>
This file contains all the local user configuration of Poky. If there
is no <filename>local.conf</filename> present, it is created from
<filename>local.conf.sample</filename>. The <filename>local.conf</filename>
file contains documentation on the various configuration options. Any
variable set here overrides any variable set elsewhere within Poky unless
that variable is hardcoded within Poky (e.g. by using '=' instead of '?=').
Some variables are hardcoded for various reasons but these variables are
relatively rare.
</para>
<para>
Edit this file to set the <glossterm><link linkend='var-MACHINE'>MACHINE</link></glossterm> for which you want to build, which package types you
wish to use (PACKAGE_CLASSES) or where downloaded files should go
(<glossterm><link linkend='var-DL_DIR'>DL_DIR</link></glossterm>).
</para>
</section>
<section id='structure-build-conf-bblayers.conf'>
<title><filename>build/conf/bblayers.conf</filename></title>
<para>
This file defines layers walked by bitbake. If there's no <filename>
bblayers.conf</filename> present, it is created from <filename>bblayers.conf.sample
</filename> when the environment setup script is sourced.
</para>
</section>
<section id='structure-build-tmp'>
<title><filename class="directory">build/tmp/</filename></title>
<para>
This is created by BitBake if it doesn't exist and is where all the Poky output
is placed. To clean Poky and start a build from scratch (other than downloads),
you can wipe this directory. The <filename class="directory">tmp/
</filename> directory has some important sub-components detailed below.
</para>
</section>
<section id='structure-build-tmp-cache'>
<title><filename class="directory">build/tmp/cache/</filename></title>
<para>
When BitBake parses the metadata it creates a cache file of the result which can
be used when subsequently running commands. These are stored here on
a per machine basis.
</para>
</section>
<section id='structure-build-tmp-deploy'>
<title><filename class="directory">build/tmp/deploy/</filename></title>
<para>Any 'end result' output from Poky is placed under here.</para>
</section>
<section id='structure-build-tmp-deploy-deb'>
<title><filename class="directory">build/tmp/deploy/deb/</filename></title>
<para>
Any .deb packages emitted by Poky are placed here, sorted into feeds for
different architecture types.
</para>
</section>
<section id='structure-build-tmp-deploy-rpm'>
<title><filename class="directory">build/tmp/deploy/rpm/</filename></title>
<para>
Any .rpm packages emitted by Poky are placed here, sorted into feeds for
different architecture types.
</para>
</section>
<section id='structure-build-tmp-deploy-images'>
<title><filename class="directory">build/tmp/deploy/images/</filename></title>
<para>
Complete filesystem images are placed here. If you want to flash the resulting
image from a build onto a device, look here for them.
</para>
</section>
<section id='structure-build-tmp-deploy-ipk'>
<title><filename class="directory">build/tmp/deploy/ipk/</filename></title>
<para>Any resulting .ipk packages emitted by Poky are placed here.</para>
</section>
<section id='structure-build-tmp-sysroots'>
<title><filename class="directory">build/tmp/sysroots/</filename></title>
<para>
Any package needing to share output with other packages does so within sysroots.
This means it contains any shared header files and any shared libraries amongst
other data. It is subdivided by architecture so multiple builds can run within
the one build directory.
</para>
</section>
<section id='structure-build-tmp-stamps'>
<title><filename class="directory">build/tmp/stamps/</filename></title>
<para>
This is used by BitBake for accounting purposes to keep track of which tasks
have been run and when. It is also subdivided by architecture. The files are
empty and the important information is the filenames and timestamps.
</para>
</section>
<section id='structure-build-tmp-log'>
<title><filename class="directory">build/tmp/log/</filename></title>
<para>
This contains some general logs if not placing in a package's
<glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>, such as
the log output from check_pkg or distro_check tasks.
</para>
</section>
<section id='structure-build-tmp-pkgdata'>
<title><filename class="directory">build/tmp/pkgdata/</filename></title>
<para>
This is an intermediate place for saving packaging data, which will be used
in later packaging process. For detail please refer to <link linkend='ref-classes-package'>
package.bbclass</link>.
</para>
</section>
<section id='structure-build-tmp-pstagelogs'>
<title><filename class="directory">build/tmp/pstagelogs/</filename></title>
<para>
This directory contains manifest for task based prebuilt. Each manifest is basically
a file list for installed files from a given task, which would be useful for later
packaging or cleanup process.
</para>
</section>
<section id='structure-build-tmp-work'>
<title><filename class="directory">build/tmp/work/</filename></title>
<para>
This directory contains various subdirectories for each architecture, and each package built by BitBake has its own work directory under the appropriate architecture subdirectory. All tasks are executed from this work directory. As an example, the source for a particular package will be unpacked, patched, configured and compiled all within its own work directory.
</para>
<para>
It is worth considering the structure of a typical work directory. An
example is the linux-rp kernel, version 2.6.20 r7 on the machine spitz
built within Poky. For this package a work directory of <filename
class="directory">tmp/work/spitz-poky-linux-gnueabi/linux-rp-2.6.20-r7/
</filename>, referred to as <glossterm><link linkend='var-WORKDIR'>WORKDIR
</link></glossterm>, is created. Within this directory, the source is
unpacked to linux-2.6.20 and then patched by quilt (see <link
linkend="usingpoky-modifying-packages-quilt">Section 3.5.1</link>).
Within the <filename class="directory">linux-2.6.20</filename> directory,
standard Quilt directories <filename class="directory">linux-2.6.20/patches</filename>
and <filename class="directory">linux-2.6.20/.pc</filename> are created,
and standard quilt commands can be used.
</para>
<para>
There are other directories generated within <glossterm><link
linkend='var-WORKDIR'>WORKDIR</link></glossterm>. The most important
is <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm><filename class="directory">/temp/</filename> which has log files for each
task (<filename>log.do_*.pid</filename>) and the scripts BitBake runs for
each task (<filename>run.do_*.pid</filename>). The <glossterm><link
linkend='var-WORKDIR'>WORKDIR</link></glossterm><filename
class="directory">/image/</filename> directory is where <command>make
install</command> places its output which is then split into subpackages
within <glossterm><link linkend='var-WORKDIR'>WORKDIR</link></glossterm>
<filename class="directory">/packages-split/</filename>.
</para>
</section>
</section>
<section id='structure-meta'>
<title><filename class="directory">meta/</filename> - The Metadata</title>
<para>
As mentioned previously, this is the core of Poky. It has several
important subdivisions:
</para>
<section id='structure-meta-classes'>
<title><filename class="directory">meta/classes/</filename></title>
<para>
Contains the <filename class="extension">*.bbclass</filename> files. Class
files are used to abstract common code allowing it to be reused by multiple
packages. The <filename>base.bbclass</filename> file is inherited by every
package. Examples of other important classes are
<filename>autotools.bbclass</filename> that in theory allows any
Autotool-enabled package to work with Poky with minimal effort, or
<filename>kernel.bbclass</filename> that contains common code and functions
for working with the linux kernel. Functions like image generation or
packaging also have their specific class files (<filename>image.bbclass
</filename>, <filename>rootfs_*.bbclass</filename> and
<filename>package*.bbclass</filename>).
</para>
</section>
<section id='structure-meta-conf'>
<title><filename class="directory">meta/conf/</filename></title>
<para>
This is the core set of configuration files which start from
<filename>bitbake.conf</filename> and from which all other configuration
files are included (see the includes at the end of the file, even
<filename>local.conf</filename> is loaded from there!). While
<filename>bitbake.conf</filename> sets up the defaults, these can often be
overridden by user (<filename>local.conf</filename>), machine or
distribution configuration files.
</para>
</section>
<section id='structure-meta-conf-machine'>
<title><filename class="directory">meta/conf/machine/</filename></title>
<para>
Contains all the machine configuration files. If you set MACHINE="spitz", the
end result is Poky looking for a <filename>spitz.conf</filename> file in this directory. The includes
directory contains various data common to multiple machines. If you want to add
support for a new machine to Poky, this is the directory to look in.
</para>
</section>
<section id='structure-meta-conf-distro'>
<title><filename class="directory">meta/conf/distro/</filename></title>
<para>
Any distribution specific configuration is controlled from here. OpenEmbedded
supports multiple distributions of which Poky is one. Poky only contains the
Poky distribution so poky.conf is the main file here. This includes the
versions and SRCDATES for applications which are configured here. An example of
an alternative configuration is poky-bleeding.conf although this mainly inherits
its configuration from Poky itself.
</para>
</section>
<section id='structure-meta-recipes-bsp'>
<title><filename class="directory">meta/recipes-bsp/</filename></title>
<para>
Anything linking to specific hardware or hardware configuration information
are placed here, such as uboot, grub, etc.
</para>
</section>
<section id='structure-meta-recipes-connectivity'>
<title><filename class="directory">meta/recipes-connectivity/</filename></title>
<para>
Libraries and applications related to communication with other devices
</para>
</section>
<section id='structure-meta-recipes-core'>
<title><filename class="directory">meta/recipes-core/</filename></title>
<para>
What's needed to build a basic working Linux image including commonly used dependencies
</para>
</section>
<section id='structure-meta-recipes-devtools'>
<title><filename class="directory">meta/recipes-devtools/</filename></title>
<para>
Tools primarily used by the build system (but can also be used on targets)
</para>
</section>
<section id='structure-meta-recipes-extended'>
<title><filename class="directory">meta/recipes-extended/</filename></title>
<para>
Applications which whilst not essential add features compared to the alternatives in
core. May be needed for full tool functionality or LSB compliance.
</para>
</section>
<section id='structure-meta-recipes-gnome'>
<title><filename class="directory">meta/recipes-gnome/</filename></title>
<para>
All things related to the GTK+ application framework
</para>
</section>
<section id='structure-meta-recipes-graphics'>
<title><filename class="directory">meta/recipes-graphics/</filename></title>
<para>
X and other graphically related system libraries
</para>
</section>
<section id='structure-meta-recipes-kernel'>
<title><filename class="directory">meta/recipes-kernel/</filename></title>
<para>
The kernel and generic applications/libraries with strong kernel dependencies
</para>
</section>
<section id='structure-meta-recipes-multimedia'>
<title><filename class="directory">meta/recipes-multimedia/</filename></title>
<para>
Codecs and support utilties for audio, images and video
</para>
</section>
<section id='structure-meta-recipes-qt'>
<title><filename class="directory">meta/recipes-qt/</filename></title>
<para>
All things related to the QT application framework
</para>
</section>
<section id='structure-meta-recipes-sato'>
<title><filename class="directory">meta/recipes-sato/</filename></title>
<para>
The Sato demo/reference UI/UX, its associated apps and configuration
</para>
</section>
<section id='structure-meta-site'>
<title><filename class="directory">meta/site/</filename></title>
<para>
Certain autoconf test results cannot be determined when cross compiling since it
can't run tests on a live system. This directory therefore contains a list of
cached results for various architectures which is passed to autoconf.
</para>
</section>
</section>
</appendix>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -107,32 +107,23 @@
<glossentry id='var-COMPATIBLE_MACHINE'><glossterm>COMPATIBLE_MACHINE</glossterm>
<glossdef>
<para>A regular expression which evalutates to match the machines the recipe
works with. It stops recipes being run on machines they're incompatible with
which is partciuarly useful with kernels. It also helps to to increase parsing
speed as if its found the current machine is not compatible, further parsing
of the recipe is skipped.</para>
works with. It stops recipes being run on machines they're incompatible with,
which is partciuarly useful with kernels. It also helps to increase parsing
speed as further parsing of the recipe is skipped as if it found the current
machine is not compatible.</para>
</glossdef>
</glossentry>
<glossentry id='var-CONFIG_SITE'><glossterm>CONFIG_SITE</glossterm>
<glossdef>
<para>
Contains a list of files which containing autoconf test results relevant
A list of files which contains autoconf test results relevant
to the current build. This variable is used by the autotools utilities
when running configure.
</para>
</glossdef>
</glossentry>
<glossentry id='var-CVS_TARBALL_STASH'><glossterm>CVS_TARBALL_STASH</glossterm>
<glossdef>
<para>Location to search for
pre-generated tarballs when fetching from remote SCM
repositories (CVS/SVN/GIT)</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id='var-glossary-d'><title>D</title>
@@ -226,7 +217,6 @@
<glossentry id='var-DISTRO_PN_ALIAS'><glossterm>DISTRO_PN_ALIAS</glossterm>
<glossdef>
<para>Alias names of the recipe in various Linux distributions. </para>
<para>See the "meta/package/xorg-app/xset_1.0.4.bb" file for an example</para>
<para>More information in
<link
linkend='usingpoky-configuring-DISTRO_PN_ALIAS'>
@@ -260,6 +250,12 @@
</glossdef>
</glossentry>
<glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
<glossdef>
<para>Additional cmake options</para>
</glossdef>
</glossentry>
<glossentry id='var-EXTRA_OECONF'><glossterm>EXTRA_OECONF</glossterm>
<glossdef>
<para>Additional 'configure' script options</para>
@@ -428,13 +424,13 @@
<glossdef>
<para>Checksums of the license text in the recipe source code.
</para>
<para>This variables tracks changes in license text of the source
code files. If the license text is changed it triggers the build
failure. Which gives developer an oppurtunity to review any
license changes</para>
<para> This is an optional variable now. And the plan is to make
<para>This variable tracks changes in license text of the source
code files. If the license text is changed, it will trigger the build
failure, which gives developer an opportunity to review any
license change</para>
<para> This is an optional variable now, and the plan is to make
it a required variable in the future </para>
<para>See the "meta/package/zlib/zlib_${PV}.bb" file for an example</para>
<para>See "meta/package/zlib/zlib_${PV}.bb" file for an example</para>
<para>More information in <link
linkend='usingpoky-configuring-LIC_FILES_CHKSUM'>
@@ -458,7 +454,7 @@
</glossdef>
</glossentry>
<glossentry id='var-MACHINE_ESSENTIAL_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_RRECOOMENDS</glossterm>
<glossentry id='var-MACHINE_ESSENTIAL_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_RRECOMMENDS</glossterm>
<glossdef>
<para>List of packages required to boot device (usually
additional kernel modules)</para>
@@ -595,7 +591,7 @@
<glossentry id='var-POKYLIBC'><glossterm>POKYLIBC</glossterm>
<glossdef>
<para>Libc implementation selector - glibc or uclibc can be selected.</para>
<para>Libc implementation selector - glibc, eglibc, or uclibc can be selected.</para>
</glossdef>
</glossentry>
@@ -616,9 +612,9 @@
<glossentry id='var-RCONFLICTS'><glossterm>RCONFLICTS</glossterm>
<glossdef>
<para>List of packages which which conflict with this
one. Package will not be installed if they will not
be removed first.</para>
<para>List of packages which conflict with this
one. Package will not be installed if they are not
removed first.</para>
</glossdef>
</glossentry>
@@ -646,7 +642,7 @@
<glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
<glossdef>
<para>List of packages which extend usability of
<para>List of packages which extend usability of the
package. Those packages will be automatically
installed but can be removed by user.</para>
</glossdef>
@@ -703,16 +699,7 @@
<glossdef>
<para>
A list of commands to run within the a shell, used by <glossterm><link
linkend='var-TERMCMDRUN'>TERMCMDRUN</link></glossterm>. It defaults to
<glossterm><link linkend='var-SHELLRCCMD'>SHELLRCCMD</link></glossterm>.
</para>
</glossdef>
</glossentry>
<glossentry id='var-SHELLRCCMD'><glossterm>SHELLRCCMD</glossterm>
<glossdef>
<para>
How to launch a shell, defaults to bash.
linkend='var-TERMCMDRUN'>TERMCMDRUN</link></glossterm>.
</para>
</glossdef>
</glossentry>
@@ -790,6 +777,12 @@
</glossdef>
</glossentry>
<glossentry id='var-SUMMARY'><glossterm>SUMMARY</glossterm>
<glossdef>
<para>Short (72 char suggested) Summary of binary package for packaging sytems such as ipkg, rpm or debian, inherits DESCRIPTION by default</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id='var-glossary-t'><title>T</title>

View File

@@ -108,9 +108,6 @@
<listitem>
<para><glossterm linkend='var-BBINCLUDELOGS'><link linkend='var-BBINCLUDELOGS'>BBINCLUDELOGS</link></glossterm></para>
</listitem>
<listitem>
<para><glossterm linkend='var-CVS_TARBALL_STASH'><link linkend='var-CVS_TARBALL_STASH'>CVS_TARBALL_STASH</link></glossterm></para>
</listitem>
<listitem>
<para><glossterm linkend='var-ENABLE_BINARY_LOCALE_GENERATION'><link linkend='var-ENABLE_BINARY_LOCALE_GENERATION'>ENABLE_BINARY_LOCALE_GENERATION</link></glossterm></para>
</listitem>
@@ -191,6 +188,9 @@
<para><glossterm><link
linkend='var-DISTRO_PN_ALIAS'>DISTRO_PN_ALIAS</link></glossterm></para>
</listitem>
<listitem>
<para><glossterm><link linkend='var-EXTRA_OECMAKE'>EXTRA_OECMAKE</link></glossterm></para>
</listitem>
<listitem>
<para><glossterm><link linkend='var-EXTRA_OECONF'>EXTRA_OECONF</link></glossterm></para>
</listitem>

View File

@@ -19,7 +19,7 @@
<para>
Problems with Poky should be reported in the
<ulink url='http://bugzilla.o-hand.com/'>bug tracker</ulink>.
<ulink url='http://bugzilla.pokylinux.org/'>bug tracker</ulink>.
</para>
</section>
@@ -127,10 +127,10 @@ poky+subscribe &lt;at&gt; openedhand &lt;dot&gt; com
</programlisting>
<para>
A Poky contributions tree (poky-contrib) exists for people to stage
contributions in, for regular contributors. If people desire such
access, please ask on the mailing list. Usually access will be given
to anyone with a proven track record of good patches.
A Poky contributions tree (poky-contrib, git://git.pokylinux.org/poky-contrib.git)
exists for people to stage contributions in, for regular contributors.
If people desire such access, please ask on the mailing list. Usually
access will be given to anyone with a proven track record of good patches.
</para>
</section>

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Some files were not shown because too many files have changed in this diff Show More