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

Reply via email to