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 + +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 + +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 similarity index 64% rename from meta/packages/file/file_4.18.bb rename to 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"