hamfax version 0.6.4-5.1 failed to build on amd64 with GCC-4.6/oneiric

Bug #770985 reported by Matthias Klose
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
hamfax (Ubuntu)
Fix Released
High
John Nogatch
Oneiric
Fix Released
High
John Nogatch

Bug Description

hamfax version 0.6.4-5.1 failed to build on amd64 with GCC-4.6/oneiric
Link to failed build: https://launchpad.net/ubuntu/+archive/test-rebuild-20110413/+buildjob/2452521

Details about the rebuild:
https://lists.ubuntu.com/archives/ubuntu-devel/2011-April/033042.html

Direct link to the build log: https://launchpad.net/ubuntu/+archive/test-rebuild-20110413/+buildjob/2452521/+files/buildlog_ubuntu-natty-amd64.hamfax_0.6.4-5.1_FAILEDTOBUILD.txt.gz

This log snippet might be of interest, since it triggered the matcher 'Purging chroot-autobuild'.
Excerpt 1324 lines into the build log:

checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for Qt... yes:
    QT_CXXFLAGS=-I/usr/include/qt3
    QT_DIR=
    QT_LIBS=-lqt-mt -lSM -lICE -lX11 -lXext -lXmu -lXt -lXi
    QT_UIC=/usr/bin/uic
    QT_MOC=/usr/bin/moc
checking correct functioning of Qt installation... failure
configure: error: Failed to find matching components of a complete
                  Qt installation. Try using more options,
                  see ./configure --help.
make: *** [configure-stamp] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2
******************************************************************************
Build finished at 20110423-0911
FAILED [dpkg-buildpackage died]
Purging chroot-autobuild/build/buildd/hamfax-0.6.4

Related branches

Matthias Klose (doko)
Changed in hamfax (Ubuntu):
importance: Undecided → High
Changed in hamfax (Ubuntu):
milestone: none → oneiric-alpha-3
John Nogatch (jnogatch)
Changed in hamfax (Ubuntu Oneiric):
assignee: nobody → John Nogatch (jnogatch)
status: New → Confirmed
Revision history for this message
John Nogatch (jnogatch) wrote :

gcc 4.6 does not obtain modules from libraries unless the library comes later in the command, after the module that requires it.

This problem was present in 2 places:
1. In Makefile.in hamfax_LDFLAGS must be after the hamfax .o files.
2. In configure QT_LIBS must be after the qt* test program.

Modifying the configure file may not be a correct fix, since it may overwritten if autoconf or autoreconf is later used.

tags: added: patch
Revision history for this message
Christof Schmitt (christof-schmitt) wrote :

Hi, i am the author of hamfax. Thank you for debugging this problem. I have seen similar bugreports from other distributions as well, so i would like to fix this problem upstream if possible. Unfortunately, i don't have access to a 64 bit system, and i could not recreate this problem on my own.

It seems that the change for the call to "bnv_try_4=" is required, but i adjusted the patch to assign the QT_LIBS to LIBS in Makefile.am. Could you run a test compile with this patch? If this fixes the problem, i will add it to the upstream git repository.

Thanks again, for working on debugging this problem.

Revision history for this message
John Nogatch (jnogatch) wrote :

I do not have a 64-bit system either, but I reproduce the problem by using pbuilder-dist to run a "clean" oneiric i386 build on my system running natty.

I am seeing this issue of libraries needing to be moved later in the command in many packages; the behavior is different between gcc-4.5.2 in natty and gcc-4.6 in oneiric, but I do not see any description of such a change in gcc or ld documentation.

Your patch to Makefile.am is good; they are better to be called LIBS, rather than LDFLAGS.

Your patch to acinclude.m4 is also good, but after applying the patch, I had to remove configure and run autoconf to create a new configure. (I tried both autoconf and autoreconf, but only used the result of autoconf.) Then I created a new package and used pbuilder-dist to verify that it builds on oneiric i386.

In summary, your patch file is good, but I believe that you should also create a new configure file in the upstream repository.

Revision history for this message
Christof Schmitt (christof-schmitt) wrote :

Thanks for testing the change. You are right that the configure script needs to be updated as well. configure is not tracked in the upstream repository, but it is created when creating a release tar file with "make dist". Since this solves an important problem, i created a new release 0.6.5 with this change:
https://sourceforge.net/projects/hamfax/files/hamfax/HamFax-0.6.5.tar.bz2/download

The git repository with committed patch is available here:
https://sourceforge.net/scm/?type=git&group_id=28799

Changed in hamfax (Ubuntu Oneiric):
milestone: oneiric-alpha-3 → none
tags: added: universe
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hamfax - 0.8.1-1

---------------
hamfax (0.8.1-1) unstable; urgency=low

  * New upstream release.
  * Add Build-Depends: libhamlib-dev to enable hamlib PTT support.
  * Disable ALSA support on !linux platforms since ALSA-OSS wrapper does not
    provide 'snd_pcm_recover' (Closes: #635876).
    - restrict Build-Depends: libasound2-dev [linux-any]
  * Add debian/rules recommended targets build-{arch,indep}.

hamfax (0.8-1) unstable; urgency=low

  * New upstream release (Closes: #625181, #604499, LP: #770985).
  * Switch to source/format "3.0 (quilt)".
  * Update for Qt4: Build-Depends; omit ./configure param --with-qt-includes.
  * Add Build-Depends: pkg-config
  * Add Build-Depends: libasound2-dev to enable ALSA support.
  * Update watch file.
  * Update Standards-Version and Uploaders.
  * Update debian/copyright dates, author email address, format.
  * Removed empty preinst, prerm.
  * Update debian/{compat,rules} and debhelper dependency for debhelper 7.
    - use dh_prep instead of dh_clean -k
    - omit explicit dh_installman
 -- Kamal Mostafa <email address hidden> Mon, 08 Aug 2011 23:29:01 +0000

Changed in hamfax (Ubuntu Oneiric):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.