ソースを参照

Move compiled magic to a multiarch-capable location. Closes: #670006

Christoph Biedl 11 年 前
コミット
43c892364f

+ 2 - 1
debian/libmagic1.dirs

@@ -1 +1,2 @@
-/usr/share/file/magic
+
+usr/share/file/

+ 1 - 1
debian/libmagic1.install

@@ -1,4 +1,4 @@
 etc
 usr/lib/*/*.so.*
-usr/share/file
+usr/lib/*/file
 usr/share/man/man5

+ 27 - 0
debian/magic-symlink

@@ -0,0 +1,27 @@
+#!/bin/sh
+
+set -e
+
+HOST_ARCH="$1"
+HOST_MULTIARCH="$2"
+
+# Create /usr/share/file/magic.mgc as a symlink if the installed
+# libmagic1 is in the primary architecture.
+
+[ "$HOST_MULTIARCH" ]
+
+cat <<__EOS__ >>debian/libmagic1.postinst.debhelper
+
+if [ "\$1" = 'configure' ] && [ "\$(dpkg --print-architecture)" = '$HOST_ARCH' ] ; then
+    ln -sf /usr/lib/$HOST_MULTIARCH/file/magic.mgc /usr/share/file/magic.mgc
+fi
+
+__EOS__
+
+cat <<__EOS__ >>debian/libmagic1.prerm.debhelper
+
+if [ "\$1" = 'configure' ] && [ "\$(dpkg --print-architecture)" = '$HOST_ARCH' ] && [ -L /usr/share/file/magic.mgc ] ; then
+    rm /usr/share/file/magic.mgc
+fi
+
+__EOS__

+ 38 - 0
debian/patches/multiarch-magic.patch

@@ -0,0 +1,38 @@
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,4 +1,4 @@
+-MAGIC = $(pkgdatadir)/magic
++MAGIC = $(libdir)/file/magic
+ lib_LTLIBRARIES = libmagic.la
+ include_HEADERS = magic.h
+ 
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -326,7 +326,7 @@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-MAGIC = $(pkgdatadir)/magic
++MAGIC = $(libdir)/file/magic
+ lib_LTLIBRARIES = libmagic.la
+ include_HEADERS = magic.h
+ AM_CPPFLAGS = -DMAGIC='"/etc/magic:$(MAGIC)"'
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -1,4 +1,4 @@
+-MAGIC	 = $(pkgdatadir)/magic
++MAGIC	 = $(libdir)/file
+ if FSECT5
+ man_MAGIC = magic.5
+ else
+--- a/doc/magic.man
++++ b/doc/magic.man
+@@ -18,7 +18,7 @@
+ a test for whether the file contains certain
+ .Dq "magic patterns" .
+ The file
+-.Pa __MAGIC__
++.Pa /usr/share/file/magic.mgc
+ specifies what patterns are to be tested for, what message or
+ MIME type to print if a particular pattern is found,
+ and additional information to extract from the file.

+ 1 - 0
debian/patches/series

@@ -9,3 +9,4 @@
 0010-mdadm.patch
 0011-btrfs.patch
 0012-lxt.patch
+multiarch-magic.patch

+ 9 - 3
debian/rules

@@ -8,6 +8,7 @@ endif
 
 DEB_HOST_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH		?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
 DEB_HOST_MULTIARCH	?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 
 ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
@@ -61,7 +62,8 @@ override_dh_auto_configure:
 override_dh_auto_install:
 	dh_auto_install
 
-	mv debian/tmp/usr/share/misc debian/tmp/usr/share/file
+	mkdir -p debian/tmp/lib/$(DEB_HOST_MULTIARCH)
+	mv debian/tmp/usr/share/misc debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/file
 
 	install -D -m 0644 magic/magic.local debian/tmp/etc/magic
 	install -D -m 0644 magic/magic.local debian/tmp/etc/magic.mime
@@ -98,7 +100,7 @@ ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
 	# use just built file in dh_shlibdeps
 	PATH=$(CURDIR)/debian/file/usr/bin:$$PATH \
 		LD_LIBRARY_PATH=$(CURDIR)/debian/libmagic1/usr/lib/$(DEB_HOST_MULTIARCH)$${LD_LIBRARY_PATH+:$${LD_LIBRARY_PATH}} \
-		MAGIC=$(CURDIR)/debian/libmagic1/usr/share/file/magic.mgc \
+		MAGIC=$(CURDIR)/debian/libmagic1/usr/lib/$(DEB_HOST_MULTIARCH)/file/magic.mgc \
 		dh_shlibdeps -Llibmagic1 -ldebian/libmagic1/usr/lib
 else
 	dh_shlibdeps -Llibmagic1 -ldebian/libmagic1/usr/lib
@@ -109,8 +111,12 @@ ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
 	# use just built file in dh_strip
 	PATH=$(CURDIR)/debian/file/usr/bin:$$PATH \
 		LD_LIBRARY_PATH=$(CURDIR)/debian/libmagic1/usr/lib/$(DEB_HOST_MULTIARCH)$${LD_LIBRARY_PATH+:$${LD_LIBRARY_PATH}} \
-		MAGIC=$(CURDIR)/debian/libmagic1/usr/share/file/magic.mgc \
+		MAGIC=$(CURDIR)/debian/libmagic1/usr/lib/$(DEB_HOST_MULTIARCH)/file/magic.mgc \
 		dh_strip --dbg-package=file-dbg
 else
 	dh_strip --dbg-package=file-dbg
 endif
+
+override_dh_installdeb:
+	debian/magic-symlink "$(DEB_HOST_ARCH)" "$(DEB_HOST_MULTIARCH)"
+	dh_installdeb