Cross scripts now live in sysroot/$arch-distro-os/crossscripts, this conveys
that they are no longer native system dependant and emphasises their purpose.
Bump the staging ABI and implement a simple migration from ABI 3 to ABI 4.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The packages architecture field is incorrect, this patch changes it to:
native - build machine architecture
cross - build and target machine architectures
target - target machine architecture
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The previous patch to do so was badly merged and didn't actually skip all
symlinks, only ones which where not an absolute path...
Signed-off-by: Joshua Lock <josh@linux.intel.com>
If this links to a file created by the package install we already handle it
when we process the sysroot. By ignoring symlinks here we don't cause a build
to fail when the symlink is to somewhere in the host OS.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
It's possible to have files in our sysroot which don't have the write (or in
some cases even the read) bit set. Test for these and if they are not set
temporarily set them so that we can chrpath the binaries.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Amend the default PSTAGE_SCAN_CMD, as used when scanning target packages, to
include binconfig scripts in the results and remove their hardcoded paths.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Make the processing of directories less naive so that it can handle a directory
with children that are directories. We now scan for and process binaries in all
directories below the scanned paths rather than only the top-level directory.
This patch moves the meat of the post-processing into a separate function which
is fed paths, process_dir (). Then when the function finds a subdirectory of
the passed path which is itself a directory it recursively calls itself.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The .so files we ship also have a RPATH encoded so should be post-processed for
a relocatable RPATH too.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Python RDEPENDS are tricksy beasts and the runtime dependencies of Yum aren't
being pulled in for the RPM rootfs so explicitly add them to depends.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
This change, suggested by Chris Larson, ensures that the fix works even if the
definition of CROSS_DIR changes.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
packagedstaging_fastpath() was only copying the contents of CROSS_DIR to
PSTAGE_TMPDIR resulting in the folders contents being packaged and then
installed incorrectly at the top level of CROSS_DIR rather than in HOST_ARCH
specific sub directories.
This patch fixes that issue by copying the directory and its contents rather
than just the directory contents.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Extend the existing libtool hack so that native packages (native, cross, sdk)
have all non-binary files scanned and the STAGING_DIR fixed up.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
This patch removes the hard coded number of parent directory operators ( /..)
placed into the rpath and instead fully dynamically generates the rpath entries
based on the current rpath.
Theoretically this patch means we can now make cross packages relocatable but
this is *not* enabled as chrpath can only set a new rpath of the same length
or shorter than the existing rpath. Due to the amount of parent directory
jumps we need to encode in the rpath this can easily fail when TMPDIR is in a
short namespace (e.g. /usr/poky).
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The initial pass at this class was pretty lame and broke on a lot of native
packages. This rewrite makes the code a lot more dynamic, removing use of hard
coded paths and improving the logic.
The class now runs a chrpath -l over the binary to determine what rpaths are
currently set. It then munges the output and determines relative versions of
each component of the rpath and uses chrpath -r to set them.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The relocatable path will pre-process built binaries in SYSROOT_DESTDIR and
replace any harcoded dynamic link rpaths with relative paths.
Add an inherit of class in native.bbclass to make our native packages
relocatable and tweak the chrpath recipe so that the native package can make
itself relocatable with the just built chrpath binary.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Check the tarball stash on pokylinux.org before hitting the upstream
version control systems. This is friendlier to the upstream repositories than
us hammering their bandwidth.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Add simple support for trying to fetch staging packages from a http, https or
ftp mirror if they do not already exist in PSTAGE_DIR.
As documented in local.conf.sample
"Poky can try and fetch packaged-staging packages from a http, https or ftp
mirror. Set this variable to the root of a pstage directory on a server."
If the PSTAGE_MIRROR variable is not set, or the package cannot be found on
the mirror it will be built as usual.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Rename DEPLOY_DIR_PSTAGE to PSTAGE_DIR and move it outside of deploy.
Do soft assignment of a default variable inside bitbake.conf as
${OEROOT}/tmp/pstage.
Use a separate directory, PSTAGE_WORKDIR, to store transient packaged
staging files such as the stamp files and opkg.conf
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The packaged-staging class already special cases native packages for ensuring
the package is only reused if the path doesn't change.
This patch ensures the special casing is also done for crosssdk packages.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Earlier commit had created a multiline string without
updating the python string quotation (""" for multiline).
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Only run the gettext section of the QA configure sanity check if
the package is not gettext as the gettext tools, shipped with
gettext, use the macro employed in the sanity check.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
The previous gettext check was broken resulting in many false positives.
This improved version works as follows:
* Adds to the existing os.walk() and builds a list of configure.in and
configure.ac files
* Tests whether DEPENDS includes an appropriate gettext
* If not greps the configure files in the list for instances of AM_GNU_GETTEXT
* If if an instance is found we bb.fatal with an appropriate message
Signed-off-by: Joshua Lock <josh@linux.intel.com>
When the package we are checking is a native package we need to check
for gettext-native rather than gettext in the DEPENDS.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
This change makes the purpose of the staging directory more obvious and
the taskname more true to what it now actually does.
The layout version number is increased due to the change in layout
but code to convert existing directories and insert a symlink for
backwards compatibility is included.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Add an option of forcing the new staging mechanism for native packages
that don't use autotools with the NATIVE_INSTALL_WORKS option
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Search and replace on the DEPENDS field can cause problems if
multiple similar names are present in the string so use an
alternative approach.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Remove layout_* variables and replace them with variables specific to the
different classes. The layout variables were only useful for the native/cross
classes and caused more confusion than they solved. They didn't scale to the
sdk class. It now clear a small set of native/cross variables fulfil the needs.
This patch also changes native.bbclass to use "/" as the STAGING_DIR which makes
sense since we're installing binaries into the locations we're compiling them for.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
As we don't provide a mercurial-native package (yet) let's assume the
build machine has it installed and check (sanity.bbclass) if it's the
case.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
gzip reports broken pipe errors with do_unpack on Fedora with
certain builds of gzip and bash. By avoding python's SIGPIPE handler
we can work correctly on these distributions.
Patch based on a patch from the OE-devel mailing list, thanks to
Khem Raj <raj.khem@gmail.com> and Holger Freyther <zecke@selfish.org>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>