diff --git a/file-5.00-thumbs-db.patch b/file-5.00-thumbs-db.patch new file mode 100644 index 0000000..5788efc --- /dev/null +++ b/file-5.00-thumbs-db.patch @@ -0,0 +1,127 @@ +Index: cdf.c +=================================================================== +RCS file: /p/file/cvsroot/file/src/cdf.c,v +retrieving revision 1.17 +diff -u -u -r1.17 cdf.c +--- file-5.00/src/cdf.c 3 Feb 2009 20:27:51 -0000 1.17 ++++ file-5.00/src/cdf.c 20 Feb 2009 15:45:39 -0000 +@@ -239,7 +239,9 @@ + cdf_unpack_header(h, buf); + cdf_swap_header(h); + if (h->h_magic != CDF_MAGIC) { +- DPRINTF(("Bad magic 0x%x != 0x$x\n", h->h_magic, CDF_MAGIC)); ++ DPRINTF(("Bad magic 0x%llx != 0x%llx\n", ++ (unsigned long long)h->h_magic, ++ (unsigned long long)CDF_MAGIC)); + errno = EFTYPE; + return -1; + } +@@ -539,10 +541,11 @@ + if (dir->dir_tab[i].d_type == CDF_DIR_TYPE_ROOT_STORAGE) + break; + ++ /* If the it is not there, just fake it; some docs don't have it */ + if (i == dir->dir_len) { +- DPRINTF(("Cannot find root storage node\n")); +- errno = EFTYPE; +- return -1; ++ scn->sst_tab = NULL; ++ scn->sst_len = 0; ++ return 0; + } + d = &dir->dir_tab[i]; + +Index: readcdf.c +=================================================================== +RCS file: /p/file/cvsroot/file/src/readcdf.c,v +retrieving revision 1.12 +diff -u -u -r1.12 readcdf.c +--- file-5.00/src/readcdf.c 13 Feb 2009 18:46:48 -0000 1.12 ++++ file-5.00/src/readcdf.c 20 Feb 2009 15:45:39 -0000 +@@ -129,7 +129,7 @@ + case CDF_CLIPBOARD: + break; + default: +- file_error(ms, 0, "Internal parsing error"); ++ ; + return -1; + } + } +@@ -202,6 +202,7 @@ + cdf_stream_t sst, scn; + cdf_dir_t dir; + int i; ++ const char *expn = ""; + (void)&nbytes; + (void)&buf; + +@@ -214,7 +215,7 @@ + #endif + + if (cdf_read_sat(fd, &h, &sat) == -1) { +- file_error(ms, errno, "Can't read SAT"); ++ expn = "Can't read SAT"; + return -1; + } + #ifdef CDF_DEBUG +@@ -222,7 +223,7 @@ + #endif + + if ((i = cdf_read_ssat(fd, &h, &sat, &ssat)) == -1) { +- file_error(ms, errno, "Can't read SAT"); ++ expn = "Can't read SSAT"; + goto out1; + } + #ifdef CDF_DEBUG +@@ -230,12 +231,12 @@ + #endif + + if ((i = cdf_read_dir(fd, &h, &sat, &dir)) == -1) { +- file_error(ms, errno, "Can't read directory"); ++ expn = "Can't read directory"; + goto out2; + } + + if ((i = cdf_read_short_stream(fd, &h, &sat, &dir, &sst)) == -1) { +- file_error(ms, errno, "Cannot read short stream"); ++ expn = "Cannot read short stream"; + goto out3; + } + +@@ -244,19 +245,14 @@ + #endif + if ((i = cdf_read_summary_info(fd, &h, &sat, &ssat, &sst, &dir, &scn)) + == -1) { +- /* Some files don't have summary info! */ +-#ifdef notyet +- file_error(ms, errno, "Can't read summary_info"); +-#else +- i = 0; +-#endif ++ expn = ""; + goto out4; + } + #ifdef CDF_DEBUG + cdf_dump_summary_info(&h, &scn); + #endif + if ((i = cdf_file_summary_info(ms, &scn)) == -1) +- file_error(ms, errno, "Can't expand summary_info"); ++ expn = "Can't expand summary_info"; + free(scn.sst_tab); + out4: + free(sst.sst_tab); +@@ -266,5 +262,13 @@ + free(ssat.sat_tab); + out1: + free(sat.sat_tab); ++ if (i != 1) { ++ if (file_printf(ms, "CDF V2 Document") == -1) ++ return -1; ++ if (*expn) ++ if (file_printf(ms, ", corrupt: %s", expn) == -1) ++ return -1; ++ i = 1; ++ } + return i; + } + diff --git a/file.spec b/file.spec index d791775..eb72aa2 100644 --- a/file.spec +++ b/file.spec @@ -5,7 +5,7 @@ Summary: A utility for determining file types Name: file Version: 5.00 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD Group: Applications/File Source0: ftp://ftp.astron.com/pub/file/file-%{version}.tar.gz @@ -13,6 +13,7 @@ URL: http://www.darwinsys.com/file/ Patch0: file-4.21-pybuild.patch Patch1: file-5.00-devdrv.patch Patch2: file-5.00-non-english-word.patch +Patch3: file-5.00-thumbs-db.patch Requires: file-libs = %{version}-%{release} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -63,6 +64,8 @@ file(1) command. %patch1 -p1 #fixes #485141 %patch2 -p1 +#fixes #486105 +%patch3 -p1 iconv -f iso-8859-1 -t utf-8 < doc/libmagic.man > doc/libmagic.man_ touch -r doc/libmagic.man doc/libmagic.man_ @@ -136,6 +139,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Feb 23 2009 Daniel Novotny 5.00-3 +- fix #486105 - file-5.00-2.fc11 fails to recognise a file + (and makes rpmbuild fail) + * Mon Feb 16 2009 Daniel Novotny 5.00-2 - fix #485141 - rpm failed while checking a French Word file