debian: provide updated /etc/magic (closes: #24346)

This commit is contained in:
Christophe Siraut 2018-06-06 18:03:59 +02:00
parent ac94c578ec
commit 8083ed76cd
5 changed files with 89 additions and 0 deletions

44
debian/conf/magic vendored Normal file
View File

@ -0,0 +1,44 @@
# https://raw.githubusercontent.com/file/file/master/magic/Magdir/msooxml
#------------------------------------------------------------------------------
# $File: msooxml,v 1.8 2018/05/24 18:11:17 christos Exp $
# msooxml: file(1) magic for Microsoft Office XML
# From: Ralf Brown <ralf.brown@gmail.com>
# .docx, .pptx, and .xlsx are XML plus other files inside a ZIP
# archive. The first member file is normally "[Content_Types].xml".
# but some libreoffice generated files put this later. Perhaps skip
# the "[Content_Types].xml" test?
# Since MSOOXML doesn't have anything like the uncompressed "mimetype"
# file of ePub or OpenDocument, we'll have to scan for a filename
# which can distinguish between the three types
0 name msooxml
>0 string word/ Microsoft Word 2007+
!:mime application/vnd.openxmlformats-officedocument.wordprocessingml.document
>0 string ppt/ Microsoft PowerPoint 2007+
!:mime application/vnd.openxmlformats-officedocument.presentationml.presentation
>0 string xl/ Microsoft Excel 2007+
!:mime application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
# start by checking for ZIP local file header signature
0 string PK\003\004
!:strength +10
# make sure the first file is correct
>0x1E use msooxml
>0x1E regex \\[Content_Types\\]\\.xml|_rels/\\.rels
# skip to the second local file header
# since some documents include a 520-byte extra field following the file
# header, we need to scan for the next header
>>(18.l+49) search/2000 PK\003\004
# now skip to the *third* local file header; again, we need to scan due to a
# 520-byte extra field following the file header
>>>&26 search/1000 PK\003\004
# and check the subdirectory name to determine which type of OOXML
# file we have. Correct the mimetype with the registered ones:
# http://technet.microsoft.com/en-us/library/cc179224.aspx
>>>>&26 use msooxml
>>>>&26 default x
# OpenOffice/Libreoffice orders ZIP entry differently, so check the 4th file
>>>>>&26 search/1000 PK\003\004
>>>>>>&26 use msooxml
>>>>>>&26 default x Microsoft OOXML

1
debian/install vendored
View File

@ -1,2 +1,3 @@
debian/conf/docbow.nginx /etc/nginx/sites-available/
debian/conf/db.template /usr/share/docbow
debian/conf/magic /usr/share/docbow

1
debian/links vendored Normal file
View File

@ -0,0 +1 @@
/usr/share/docbow/magic /etc/magic

4
debian/postrm vendored
View File

@ -29,6 +29,10 @@ case "$1" in purge)
fi
;;
*)
dpkg-divert --remove --package docbow --rename /etc/magic
;;
esac
exit 0

39
debian/preinst vendored Normal file
View File

@ -0,0 +1,39 @@
#!/bin/sh
# preinst script for docbow
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
install|upgrade)
dpkg-divert --add --package docbow --rename \
--divert /etc/magic.libmagic \
/etc/magic
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0