Bug 1722840 - xastir-2.1.0-2.fc31 FTBFS: magick/image-private.h: No such file or directory
Summary: xastir-2.1.0-2.fc31 FTBFS: magick/image-private.h: No such file or directory
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: xastir
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Lucian Langa
QA Contact: Fedora Extras Quality Assurance
URL: https://apps.fedoraproject.org/kosche...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-06-21 13:10 UTC by Petr Pisar
Modified: 2020-11-24 20:20 UTC (History)
2 users (show)

Fixed In Version: xastir-2.1.4-3.fc32
Clone Of:
Environment:
Last Closed: 2020-11-24 20:20:41 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Petr Pisar 2019-06-21 13:10:40 UTC
xastir-2.1.0-2.fc31 fails to build in F31:

gcc -DHAVE_CONFIG_H -I. -I..   -I/usr/include/GraphicsMagick -I../src/shapelib -I/usr/local/include -I/usr/include/gdal -DXASTIR_DATA_BASE=\"/usr/share/xastir\"  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -Wpointer-arith -Wstrict-prototypes -Wno-unused-parameter -pthread -c -o map_geo.o map_geo.c
[...]
BUILDSTDERR: In file included from /usr/include/GraphicsMagick/magick/analyze.h:18,
BUILDSTDERR:                  from /usr/include/GraphicsMagick/magick/api.h:55,
BUILDSTDERR:                  from map_geo.c:137:
BUILDSTDERR: /usr/include/GraphicsMagick/magick/image.h:1108:10: fatal error: magick/image-private.h: No such file or directory
BUILDSTDERR:  1108 | #include "magick/image-private.h"
BUILDSTDERR:       |          ^~~~~~~~~~~~~~~~~~~~~~~~
BUILDSTDERR: compilation terminated.
BUILDSTDERR: make[3]: *** [Makefile:615: map_geo.o] Error 1

A difference between passing and failing build root is at <https://apps.fedoraproject.org/koschei/build/6585262>. An upgrade of GraphicsMagick-devel from 1.3.31-6.fc31 to 1.3.32-1.fc31 looks suspicious.

A similar bug report with a fix in Debian <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924329#18>.

Comment 1 Ben Cotton 2019-08-13 17:08:40 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 2 Ben Cotton 2019-08-13 19:09:38 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 3 Petr Pisar 2019-12-09 13:39:18 UTC
Upstream fixed in with:

commit 7b6ecce5769d9be56bf05c62767b344994c03624
Author: Tom Russo <russo>
Date:   Sun Jun 30 19:02:48 2019 -0600

    Fix compilation failure with newer GraphicsMagick
    
    David Flood reported today that Xastir failed to compile for him,
    because of a missing file "magick/image-private.h", which was getting
    included by a GraphicsMagick header.  Turns out this same issue has
    been cropping up in distro-specific bug reports all over the place
    lately:
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1722840
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924329#18
    
    And today, I tried to compile Xastir on FreeBSD only to find that on
    June 20th my own system had updated GraphicsMagick that exposed the
    same issue.
    
    This turns out to be a combination of mistakes in Xastir that have
    come back to bite us.
    
    In commit  4210671c37 back in 2007, an attempt to assure that map_geo
    consistently released memory whenever it exited introduced a call to
    the private function DestroyImagePixels, which was meant only to be
    called by the DestroyImage function.  At the same time, great care was
    taken to make sure that DestroyImage was called at all exit points, so
    the call to DestroyImagePixels was unnecessary.
    
    Later, GM removed the public declaration of DestroyImagePixels and hid
    it behind an ifdef that was intended to be set only by GraphicsMagick
    source code.  This led to a compilation warning in Xastir because the
    function, which is supposed to be "void DestroyImagePixels(Image
    image)" was used but implicitly declared as an int function with no
    prototype.  To address this, instead of removing the unnecessary call,
    a definition of the private "MAGICK_IMPLEMENTATION" macro was added to
    assure that DestroyImagePixels' declaration was picked up.  That was
    done in 2010 in commit f350db4.
    
    Since "draw_geo_image_map" is the only place where this function was
    ever called, and because all exit points of the function correctly
    call DestroyImage (which itself internally calls DestroyImagePixels),
    I am removing the inappropriate use of the private function *and* the
    definition of the MAGICK_IMPLEMENTATION macro.  This should have no
    impact on memory bloat (since all returns of the function call
    DestroyImage), and should end the compilation problem for all distros
    for good.

I'm going to apply the fix.

Comment 4 Petr Pisar 2019-12-09 13:53:00 UTC
The patch was actually included in 2.1.4. So Fedora 32 is fixed. Fedora 31 is still affected.

Comment 5 Ben Cotton 2020-11-03 15:18:33 UTC
This message is a reminder that Fedora 31 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 31 on 2020-11-24.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '31'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 31 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Ben Cotton 2020-11-24 20:20:41 UTC
Fedora 31 changed to end-of-life (EOL) status on 2020-11-24. Fedora 31 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.