summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2015-10-16 23:02:26 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-27 07:24:29 +0000
commit698c3deebe21906d8c8470a735fcb72d543b0ccf (patch)
tree11bc7a917f530289793b865d71c049204df45ab3
parent83a2bde15d79432c16cb03e9098bd0cd9cab3b43 (diff)
downloadpoky-698c3deebe21906d8c8470a735fcb72d543b0ccf.tar.gz
file: don't replace host file when built natively
To avoid races over the file binaries being replaced mid-build we made file-native an assume-provided binary and check for it at startup, but target file still needs a native file binary of the same version to compile the magic data. The least invasive way of doing this is to build a native file don't put it on PATH, and tell the target build where to find the native binary. We do however want the native libmagic to be installed normally (as for example rpm and subversion need it) so we can't use NATIVE_PACKAGE_PATH_SUFFIX as that change libdir. [ YOCTO #8144 ] (From OE-Core rev: d48c0191871ce6b6fbf17d89b8f9d2750b64d671) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/file/file/host-file.patch32
-rw-r--r--meta/recipes-devtools/file/file_5.24.bb10
2 files changed, 41 insertions, 1 deletions
diff --git a/meta/recipes-devtools/file/file/host-file.patch b/meta/recipes-devtools/file/file/host-file.patch
new file mode 100644
index 0000000000..a7efbdcbcc
--- /dev/null
+++ b/meta/recipes-devtools/file/file/host-file.patch
@@ -0,0 +1,32 @@
1Upstream-Status: Submitted (http://bugs.gw.com/view.php?id=485)
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From 3cde199d03b39632361c275cd30fa0612a03138b Mon Sep 17 00:00:00 2001
5From: Ross Burton <ross.burton@intel.com>
6Date: Mon, 19 Oct 2015 10:30:57 +0100
7Subject: [PATCH 2/2] When using the host file, respect FILE_COMPILE
8
9If we're cross-compiling and not using the file binary that was just built,
10execute the binary that we've been told to use (via FILE_COMPILE) when checking
11the version instead of assuming that "file" is correct as the actual compile
12uses FILE_COMPILE so different binaries may be used.
13---
14 magic/Makefile.am | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/magic/Makefile.am b/magic/Makefile.am
18index 89ac844..67067fe 100644
19--- a/magic/Makefile.am
20+++ b/magic/Makefile.am
21@@ -293,7 +293,7 @@ ${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP)
22 @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \
23 echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \
24 else \
25- v=$$(file --version | sed -e s/file-// -e q); \
26+ v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \
27 if [ "$$v" != "${PACKAGE_VERSION}" ]; then \
28 echo "Cannot use the installed version of file ($$v) to"; \
29 echo "cross-compile file ${PACKAGE_VERSION}"; \
30--
312.1.4
32
diff --git a/meta/recipes-devtools/file/file_5.24.bb b/meta/recipes-devtools/file/file_5.24.bb
index 08b95d7b61..d04f1218a9 100644
--- a/meta/recipes-devtools/file/file_5.24.bb
+++ b/meta/recipes-devtools/file/file_5.24.bb
@@ -8,12 +8,13 @@ SECTION = "console/utils"
8LICENSE = "BSD" 8LICENSE = "BSD"
9LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188" 9LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188"
10 10
11DEPENDS = "zlib file-native" 11DEPENDS = "zlib file-replacement-native"
12DEPENDS_class-native = "zlib-native" 12DEPENDS_class-native = "zlib-native"
13 13
14SRC_URI = "git://github.com/file/file.git \ 14SRC_URI = "git://github.com/file/file.git \
15 file://debian-742262.patch \ 15 file://debian-742262.patch \
16 file://0001-Add-P-prompt-into-Usage-info.patch \ 16 file://0001-Add-P-prompt-into-Usage-info.patch \
17 file://host-file.patch \
17 " 18 "
18 19
19SRCREV = "3c0874be4d3232d672b20f513451a39cfd7c585a" 20SRCREV = "3c0874be4d3232d672b20f513451a39cfd7c585a"
@@ -21,6 +22,9 @@ S = "${WORKDIR}/git"
21 22
22inherit autotools 23inherit autotools
23 24
25EXTRA_OEMAKE_append_class-target = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
26EXTRA_OEMAKE_append_class-nativesdk = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
27
24FILES_${PN} += "${datadir}/misc/*.mgc" 28FILES_${PN} += "${datadir}/misc/*.mgc"
25 29
26do_install_append_class-native() { 30do_install_append_class-native() {
@@ -34,3 +38,7 @@ do_install_append_class-nativesdk() {
34} 38}
35 39
36BBCLASSEXTEND = "native nativesdk" 40BBCLASSEXTEND = "native nativesdk"
41PROVIDES_append_class-native = " file-replacement-native"
42# Don't use NATIVE_PACKAGE_PATH_SUFFIX as that hides libmagic from anyone who
43# depends on file-replacement-native.
44bindir_append_class-native = "/file-native"