On Fri, 10 Jan 2020 16:58:22 +0100 Christoph Biedl 
<debian.a...@manchmal.in-ulm.de> wrote:
> Helmut Grohne wrote...
> 
> > The file package was built with a broken version file wrt #948269. As
> > such libmagic1 lacks shared library dependencies. A simple rebuild fixes
> > the problem.
> 
> This leaves me somewhat confused since I understand your rationale
> the file package needs itself to be built, in other words, a circular
> build dependency. This should not happen, and I'd like to eliminate
> that.
> 
> Mind to shed some light on this? How was libmagic wrongly built, how did
> this manifest?

binary debdiff of bad and good libmagic1 builds:

File lists identical (after any substitutions)

Control files: lines which differ (wdiff format)
------------------------------------------------
Depends: {+libbz2-1.0, libc6 (>= 2.15), liblzma5 (>= 5.1.1alpha+20120614), 
zlib1g (>= 1:1.1.4),+} libmagic-mgc (= [-1:5.38-3.bad)-] {+1:5.38-3.good)+}
Version: [-1:5.38-3.bad-] {+1:5.38-3.good+}

The bad one was done with 1:5.38-2, the good one with 1:5.38-3 installed.

> (You might have noted the file build overrides dh_shlibdeps -
> appearently this is not enough?)

dh_shlibdeps (any maybe other dh_*) call 'file' - the (buggy?) version
installed in the system, not the freshly built one.

Attached patch is a hack to prepend a 'file' wrapper script in the path
that uses the freshly built one (I hope I did the call right?), this allows
for a correct libmagic1 package to be built even in the presence of the buggy
1:5.38-2 in the system by using the new file command during the later stages
of the build process.
It's probably not cross-build safe, though.

Andreas
diff -Nru file-5.38/debian/changelog file-5.38/debian/changelog
--- file-5.38/debian/changelog	2020-01-06 12:22:22.000000000 +0100
+++ file-5.38/debian/changelog	2020-01-10 21:32:05.000000000 +0100
@@ -1,3 +1,9 @@
+file (1:5.38-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+
+ -- Andreas Beckmann <a...@debian.org>  Fri, 10 Jan 2020 21:32:05 +0100
+
 file (1:5.38-3) unstable; urgency=medium
 
   * Revert upstream commit "... count as dynamically linked only the
diff -Nru file-5.38/debian/rules file-5.38/debian/rules
--- file-5.38/debian/rules	2018-02-07 23:56:07.000000000 +0100
+++ file-5.38/debian/rules	2020-01-10 21:32:05.000000000 +0100
@@ -2,6 +2,9 @@
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
+# Use the just built file command for dh_shlibdeps and friends
+export PATH:=$(CURDIR)/debian/just-built:$(PATH)
+
 # HOWMANY is the number of bytes looked at by file
 CFLAGS += -DHOWMANY=0x18000
 
@@ -33,8 +36,16 @@
 	# Remove useless files
 	rm -f debian/tmp/usr/lib/*/*.la
 
+	mkdir -p debian/just-built
+	echo '#!/bin/sh\nLD_LIBRARY_PATH=$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) exec $(CURDIR)/debian/tmp/usr/bin/file -m $(CURDIR)/debian/tmp/usr/share/file/magic.mgc "$$@"' > debian/just-built/file
+	chmod +x debian/just-built/file
+
 override_dh_missing:
 	dh_missing --fail-missing
 
 override_dh_shlibdeps:
 	dh_shlibdeps -Llibmagic1 -ldebian/libmagic1/usr/lib
+
+override_dh_auto_clean:
+	dh_auto_clean
+	$(RM) -r debian/just-built

Reply via email to