]> code.ossystems Code Review - openembedded-core.git/commitdiff
file: reinstate 5.04 upgrades with modifications
authorQing He <qing.he@intel.com>
Tue, 17 Aug 2010 02:58:15 +0000 (10:58 +0800)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 27 Aug 2010 12:04:38 +0000 (13:04 +0100)
reinstate the patch since rpm recipe has been upgraded

> commit 21d586b47c8c5338913c5e8ca2ee604409cc57a0
> 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>
meta/packages/file/file/ge-le.patch [new file with mode: 0644]
meta/packages/file/file/native-fix.diff [deleted file]
meta/packages/file/file/stringb-compat.patch [new file with mode: 0644]
meta/packages/file/file_5.04.bb [moved from meta/packages/file/file_4.18.bb with 64% similarity]

diff --git a/meta/packages/file/file/ge-le.patch b/meta/packages/file/file/ge-le.patch
new file mode 100644 (file)
index 0000000..7b7d8b6
--- /dev/null
@@ -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 (file)
index d17215a..0000000
+++ /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 (file)
index 0000000..055e43e
--- /dev/null
@@ -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'
similarity index 64%
rename from meta/packages/file/file_4.18.bb
rename to meta/packages/file/file_5.04.bb
index 4c8e64c308f0d79859ec587b950f04f5cf70d536..afc08162d4959dff222230ffa492a7642d13cf30 100644 (file)
@@ -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"