Files
poky/meta/recipes-devtools/file/file_5.44.bb
Oleksandr Hnatiuk e4890e2276 file: return wrapper to fix builds when file is in buildtools-tarball
Wrapper that adds proper path to magic file was removed in
47db876d09d9a4394048579c21d0b394450ce681 in favor of
environment-setup.d/file.sh which now contains `MAGIC` environment variable.
This breaks builds that rely on external buildtools with `file` included in
buildtools-tarball (e.g. via TOOLCHAIN_HOST_TASK) because do_populate_sysroot
task invokes `file` via `subprocess.check_output` (in is_elf function) and
doesn't use variables from files in environment-setup.d. To address this use
case, we need to preserve the wrapper, but also have
environment-setup.d/file.sh for the purposes described in
47db876d09d9a4394048579c21d0b394450ce681.

(From OE-Core rev: e76b059cf4ba9a79150032d68d012b233dd79a65)

Signed-off-by: Oleksandr Hnatiuk <ohnatiuk@cisco.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-07-25 15:27:33 +01:00

60 lines
2.1 KiB
BlitzBasic

SUMMARY = "File classification tool"
DESCRIPTION = "File attempts to classify files depending \
on their contents and prints a description if a match is found."
HOMEPAGE = "http://www.darwinsys.com/file/"
SECTION = "console/utils"
# two clause BSD
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdda1b"
DEPENDS = "file-replacement-native"
DEPENDS:class-native = "bzip2-replacement-native"
SRC_URI = "git://github.com/file/file.git;branch=master;protocol=https"
SRCREV = "b92eed41b1bc0739c5c5d70c444e0c574429321b"
S = "${WORKDIR}/git"
inherit autotools update-alternatives
PACKAGECONFIG ??= "bz2 lzma zlib"
PACKAGECONFIG[bz2] = "--enable-bzlib, --disable-bzlib, bzip2"
PACKAGECONFIG[lzma] = "--enable-xzlib, --disable-xzlib, xz"
PACKAGECONFIG[zlib] = "--enable-zlib, --disable-zlib, zlib"
PACKAGECONFIG[zstdlib] = "--enable-zstdlib, --disable-zstdlib, zstd"
PACKAGECONFIG[lzlib] = "--enable-lzlib, --disable-lzlib, lzip"
PACKAGECONFIG[seccomp] = "--enable-libseccomp, --disable-libseccomp, libseccomp"
ALTERNATIVE:${PN} = "file"
ALTERNATIVE_LINK_NAME[file] = "${bindir}/file"
EXTRA_OEMAKE:append:class-target = " -e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
EXTRA_OEMAKE:append:class-nativesdk = " -e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
FILES:${PN} += "${datadir}/misc/*.mgc"
FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/file.sh"
do_compile:append:class-native() {
oe_runmake check
}
do_install:append:class-native() {
create_cmdline_wrapper ${D}/${bindir}/file \
--magic-file ${datadir}/misc/magic.mgc
}
do_install:append:class-nativesdk() {
create_wrapper ${D}/${bindir}/file MAGIC=${datadir}/misc/magic.mgc
mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
cat <<- EOF > ${D}${SDKPATHNATIVE}/environment-setup.d/file.sh
export MAGIC="$OECORE_NATIVE_SYSROOT${datadir}/misc/magic.mgc"
EOF
}
BBCLASSEXTEND = "native nativesdk"
PROVIDES:append:class-native = " file-replacement-native"
# Don't use NATIVE_PACKAGE_PATH_SUFFIX as that hides libmagic from anyone who
# depends on file-replacement-native.
bindir:append:class-native = "/file-native"