summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/packages/file/file/ge-le.patch70
-rw-r--r--meta/packages/file/file/native-fix.diff13
-rw-r--r--meta/packages/file/file/stringb-compat.patch29
-rw-r--r--meta/packages/file/file_5.04.bb (renamed from meta/packages/file/file_4.18.bb)12
4 files changed, 107 insertions, 17 deletions
diff --git a/meta/packages/file/file/ge-le.patch b/meta/packages/file/file/ge-le.patch
new file mode 100644
index 0000000000..7b7d8b60a4
--- /dev/null
+++ b/meta/packages/file/file/ge-le.patch
@@ -0,0 +1,70 @@
+`>=' and `<=' was silently ignored in previous version,
+but causes an warning in file 5.04. Add support for these
+two operators as a feature extension, however, users should
+not rely on them.
+
+8/17/2010 - created by Qing He <qing.he@intel.com>
+
+diff --git a/src/apprentice.c b/src/apprentice.c
+index 3d4c3cf..a2b86ed 100644
+--- a/src/apprentice.c
++++ b/src/apprentice.c
+@@ -1396,11 +1396,10 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
+ m->reln = *l;
+ ++l;
+ if (*l == '=') {
+- if (ms->flags & MAGIC_CHECK) {
+- file_magwarn(ms, "%c= not supported",
+- m->reln);
+- return -1;
+- }
++ if (m->reln == '>')
++ m->reln = 'g';
++ else if (m->reln == '<')
++ m->reln = 'l';
+ ++l;
+ }
+ break;
+diff --git a/src/softmagic.c b/src/softmagic.c
+index d8a5675..1648e43 100644
+--- a/src/softmagic.c
++++ b/src/softmagic.c
+@@ -1955,6 +1955,38 @@ magiccheck(struct magic_set *ms, struct magic *m)
+ }
+ break;
+
++ case 'g':
++ if (m->flag & UNSIGNED) {
++ matched = v >= l;
++ if ((ms->flags & MAGIC_DEBUG) != 0)
++ (void) fprintf(stderr, "%llu >= %llu = %d\n",
++ (unsigned long long)v,
++ (unsigned long long)l, matched);
++ }
++ else {
++ matched = (int64_t) v >= (int64_t) l;
++ if ((ms->flags & MAGIC_DEBUG) != 0)
++ (void) fprintf(stderr, "%lld >= %lld = %d\n",
++ (long long)v, (long long)l, matched);
++ }
++ break;
++
++ case 'l':
++ if (m->flag & UNSIGNED) {
++ matched = v <= l;
++ if ((ms->flags & MAGIC_DEBUG) != 0)
++ (void) fprintf(stderr, "%llu <= %llu = %d\n",
++ (unsigned long long)v,
++ (unsigned long long)l, matched);
++ }
++ else {
++ matched = (int64_t) v <= (int64_t) l;
++ if ((ms->flags & MAGIC_DEBUG) != 0)
++ (void) fprintf(stderr, "%lld <= %lld = %d\n",
++ (long long)v, (long long)l, matched);
++ }
++ break;
++
+ case '&':
+ matched = (v & l) == l;
+ if ((ms->flags & MAGIC_DEBUG) != 0)
diff --git a/meta/packages/file/file/native-fix.diff b/meta/packages/file/file/native-fix.diff
deleted file mode 100644
index d17215a1b4..0000000000
--- a/meta/packages/file/file/native-fix.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: file-4.16/magic/Makefile.am
-===================================================================
---- file-4.16.orig/magic/Makefile.am 2005-08-18 17:20:49.000000000 +0200
-+++ file-4.16/magic/Makefile.am 2006-03-08 17:01:13.000000000 +0100
-@@ -18,7 +18,7 @@
- if IS_CROSS_COMPILE
- FILE_COMPILE = file
- else
--FILE_COMPILE = $(top_builddir)/src/file
-+FILE_COMPILE = ../src/file
- endif
-
- magic.mgc: magic
diff --git a/meta/packages/file/file/stringb-compat.patch b/meta/packages/file/file/stringb-compat.patch
new file mode 100644
index 0000000000..055e43e30a
--- /dev/null
+++ b/meta/packages/file/file/stringb-compat.patch
@@ -0,0 +1,29 @@
+`B' in file 4.x has the same meaning with `W' in file 5,
+let `B' be an alias of `W'.
+
+8/17/2010 - created by Qing He <qing.he@intel.com>
+
+diff --git a/src/apprentice.c b/src/apprentice.c
+index 58826c3..3d4c3cf 100644
+--- a/src/apprentice.c
++++ b/src/apprentice.c
+@@ -1340,6 +1340,7 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
+ "zero range");
+ l = t - 1;
+ break;
++ case CHAR_COMPACT_BLANK:
+ case CHAR_COMPACT_WHITESPACE:
+ m->str_flags |= STRING_COMPACT_WHITESPACE;
+ break;
+diff --git a/src/file.h b/src/file.h
+index c07f2d4..42cf416 100644
+--- a/src/file.h
++++ b/src/file.h
+@@ -282,6 +282,7 @@ struct magic {
+ #define STRING_TEXTTEST BIT(5)
+ #define STRING_BINTEST BIT(6)
+ #define CHAR_COMPACT_WHITESPACE 'W'
++#define CHAR_COMPACT_BLANK 'B'
+ #define CHAR_COMPACT_OPTIONAL_WHITESPACE 'w'
+ #define CHAR_IGNORE_LOWERCASE 'c'
+ #define CHAR_IGNORE_UPPERCASE 'C'
diff --git a/meta/packages/file/file_4.18.bb b/meta/packages/file/file_5.04.bb
index 4c8e64c308..afc08162d4 100644
--- a/meta/packages/file/file_4.18.bb
+++ b/meta/packages/file/file_5.04.bb
@@ -5,21 +5,25 @@ SECTION = "console/utils"
# two clause BSD
LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188"
-DEPENDS = "file-native"
-DEPENDS_virtclass-native = ""
+DEPENDS = "zlib file-native"
+DEPENDS_virtclass-native = "zlib-native"
+PR = "r1"
SRC_URI = "ftp://ftp.astron.com/pub/file/file-${PV}.tar.gz \
+ file://stringb-compat.patch \
+ file://ge-le.patch \
file://dump \
file://filesystems"
-SRC_URI_append_virtclass-native = " file://native-fix.diff;patch=1"
inherit autotools
do_configure_prepend() {
- sed -i -e 's,$(top_builddir)/src/file,file,' ${S}/magic/Makefile.am
cp ${WORKDIR}/dump ${S}/magic/Magdir/
cp ${WORKDIR}/filesystems ${S}/magic/Magdir/
}
+FILES_${PN} += "${datadir}/misc/*.mgc"
+
BBCLASSEXTEND = "native"