Hi,
I was trying to cross-compile the RLIB reporting library:
http://rlib.sicompos.com/
http://newrlib.sicom.com/~rlib/index.php/Main_Page
and it prefers GD to be present. So, I tried to compile GD (version
2.0.35-13 SRPM as in Fedora 16) using the fedora-cross repos
for MinGW32-w64. There were some problems with it as the
configure.ac in GD only expected Cygwin, not MinGW without Cygwin.
The patch against configure.ac and the RPM specfile to package
for fedora-cross are attached.
Best regards,
Zoltán Böszörményi
%global __strip %{mingw_strip}
%global __objdump %{mingw_objdump}
%global _use_internal_dependency_generator 0
%global __find_requires %{mingw_findrequires}
%global __find_provides %{mingw_findprovides}
%define __debug_install_post %{mingw_debug_install_post}
%global mingw_pkg_name gd
%global mingw_build_win32 1
%global mingw_build_win64 1
Summary: A graphics library for quick creation of PNG or JPEG images
Name: mingw-gd
Version: 2.0.35
Release: 13.1%{?dist}
Group: System Environment/Libraries
License: MIT
URL: http://www.libgd.org/Main_Page
Source0: http://www.libgd.org/releases/gd-%{version}.tar.bz2
Patch0: gd-2.0.33-freetype.patch
Patch3: gd-2.0.34-multilib.patch
Patch4: gd-loop.patch
Patch5: gd-2.0.34-sparc64.patch
Patch6: gd-2.0.35-overflow.patch
Patch7: gd-2.0.35-AALineThick.patch
Patch8: gd-2.0.33-BoxBound.patch
Patch9: gd-2.0.34-fonts.patch
Patch10: gd-2.0.35-time.patch
Patch20: gd-mingw.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: mingw32-filesystem >= 65
BuildRequires: mingw64-filesystem >= 65
BuildRequires: mingw32-gcc
BuildRequires: mingw64-gcc
BuildRequires: mingw32-binutils
BuildRequires: mingw64-binutils
BuildRequires: mingw32-freetype
BuildRequires: mingw64-freetype
BuildRequires: mingw32-fontconfig
BuildRequires: mingw64-fontconfig
BuildRequires: mingw32-gettext
BuildRequires: mingw64-gettext
BuildRequires: mingw32-libjpeg-turbo
BuildRequires: mingw64-libjpeg-turbo
BuildRequires: mingw32-libpng
BuildRequires: mingw64-libpng
BuildRequires: mingw32-win-iconv
BuildRequires: mingw64-win-iconv
BuildRequires: mingw32-zlib
BuildRequires: mingw64-zlib
BuildRequires: pkgconfig
Requires: pkgconfig
%{?mingw_debug_package}
%description
MinGW compiled GD library.
# Mingw32
%package -n mingw32-%{mingw_pkg_name}
Summary: %{summary}
%description -n mingw32-%{mingw_pkg_name}
MinGW compiled GD library.
%package -n mingw32-%{mingw_pkg_name}-progs
Summary: GD programs for MinGW32
Requires: mingw32-%{mingw_pkg_name} = %{version}-%{release}
%description -n mingw32-%{mingw_pkg_name}-progs
GD programs for MinGW32.
%package -n mingw32-%{mingw_pkg_name}-static
Summary: Static version of the MinGW compiled GD library
Requires: mingw32-%{mingw_pkg_name} = %{version}-%{release}
%description -n mingw32-%{mingw_pkg_name}-static
Static version of the MinGW compiled GD library.
# Mingw64
%package -n mingw64-%{mingw_pkg_name}
Summary: %{summary}
%description -n mingw64-%{mingw_pkg_name}
MinGW compiled GD library.
%package -n mingw64-%{mingw_pkg_name}-progs
Summary: GD programs for MinGW64
Requires: mingw64-%{mingw_pkg_name} = %{version}-%{release}
%description -n mingw64-%{mingw_pkg_name}-progs
GD programs for MinGW64.
%package -n mingw64-%{mingw_pkg_name}-static
Summary: Static version of the MinGW compiled GD library
Requires: mingw64-%{mingw_pkg_name} = %{version}-%{release}
%description -n mingw64-%{mingw_pkg_name}-static
Static version of the MinGW compiled GD library.
%prep
%setup -q -n gd-%{version}
%patch0 -p1 -b .freetype
%patch3 -p1 -b .mlib
%patch4 -p1 -b .loop
%patch6 -p1 -b .overflow
%patch5 -p1 -b .sparc64
%patch7 -p1 -b .AALineThick
%patch8 -p1 -b .bb
%patch9 -p1 -b .fonts
%patch10 -p1 -b .time
%patch20 -p1 -b .mingw
libtoolize -c -f -i
autoreconf -f -i
%build
#GD can't build static and shared libraries in one go, so we build GLib twice
export CPPFLAGS="-DBGDWIN32"
%mingw_configure -s static "CPPFLAGS=-DBGDWIN32" "--disable-shared"
"--enable-static" "--without-x"
%mingw_configure -s shared "CPPFLAGS=-DBGDWIN32" "--enable-shared"
"--disable-static" "--without-x"
%mingw_make -s static %{?_smp_mflags}
%mingw_make -s shared %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
%mingw_make_install -s static "DESTDIR=$RPM_BUILD_ROOT/build_static"
%mingw_make_install -s shared "DESTDIR=$RPM_BUILD_ROOT"
# Move the static libraries to the right location
mv $RPM_BUILD_ROOT/build_static%{mingw32_libdir}/*.a
$RPM_BUILD_ROOT%{mingw32_libdir}
mv $RPM_BUILD_ROOT/build_static%{mingw64_libdir}/*.a
$RPM_BUILD_ROOT%{mingw64_libdir}
# Drop the .def files as they aren't interesting for other packages
#rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/*.def
#rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/*.def
# Remove platform prefixes
pushd $RPM_BUILD_ROOT%{mingw32_bindir}
for i in i686-w64-mingw32-* ; do
mv ${i} ${i#i686-w64-mingw32-}
done
popd
pushd $RPM_BUILD_ROOT%{mingw64_bindir}
for i in x86_64-w64-mingw32-* ; do
mv ${i} ${i#x86_64-w64-mingw32-}
done
popd
# Drop the folder which was temporary used for installing the static bits
rm -rf $RPM_BUILD_ROOT/build_static
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
# Win32
%files -n mingw32-%{mingw_pkg_name}
%defattr(-,root,root,-)
%{mingw32_bindir}/gdlib-config
%{mingw32_bindir}/bdftogd
%{mingw32_bindir}/*.dll
%{mingw32_includedir}/*.h
%files -n mingw32-%{mingw_pkg_name}-progs
%defattr(-,root,root,-)
%{mingw32_bindir}/*.exe
%files -n mingw32-%{mingw_pkg_name}-static
%defattr(-,root,root,-)
%{mingw32_libdir}/*.a
%{mingw32_libdir}/*.la
# Win64
%files -n mingw64-%{mingw_pkg_name}
%defattr(-,root,root,-)
%{mingw64_bindir}/gdlib-config
%{mingw64_bindir}/bdftogd
%{mingw64_bindir}/*.dll
%{mingw64_includedir}/*.h
%files -n mingw64-%{mingw_pkg_name}-progs
%defattr(-,root,root,-)
%{mingw64_bindir}/*.exe
%files -n mingw64-%{mingw_pkg_name}-static
%defattr(-,root,root,-)
%{mingw64_libdir}/*.a
%{mingw64_libdir}/*.la
%changelog
* Fri Dec 02 2011 Zoltán Böszörményi <[email protected]> - 2.0.35-13.1
- First attempt for MinGW32/64 packaging
* Wed Oct 26 2011 Fedora Release Engineering <[email protected]>
- 2.0.35-13
- Rebuilt for glibc bug#747377
* Tue Feb 08 2011 Fedora Release Engineering <[email protected]>
- 2.0.35-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Jan 6 2010 Jiri Moskovcak <[email protected]> - 2.0.35-11
- more spec file fixes
* Wed Jan 6 2010 Jiri Moskovcak <[email protected]> - 2.0.35-10
- spec file fixes based on merge review
* Fri Jul 24 2009 Fedora Release Engineering <[email protected]>
- 2.0.35-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Tue Feb 24 2009 Fedora Release Engineering <[email protected]>
- 2.0.35-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Tue Jan 6 2009 Ivana Varekova <[email protected]> - 2.0.35-7
- do minor spec file cleanup
* Mon Jul 21 2008 Tom "spot" Callaway <[email protected]> - 2.0.35-6
- fix license tag (nothing in this is GPL)
* Tue Feb 19 2008 Fedora Release Engineering <[email protected]> -
2.0.35-5
- Autorebuild for GCC 4.3
* Tue Nov 20 2007 Ivana Varekova <[email protected]> 2.0.35-4
- remove static library
* Mon Nov 19 2007 Ivana Varekova <[email protected]> 2.0.35-3
- spec file cleanup
* Mon Nov 19 2007 Ivana Varekova <[email protected]> 2.0.35-2
- fix gdlib.pc file
* Tue Sep 18 2007 Ivana Varekova <[email protected]> 2.0.35-1
- update to 2.0.35
* Tue Sep 4 2007 Ivana Varekova <[email protected]> 2.0.34-3
- fix font paths (#225786#5)
- fix pkgconfig Libs flag (#225786#4)
* Thu Feb 22 2007 Ivana Varekova <[email protected]> 2.0.34-2
- incorporate package review feedback
* Thu Feb 8 2007 Ivana Varekova <[email protected]> 2.0.34-1
- update to 2.0.34
* Mon Jan 29 2007 Ivana Varekova <[email protected]> 2.0.33-12
- Resolves: #224610
CVE-2007-0455 gd buffer overrun
* Tue Nov 21 2006 Ivana Varekova <[email protected]> 2.0.33-11
- Fix problem with to large box boundaries
Resolves: #197747
* Thu Nov 16 2006 Ivana Varekova <[email protected]> 2.0.33-10
- added 'thick' - variable support for AA line (#198042)
* Tue Oct 31 2006 Adam Tkac <[email protected]> 2.0.33-9.4
- patched some additionals overflows in gd (#175414)
* Wed Sep 13 2006 Jitka Kudrnacova <[email protected]> - 2.0.33 - 9.3
- gd-devel now requires fontconfig-devel (#205834)
* Wed Jul 19 2006 Jitka Kudrnacova <[email protected]> - 2.0.33 - 9.2
- use CFLAGS on sparc64 (#199363)
* Wed Jul 12 2006 Jesse Keating <[email protected]> - 2.0.33 - 9.1
- rebuild
* Mon Jul 10 2006 Jitka Kudrnacova <[email protected]> 2.0.33-9
- prevent from an infinite loop when decoding bad GIF images (#194520)
* Thu May 25 2006 Ivana Varekova <[email protected]> - 2.0.33-7
- fix multilib problem (add pkgconfig)
* Fri Feb 10 2006 Jesse Keating <[email protected]> - 2.0.33-6.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <[email protected]> - 2.0.33-6.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Fri Jan 20 2006 Phil Knirsch <[email protected]> 2.0.33-6
- Included a few more overflow checks (#177907)
* Fri Dec 09 2005 Jesse Keating <[email protected]>
- rebuilt
* Wed Nov 02 2005 Phil Knirsch <[email protected]> 2.0.33-5
- Switched BuildPreReqs and Requires to modular xorg-x11 style
* Mon Oct 10 2005 Phil Knirsch <[email protected]> 2.0.33-4
- Fixed possible gd crash when drawing AA line near image borders (#167843)
* Wed Sep 07 2005 Phil Knirsch <[email protected]> 2.0.33-3
- Fixed broken freetype-config --libs flags in configure (#165875)
* Sun Apr 17 2005 Warren Togami <[email protected]> 2.0.33-2
- devel reqs (#155183 thias)
* Tue Mar 22 2005 Than Ngo <[email protected]> 2.0.33-1
- 2.0.33 #150717
- apply the patch from Jose Pedro Oliveira
- Added the release macro to the subpackages requirements versioning
- Handled the gdlib-config movement to gd-devel in a differment manner
- Added fontconfig-devel to the build requirements
- Added xorg-x11-devel to the build requirements (Xpm)
- Removed explicit /sbin/ldconfig requirement (gd rpm)
- Removed explicit perl requirement (gd-progs rpm)
- Added several missing documentation files (including the license file)
- Replaced %%makeinstall by make install DESTDIR=...
* Thu Mar 10 2005 Than Ngo <[email protected]> 2.0.32-3
- move gdlib-config in devel
* Wed Mar 02 2005 Phil Knirsch <[email protected]> 2.0.32-2
- bump release and rebuild with gcc 4
* Wed Nov 03 2004 Phil Knirsch <[email protected]> 2.0.32-1
- Update to 2.0.32 which includes all the security fixes
* Wed Oct 27 2004 Phil Knirsch <[email protected]> 2.0.28-2
- Fixed several buffer overflows for gdMalloc() calls
* Tue Jul 27 2004 Phil Knirsch <[email protected]> 2.0.28-1
- Update to 2.0.28
* Fri Jul 02 2004 Phil Knirsch <[email protected]> 2.0.27-1
- Updated to 2.0.27 due to:
o Potential memory overruns in gdImageFilledPolygon. Thanks to John Ellson.
o The sign of Y-axis values returned in the bounding box by gdImageStringFT
was incorrect. Thanks to John Ellson and Riccardo Cohen.
* Wed Jun 30 2004 Phil Knirsch <[email protected]> 2.0.26-1
- Update to 2.0.26
* Tue Jun 15 2004 Elliot Lee <[email protected]>
- rebuilt
* Wed Apr 21 2004 Phil Knirsch <[email protected]> 2.0.21-3
- Disable rpath usage.
* Tue Mar 02 2004 Elliot Lee <[email protected]>
- rebuilt
* Fri Feb 13 2004 Elliot Lee <[email protected]>
- rebuilt
* Mon Feb 02 2004 Phil Knirsch <[email protected]> 2.0.21-1
- Updated to 2.0.21
* Tue Aug 12 2003 Florian La Roche <[email protected]>
- update to 2.0.15
* Wed Jun 04 2003 Elliot Lee <[email protected]>
- rebuilt
* Tue May 06 2003 Phil Knirsch <[email protected]> 2.0.12-1
- Update to 2.0.12
* Wed Jan 22 2003 Tim Powers <[email protected]> 1.8.4-11
- rebuilt
* Wed Dec 11 2002 Tim Powers <[email protected]> 1.8.4-10
- rebuild on all arches
* Fri Jun 21 2002 Tim Powers <[email protected]>
- automated rebuild
* Thu May 23 2002 Tim Powers <[email protected]>
- automated rebuild
* Thu Jan 24 2002 Phil Knirsch <[email protected]>
- Specfile update to add URL for homepage (#54608)
* Wed Jan 09 2002 Tim Powers <[email protected]>
- automated rebuild
* Wed Oct 31 2001 Bernhard Rosenkraenzer <[email protected]> 1.8.4-5
- Rebuild with current libpng
* Mon Aug 13 2001 Philipp Knirsch <[email protected]> 1.8.4-4
- Fixed a wrong double ownership of libgd.so (#51599).
* Fri Jul 20 2001 Bernhard Rosenkraenzer <[email protected]> 1.8.4-3
- There's really no reason to link against both freetype 1.x and 2.x,
especially when gd is configured to use just freetype 2.x. ;)
* Mon Jun 25 2001 Philipp Knirsch <[email protected]>
- Forgot to include the freetype library in the shared library linking. Fixed.
* Thu Jun 21 2001 Philipp Knirsch <[email protected]>
- Update to 1.8.4
* Tue Dec 19 2000 Philipp Knirsch <[email protected]>
- Updates the descriptions to get rid of al references to gif
* Tue Dec 12 2000 Philipp Knirsch <[email protected]>
- Fixed bug #22001 where during installation the .so.1 and the so.1.8 links
didn't get installed and therefore updates had problems.
* Wed Oct 4 2000 Nalin Dahyabhai <[email protected]>
- define HAVE_LIBTTF to actually enable ttf support (oops, #18299)
- remove explicit dependencies on libpng, libjpeg, et. al.
- add BuildPrereq: freetype-devel
* Wed Aug 2 2000 Matt Wilson <[email protected]>
- rebuilt against new libpng
* Mon Jul 31 2000 Nalin Dahyabhai <[email protected]>
- add %%postun run of ldconfig (#14915)
* Thu Jul 13 2000 Prospector <[email protected]>
- automatic rebuild
* Tue Jun 27 2000 Nalin Dahyabhai <[email protected]>
- update to 1.8.3
* Sat Jun 4 2000 Nalin Dahyabhai <[email protected]>
- rebuild in new environment
* Mon May 22 2000 Nalin Dahyabhai <[email protected]>
- break out a -progs subpackage
- disable freetype support
* Fri May 19 2000 Nalin Dahyabhai <[email protected]>
- update to latest version (1.8.2)
- disable xpm support
* Thu Feb 03 2000 Nalin Dahyabhai <[email protected]>
- auto rebuild in the new build environment (release 6)
* Sun Mar 21 1999 Cristian Gafton <[email protected]>
- auto rebuild in the new build environment (release 5)
* Thu Dec 17 1998 Cristian Gafton <[email protected]>
- buiuld for glibc 2.1
* Fri Sep 11 1998 Cristian Gafton <[email protected]>
- built for 5.2
diff -durpN /home/zozo/rpmbuild/BUILD/gd-2.0.35/configure.ac
gd-2.0.35/configure.ac
--- /home/zozo/rpmbuild/BUILD/gd-2.0.35/configure.ac 2007-04-25
14:48:41.000000000 +0200
+++ gd-2.0.35/configure.ac 2011-12-02 13:18:35.533393315 +0100
@@ -8,6 +8,7 @@ AC_PREREQ(2.54)
AC_INIT([GD], [2.0.35], [http://bugs.libgd.org])
AC_CONFIG_SRCDIR([gd.c])
AC_CONFIG_AUX_DIR(config)
+AC_CONFIG_MACRO_DIR([config])
AC_CANONICAL_TARGET([])
GDLIB_MAJOR=2
@@ -33,6 +34,9 @@ case "$target" in
*-*-cygwin*) XTRA_LDFLAGS="-no-undefined"
os_cygwin=yes
;;
+ *-*-mingw32*) XTRA_LDFLAGS="-no-undefined"
+ os_cygwin=no
+ ;;
*) XTRA_LDFLAGS=
os_cygwin=no
;;
@@ -40,13 +44,14 @@ esac
AC_MSG_RESULT([$os_cygwin])
AC_SUBST([XTRA_LDFLAGS])
+LT_INIT
AC_PROG_CC
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_LIBTOOL
+AC_LIBTOOL_WIN32_DLL
AC_PROG_LN_S
AC_PROG_MAKE_SET
-#AC_PROG_RANLIB
dnl may be required for freetype and Xpm
AC_PATH_X
@@ -348,16 +353,12 @@ AC_ARG_WITH(png,dnl
# confusing autoconf into thinking the library itself will be named -lpng,
# which it won't be. Awful. This code will suffice unless the libpng
# authors decide to do this AGAIN. Which I really hope they won't. TBB
+#
+# On Fedora, Mingw-W64 has libpng 1.5.x, let's use libpng-config directly.
if test "$withval" != no; then
- AC_PATH_PROG([LIBPNG12_CONFIG], [libpng12-config])
AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config])
- if test -n "$LIBPNG12_CONFIG"; then
- libpng_CPPFLAGS=`libpng12-config --cflags`
- # should be --ldopts, but it's currently broken
- libpng_LDFLAGS=`libpng12-config --ldflags`
- libpng_LDFLAGS=`echo " $libpng_LDFLAGS" | sed 's/ -l[[^ ]][[^ ]]*//g'`
- elif test -n "$LIBPNG_CONFIG"; then
+ if test -n "$LIBPNG_CONFIG"; then
libpng_CPPFLAGS=`libpng-config --cflags`
# should be --ldopts, but it's currently broken
libpng_LDFLAGS=`libpng-config --ldflags`
@@ -375,14 +376,7 @@ if test "$withval" != no; then
_ldflags="$LDFLAGS"
LDFLAGS="$libpng_LDFLAGS $LDFLAGS"
- if test -n "$LIBPNG12_CONFIG"; then
- AC_CHECK_LIB(png12,png_create_read_struct,
- [LIBS="-lpng12 $LIBS"
- FEATURES="GD_PNG $FEATURES"
- AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ])],
- [LDFLAGS="$_ldflags"
- AC_MSG_WARN([libpng is required - see http://www.libpng.org/pub/png/])])
- elif test -n "$LIBPNG_CONFIG"; then
+ if test -n "$LIBPNG_CONFIG"; then
AC_CHECK_LIB(png,png_create_read_struct,
[LIBS="-lpng $LIBS"
FEATURES="GD_PNG $FEATURES"
_______________________________________________
mingw mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/mingw