diff options
author | Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | 2024-06-12 10:52:14 +0300 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2024-06-12 06:11:47 -0700 |
commit | 3eb7dd257b74b04fe6d513144eb988159fa501a0 (patch) | |
tree | 9fe05492228afc354cafc998b41b09b486c1ec80 /meta-oe/recipes-support | |
parent | a5ec07e2e822f4ba7fcda99a96c6c31fb194b0db (diff) | |
download | meta-openembedded-3eb7dd257b74b04fe6d513144eb988159fa501a0.tar.gz |
cabextract: add utility to extract Microsft cabinet files
WoA firmware, fonts and some other useful files are being distributed as
a Microsoft cabinet files. Add recipes for the cabextract utility, which
is used to extract such files.
Cabextract can either use a bundled source tree for libmspack library or
an externally provided library. Package the library separately in order
to be able to share it with the meta-security layer.
Cc: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-support')
3 files changed, 78 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/cabextract/cabextract/fix-fnmatch.patch b/meta-oe/recipes-support/cabextract/cabextract/fix-fnmatch.patch new file mode 100644 index 000000000..bd486283b --- /dev/null +++ b/meta-oe/recipes-support/cabextract/cabextract/fix-fnmatch.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | From - Mon Jun 11 00:00:00 2024 | ||
2 | From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | ||
3 | Subject: [PATCH] Don't play with fnmatch.c replacement | ||
4 | |||
5 | Currently fnmatch.c, even if it is selected, conditionally disables compilation | ||
6 | of fnmatch() funciton even though the rest of the code expects to get it (e.g. | ||
7 | because Autoconf didn't detect the working implementation and enabled fnmatch.c | ||
8 | to replace it). Drop the extra conditionals, to fix Autoconf magic. | ||
9 | |||
10 | Observed error: | ||
11 | |||
12 | ld: src/cabextract.o: in function `process_cabinet': | ||
13 | /usr/src/debug/cabextract/1.11/src/cabextract.c:499:(.text.startup+0xf1c): undefined reference to `rpl_fnmatch' | ||
14 | collect2: error: ld returned 1 exit status | ||
15 | |||
16 | Upstream-Status: Submitted [https://github.com/kyz/libmspack/pull/51] | ||
17 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | ||
18 | |||
19 | Index: cabextract-1.11/fnmatch.c | ||
20 | =================================================================== | ||
21 | --- cabextract-1.11.orig/fnmatch.c | ||
22 | +++ cabextract-1.11/fnmatch.c | ||
23 | @@ -49,11 +49,6 @@ static const char rcsid[] = | ||
24 | it is simpler to just do this in the source for each such file. | ||
25 | */ | ||
26 | |||
27 | -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) | ||
28 | - | ||
29 | -#if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS) | ||
30 | -#endif | ||
31 | - | ||
32 | /* Match STRING against the filename pattern PATTERN, returning zero if | ||
33 | it matches, nonzero if not. */ | ||
34 | int | ||
35 | @@ -216,5 +211,3 @@ int flags; | ||
36 | |||
37 | return FNM_NOMATCH; | ||
38 | } | ||
39 | - | ||
40 | -#endif /* _LIBC or not __GNU_LIBRARY__. */ | ||
diff --git a/meta-oe/recipes-support/cabextract/cabextract_1.11.bb b/meta-oe/recipes-support/cabextract/cabextract_1.11.bb new file mode 100644 index 000000000..0f06489ca --- /dev/null +++ b/meta-oe/recipes-support/cabextract/cabextract_1.11.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "Software for extracting Microsoft cabinet files" | ||
2 | DESCRIPTION = "tool for extracting Microsoft cabinet files" | ||
3 | HOMEPAGE = "http://www.cabextract.org.uk/" | ||
4 | SECTION = "console/utils" | ||
5 | |||
6 | LICENSE = "GPL-3.0-or-later" | ||
7 | LIC_FILES_CHKSUM = "file://src/cabextract.c;beginline=4;endline=11;md5=b0a10c6d3843f262114e7ecf91fc7e78" | ||
8 | |||
9 | SRC_URI = "\ | ||
10 | https://www.cabextract.org.uk/cabextract-${PV}.tar.gz \ | ||
11 | file://fix-fnmatch.patch \ | ||
12 | " | ||
13 | |||
14 | SRC_URI[sha256sum] = "b5546db1155e4c718ff3d4b278573604f30dd64c3c5bfd4657cd089b823a3ac6" | ||
15 | |||
16 | DEPENDS = "libmspack" | ||
17 | |||
18 | EXTRA_OECONF = "--with-external-libmspack" | ||
19 | |||
20 | inherit autotools pkgconfig | ||
21 | |||
22 | BBCLASSEXTEND += "native nativesdk" | ||
diff --git a/meta-oe/recipes-support/cabextract/libmspack_0.11alpha.bb b/meta-oe/recipes-support/cabextract/libmspack_0.11alpha.bb new file mode 100644 index 000000000..169a5f271 --- /dev/null +++ b/meta-oe/recipes-support/cabextract/libmspack_0.11alpha.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "A library for Microsoft compression formats" | ||
2 | DESCRIPTION = "The library provides compressors and decompressors,\ | ||
3 | archivers and dearchivers for Microsoft compression formats: CAB, CHM, WIM,\ | ||
4 | LIT, HLP, KWAJ and SZDD." | ||
5 | HOMEPAGE = "http://www.cabextract.org.uk/libmspack/" | ||
6 | SECTION = "lib" | ||
7 | LICENSE = "LGPL-2.1-only" | ||
8 | |||
9 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" | ||
10 | |||
11 | SRC_URI = "https://www.cabextract.org.uk/libmspack/libmspack-${PV}.tar.gz" | ||
12 | SRC_URI[sha256sum] = "70dd1fb2f0aecc36791b71a1e1840e62173079eadaa081192d1c323a0eeea21b" | ||
13 | |||
14 | inherit autotools | ||
15 | |||
16 | BBCLASSEXTEND += "native nativesdk" | ||