* [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED
@ 2015-10-19 10:05 Ross Burton
2015-10-19 10:05 ` [PATCH 2/3] sanity: check that the host has file installed Ross Burton
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Ross Burton @ 2015-10-19 10:05 UTC (permalink / raw)
To: openembedded-core
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta/conf/bitbake.conf | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 9ddd1c0..06971da 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -166,6 +166,7 @@ DATETIME = "${DATE}${TIME}"
ASSUME_PROVIDED = "\
bzip2-native \
chrpath-native \
+ file-native \
git-native \
grep-native \
diffstat-native \
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 2/3] sanity: check that the host has file installed 2015-10-19 10:05 [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Ross Burton @ 2015-10-19 10:05 ` Ross Burton 2015-10-19 12:09 ` Martin Jansa 2015-10-19 10:05 ` [PATCH 3/3] file: don't replace host file when built natively Ross Burton 2015-10-19 15:37 ` [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Burton, Ross 2 siblings, 1 reply; 11+ messages in thread From: Ross Burton @ 2015-10-19 10:05 UTC (permalink / raw) To: openembedded-core Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/classes/sanity.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index 34f8618..a1fed36 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass @@ -3,7 +3,7 @@ # SANITY_REQUIRED_UTILITIES ?= "patch diffstat makeinfo git bzip2 tar \ - gzip gawk chrpath wget cpio perl" + gzip gawk chrpath wget cpio perl filex" def bblayers_conf_file(d): return os.path.join(d.getVar('TOPDIR', True), 'conf/bblayers.conf') -- 2.1.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/3] sanity: check that the host has file installed 2015-10-19 10:05 ` [PATCH 2/3] sanity: check that the host has file installed Ross Burton @ 2015-10-19 12:09 ` Martin Jansa 2015-10-19 12:12 ` Burton, Ross 0 siblings, 1 reply; 11+ messages in thread From: Martin Jansa @ 2015-10-19 12:09 UTC (permalink / raw) To: Ross Burton; +Cc: openembedded-core [-- Attachment #1: Type: text/plain, Size: 1010 bytes --] On Mon, Oct 19, 2015 at 11:05:28AM +0100, Ross Burton wrote: > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > meta/classes/sanity.bbclass | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass > index 34f8618..a1fed36 100644 > --- a/meta/classes/sanity.bbclass > +++ b/meta/classes/sanity.bbclass > @@ -3,7 +3,7 @@ > # > > SANITY_REQUIRED_UTILITIES ?= "patch diffstat makeinfo git bzip2 tar \ > - gzip gawk chrpath wget cpio perl" > + gzip gawk chrpath wget cpio perl filex" file or filex? > > def bblayers_conf_file(d): > return os.path.join(d.getVar('TOPDIR', True), 'conf/bblayers.conf') > -- > 2.1.4 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 188 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/3] sanity: check that the host has file installed 2015-10-19 12:09 ` Martin Jansa @ 2015-10-19 12:12 ` Burton, Ross 2015-10-19 13:34 ` Paul Eggleton 0 siblings, 1 reply; 11+ messages in thread From: Burton, Ross @ 2015-10-19 12:12 UTC (permalink / raw) To: Martin Jansa; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 185 bytes --] On 19 October 2015 at 13:09, Martin Jansa <martin.jansa@gmail.com> wrote: > file or filex? > Well that was embarassing. I wonder how that test change made it into git. Ross [-- Attachment #2: Type: text/html, Size: 573 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/3] sanity: check that the host has file installed 2015-10-19 12:12 ` Burton, Ross @ 2015-10-19 13:34 ` Paul Eggleton 2015-10-19 13:40 ` Burton, Ross 0 siblings, 1 reply; 11+ messages in thread From: Paul Eggleton @ 2015-10-19 13:34 UTC (permalink / raw) To: openembedded-core, Burton, Ross On Monday 19 October 2015 13:12:56 Burton, Ross wrote: > On 19 October 2015 at 13:09, Martin Jansa <martin.jansa@gmail.com> wrote: > > file or filex? > > Well that was embarassing. I wonder how that test change made it into git. Since this test isn't run on every build, it can be broken or unsatisfied and the build will still start. Given how quick this check is and that people have stumbled across the results of the check not having run, I wonder whether that should be changed. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/3] sanity: check that the host has file installed 2015-10-19 13:34 ` Paul Eggleton @ 2015-10-19 13:40 ` Burton, Ross 0 siblings, 0 replies; 11+ messages in thread From: Burton, Ross @ 2015-10-19 13:40 UTC (permalink / raw) To: Paul Eggleton; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 470 bytes --] On 19 October 2015 at 14:34, Paul Eggleton <paul.eggleton@linux.intel.com> wrote: > > Well that was embarassing. I wonder how that test change made it into > git. > > Since this test isn't run on every build, it can be broken or unsatisfied > and > the build will still start. Given how quick this check is and that people > have > stumbled across the results of the check not having run, I wonder whether > that > should be changed. Agreed. Ross [-- Attachment #2: Type: text/html, Size: 854 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/3] file: don't replace host file when built natively 2015-10-19 10:05 [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Ross Burton 2015-10-19 10:05 ` [PATCH 2/3] sanity: check that the host has file installed Ross Burton @ 2015-10-19 10:05 ` Ross Burton 2015-10-19 15:37 ` [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Burton, Ross 2 siblings, 0 replies; 11+ messages in thread From: Ross Burton @ 2015-10-19 10:05 UTC (permalink / raw) To: openembedded-core 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 but use NATIVE_PACKAGE_PATH_SUFFIX to ensure it isn't on PATH, and tell the target build where to find the native binary. To ensure that the host libmagic and the libmagic provided by file-replacement-native don't cause build races, don't install libmagic if building natively. [ YOCTO #8144 ] Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/recipes-devtools/file/file/host-file.patch | 32 ++++++++++++++++++++++++ meta/recipes-devtools/file/file/no-library.patch | 28 +++++++++++++++++++++ meta/recipes-devtools/file/file_5.24.bb | 11 +++++++- 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/file/file/host-file.patch create mode 100644 meta/recipes-devtools/file/file/no-library.patch 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 0000000..a7efbdc --- /dev/null +++ b/meta/recipes-devtools/file/file/host-file.patch @@ -0,0 +1,32 @@ +Upstream-Status: Submitted (http://bugs.gw.com/view.php?id=485) +Signed-off-by: Ross Burton <ross.burton@intel.com> + +From 3cde199d03b39632361c275cd30fa0612a03138b Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Mon, 19 Oct 2015 10:30:57 +0100 +Subject: [PATCH 2/2] When using the host file, respect FILE_COMPILE + +If we're cross-compiling and not using the file binary that was just built, +execute the binary that we've been told to use (via FILE_COMPILE) when checking +the version instead of assuming that "file" is correct as the actual compile +uses FILE_COMPILE so different binaries may be used. +--- + magic/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/magic/Makefile.am b/magic/Makefile.am +index 89ac844..67067fe 100644 +--- a/magic/Makefile.am ++++ b/magic/Makefile.am +@@ -293,7 +293,7 @@ ${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP) + @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ + echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ + else \ +- v=$$(file --version | sed -e s/file-// -e q); \ ++ v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \ + if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ + echo "Cannot use the installed version of file ($$v) to"; \ + echo "cross-compile file ${PACKAGE_VERSION}"; \ +-- +2.1.4 + diff --git a/meta/recipes-devtools/file/file/no-library.patch b/meta/recipes-devtools/file/file/no-library.patch new file mode 100644 index 0000000..f1a26d4 --- /dev/null +++ b/meta/recipes-devtools/file/file/no-library.patch @@ -0,0 +1,28 @@ +We don't build a full file-native binary but rely on the host file binary. +file-replacement-native is only needed to build the target file binary so to +avoid problems with the host libmagic vs file-replacement-native, don't install +libmagic. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@intel.com> + +diff --git a/src/Makefile.am b/src/Makefile.am +index 575899f..052193a 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -1,13 +1,12 @@ + MAGIC = $(pkgdatadir)/magic +-lib_LTLIBRARIES = libmagic.la +-include_HEADERS = magic.h ++noinst_LTLIBRARIES = libmagic.la + + bin_PROGRAMS = file + + AM_CPPFLAGS = -DMAGIC='"$(MAGIC)"' + AM_CFLAGS = $(CFLAG_VISIBILITY) @WARNINGS@ + +-libmagic_la_SOURCES = magic.c apprentice.c softmagic.c ascmagic.c \ ++libmagic_la_SOURCES = magic.c magic.h apprentice.c softmagic.c ascmagic.c \ + encoding.c compress.c is_tar.c readelf.c print.c fsmagic.c \ + funcs.c file.h readelf.h tar.h apptype.c \ + file_opts.h elfclass.h mygetopt.h cdf.c cdf_time.c readcdf.c cdf.h diff --git a/meta/recipes-devtools/file/file_5.24.bb b/meta/recipes-devtools/file/file_5.24.bb index 08b95d7..c1d4578 100644 --- a/meta/recipes-devtools/file/file_5.24.bb +++ b/meta/recipes-devtools/file/file_5.24.bb @@ -8,19 +8,26 @@ SECTION = "console/utils" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188" -DEPENDS = "zlib file-native" +DEPENDS = "zlib file-replacement-native" DEPENDS_class-native = "zlib-native" SRC_URI = "git://github.com/file/file.git \ file://debian-742262.patch \ file://0001-Add-P-prompt-into-Usage-info.patch \ + file://host-file.patch \ " +# file-native is generally assume-provided so don't install the library as this +# is for file-replacement-native. +SRC_URI_append_class-native = "file://no-library.patch" + SRCREV = "3c0874be4d3232d672b20f513451a39cfd7c585a" S = "${WORKDIR}/git" inherit autotools +EXTRA_OEMAKE_append_class-target = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file" + FILES_${PN} += "${datadir}/misc/*.mgc" do_install_append_class-native() { @@ -34,3 +41,5 @@ do_install_append_class-nativesdk() { } BBCLASSEXTEND = "native nativesdk" +PROVIDES_append_class-native = " file-replacement-native" +NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}" -- 2.1.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED 2015-10-19 10:05 [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Ross Burton 2015-10-19 10:05 ` [PATCH 2/3] sanity: check that the host has file installed Ross Burton 2015-10-19 10:05 ` [PATCH 3/3] file: don't replace host file when built natively Ross Burton @ 2015-10-19 15:37 ` Burton, Ross 2015-10-19 16:11 ` Burton, Ross 2 siblings, 1 reply; 11+ messages in thread From: Burton, Ross @ 2015-10-19 15:37 UTC (permalink / raw) To: OE-core [-- Attachment #1: Type: text/plain, Size: 1086 bytes --] So this breaks rpm-native v4, which needs file-native as it links to libmagic. Not sure what to do here. If we install file-native directly into the sysroot we get occasional races on the file binary causing build failures. If we make file-native ASSUME_PROVIDED then rpm (and subversion) change their behaviour depending on the presence of libmagic-dev on the host (well, rpm4 requires libmagic, rpm5 and subversion change their configuration). Thoughts? Ross On 19 October 2015 at 11:05, Ross Burton <ross.burton@intel.com> wrote: > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > meta/conf/bitbake.conf | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index 9ddd1c0..06971da 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -166,6 +166,7 @@ DATETIME = "${DATE}${TIME}" > ASSUME_PROVIDED = "\ > bzip2-native \ > chrpath-native \ > + file-native \ > git-native \ > grep-native \ > diffstat-native \ > -- > 2.1.4 > > [-- Attachment #2: Type: text/html, Size: 1621 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED 2015-10-19 15:37 ` [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Burton, Ross @ 2015-10-19 16:11 ` Burton, Ross 2015-10-19 16:24 ` Richard Purdie 2015-10-19 16:52 ` Alex Franco 0 siblings, 2 replies; 11+ messages in thread From: Burton, Ross @ 2015-10-19 16:11 UTC (permalink / raw) To: OE-core [-- Attachment #1: Type: text/plain, Size: 866 bytes --] On 19 October 2015 at 16:37, Burton, Ross <ross.burton@intel.com> wrote: > Not sure what to do here. If we install file-native directly into the > sysroot we get occasional races on the file binary causing build > failures. If we make file-native ASSUME_PROVIDED then rpm (and subversion) > change their behaviour depending on the presence of libmagic-dev on the > host (well, rpm4 requires libmagic, rpm5 and subversion change their > configuration). > Two proposals: 1) Tell RPM and Subversion to explicitly enable libmagic support so they fail if libmagic-dev isn't installed on the host, and document that libmagic-dev is a build requirement 2) Change file-replacement-native to install libmagic, and add file-replacement-native as a dependency to subversion-native and rpm-native. Does anyone have a strong opinion either way? Ross [-- Attachment #2: Type: text/html, Size: 1377 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED 2015-10-19 16:11 ` Burton, Ross @ 2015-10-19 16:24 ` Richard Purdie 2015-10-19 16:52 ` Alex Franco 1 sibling, 0 replies; 11+ messages in thread From: Richard Purdie @ 2015-10-19 16:24 UTC (permalink / raw) To: Burton, Ross; +Cc: OE-core On Mon, 2015-10-19 at 17:11 +0100, Burton, Ross wrote: > > On 19 October 2015 at 16:37, Burton, Ross <ross.burton@intel.com> > wrote: > Not sure what to do here. If we install file-native directly > into the sysroot we get occasional races on the file binary > causing build failures. If we make file-native > ASSUME_PROVIDED then rpm (and subversion) change their > behaviour depending on the presence of libmagic-dev on the > host (well, rpm4 requires libmagic, rpm5 and subversion change > their configuration). > > > Two proposals: > > > 1) Tell RPM and Subversion to explicitly enable libmagic support so > they fail if libmagic-dev isn't installed on the host, and document > that libmagic-dev is a build requirement > 2) Change file-replacement-native to install libmagic, and add > file-replacement-native as a dependency to subversion-native and > rpm-native. > > Does anyone have a strong opinion either way? I tend to become nervous about -dev requirements so whilst ugly, I'm leaning towards 2) which is what we've done for other similar issues IIRC. Cheers, Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED 2015-10-19 16:11 ` Burton, Ross 2015-10-19 16:24 ` Richard Purdie @ 2015-10-19 16:52 ` Alex Franco 1 sibling, 0 replies; 11+ messages in thread From: Alex Franco @ 2015-10-19 16:52 UTC (permalink / raw) To: openembedded-core [-- Attachment #1: Type: text/plain, Size: 1044 bytes --] #2 seems more ubiquitous Franco On 10/19/2015 11:11 AM, Burton, Ross wrote: > > On 19 October 2015 at 16:37, Burton, Ross <ross.burton@intel.com > <mailto:ross.burton@intel.com>> wrote: > > Not sure what to do here. If we install file-native directly into > the sysroot we get occasional races on the file binary causing > build failures. If we make file-native ASSUME_PROVIDED then rpm > (and subversion) change their behaviour depending on the presence > of libmagic-dev on the host (well, rpm4 requires libmagic, rpm5 > and subversion change their configuration). > > > Two proposals: > > 1) Tell RPM and Subversion to explicitly enable libmagic support so > they fail if libmagic-dev isn't installed on the host, and document > that libmagic-dev is a build requirement > 2) Change file-replacement-native to install libmagic, and add > file-replacement-native as a dependency to subversion-native and > rpm-native. > > Does anyone have a strong opinion either way? > > Ross > > [-- Attachment #2: Type: text/html, Size: 2390 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-10-19 16:51 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-19 10:05 [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Ross Burton 2015-10-19 10:05 ` [PATCH 2/3] sanity: check that the host has file installed Ross Burton 2015-10-19 12:09 ` Martin Jansa 2015-10-19 12:12 ` Burton, Ross 2015-10-19 13:34 ` Paul Eggleton 2015-10-19 13:40 ` Burton, Ross 2015-10-19 10:05 ` [PATCH 3/3] file: don't replace host file when built natively Ross Burton 2015-10-19 15:37 ` [PATCH 1/3] bitbake: add file-native to ASSUME_PROVIDED Burton, Ross 2015-10-19 16:11 ` Burton, Ross 2015-10-19 16:24 ` Richard Purdie 2015-10-19 16:52 ` Alex Franco
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox