SHA256
1
0
forked from pool/file

Accepting request 149700 from Base:System

- Make if build on ppc64, that is re-add the configure check for
  sizeof long long otherwise readelf will fail on ppc64

- Update to file version 5.12
  * Warn about inconsistent continuation levels.
  * Change fsmagic to add a space after it prints.
  * Make getline public so that file can link against it.
    Perhaps it is better to rename it, or hide it differently.
    Fixes builds on platforms that do not provide it.
  * Add SuS d{,1,2,4,8}, u{,1,2,4,8} and document
    what long, int, short, etc is (Guy Harris)
  * add magic_version function and constant
  * Redo memory allocation and de-allocation.
    (prevents double frees on non mmap platforms)
  * Fix bug with name/use having to do with passing
    found state from the parent to the child and back.
  * Only print elf capabilities for archs we know (Jan Kaluza)
  * Add "name" and "use" file types in order to look
    inside mach-o files.
  * add string/T (Jan Kaluza)
  * search for $HOME/.magic.mgc if it is there first
  * fix reads from a pipe, and preserve errno
  * use ctime_r, asctime_r
  * Fixes for indirect offsets to handle apple disk formats
- Also includes our extfs-minix patch

OBS-URL: https://build.opensuse.org/request/show/149700
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/file?expand=0&rev=67
This commit is contained in:
Stephan Kulow 2013-01-29 05:55:47 +00:00 committed by Git OBS Bridge
commit 08dbf701a4
21 changed files with 4020 additions and 316 deletions

View File

@ -1,10 +0,0 @@
--- src/apprentice.c
+++ src/apprentice.c
@@ -562,6 +562,7 @@
/* invalid search type, but no need to complain here */
break;
}
+ return 0;
}
/*

View File

@ -1,11 +0,0 @@
--- magic/Magdir/llvm
+++ magic/Magdir/llvm 2010-04-19 14:13:16.000000000 +0000
@@ -9,5 +9,8 @@
0 string llvc0 LLVM byte-codes, null compression
0 string llvc1 LLVM byte-codes, gzip compression
0 string llvc2 LLVM byte-codes, bzip2 compression
+
+0 string BC\xc0\xde LLVM bitcode
+0 string \xde\xc0\x17\x0b LLVM bitcode, wrapper
0 string \xde\xc0\x17\x0b LLVM bitcode, wrapper
0 string BC\xc0\xde LLVM bitcode

View File

@ -1,13 +0,0 @@
--- magic/Magdir/archive
+++ magic/Magdir/archive 2010-02-05 15:43:37.000000000 +0000
@@ -564,6 +564,10 @@
# PKZIP multi-volume archive
0 string PK\x07\x08PK\x03\x04 Zip multi-volume archive data, at least PKZIP v2.50 to extract
!:mime application/zip
+>>30 ubelong 0x6d696d65 Zip archive data, at least v2.0 to extract
+>>>34 ubelong 0x74797065 \b, mime type
+>>>>38 regex application/[a-z\+\-]+ \b %s
+!:mime application/unknown+zip
# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
0 string PK\003\004

View File

@ -1,92 +0,0 @@
--- magic/Magdir/filesystems
+++ magic/Magdir/filesystems 2012-11-26 15:19:17.434507842 +0000
@@ -881,44 +881,6 @@
# FATX
0 string FATX FATX filesystem data
-
-# Minix filesystems - Juan Cespedes <cespedes@debian.org>
-0x410 leshort 0x137f
-!:strength / 2
->0x402 beshort < 100 Minix filesystem, V1, %d zones
->0x1e string minix \b, bootable
-0x410 beshort 0x137f
-!:strength / 2
->0x402 beshort < 100 Minix filesystem, V1 (big endian), %d zones
->0x1e string minix \b, bootable
-0x410 leshort 0x138f
-!:strength / 2
->0x402 beshort < 100 Minix filesystem, V1, 30 char names, %d zones
->0x1e string minix \b, bootable
-0x410 beshort 0x138f
-!:strength / 2
->0x402 beshort < 100 Minix filesystem, V1, 30 char names (big endian), %d zones
->0x1e string minix \b, bootable
-0x410 leshort 0x2468
->0x402 beshort < 100 Minix filesystem, V2, %d zones
->0x1e string minix \b, bootable
-0x410 beshort 0x2468
->0x402 beshort < 100 Minix filesystem, V2 (big endian), %d zones
->0x1e string minix \b, bootable
-
-0x410 leshort 0x2478
->0x402 beshort < 100 Minix filesystem, V2, 30 char names, %d zones
->0x1e string minix \b, bootable
-0x410 leshort 0x2478
->0x402 beshort < 100 Minix filesystem, V2, 30 char names, %d zones
->0x1e string minix \b, bootable
-0x410 beshort 0x2478
->0x402 beshort !0 Minix filesystem, V2, 30 char names (big endian), %d zones
->0x1e string minix \b, bootable
-0x410 leshort 0x4d5a
->0x402 beshort !0 Minix filesystem, V3, %d zones
->0x1e string minix \b, bootable
-
# romfs filesystems - Juan Cespedes <cespedes@debian.org>
0 string -rom1fs- romfs filesystem, version 1
>8 belong x %d bytes,
@@ -1157,6 +1119,44 @@
#>0x464 lelong &0x0000020 (many subdirs)
#>0x463 lelong &0x0000040 (extra isize)
+
+# Minix filesystems - Juan Cespedes <cespedes@debian.org>
+0x410 leshort 0x137f
+!:strength / 2
+>0x402 beshort < 100 Minix filesystem, V1, %d zones
+>0x1e string minix \b, bootable
+0x410 beshort 0x137f
+!:strength / 2
+>0x402 beshort < 100 Minix filesystem, V1 (big endian), %d zones
+>0x1e string minix \b, bootable
+0x410 leshort 0x138f
+!:strength / 2
+>0x402 beshort < 100 Minix filesystem, V1, 30 char names, %d zones
+>0x1e string minix \b, bootable
+0x410 beshort 0x138f
+!:strength / 2
+>0x402 beshort < 100 Minix filesystem, V1, 30 char names (big endian), %d zones
+>0x1e string minix \b, bootable
+0x410 leshort 0x2468
+>0x402 beshort < 100 Minix filesystem, V2, %d zones
+>0x1e string minix \b, bootable
+0x410 beshort 0x2468
+>0x402 beshort < 100 Minix filesystem, V2 (big endian), %d zones
+>0x1e string minix \b, bootable
+
+0x410 leshort 0x2478
+>0x402 beshort < 100 Minix filesystem, V2, 30 char names, %d zones
+>0x1e string minix \b, bootable
+0x410 leshort 0x2478
+>0x402 beshort < 100 Minix filesystem, V2, 30 char names, %d zones
+>0x1e string minix \b, bootable
+0x410 beshort 0x2478
+>0x402 beshort !0 Minix filesystem, V2, 30 char names (big endian), %d zones
+>0x1e string minix \b, bootable
+0x410 leshort 0x4d5a
+>0x402 beshort !0 Minix filesystem, V3, %d zones
+>0x1e string minix \b, bootable
+
# SGI disk labels - Nathan Scott <nathans@debian.org>
0 belong 0x0BE5A941 SGI disk label (volume header)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c70ae29a28c0585f541d5916fc3248c3e91baa481f63d7ccec53d1534cbcc9b7
size 610019

View File

@ -1,5 +1,5 @@
--- src/apprentice.c.orig --- src/apprentice.c
+++ src/apprentice.c +++ src/apprentice.c 2013-01-22 15:08:18.325452293 +0000
@@ -48,6 +48,7 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1. @@ -48,6 +48,7 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1.
#include <sys/mman.h> #include <sys/mman.h>
#endif #endif
@ -8,8 +8,8 @@
#define EATAB {while (isascii((unsigned char) *l) && \ #define EATAB {while (isascii((unsigned char) *l) && \
isspace((unsigned char) *l)) ++l;} isspace((unsigned char) *l)) ++l;}
@@ -97,9 +98,11 @@ private int apprentice_load(struct magic @@ -109,9 +110,11 @@ private struct mlist *mlist_alloc(void);
const char *, int); private void mlist_free(struct mlist *);
private void byteswap(struct magic *, uint32_t); private void byteswap(struct magic *, uint32_t);
private void bs1(struct magic *); private void bs1(struct magic *);
-private uint16_t swap2(uint16_t); -private uint16_t swap2(uint16_t);
@ -21,18 +21,9 @@
+#define swap8(x) bswap_64(x) +#define swap8(x) bswap_64(x)
+ +
private char *mkdbname(struct magic_set *, const char *, int); private char *mkdbname(struct magic_set *, const char *, int);
private int apprentice_map(struct magic_set *, struct magic **, uint32_t *, private struct magic_map *apprentice_map(struct magic_set *, const char *);
const char *); private void apprentice_unmap(struct magic_map *);
@@ -662,7 +665,7 @@ set_test_type(struct magic *mstart, stru @@ -2788,67 +2791,6 @@ byteswap(struct magic *magic, uint32_t n
/* invalid search type, but no need to complain here */
break;
}
- return 0;
+ //return 0;
}
/*
@@ -2412,67 +2415,6 @@ byteswap(struct magic *magic, uint32_t n
} }
/* /*
@ -100,9 +91,9 @@
* byteswap a single magic entry * byteswap a single magic entry
*/ */
private void private void
--- src/cdf.c.orig --- src/cdf.c
+++ src/cdf.c +++ src/cdf.c 2013-01-22 00:00:00.000000000 +0000
@@ -50,6 +50,7 @@ FILE_RCSID("@(#)$File: cdf.c,v 1.50 2012 @@ -50,6 +50,7 @@ FILE_RCSID("@(#)$File: cdf.c,v 1.51 2012
#ifdef HAVE_LIMITS_H #ifdef HAVE_LIMITS_H
#include <limits.h> #include <limits.h>
#endif #endif

View File

@ -1,11 +1,11 @@
--- magic/Magdir/cafebabe --- magic/Magdir/cafebabe
+++ magic/Magdir/cafebabe 2009-05-05 14:11:37.858402267 +0200 +++ magic/Magdir/cafebabe 2013-01-22 14:34:00.199417547 +0000
@@ -12,7 +12,7 @@ @@ -15,7 +15,7 @@
# (and use as a hack). Let's not use 18, because the Mach-O people
# might add another one or two as time goes by... # might add another one or two as time goes by...
# #
### JAVA START ###
-0 belong 0xcafebabe -0 belong 0xcafebabe
+0 belong 0xcafebabe cafebabe +0 belong 0xcafebabe Cafe Babe
!:mime application/x-java-applet !:mime application/x-java-applet
>4 belong >30 compiled Java class data, >4 belong >30 compiled Java class data,
>>6 beshort x version %d. >>6 beshort x version %d.

10
file-5.12-llong.dif Normal file
View File

@ -0,0 +1,10 @@
--- configure.ac
+++ configure.ac 2013-01-23 12:57:44.605952352 +0000
@@ -107,6 +107,7 @@ AC_TYPE_UINT32_T
AC_TYPE_INT32_T
AC_TYPE_UINT64_T
AC_TYPE_INT64_T
+AC_CHECK_SIZEOF(long long)
AC_FUNC_MMAP
AC_FUNC_FORK
AC_FUNC_MBRTOWC

View File

@ -11,7 +11,7 @@
0 string MAS_U ULT(imate) Module sound data 0 string MAS_U ULT(imate) Module sound data
--- magic/Magdir/bsdi --- magic/Magdir/bsdi
+++ magic/Magdir/bsdi 2003-12-08 16:50:03.000000000 +0000 +++ magic/Magdir/bsdi 2003-12-08 16:50:03.000000000 +0000
@@ -21,7 +21,7 @@ @@ -11,7 +11,7 @@
>32 byte 0x6a (uses shared libs) >32 byte 0x6a (uses shared libs)
# same as in SunOS 4.x, except for static shared libraries # same as in SunOS 4.x, except for static shared libraries
@ -20,7 +20,7 @@
>0 byte &0x80 >0 byte &0x80
>>20 belong <4096 shared library >>20 belong <4096 shared library
>>20 belong =4096 dynamically linked executable >>20 belong =4096 dynamically linked executable
@@ -30,13 +30,13 @@ @@ -20,13 +20,13 @@
>16 belong >0 not stripped >16 belong >0 not stripped
>36 belong 0xb4100001 (uses shared libs) >36 belong 0xb4100001 (uses shared libs)
@ -37,19 +37,19 @@
>0 byte ^0x80 executable >0 byte ^0x80 executable
>16 belong >0 not stripped >16 belong >0 not stripped
--- magic/Magdir/mach --- magic/Magdir/mach
+++ magic/Magdir/mach 2003-12-08 16:50:03.000000000 +0000 +++ magic/Magdir/mach 2013-01-22 14:29:39.261451501 +0000
@@ -76,7 +76,7 @@ @@ -122,7 +122,7 @@
>4 belong 11 hppa >>>8 belong&0x00ffffff 1 mc88100
>4 belong 12 acorn >>>8 belong&0x00ffffff 2 mc88110
>4 belong 13 m88k >>>8 belong&0x00ffffff >2 mc88000 subarchitecture=%ld
->4 belong 14 sparc ->>4 belong&0x00ffffff 14 sparc
+>4 belong 14 SPARC +>>4 belong&0x00ffffff 14 SPARC
>4 belong 15 i860-big >>4 belong&0x00ffffff 15 i860g
>4 belong 16 i860 >>4 belong&0x00ffffff 16 alpha
>4 belong 17 rs6000 >>4 belong&0x00ffffff 17 rs6000
--- magic/Magdir/netbsd --- magic/Magdir/netbsd
+++ magic/Magdir/netbsd 2003-12-08 16:50:03.000000000 +0000 +++ magic/Magdir/netbsd 2003-12-08 16:50:03.000000000 +0000
@@ -102,25 +102,25 @@ @@ -100,25 +100,25 @@
0 belong&0377777777 045200507 a.out NetBSD/powerpc core 0 belong&0377777777 045200507 a.out NetBSD/powerpc core
>12 string >\0 from '%s' >12 string >\0 from '%s'
@ -80,28 +80,28 @@
>32 belong !0 (signal %d) >32 belong !0 (signal %d)
--- magic/Magdir/sun --- magic/Magdir/sun
+++ magic/Magdir/sun 2006-11-22 14:49:20.000000000 +0000 +++ magic/Magdir/sun 2013-01-22 14:30:30.861452080 +0000
@@ -6,7 +6,7 @@ @@ -9,7 +9,7 @@
# Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x # are in aout, as they're indistinguishable from other big-endian
# releases. (5.x uses ELF.) # 32-bit a.out files.
# #
-0 belong&077777777 0600413 sparc demand paged -0 belong&077777777 0600413 a.out SunOS sparc demand paged
+0 belong&077777777 0600413 SPARC demand paged +0 belong&077777777 0600413 a.out SunOS SPARC demand paged
>0 byte &0x80 >0 byte &0x80
>>20 belong <4096 shared library >>20 belong <4096 shared library
>>20 belong =4096 dynamically linked executable >>20 belong =4096 dynamically linked executable
@@ -14,12 +14,12 @@ @@ -17,12 +17,12 @@
>0 byte ^0x80 executable >0 byte ^0x80 executable
>16 belong >0 not stripped >16 belong >0 not stripped
-0 belong&077777777 0600410 sparc pure -0 belong&077777777 0600410 a.out SunOS sparc pure
+0 belong&077777777 0600410 SPARC pure +0 belong&077777777 0600410 a.out SunOS SPARC pure
>0 byte &0x80 dynamically linked executable >0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable >0 byte ^0x80 executable
>16 belong >0 not stripped >16 belong >0 not stripped
-0 belong&077777777 0600407 sparc -0 belong&077777777 0600407 a.out SunOS sparc
+0 belong&077777777 0600407 SPARC +0 belong&077777777 0600407 a.out SunOS SPARC
>0 byte &0x80 dynamically linked executable >0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable >0 byte ^0x80 executable
>16 belong >0 not stripped >16 belong >0 not stripped

View File

@ -1,5 +1,5 @@
--- src/file.c --- src/file.c
+++ src/file.c 2012-09-18 10:27:51.094936322 +0000 +++ src/file.c 2013-01-22 14:49:49.305453781 +0000
@@ -94,10 +94,12 @@ private const char *separator = ":"; /* @@ -94,10 +94,12 @@ private const char *separator = ":"; /*
private const struct option long_options[] = { private const struct option long_options[] = {
#define OPT(shortname, longname, opt, doc) \ #define OPT(shortname, longname, opt, doc) \
@ -13,7 +13,7 @@
#undef OPT_LONGONLY #undef OPT_LONGONLY
{0, 0, NULL, 0} {0, 0, NULL, 0}
}; };
@@ -487,16 +489,21 @@ usage(void) @@ -522,6 +524,7 @@ docprint(const char *opts)
private void private void
help(void) help(void)
{ {
@ -21,14 +21,17 @@
(void)fputs( (void)fputs(
"Usage: file [OPTION...] [FILE...]\n" "Usage: file [OPTION...] [FILE...]\n"
"Determine type of FILEs.\n" "Determine type of FILEs.\n"
"\n", stdout); @@ -529,11 +532,16 @@ help(void)
#define OPT(shortname, longname, opt, doc) \ #define OPT(shortname, longname, opt, doc) \
fprintf(stdout, " -%c, --" longname doc, shortname); fprintf(stdout, " -%c, --" longname, shortname), \
docprint(doc);
+#define OPT_POSIX(shortname, longname, opt, doc) \ +#define OPT_POSIX(shortname, longname, opt, doc) \
+ fprintf(stdout, " -%c, --" longname doc "%s\n", shortname, \ + fprintf(stdout, " -%c, --" longname "%s", shortname, \
+ (shortname == 'L') ? (posix ? " (default)" : "") : (posix ? "" : " (default)")); + (shortname == 'L') ? (posix ? " (default)" : "") : (posix ? "" : " (default)")), \
+ docprint(doc);
#define OPT_LONGONLY(longname, opt, doc) \ #define OPT_LONGONLY(longname, opt, doc) \
fprintf(stdout, " --" longname doc); fprintf(stdout, " --" longname), \
docprint(doc);
#include "file_opts.h" #include "file_opts.h"
#undef OPT #undef OPT
+#undef OPT_POSIX +#undef OPT_POSIX
@ -36,15 +39,15 @@
fprintf(stdout, "\nReport bugs to http://bugs.gw.com/\n"); fprintf(stdout, "\nReport bugs to http://bugs.gw.com/\n");
exit(0); exit(0);
--- src/file_opts.h --- src/file_opts.h
+++ src/file_opts.h 2012-09-18 10:14:38.438397131 +0000 +++ src/file_opts.h 2012-09-18 10:14:38.000000000 +0000
@@ -34,8 +34,8 @@ OPT_LONGONLY("mime-encoding", 0, " @@ -34,8 +34,8 @@ OPT_LONGONLY("mime-encoding", 0, "
OPT('k', "keep-going", 0, " don't stop at the first match\n") OPT('k', "keep-going", 0, " don't stop at the first match\n")
#ifdef S_IFLNK #ifdef S_IFLNK
OPT('l', "list", 0, " list magic strength\n") OPT('l', "list", 0, " list magic strength\n")
-OPT('L', "dereference", 0, " follow symlinks (default)\n") -OPT('L', "dereference", 0, " follow symlinks (default)\n")
-OPT('h', "no-dereference", 0, " don't follow symlinks\n") -OPT('h', "no-dereference", 0, " don't follow symlinks\n")
+OPT_POSIX('L', "dereference", 0, " follow symlinks") +OPT_POSIX('L', "dereference", 0, " follow symlinks\n")
+OPT_POSIX('h', "no-dereference", 0, " don't follow symlinks") +OPT_POSIX('h', "no-dereference", 0, " don't follow symlinks\n")
#endif #endif
OPT('n', "no-buffer", 0, " do not buffer output\n") OPT('n', "no-buffer", 0, " do not buffer output\n")
OPT('N', "no-pad", 0, " do not pad output\n") OPT('N', "no-pad", 0, " do not pad output\n")

View File

@ -1,57 +1,46 @@
--- src/compress.c.orig --- src/apprentice.c
+++ src/compress.c +++ src/apprentice.c 2013-01-22 14:39:18.865452095 +0000
@@ -256,7 +256,7 @@ file_pipe2file(struct magic_set *ms, int @@ -927,7 +927,7 @@ load_1(struct magic_set *ms, int action,
errno = r;
}
#else
- tfd = mkstemp(buf);
+ tfd = mkostemp(buf, O_CLOEXEC);
te = errno;
(void)unlink(buf);
errno = te;
--- src/apprentice.c.orig
+++ src/apprentice.c
@@ -676,7 +676,7 @@ load_1(struct magic_set *ms, int action,
char *line = NULL;
ssize_t len; ssize_t len;
struct magic_entry me;
- FILE *f = fopen(ms->file = fn, "r"); - FILE *f = fopen(ms->file = fn, "r");
+ FILE *f = fopen(ms->file = fn, "re"); + FILE *f = fopen(ms->file = fn, "re");
if (f == NULL) { if (f == NULL) {
if (errno != ENOENT) if (errno != ENOENT)
file_error(ms, errno, "cannot read magic file `%s'", file_error(ms, errno, "cannot read magic file `%s'",
@@ -2226,7 +2226,7 @@ apprentice_map(struct magic_set *ms, str @@ -2579,7 +2579,7 @@ apprentice_map(struct magic_set *ms, con
if (dbname == NULL) if (dbname == NULL)
goto error2; goto error;
- if ((fd = open(dbname, O_RDONLY|O_BINARY)) == -1) - if ((fd = open(dbname, O_RDONLY|O_BINARY)) == -1)
+ if ((fd = open(dbname, O_RDONLY|O_BINARY|O_CLOEXEC)) == -1) + if ((fd = open(dbname, O_RDONLY|O_BINARY|O_CLOEXEC)) == -1)
goto error2; goto error;
if (fstat(fd, &st) == -1) { if (fstat(fd, &st) == -1) {
@@ -2324,7 +2324,7 @@ apprentice_compile(struct magic_set *ms, @@ -2691,7 +2691,7 @@ apprentice_compile(struct magic_set *ms,
if (dbname == NULL) if (dbname == NULL)
goto out; goto out;
- if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644)) == -1) { - if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644)) == -1)
+ if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY|O_CLOEXEC, 0644)) == -1) { + if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY|O_CLOEXEC, 0644)) == -1)
{
file_error(ms, errno, "cannot open `%s'", dbname); file_error(ms, errno, "cannot open `%s'", dbname);
goto out; goto out;
} --- src/compress.c
--- src/magic.c.orig +++ src/compress.c 2013-01-22 14:37:22.969952110 +0000
+++ src/magic.c @@ -252,7 +252,7 @@ file_pipe2file(struct magic_set *ms, int
@@ -411,7 +411,7 @@ file_or_fd(struct magic_set *ms, const c #else
if (fstat(fd, &sb) == 0 && S_ISFIFO(sb.st_mode)) {
ispipe = 1; int te;
} else { - tfd = mkstemp(buf);
- int flags = O_RDONLY|O_BINARY; + tfd = mkostemp(buf, O_CLOEXEC);
+ int flags = O_RDONLY|O_BINARY|O_CLOEXEC; te = errno;
(void)unlink(buf);
if (stat(inname, &sb) == 0 && S_ISFIFO(sb.st_mode)) { errno = te;
#ifdef O_NONBLOCK --- src/file.c
--- src/file.c.orig +++ src/file.c 2013-01-22 00:00:00.000000000 +0000
+++ src/file.c @@ -390,7 +390,7 @@ unwrap(struct magic_set *ms, const char
@@ -385,7 +385,7 @@ unwrap(struct magic_set *ms, const char
f = stdin; f = stdin;
wid = 1; wid = 1;
} else { } else {
@ -60,3 +49,14 @@
(void)fprintf(stderr, "%s: Cannot open `%s' (%s).\n", (void)fprintf(stderr, "%s: Cannot open `%s' (%s).\n",
progname, fn, strerror(errno)); progname, fn, strerror(errno));
return 1; return 1;
--- src/magic.c
+++ src/magic.c 2013-01-22 00:00:00.000000000 +0000
@@ -369,7 +369,7 @@ file_or_fd(struct magic_set *ms, const c
if (fstat(fd, &sb) == 0 && S_ISFIFO(sb.st_mode))
ispipe = 1;
} else {
- int flags = O_RDONLY|O_BINARY;
+ int flags = O_RDONLY|O_BINARY|O_CLOEXEC;
if (stat(inname, &sb) == 0 && S_ISFIFO(sb.st_mode)) {
#ifdef O_NONBLOCK

3787
file-5.12-upstream.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -9,23 +9,3 @@
if MINGW if MINGW
MINGWLIBS = -lgnurx -lshlwapi MINGWLIBS = -lgnurx -lshlwapi
else else
--- src/libmagic.map
+++ src/libmagic.map 2011-06-14 00:00:00.000000000 +0000
@@ -0,0 +1,17 @@
+{
+global:
+ magic_buffer;
+ magic_check;
+ magic_close;
+ magic_compile;
+ magic_descriptor;
+ magic_errno;
+ magic_error;
+ magic_file;
+ magic_getpath;
+ magic_list;
+ magic_load;
+ magic_open;
+ magic_setflags;
+local: *;
+};

View File

@ -1,8 +1,8 @@
--- magic/Magdir/archive --- magic/Magdir/archive
+++ magic/Magdir/archive 2011-07-18 09:56:50.651926085 +0000 +++ magic/Magdir/archive 2013-01-22 14:56:24.865452717 +0000
@@ -571,6 +571,20 @@ @@ -592,6 +592,19 @@
# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu) # Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
0 string PK\005\006 Zip archive data (empty)
0 string PK\003\004 0 string PK\003\004
+>30 ubelong !0x6d696d65 +>30 ubelong !0x6d696d65
+>>4 byte 0x00 Zip archive data +>>4 byte 0x00 Zip archive data
@ -17,7 +17,6 @@
+!:mime application/zip +!:mime application/zip
+>>4 byte 0x14 Zip archive data, at least v2.0 to extract +>>4 byte 0x14 Zip archive data, at least v2.0 to extract
+!:mime application/zip +!:mime application/zip
+
# Specialised zip formats which start with a member named 'mimetype' # Specialised zip formats which start with a member named 'mimetype'
# (stored uncompressed, with no 'extra field') containing the file's MIME type. # (stored uncompressed, with no 'extra field') containing the file's MIME type.

13
file-5.12-zip2.0.dif Normal file
View File

@ -0,0 +1,13 @@
--- magic/Magdir/archive
+++ magic/Magdir/archive 2013-01-22 15:01:33.273452678 +0000
@@ -588,6 +588,10 @@
# PKZIP multi-volume archive
0 string PK\x07\x08PK\x03\x04 Zip multi-volume archive data, at least PKZIP v2.50 to extract
!:mime application/zip
+>30 ubelong 0x6d696d65 Zip archive data, at least v2.0 to extract
+>>34 ubelong 0x74797065 \b, mime type
+>>>38 regex application/[a-z\+\-]+ \b %s
+!:mime application/unknown+zip
# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
0 string PK\005\006 Zip archive data (empty)

View File

@ -1,30 +1,23 @@
--- magic/Magdir/elf --- magic/Magdir/elf
+++ magic/Magdir/elf 2006-11-22 14:57:15.000000000 +0000 +++ magic/Magdir/elf 2013-01-22 15:12:10.957452651 +0000
@@ -102,7 +102,7 @@ @@ -127,7 +127,7 @@
>>18 leshort 47 Renesas H8/300H, >18 leshort 47 Renesas H8/300H,
>>18 leshort 48 Renesas H8S, >18 leshort 48 Renesas H8S,
>>18 leshort 49 Renesas H8/500, >18 leshort 49 Renesas H8/500,
->>18 leshort 50 IA-64, ->18 leshort 50 IA-64,
+>>18 leshort 50 IA-64 (Intel 64 bit architecture), +>18 leshort 50 IA-64 (Intel 64 bit architecture),
>>18 leshort 51 Stanford MIPS-X, >18 leshort 51 Stanford MIPS-X,
>>18 leshort 52 Motorola Coldfire, >18 leshort 52 Motorola Coldfire,
>>18 leshort 53 Motorola M68HC12, >18 leshort 53 Motorola M68HC12,
@@ -250,7 +250,7 @@
>>18 beshort 47 Renesas H8/300H,
>>18 beshort 48 Renesas H8S,
>>18 beshort 49 Renesas H8/500,
->>18 beshort 50 IA-64,
+>>18 beshort 50 IA-64 (Intel 64 bit architecture),
>>18 beshort 51 Stanford MIPS-X,
>>18 beshort 52 Motorola Coldfire,
>>18 beshort 53 Motorola M68HC12,
--- magic/Magdir/linux --- magic/Magdir/linux
+++ magic/Magdir/linux 2009-05-05 12:25:21.000000000 +0000 +++ magic/Magdir/linux 2013-01-22 15:16:40.925952418 +0000
@@ -94,21 +94,43 @@ @@ -97,22 +97,44 @@
# and Nicolás Lichtmaier <nick@debian.org> # and Nicolás Lichtmaier <nick@debian.org>
# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29 # All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
# Linux kernel boot images (i386 arch) (Wolfram Kleff) # Linux kernel boot images (i386 arch) (Wolfram Kleff)
-514 string HdrS Linux kernel -514 string HdrS Linux kernel
+514 string HdrS Linux
!:strength + 5
->510 leshort 0xAA55 x86 boot executable ->510 leshort 0xAA55 x86 boot executable
->>518 leshort >0x1ff ->>518 leshort >0x1ff
->>>529 byte 0 zImage, ->>>529 byte 0 zImage,
@ -39,7 +32,6 @@
->>506 leshort 0xFFFE Extended VGA ->>506 leshort 0xFFFE Extended VGA
->>506 leshort 0xFFFD Prompt for Videomode ->>506 leshort 0xFFFD Prompt for Videomode
->>506 leshort >0 Video mode %d ->>506 leshort >0 Video mode %d
+514 string HdrS Linux
+>510 leshort 0xAA55 \b/x86 Kernel +>510 leshort 0xAA55 \b/x86 Kernel
+>510 leshort <0xAA55 Kernel +>510 leshort <0xAA55 Kernel
+>510 leshort >0xAA55 Kernel +>510 leshort >0xAA55 Kernel
@ -89,7 +81,7 @@
+4 string Standard\ Jet\ DB Microsoft Access Database +4 string Standard\ Jet\ DB Microsoft Access Database
--- magic/Magdir/msdos --- magic/Magdir/msdos
+++ magic/Magdir/msdos 2011-06-14 14:36:26.000000000 +0000 +++ magic/Magdir/msdos 2011-06-14 14:36:26.000000000 +0000
@@ -98,9 +98,9 @@ @@ -99,9 +99,9 @@
>>>(0x3c.l+22) leshort&0x0200 >0 (stripped to external PDB) >>>(0x3c.l+22) leshort&0x0200 >0 (stripped to external PDB)
>>>(0x3c.l+22) leshort&0x1000 >0 system file >>>(0x3c.l+22) leshort&0x1000 >0 system file
>>>(0x3c.l+24) leshort 0x010b >>>(0x3c.l+24) leshort 0x010b
@ -102,7 +94,7 @@
# hooray, there's a DOS extender using the PE format, with a valid PE # hooray, there's a DOS extender using the PE format, with a valid PE
# executable inside (which just prints a message and exits if run in win) # executable inside (which just prints a message and exits if run in win)
--- magic/Makefile.am --- magic/Makefile.am
+++ magic/Makefile.am 2012-01-16 13:04:11.827645527 +0000 +++ magic/Makefile.am 2013-01-22 15:19:20.873952132 +0000
@@ -5,7 +5,7 @@ MAGIC_FRAGMENT_BASE = Magdir @@ -5,7 +5,7 @@ MAGIC_FRAGMENT_BASE = Magdir
MAGIC_DIR = $(top_srcdir)/magic MAGIC_DIR = $(top_srcdir)/magic
MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE) MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE)
@ -112,15 +104,15 @@
EXTRA_DIST = \ EXTRA_DIST = \
$(MAGIC_DIR)/Header \ $(MAGIC_DIR)/Header \
@@ -19,7 +19,6 @@ $(MAGIC_FRAGMENT_DIR)/amanda \ @@ -20,7 +20,6 @@ $(MAGIC_FRAGMENT_DIR)/amigaos \
$(MAGIC_FRAGMENT_DIR)/amigaos \
$(MAGIC_FRAGMENT_DIR)/animation \ $(MAGIC_FRAGMENT_DIR)/animation \
$(MAGIC_FRAGMENT_DIR)/aout \
$(MAGIC_FRAGMENT_DIR)/apl \ $(MAGIC_FRAGMENT_DIR)/apl \
-$(MAGIC_FRAGMENT_DIR)/apple \ -$(MAGIC_FRAGMENT_DIR)/apple \
$(MAGIC_FRAGMENT_DIR)/applix \ $(MAGIC_FRAGMENT_DIR)/applix \
$(MAGIC_FRAGMENT_DIR)/archive \ $(MAGIC_FRAGMENT_DIR)/archive \
$(MAGIC_FRAGMENT_DIR)/assembler \ $(MAGIC_FRAGMENT_DIR)/assembler \
@@ -71,7 +70,6 @@ $(MAGIC_FRAGMENT_DIR)/epoc \ @@ -73,7 +72,6 @@ $(MAGIC_FRAGMENT_DIR)/epoc \
$(MAGIC_FRAGMENT_DIR)/erlang \ $(MAGIC_FRAGMENT_DIR)/erlang \
$(MAGIC_FRAGMENT_DIR)/esri \ $(MAGIC_FRAGMENT_DIR)/esri \
$(MAGIC_FRAGMENT_DIR)/fcs \ $(MAGIC_FRAGMENT_DIR)/fcs \
@ -128,15 +120,16 @@
$(MAGIC_FRAGMENT_DIR)/flash \ $(MAGIC_FRAGMENT_DIR)/flash \
$(MAGIC_FRAGMENT_DIR)/fonts \ $(MAGIC_FRAGMENT_DIR)/fonts \
$(MAGIC_FRAGMENT_DIR)/fortran \ $(MAGIC_FRAGMENT_DIR)/fortran \
@@ -106,20 +104,20 @@ $(MAGIC_FRAGMENT_DIR)/ispell \ @@ -110,6 +108,8 @@ $(MAGIC_FRAGMENT_DIR)/isz \
$(MAGIC_FRAGMENT_DIR)/isz \
$(MAGIC_FRAGMENT_DIR)/java \ $(MAGIC_FRAGMENT_DIR)/java \
$(MAGIC_FRAGMENT_DIR)/javascript \
$(MAGIC_FRAGMENT_DIR)/jpeg \ $(MAGIC_FRAGMENT_DIR)/jpeg \
+$(MAGIC_FRAGMENT_DIR)/linux \ +$(MAGIC_FRAGMENT_DIR)/linux \
+$(MAGIC_FRAGMENT_DIR)/filesystems \ +$(MAGIC_FRAGMENT_DIR)/filesystems \
$(MAGIC_FRAGMENT_DIR)/karma \ $(MAGIC_FRAGMENT_DIR)/karma \
$(MAGIC_FRAGMENT_DIR)/kde \ $(MAGIC_FRAGMENT_DIR)/kde \
$(MAGIC_FRAGMENT_DIR)/kml \ $(MAGIC_FRAGMENT_DIR)/keepass \
@@ -117,7 +117,6 @@ $(MAGIC_FRAGMENT_DIR)/kml \
$(MAGIC_FRAGMENT_DIR)/lecter \ $(MAGIC_FRAGMENT_DIR)/lecter \
$(MAGIC_FRAGMENT_DIR)/lex \ $(MAGIC_FRAGMENT_DIR)/lex \
$(MAGIC_FRAGMENT_DIR)/lif \ $(MAGIC_FRAGMENT_DIR)/lif \
@ -144,14 +137,15 @@
$(MAGIC_FRAGMENT_DIR)/lisp \ $(MAGIC_FRAGMENT_DIR)/lisp \
$(MAGIC_FRAGMENT_DIR)/llvm \ $(MAGIC_FRAGMENT_DIR)/llvm \
$(MAGIC_FRAGMENT_DIR)/lua \ $(MAGIC_FRAGMENT_DIR)/lua \
$(MAGIC_FRAGMENT_DIR)/luks \ @@ -125,7 +124,6 @@ $(MAGIC_FRAGMENT_DIR)/luks \
$(MAGIC_FRAGMENT_DIR)/m4 \ $(MAGIC_FRAGMENT_DIR)/m4 \
$(MAGIC_FRAGMENT_DIR)/mach \ $(MAGIC_FRAGMENT_DIR)/mach \
$(MAGIC_FRAGMENT_DIR)/macos \
-$(MAGIC_FRAGMENT_DIR)/macintosh \ -$(MAGIC_FRAGMENT_DIR)/macintosh \
$(MAGIC_FRAGMENT_DIR)/magic \ $(MAGIC_FRAGMENT_DIR)/magic \
$(MAGIC_FRAGMENT_DIR)/mail.news \ $(MAGIC_FRAGMENT_DIR)/mail.news \
$(MAGIC_FRAGMENT_DIR)/make \ $(MAGIC_FRAGMENT_DIR)/make \
@@ -138,10 +136,10 @@ $(MAGIC_FRAGMENT_DIR)/misctools \ @@ -144,10 +142,10 @@ $(MAGIC_FRAGMENT_DIR)/misctools \
$(MAGIC_FRAGMENT_DIR)/mkid \ $(MAGIC_FRAGMENT_DIR)/mkid \
$(MAGIC_FRAGMENT_DIR)/mlssa \ $(MAGIC_FRAGMENT_DIR)/mlssa \
$(MAGIC_FRAGMENT_DIR)/mmdf \ $(MAGIC_FRAGMENT_DIR)/mmdf \
@ -163,7 +157,7 @@
$(MAGIC_FRAGMENT_DIR)/msooxml \ $(MAGIC_FRAGMENT_DIR)/msooxml \
$(MAGIC_FRAGMENT_DIR)/msvc \ $(MAGIC_FRAGMENT_DIR)/msvc \
$(MAGIC_FRAGMENT_DIR)/mup \ $(MAGIC_FRAGMENT_DIR)/mup \
@@ -182,6 +180,8 @@ $(MAGIC_FRAGMENT_DIR)/pyramid \ @@ -189,6 +187,8 @@ $(MAGIC_FRAGMENT_DIR)/pyramid \
$(MAGIC_FRAGMENT_DIR)/python \ $(MAGIC_FRAGMENT_DIR)/python \
$(MAGIC_FRAGMENT_DIR)/revision \ $(MAGIC_FRAGMENT_DIR)/revision \
$(MAGIC_FRAGMENT_DIR)/riff \ $(MAGIC_FRAGMENT_DIR)/riff \
@ -172,7 +166,7 @@
$(MAGIC_FRAGMENT_DIR)/rinex \ $(MAGIC_FRAGMENT_DIR)/rinex \
$(MAGIC_FRAGMENT_DIR)/rpm \ $(MAGIC_FRAGMENT_DIR)/rpm \
$(MAGIC_FRAGMENT_DIR)/rtf \ $(MAGIC_FRAGMENT_DIR)/rtf \
@@ -248,8 +248,20 @@ $(MAGIC_FRAGMENT_DIR)/xwindows \ @@ -257,8 +257,20 @@ $(MAGIC_FRAGMENT_DIR)/zfs \
$(MAGIC_FRAGMENT_DIR)/zilog \ $(MAGIC_FRAGMENT_DIR)/zilog \
$(MAGIC_FRAGMENT_DIR)/zyxel $(MAGIC_FRAGMENT_DIR)/zyxel
@ -194,7 +188,7 @@
# FIXME: Build file natively as well so that it can be used to compile # FIXME: Build file natively as well so that it can be used to compile
# the target's magic file; for now we bail if the local version does not match # the target's magic file; for now we bail if the local version does not match
@@ -261,19 +273,22 @@ FILE_COMPILE = $(top_builddir)/src/file @@ -270,19 +282,22 @@ FILE_COMPILE = $(top_builddir)/src/file
FILE_COMPILE_DEP = $(FILE_COMPILE) FILE_COMPILE_DEP = $(FILE_COMPILE)
endif endif
@ -234,8 +228,8 @@
+# $(FILE_COMPILE) -C -m magic +# $(FILE_COMPILE) -C -m magic
+# @rm -fr magic +# @rm -fr magic
--- magic/Makefile.in --- magic/Makefile.in
+++ magic/Makefile.in 2012-01-16 13:01:46.795146180 +0000 +++ magic/Makefile.in 2013-01-22 15:20:18.609452535 +0000
@@ -201,7 +201,7 @@ top_srcdir = @top_srcdir@ @@ -204,7 +204,7 @@ top_srcdir = @top_srcdir@
MAGIC_FRAGMENT_BASE = Magdir MAGIC_FRAGMENT_BASE = Magdir
MAGIC_DIR = $(top_srcdir)/magic MAGIC_DIR = $(top_srcdir)/magic
MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE) MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE)
@ -244,7 +238,7 @@
EXTRA_DIST = \ EXTRA_DIST = \
$(MAGIC_DIR)/Header \ $(MAGIC_DIR)/Header \
$(MAGIC_DIR)/Localstuff \ $(MAGIC_DIR)/Localstuff \
@@ -214,7 +214,6 @@ $(MAGIC_FRAGMENT_DIR)/amanda \ @@ -217,7 +217,6 @@ $(MAGIC_FRAGMENT_DIR)/amanda \
$(MAGIC_FRAGMENT_DIR)/amigaos \ $(MAGIC_FRAGMENT_DIR)/amigaos \
$(MAGIC_FRAGMENT_DIR)/animation \ $(MAGIC_FRAGMENT_DIR)/animation \
$(MAGIC_FRAGMENT_DIR)/apl \ $(MAGIC_FRAGMENT_DIR)/apl \
@ -252,7 +246,7 @@
$(MAGIC_FRAGMENT_DIR)/applix \ $(MAGIC_FRAGMENT_DIR)/applix \
$(MAGIC_FRAGMENT_DIR)/archive \ $(MAGIC_FRAGMENT_DIR)/archive \
$(MAGIC_FRAGMENT_DIR)/assembler \ $(MAGIC_FRAGMENT_DIR)/assembler \
@@ -266,7 +265,6 @@ $(MAGIC_FRAGMENT_DIR)/epoc \ @@ -270,7 +269,6 @@ $(MAGIC_FRAGMENT_DIR)/epoc \
$(MAGIC_FRAGMENT_DIR)/erlang \ $(MAGIC_FRAGMENT_DIR)/erlang \
$(MAGIC_FRAGMENT_DIR)/esri \ $(MAGIC_FRAGMENT_DIR)/esri \
$(MAGIC_FRAGMENT_DIR)/fcs \ $(MAGIC_FRAGMENT_DIR)/fcs \
@ -260,15 +254,16 @@
$(MAGIC_FRAGMENT_DIR)/flash \ $(MAGIC_FRAGMENT_DIR)/flash \
$(MAGIC_FRAGMENT_DIR)/fonts \ $(MAGIC_FRAGMENT_DIR)/fonts \
$(MAGIC_FRAGMENT_DIR)/fortran \ $(MAGIC_FRAGMENT_DIR)/fortran \
@@ -301,20 +299,20 @@ $(MAGIC_FRAGMENT_DIR)/ispell \ @@ -306,6 +304,8 @@ $(MAGIC_FRAGMENT_DIR)/isz \
$(MAGIC_FRAGMENT_DIR)/isz \
$(MAGIC_FRAGMENT_DIR)/java \ $(MAGIC_FRAGMENT_DIR)/java \
$(MAGIC_FRAGMENT_DIR)/javascript \
$(MAGIC_FRAGMENT_DIR)/jpeg \ $(MAGIC_FRAGMENT_DIR)/jpeg \
+$(MAGIC_FRAGMENT_DIR)/linux \ +$(MAGIC_FRAGMENT_DIR)/linux \
+$(MAGIC_FRAGMENT_DIR)/filesystems \ +$(MAGIC_FRAGMENT_DIR)/filesystems \
$(MAGIC_FRAGMENT_DIR)/karma \ $(MAGIC_FRAGMENT_DIR)/karma \
$(MAGIC_FRAGMENT_DIR)/kde \ $(MAGIC_FRAGMENT_DIR)/kde \
$(MAGIC_FRAGMENT_DIR)/kml \ $(MAGIC_FRAGMENT_DIR)/keepass \
@@ -313,7 +313,6 @@ $(MAGIC_FRAGMENT_DIR)/kml \
$(MAGIC_FRAGMENT_DIR)/lecter \ $(MAGIC_FRAGMENT_DIR)/lecter \
$(MAGIC_FRAGMENT_DIR)/lex \ $(MAGIC_FRAGMENT_DIR)/lex \
$(MAGIC_FRAGMENT_DIR)/lif \ $(MAGIC_FRAGMENT_DIR)/lif \
@ -276,14 +271,15 @@
$(MAGIC_FRAGMENT_DIR)/lisp \ $(MAGIC_FRAGMENT_DIR)/lisp \
$(MAGIC_FRAGMENT_DIR)/llvm \ $(MAGIC_FRAGMENT_DIR)/llvm \
$(MAGIC_FRAGMENT_DIR)/lua \ $(MAGIC_FRAGMENT_DIR)/lua \
$(MAGIC_FRAGMENT_DIR)/luks \ @@ -321,7 +320,6 @@ $(MAGIC_FRAGMENT_DIR)/luks \
$(MAGIC_FRAGMENT_DIR)/m4 \ $(MAGIC_FRAGMENT_DIR)/m4 \
$(MAGIC_FRAGMENT_DIR)/mach \ $(MAGIC_FRAGMENT_DIR)/mach \
$(MAGIC_FRAGMENT_DIR)/macos \
-$(MAGIC_FRAGMENT_DIR)/macintosh \ -$(MAGIC_FRAGMENT_DIR)/macintosh \
$(MAGIC_FRAGMENT_DIR)/magic \ $(MAGIC_FRAGMENT_DIR)/magic \
$(MAGIC_FRAGMENT_DIR)/mail.news \ $(MAGIC_FRAGMENT_DIR)/mail.news \
$(MAGIC_FRAGMENT_DIR)/make \ $(MAGIC_FRAGMENT_DIR)/make \
@@ -333,10 +331,10 @@ $(MAGIC_FRAGMENT_DIR)/misctools \ @@ -340,10 +338,10 @@ $(MAGIC_FRAGMENT_DIR)/misctools \
$(MAGIC_FRAGMENT_DIR)/mkid \ $(MAGIC_FRAGMENT_DIR)/mkid \
$(MAGIC_FRAGMENT_DIR)/mlssa \ $(MAGIC_FRAGMENT_DIR)/mlssa \
$(MAGIC_FRAGMENT_DIR)/mmdf \ $(MAGIC_FRAGMENT_DIR)/mmdf \
@ -295,7 +291,7 @@
$(MAGIC_FRAGMENT_DIR)/msooxml \ $(MAGIC_FRAGMENT_DIR)/msooxml \
$(MAGIC_FRAGMENT_DIR)/msvc \ $(MAGIC_FRAGMENT_DIR)/msvc \
$(MAGIC_FRAGMENT_DIR)/mup \ $(MAGIC_FRAGMENT_DIR)/mup \
@@ -377,6 +375,8 @@ $(MAGIC_FRAGMENT_DIR)/pyramid \ @@ -385,6 +383,8 @@ $(MAGIC_FRAGMENT_DIR)/pyramid \
$(MAGIC_FRAGMENT_DIR)/python \ $(MAGIC_FRAGMENT_DIR)/python \
$(MAGIC_FRAGMENT_DIR)/revision \ $(MAGIC_FRAGMENT_DIR)/revision \
$(MAGIC_FRAGMENT_DIR)/riff \ $(MAGIC_FRAGMENT_DIR)/riff \
@ -304,7 +300,7 @@
$(MAGIC_FRAGMENT_DIR)/rinex \ $(MAGIC_FRAGMENT_DIR)/rinex \
$(MAGIC_FRAGMENT_DIR)/rpm \ $(MAGIC_FRAGMENT_DIR)/rpm \
$(MAGIC_FRAGMENT_DIR)/rtf \ $(MAGIC_FRAGMENT_DIR)/rtf \
@@ -443,10 +443,22 @@ $(MAGIC_FRAGMENT_DIR)/xwindows \ @@ -453,10 +453,22 @@ $(MAGIC_FRAGMENT_DIR)/zfs \
$(MAGIC_FRAGMENT_DIR)/zilog \ $(MAGIC_FRAGMENT_DIR)/zilog \
$(MAGIC_FRAGMENT_DIR)/zyxel $(MAGIC_FRAGMENT_DIR)/zyxel
@ -328,7 +324,7 @@
# FIXME: Build file natively as well so that it can be used to compile # FIXME: Build file natively as well so that it can be used to compile
# the target's magic file; for now we bail if the local version does not match # the target's magic file; for now we bail if the local version does not match
@IS_CROSS_COMPILE_TRUE@FILE_COMPILE = file @IS_CROSS_COMPILE_TRUE@FILE_COMPILE = file
@@ -661,23 +673,25 @@ uninstall-am: uninstall-pkgdataDATA @@ -671,23 +683,25 @@ uninstall-am: uninstall-pkgdataDATA
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall uninstall-am uninstall-pkgdataDATA uninstall uninstall-am uninstall-pkgdataDATA

3
file-5.12.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:199d0dab2e32814cbced8dc30d3d2d5b7e45587598160a2c401358b573273d22
size 632808

4
file-rpmlintrc Normal file
View File

@ -0,0 +1,4 @@
addFilter(".*Warning:.*using.*regular.*magic.*file.*/usr/share/misc/magic.*")
addFilter(".*E:.*shlib-fixed-dependency.*")
addFilter(".*W:.*no-dependency-on.*")
addFilter(".*W:.*name-repeated-in-summary.*")

View File

@ -1,3 +1,35 @@
-------------------------------------------------------------------
Wed Jan 23 13:00:47 UTC 2013 - werner@suse.de
- Make if build on ppc64, that is re-add the configure check for
sizeof long long otherwise readelf fail on ppc64
-------------------------------------------------------------------
Tue Jan 22 16:22:05 UTC 2013 - werner@suse.de
- Update to file version 5.12
* Warn about inconsistent continuation levels.
* Change fsmagic to add a space after it prints.
* Make getline public so that file can link against it.
Perhaps it is better to rename it, or hide it differently.
Fixes builds on platforms that do not provide it.
* Add SuS d{,1,2,4,8}, u{,1,2,4,8} and document
what long, int, short, etc is (Guy Harris)
* add magic_version function and constant
* Redo memory allocation and de-allocation.
(prevents double frees on non mmap platforms)
* Fix bug with name/use having to do with passing
found state from the parent to the child and back.
* Only print elf capabilities for archs we know (Jan Kaluza)
* Add "name" and "use" file types in order to look
inside mach-o files.
* add string/T (Jan Kaluza)
* search for $HOME/.magic.mgc if it is there first
* fix reads from a pipe, and preserve errno
* use ctime_r, asctime_r
* Fixes for indirect offsets to handle apple disk formats
- Also includes our extfs-minix patch
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Nov 26 15:23:01 UTC 2012 - werner@suse.de Mon Nov 26 15:23:01 UTC 2012 - werner@suse.de

View File

@ -1,7 +1,7 @@
# #
# spec file for package file # spec file for package file
# #
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -27,41 +27,39 @@ Obsoletes: file-64bit
%endif %endif
# #
# Set Version also in python-magic.spec # Set Version also in python-magic.spec
Version: 5.11 Version: 5.12
Release: 0 Release: 0
Summary: A Tool to Determine File Types Summary: A Tool to Determine File Types
License: BSD-2-Clause License: BSD-2-Clause
Group: Productivity/File utilities Group: Productivity/File utilities
Source: ftp://ftp.astron.com/pub/file/file-%{version}.tar.gz Source: ftp://ftp.astron.com/pub/file/file-%{version}.tar.gz
Source2: baselibs.conf Source2: baselibs.conf
Patch: file-5.10.dif Patch: file-5.12.dif
Patch1: file-5.07-misc.dif Patch1: file-5.12-misc.dif
Patch2: file-5.12-llong.dif
Patch4: file-4.24-autoconf.dif Patch4: file-4.24-autoconf.dif
Patch5: file-4.03-tex.dif Patch5: file-4.03-tex.dif
Patch7: file-4.20-ssd.dif Patch7: file-4.20-ssd.dif
Patch8: file-4.20-xen.dif Patch8: file-4.20-xen.dif
Patch9: file-5.07-elf.dif Patch9: file-5.07-elf.dif
Patch10: file-4.18-printf.dif Patch10: file-4.18-printf.dif
Patch11: file-5.07-zip.dif Patch11: file-5.12-zip.dif
Patch12: file-5.07-option.dif Patch12: file-5.07-option.dif
Patch13: file-4.21-scribus.dif Patch13: file-4.21-scribus.dif
Patch15: file-4.21-xcursor.dif Patch15: file-4.21-xcursor.dif
Patch20: file-4.24-mips.dif Patch20: file-4.24-mips.dif
Patch22: file-4.24-cromfs.dif Patch22: file-4.24-cromfs.dif
Patch24: file-4.24-warn.dif Patch25: file-5.12-javacheck.dif
Patch25: file-5.02-javacheck.dif
Patch26: file-4.24-solv.dif Patch26: file-4.24-solv.dif
Patch27: file-5.07-zip2.0.dif Patch27: file-5.12-zip2.0.dif
Patch28: file-5.07-iso9660.dif Patch28: file-5.07-iso9660.dif
Patch29: file-5.07-llvm.dif Patch30: file-5.12-visibility.patch
Patch30: file-5.10-visibility.patch
Patch31: file-5.07-biorad.dif Patch31: file-5.07-biorad.dif
Patch32: file-5.07-clicfs.dif Patch32: file-5.07-clicfs.dif
Patch33: file-ocloexec.patch Patch33: file-5.12-ocloexec.patch
Patch34: file-endian.patch Patch34: file-5.12-endian.patch
Patch35: file-5.11-nitpick.dif Patch35: file-5.12-nitpick.dif
# PATCH-FEATURE-SLE file-5.11-extfs-minix.dif [bnc#788435] Patch42: file-5.12-upstream.patch
Patch36: file-5.11-extfs-minix.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir /etc %global _sysconfdir /etc
%global _miscdir %{_datadir}/misc %global _miscdir %{_datadir}/misc
@ -72,18 +70,18 @@ specified file. File type recognition is controlled by the file
/etc/magic, which contains the classification criteria. This command is /etc/magic, which contains the classification criteria. This command is
used by apsfilter to permit automatic printing of different file types. used by apsfilter to permit automatic printing of different file types.
%package -n libmagic-data %package -n file-magic
Summary: The magic files for libmagic to use Summary: The magic files for libmagic to use
Group: Development/Libraries/Other Group: Development/Libraries/Other
%description -n libmagic-data %description -n file-magic
This package contains the basic magic files that libmagic reads and uses This package contains the basic magic files that libmagic reads and uses
to estimate a file's type. to estimate a file's type.
%package -n libmagic1 %package -n libmagic1
Summary: Library with file's functionality Summary: Library with file's functionality
Group: Development/Libraries/Other Group: Development/Libraries/Other
Requires: libmagic-data = %{version} Requires: file-magic = %{version}
%description -n libmagic1 %description -n libmagic1
This library reads magic files and detects file types. Used by file command This library reads magic files and detects file types. Used by file command
@ -101,7 +99,9 @@ to develop applications that require the magic "file" interface.
%prep %prep
%setup -q -n file-%{version} %setup -q -n file-%{version}
%patch42 -p1
%patch1 -p0 -b .misc %patch1 -p0 -b .misc
%patch2 -p0 -b .llong
%patch4 -p0 -b .conf %patch4 -p0 -b .conf
%patch5 -p0 -b .tex %patch5 -p0 -b .tex
%patch7 -p0 -b .ssd %patch7 -p0 -b .ssd
@ -116,19 +116,16 @@ to develop applications that require the magic "file" interface.
%patch20 -p0 -b .mips %patch20 -p0 -b .mips
%endif %endif
%patch22 -p0 -b .cromfs %patch22 -p0 -b .cromfs
%patch24 -p0 -b .warn
%patch25 -p0 -b .javacheck %patch25 -p0 -b .javacheck
%patch26 -p0 -b .solv %patch26 -p0 -b .solv
%patch27 -p0 -b .zip2.0 %patch27 -p0 -b .zip2.0
%patch28 -p0 -b .iso9600 %patch28 -p0 -b .iso9600
%patch29 -p0 -b .llvm
%patch30 -p0 -b .vis %patch30 -p0 -b .vis
%patch31 -p0 -b .biorad %patch31 -p0 -b .biorad
%patch32 -p0 -b .clicfs %patch32 -p0 -b .clicfs
%patch33 -p0 -b .clexe %patch33 -p0 -b .clexe
%patch34 -p0 -b .endian %patch34 -p0 -b .endian
%patch35 -p0 -b .nitpick %patch35 -p0 -b .nitpick
%patch36 -p0 -b .extnotminix
%patch -b .0 %patch -b .0
%build %build
export LANG=POSIX export LANG=POSIX
@ -138,6 +135,24 @@ rm -f ltcf-c.sh ltconfig ltmain.sh
autoreconf -fiv autoreconf -fiv
CFLAGS="$RPM_OPT_FLAGS -DHOWMANY=69632" CFLAGS="$RPM_OPT_FLAGS -DHOWMANY=69632"
%configure --disable-silent-rules --datadir=%{_miscdir} --disable-static --with-pic --enable-fsect-man5 %configure --disable-silent-rules --datadir=%{_miscdir} --disable-static --with-pic --enable-fsect-man5
#
# Used by patch #30 the visibility patch which allows us to
# export only the public magic_<...>() functions of libmagic.so
#
pushd src/
%{__make} %{?_smp_mflags} pkgdatadir='$(datadir)' magic.h
cat > libmagic.map <<-'EOF'
{
global:
EOF
sed -rn '/[[:alnum:]]+_[[:alnum:]]+\(/{
s/.*([[:blank:]\*])([[:alnum:]]+_[[:alnum:]]+)\(.*\);/ \2\;/p
}' < magic.h >> libmagic.map
cat >> libmagic.map <<-'EOF'
local: *;
};
EOF
popd
%{__make} %{?_smp_mflags} pkgdatadir='$(datadir)' %{__make} %{?_smp_mflags} pkgdatadir='$(datadir)'
%if 0%{?build_python_bindings:1} %if 0%{?build_python_bindings:1}
pushd python pushd python
@ -170,7 +185,7 @@ unset LD_LIBRARY_PATH
%defattr (644,root,root,755) %defattr (644,root,root,755)
%{_libdir}/lib*.so.* %{_libdir}/lib*.so.*
%files -n libmagic-data %files -n file-magic
%defattr (644,root,root,755) %defattr (644,root,root,755)
%config(noreplace) %{_sysconfdir}/magic %config(noreplace) %{_sysconfdir}/magic
%{_miscdir}/magic %{_miscdir}/magic

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-magic # spec file for package python-magic
# #
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed