summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2024-06-12 10:52:14 +0300
committerKhem Raj <raj.khem@gmail.com>2024-06-12 06:11:47 -0700
commit3eb7dd257b74b04fe6d513144eb988159fa501a0 (patch)
tree9fe05492228afc354cafc998b41b09b486c1ec80 /meta-oe/recipes-support
parenta5ec07e2e822f4ba7fcda99a96c6c31fb194b0db (diff)
downloadmeta-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')
-rw-r--r--meta-oe/recipes-support/cabextract/cabextract/fix-fnmatch.patch40
-rw-r--r--meta-oe/recipes-support/cabextract/cabextract_1.11.bb22
-rw-r--r--meta-oe/recipes-support/cabextract/libmspack_0.11alpha.bb16
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 @@
1From - Mon Jun 11 00:00:00 2024
2From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
3Subject: [PATCH] Don't play with fnmatch.c replacement
4
5Currently fnmatch.c, even if it is selected, conditionally disables compilation
6of fnmatch() funciton even though the rest of the code expects to get it (e.g.
7because Autoconf didn't detect the working implementation and enabled fnmatch.c
8to replace it). Drop the extra conditionals, to fix Autoconf magic.
9
10Observed error:
11
12ld: 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'
14collect2: error: ld returned 1 exit status
15
16Upstream-Status: Submitted [https://github.com/kyz/libmspack/pull/51]
17Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
18
19Index: 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 @@
1SUMMARY = "Software for extracting Microsoft cabinet files"
2DESCRIPTION = "tool for extracting Microsoft cabinet files"
3HOMEPAGE = "http://www.cabextract.org.uk/"
4SECTION = "console/utils"
5
6LICENSE = "GPL-3.0-or-later"
7LIC_FILES_CHKSUM = "file://src/cabextract.c;beginline=4;endline=11;md5=b0a10c6d3843f262114e7ecf91fc7e78"
8
9SRC_URI = "\
10 https://www.cabextract.org.uk/cabextract-${PV}.tar.gz \
11 file://fix-fnmatch.patch \
12"
13
14SRC_URI[sha256sum] = "b5546db1155e4c718ff3d4b278573604f30dd64c3c5bfd4657cd089b823a3ac6"
15
16DEPENDS = "libmspack"
17
18EXTRA_OECONF = "--with-external-libmspack"
19
20inherit autotools pkgconfig
21
22BBCLASSEXTEND += "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 @@
1SUMMARY = "A library for Microsoft compression formats"
2DESCRIPTION = "The library provides compressors and decompressors,\
3archivers and dearchivers for Microsoft compression formats: CAB, CHM, WIM,\
4LIT, HLP, KWAJ and SZDD."
5HOMEPAGE = "http://www.cabextract.org.uk/libmspack/"
6SECTION = "lib"
7LICENSE = "LGPL-2.1-only"
8
9LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"
10
11SRC_URI = "https://www.cabextract.org.uk/libmspack/libmspack-${PV}.tar.gz"
12SRC_URI[sha256sum] = "70dd1fb2f0aecc36791b71a1e1840e62173079eadaa081192d1c323a0eeea21b"
13
14inherit autotools
15
16BBCLASSEXTEND += "native nativesdk"