[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#465150: marked as done (libmimedir: outdated libtool support breaks crossbuild)



Your message dated Tue, 23 Jun 2015 07:27:26 +0000
with message-id <[🔎] E1Z7IcA-0002JK-1v@franck.debian.org>
and subject line Bug#789203: Removed package(s) from unstable
has caused the Debian Bug report #465150,
regarding libmimedir: outdated libtool support breaks crossbuild
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
465150: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=465150
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libmimedir
Version: 0.4-4
Severity: normal
Tags: patch
User: codehelp@debian.org
Usertags: crossbuilt


In line with the other cross-building support bugs:
http://lists.debian.org/debian-devel/2007/11/msg00116.html

These patches are necessary to allow libmimedir to cross-build in Debian.

The effect is to replace AC_PROG_RANLIB with AC_PROG_LIBTOOL in
configure.in and ensure that --tag=CC is called as part of the libtool
support. These changes are made to upstream files so I've implemented
the patches using dpatch. Feel free to use whatever method you choose -
as long as configure.in uses AC_PROG_LIBTOOL and Makefile.in uses
./libtool --tag=CC --mode=.... when cross compiling (the current
./libtool script gets confused when --mode is arm-linux-gnu-gcc instead
of the native gcc).

Other changes in debian/rules and debian/control flow from the upstream
changes - using libtoolize to update libtool (supported by the change to
configure.in) and autoconf to transfer the changes in configure.in into
./configure itself. (aclocal required by libtoolize).

Finally, debian/rules is also updated to support --build and --host
following the recommendations in the autotools-dev README.

FYI the original failure is that libmimedir uses gcc even when cross
compiling so that the built package contains binaries for the wrong
architecture. Fixing that results in the original ./libtool failing due
to the lack of the --tag=CC option. Fixing that reveals an error in
./libtool itself that tries to link the cross-built binaries using the
native ld because the outdated libtool script is not updated in response
to the --build and --host options given to ./configure. Fixing that
means generating libtool in ./configure which is where 'libtoolize
--force --copy' comes in. (--copy is used because the ltmain.sh script
from upstream needs to be updated too and the default action of
replacing it with a symlink causes dpkg to complain). Finally, in order
to get libtoolize support into ./configure, configure.in needs the patch
and autoconf needs to transfer the modified configure.in macros into
./configure.


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-2-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--- libmimedir-0.4.debian/debian/control 
+++ libmimedir-0.4.emdebian/debian/control 
@@ -2,7 +2,8 @@
 Section: libs
 Priority: optional
 Maintainer: Volker Christian <voc@debian.org>
-Build-Depends: debhelper (>> 4.0.0), bison, flex
+Build-Depends: debhelper (>> 4.0.0), bison, flex, dpatch
+ libtool, autoconf
 Standards-Version: 3.6.2
 
 Package: libmimedir0
--- libmimedir-0.4.debian/debian/rules 
+++ libmimedir-0.4.emdebian/debian/rules 
@@ -5,12 +5,18 @@
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
+include /usr/share/dpatch/dpatch.make
 
 # These are used for cross-compiling and for saving the configure script
 # from having to guess our platform (since we know it already)
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) 
+CROSS_CC=CC=$(DEB_HOST_GNU_TYPE)-gcc
+else
+CROSS= --build $(DEB_BUILD_GNU_TYPE)
+endif
 
 CFLAGS = -Wall -g
 
@@ -24,24 +30,26 @@
 config.status: configure
 	dh_testdir
 	# Add here commands to configure the package.
-	chmod 755 ./libtool
+	libtoolize --force --copy
+	aclocal
+	autoconf
 	chmod 755 ./install-sh
-	./configure --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
+	./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
 
 
 build: build-stamp
-build-stamp:  config.status
+build-stamp: patch-stamp  config.status
 	dh_testdir
 
 	# Add here commands to compile the package.
-	$(MAKE)
+	$(MAKE) $(CROSS_CC)
 
 	touch build-stamp
 
-clean:
+clean: unpatch
 	dh_testdir
 	dh_testroot
-	rm -f build-stamp 
+	rm -f build-stamp config.sub config.guess
 
 	# Add here commands to clean up after the build process.
 	-$(MAKE) distclean
010-libtool-tag
020-libtool-configure
#! /bin/sh /usr/share/dpatch/dpatch-run
## 010_libtool-tag.dpatch by Neil Williams <codehelp@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Adds --tag=CC to libtool invocation for crossbuilding

@DPATCH@

--- libmimedir-0.4/Makefile.in	2008-02-10 21:59:52.000000000 +0000
+++ libmimedir.old/Makefile.in	2008-02-10 21:58:48.000000000 +0000
@@ -18,7 +18,7 @@
 MKDIR= mkdir
 LN= ln
 LIBS= -L. -lmimedir
-LIBTOOL= ./libtool
+LIBTOOL= ./libtool --tag=CC
 
 OBJS= dirlex.o dirsynt.o parse.o get.o dup.o free.o memmem.o add.o count.o del.o
 SOBJS= dirlex.lo dirsynt.lo parse.lo get.lo dup.lo free.lo memmem.lo add.lo count.lo del.lo
#! /bin/sh /usr/share/dpatch/dpatch-run
## 020_libtool-configure.dpatch by Neil Williams <codehelp@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Adds AC_PROG_LIBTOOL to configure.in for crossbuilding

@DPATCH@

--- libmimedir-0.4/configure.in	2008-02-10 22:25:01.000000000 +0000
+++ libmimedir.old/configure.in	2008-02-10 22:24:39.000000000 +0000
@@ -8,7 +8,7 @@
 AC_PROG_MAKE_SET
 AC_PROG_YACC
 AC_PROG_LEX
-AC_PROG_RANLIB
+AC_PROG_LIBTOOL
 
 dnl Checks for programs.
 

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Version: 0.5.1-4+rm

Dear submitter,

as the package libmimedir has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/789203

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Luca Falavigna (the ftpmaster behind the curtain)

--- End Message ---

Reply to: