Bug 1224464

Summary: libgdiplus builds on x86_64 without gif, tiff and jpeg support
Product: [Fedora] Fedora Reporter: Timotheus Pokorra <pokorra.mailinglists>
Component: libgdiplusAssignee: Xavier Lamien <lxtnow>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: chkr, claudiorodrigo, lxtnow
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-03 12:15:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1222982    

Description Timotheus Pokorra 2015-05-23 08:54:17 UTC
Description of problem:
The recent build for Rawhide (http://koji.fedoraproject.org/koji/buildinfo?buildID=637589) builds fine for i686 with support for gif, tiff and jpeg:

checking for gif_lib.h... yes
checking for DGifOpenFileName in -lungif... no
configure: WARNING: *** GIF loader will not be built (ungiflibrary not found) ***
checking for libpng14... checking for libpng12... no
checking for png_read_info in -lpng... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for png_structp in png.h... yes
checking for LIBEXIF... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libgdiplus.pc
config.status: creating libgdiplus0.spec
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
---
Configuration summary
   * Installation prefix = /usr
   * Cairo = 1.14.2 (system)
   * Text = cairo
   * EXIF tags = yes
   * Codecs supported:
      - TIFF: yes
      - JPEG: yes
      - GIF: yes
      - PNG: yes
      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

But for x86_64:

checking for jpeg_destroy_decompress in -ljpeg... no
configure: WARNING: *** JPEG loader will not be built (JPEG library not found) ***
checking for TIFFReadScanline in -ltiff... no
checking for TIFFWriteScanline in -ltiff... no
checking for TIFFFlushData in -ltiff34... no
configure: WARNING: *** TIFF plug-in will not be built (TIFF library not found) ***
checking for DGifOpenFileName in -lgif... no
checking for DGifOpenFileName in -lungif... configure: WARNING: *** GIF loader will not be built (giflibrary not found) ***
no
configure: WARNING: *** GIF loader will not be built (ungiflibrary not found) ***
checking for libpng14... checking for libpng12... no
checking for png_read_info in -lpng... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for png_structp in png.h... yes
checking for LIBEXIF... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libgdiplus.pc
config.status: creating libgdiplus0.spec
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
---
Configuration summary
   * Installation prefix = /usr
   * Cairo = 1.14.2 (system)
   * Text = cairo
   * EXIF tags = yes
   * Codecs supported:
      - TIFF: no (Get it from http://www.libtiff.org/)
      - JPEG: no (Get it from http://freshmeat.net/projects/libjpeg)
      - GIF: no (See http://sourceforge.net/projects/libgif)
      - PNG: yes
      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

Comment 1 Timotheus Pokorra 2015-05-23 08:59:29 UTC
I can reproduce this on x86_64 rawhide machine, but only in this call:
  rpmbuild -ba SPECS/libgdiplus.spec
It does not find TIFF, JPEG and GIF

If I do this (using the same parameter for configure as in the spec file):
 cd BUILD/libgdiplus-3.12
 ./configure --disable-static

then it will support TIFF, JPEG and GIF

What is the difference?

Comment 2 Timotheus Pokorra 2015-05-23 10:19:59 UTC
the difference is the LDFLAGS environment variable that is being set by rpmbuild.
it is LDFLAGS='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'

if I change in the spec file:
LDFLAGS='-Wl,-z,relro' %configure --disable-static

then it works.

I don't fully understand this redhat-hardened spec.
What is the proper solution for this?

I checked the previous build of libgdiplus for F22 (http://koji.fedoraproject.org/koji/buildinfo?buildID=560419), and it seems this new parameter for LDFLAGS has been added in F23.

Can I please leave that with you Xavier? Thanks!

Comment 3 Claudio Rodrigo Pereyra DIaz 2015-05-26 19:11:47 UTC
The problem is caused by https://fedoraproject.org/wiki/Changes/Harden_All_Packages

The Harden_All_Packages change indicate solution for that.
https://fedoraproject.org/wiki/Changes/Harden_All_Packages#Troubleshooting_steps_for_package_maintainers

I use option b and it work.