file: reinstate 5.04 upgrades with modifications
reinstate the patch since rpm recipe has been upgraded
> commit 21d586b47c
> Author: Qing He <qing.he@intel.com>
> Date: Tue Jul 6 13:19:10 2010 +0800
>
> file: upgrade to version 5.04
>
> from 4.18
>
> changes:
> - remove native-fix.patch and sed line in do_configure_prepend,
> AM_CONDITIONAL(IS_CROSS_COMPILE, ...) works well
> - fix the bug of not packaging ${datadir}/misc/magic.mgc,
> without this file, this utility isn't very useful
> - add zlib as explicit build dependency
>
> Signed-off-by: Qing He <qing.he@intel.com>
new changes:
- string/B is not supported in file 5.04, add an alias to string/W
- '>=' and '<=' was not supported, add an extension for existing
usage
Signed-off-by: Qing He <qing.he@intel.com>
This commit is contained in:
parent
6b039d0bb7
commit
9a60cbcf48
|
@ -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)
|
|
@ -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
|
|
@ -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'
|
|
@ -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"
|
Loading…
Reference in New Issue