Kevin Tian [Sun, 30 May 2010 11:14:24 +0000 (19:14 +0800)]
utility-tasks.bbclass: automatic upstream version check
Automatic upstream version check can be triggered by "bitbake xxx -c checkpkg".
The rationale behind is to find a automatic way for version comparison between
current in-use one and upstream progress. The tricky thing is how to find out
useful version string from mass diverse information. Fortunately now it mostly
work for wget based protocol, except some sites (e.g. sourceforge) not providing
a directory service. Repo (git/svn/cvs) based protocols are handled in a very
simple manner, by always tagging as update required. This will be further
improved later. Use 'world' target to retrieve a full version check for all
active recipes.
Along with version check, other package information is also collected from
existing fields in .bb file
Joshua Lock [Wed, 2 Jun 2010 11:04:37 +0000 (12:04 +0100)]
e2fsprogs: add util-linux to depends
e2fsprogs requires libuuid to build and we have disabled its built in version
in favour of the one in util-linux, therefore we need util-linux in the DEPENDS
Nitin A Kamble [Thu, 27 May 2010 19:18:23 +0000 (12:18 -0700)]
do_distro_check: Recipe exists in other distros?
This adds a new task (distro_check) for each recipe.
The task generates the source package list for Fedora OpenSuSE
Ubuntu Debian & Mandriva Linux distros.
As one recipe or source package can generate multiple target packages
the recipe name is compared with the source package name list of LInux
distributions.
Thread locking is used to avoid multiple threads racing for the
package list update.
Then the recipe name (PN) is checked if it exists in the package
list of distros. And if the DISTRO_PN_ALIAS then it is used to copmare
pacakge_name instead of the PN variable. Just for example the
DISTRO_PN_ALIAS can be defined in the recipe (.bb) files like this
Richard Purdie [Tue, 1 Jun 2010 21:13:35 +0000 (22:13 +0100)]
e2fsprogs: Upgrade 1.41.5 -> 1.45.12
* The no-hardlinks patch is no longer required
* There was an autoconf macro issue which required a new patch (details in patch)
* libuuid was disabled, this should be provided by util-linux on modern systems
* Not providing libuuid is useful for the -native tools as it stops library symbol
confusion with those from the host system.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Joshua Lock [Tue, 1 Jun 2010 13:24:13 +0000 (14:24 +0100)]
patch.bbclass: Merge patch enhancements from OE by Chris Larson
Chris made some interesting changes to the patch handling in OE. Firstly the
patch and pnum parameters have been renamed, to better reflect their function,
to apply and striplevel. The apply parameter now takes either yes or no as its
value.
Therefore a patch line would be changed from:
file://some.patch;patch=1;pnum=2
to:
file://some.patch;apply=yes;striplevel=2
Secondly the apply parameter is inferred if not defined. Entries in SRC_URI
with diff or patch filename extensions will be automatically applied as patches
if the apply parameter is not set to no (or an unknown value).
Note: We have disabled the warnings when using the old style parameters for now
Joshua Lock [Fri, 28 May 2010 09:28:32 +0000 (10:28 +0100)]
qemu: add some extra ldflags to make it link succesfully
qemu-native was failing to link on my 64bit Fedora 13 machine with this error:
| /usr/bin/ld: libqemu.a(helper_opengl.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
| /usr/bin/ld: note: 'dlsym@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line
| /lib64/libdl.so.2: could not read symbols: Invalid operation
So I did as the linker told me and added -ldl to the linker flags
Joshua Lock [Fri, 28 May 2010 08:13:03 +0000 (09:13 +0100)]
qemu: reduce duplication, use an inc file and share common patches
There's no need to carry around two copies of the same patches for qemu-git and
qemu-0.12 so drop the qemu-git directory and update the git recipe to use the
qemu-0.12 directory for patches.
Move common code from the two recipes to an inc file.
Joshua Lock [Thu, 20 May 2010 15:09:39 +0000 (16:09 +0100)]
kernel.bbclass: tidy up staging of headers
The changes merged from upstream used the ASMDIR variable even when it might
not have been set. These changes may be incorrect but at the very least I can
now build a QEMU image (including v86d) with the 2.6.33 kernel now.
Joshua Lock [Fri, 14 May 2010 15:02:20 +0000 (16:02 +0100)]
Move all QEMU machines to use a common kernel recipe set and version
The different kernel recipes encapsulate functionality groups for machines,
therefore it makes sense to have all the QEMU machines using the same kernel
recipe.
Switch the QEMU machines to default to the "linux" recipes for their kernel
and bump the latest recipe from linux-2.6.32 to 2.6.33.
Nitin A Kamble [Mon, 17 May 2010 20:47:40 +0000 (13:47 -0700)]
add a new scripts create-pull-request
This is the 1st version of create-pull-request script.
Using specified local commit-id or branch-name it
generates a short description of the changes;
and using poky-contrib branch-name it generates the
URL where these changes are already pushed
and are available for review and git-pull.
I prepared this script as per the input from Richard Purdie.
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Joshua Lock [Thu, 13 May 2010 15:55:26 +0000 (16:55 +0100)]
linux: Ensure we have buildable kernel recipes for each machine
Fix various kernels to build with our toolchain, this includes well known fixes
for:
* sumversion.c: compilation failing with a 'PATH_MAX' undeclared (fixed by
adding limits.h to sumversions includes
* a patch taken from oe.dev to stop GCC >= 4.3 from optimizing a loop which
causes compilation to fail
* Fixing the KERNEL_OUTPUT for mx31 and nokia800 kernel recipes
Nitin A Kamble [Wed, 12 May 2010 17:54:05 +0000 (10:54 -0700)]
License Checking: convert an error into warning
If license file md5 information (LIC_FILES_CHKSUMS variable) is
missing in the recipe then just throw a warning instead of the build
failure.
Once enough recipes' LIC_FILES_CHKSUMS are filled then this warning
will be reverted back to the the fetal error.
If LIC_FILES_CHKSUMS field is present but invalid then the it still
causes a fetal build error.
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Nitin A Kamble [Tue, 11 May 2010 23:25:39 +0000 (16:25 -0700)]
License Change checking:
Added a new variable in recipe : LIC_FILES_CHKSUM
It is a required field for every recipe.
It describes license text location in the source files. And also stores
md5sum of that license text. Any change in this license text triggers build
error. Which enables developer to review any changes in the license and
update the license fields in the recipe accordingly.
Cross is no longer required so can go away, we now install cross packages into
the native sysroot and use them from there.
This patch includes updates to classes and some recipes which reference
CROSS_DIR. Others still need fixing an image can be built and run with this
patch applied.
Move the functionality into autotools and ensure all our Poky recipes are no
longer using it.
Keep the autools_stage class around for OE compatability but just have it
inherit autools.
scripts/pstage-scanner: new script to sanity test the contents of pstage
Currently the script will scan all packages in the pstage directory and log
packages which contain destinations outside of the native sysroot.
The script currently ignores pkgdata, stamps and deploy but does trigger the
work dir for packages with a package-split file, this may well be a false
positive.
The generated path we create for the binaries RPATH can have a lot of directory
separators in. Use os.path.normpath() to tidy it up and only include the
required directory separators.
This patch is purely to appease my personal sense of niceness...
Move STAGING_BINDIR_CROSS into target sysroot, instead of native
Cross scripts now live in sysroot/$arch-distro-os/crossscripts, this conveys
that they are no longer native system dependant and emphasises their purpose.
Bump the staging ABI and implement a simple migration from ABI 3 to ABI 4.
The packages architecture field is incorrect, this patch changes it to:
native - build machine architecture
cross - build and target machine architectures
target - target machine architecture