Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > 17190518b369476fb00916a381a92afe > files > 5

wine-gecko-1.4-1.mga1.src.rpm


%define name	wine-gecko
%define oname	wine-mozilla
%define version	1.4
%define rel	1

# random working revision from mingw-w64 trunk:
%define mingw64_snap	4705
# not working due to various errors:
# - 2847 ('swprintf_s' was not declared in this scope" while building mozilla)
# - 3272 (crt build failure)
# - 3500 (redefinition of UINT8 while building mozilla)
# - 3713 (crt build failure)

%define binutils_version 2.21.1
%define gcc_version 4.5.2

# See:
# http://wiki.winehq.org/Gecko
# http://wiki.winehq.org/BuildingWineGecko

%ifarch x86_64
%define mingw_host x86_64-w64-mingw32
%else
%define mingw_host i686-w64-mingw32
%endif

# We bundle custom versions of mingw64 headers and crt here because
# wine-gecko does not currently build with those from our system mingw32.
# Addendum: We also bundle the recommended versions of gcc and binutils as it
# doesn't build with our system ones, plus this allows 64-bit build as well.
# Build instructions from upstream README are followed.
# TODO: Investigate if the system mingw toolchain could be switched to
# ming64 to accommodate wine-gecko.

Summary:	HTML engine for Wine based on Gecko
Name:		%{name}
Version:	%{version}
Release:	%mkrel %{rel}
Group:		Emulators
License:	MPLv1.1
URL:		http://wiki.winehq.org/Gecko
Source:		http://downloads.sourceforge.net/wine/%{oname}-%{version}-src.tar.bz2
# URL=http://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/trunk
# REV=$(svn info $URL | sed -n 's,^Last Changed Rev: ,,p')
# rm -rf mingw-w64-crt mingw-w64-headers
# svn export -r $REV $URL/mingw-w64-crt
# svn export -r $REV $URL/mingw-w64-headers
# tar -cjf mingw-w64-crt-svn$REV.tar.bz2 mingw-w64-crt
# tar -cjf mingw-w64-headers-svn$REV.tar.bz2 mingw-w64-headers
Source1:	mingw-w64-headers-svn%mingw64_snap.tar.bz2
Source2:	mingw-w64-crt-svn%mingw64_snap.tar.bz2
# This is officially overkill:
Source3:	http://ftp.gnu.org/gnu/binutils/binutils-%{binutils_version}.tar.bz2
Source4:	http://gcc.fyxm.net/releases/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2
ExclusiveArch:	%ix86 x86_64
Requires:	wine32
BuildRequires:	autoconf2.1
BuildRequires:	zip
BuildRequires:	glib2-devel
BuildRequires:	libIDL-devel
BuildRequires:	x11-proto-devel
BuildRequires:	yasm
# for msi package generation
BuildRequires:	wine-bin
# for gcc
BuildRequires:	gmp-devel
BuildRequires:	mpfr-devel
BuildRequires:	libmpc-devel
# for propvarutil.h hack below
BuildRequires:  libwine-devel

%description
A custom version of Mozilla's Gecko Layout Engine for Wine. This package
is needed when running such Windows applications in Wine that display web
pages using embedded IE.

%ifarch x86_64
%package -n wine64-gecko
Summary:	HTML engine for 64-bit Wine based on Gecko
Group:		Emulators
Requires:	wine64

%description -n wine64-gecko
A custom version of Mozilla's Gecko Layout Engine for Wine. This package
is needed when running such Windows applications in Wine that display web
pages using embedded IE.

This package is for use with 64-bit wine64.
%endif

%prep
%setup -q -c -a1 -a2 -a3 -a4
ln -s wine-mozilla-%version wine-mozilla

%ifarch %ix86
# Fixes build - for some strange reason the detection fails here:
sed -i 's,cross_compiling=.*$,cross_compiling=yes,' wine-mozilla/nsprpub/configure
%endif

%build
builddir=$PWD
mkdir -p binutils-build gcc-build
mkdir -p mingw-headers-build mingw-crt-build

cd binutils-build
../binutils-%{binutils_version}/configure --prefix=$builddir/mingw-sysroot --target=%mingw_host
%make
%make install
cd ..

cd mingw-headers-build
../mingw-w64-headers/configure --host=%mingw_host --prefix=$builddir/mingw-sysroot --enable-sdk=all --enable-secure-api
%make install
ln -s %mingw_host $builddir/mingw-sysroot/mingw
cd ..

cd gcc-build
../gcc-%{gcc_version}/configure --prefix=$builddir/mingw-sysroot --target=%mingw_host --with-gnu-ld --with-gnu-as --enable-__cxa_atexit --enable-languages=c,c++ --disable-multilib
%make all-gcc
%make install-gcc
cd ..

export PATH=$builddir/mingw-sysroot/bin:$PATH

cd mingw-crt-build
../mingw-w64-crt/configure --host=%mingw_host --prefix=$builddir/mingw-sysroot
%make
%make install
cd ..

cd gcc-build
%make
%make install
# as per wine/README, fixes build
echo "#include_next <float.h>" >> $(echo $builddir/mingw-sysroot/lib/gcc/*/*/include/float.h)
cd ..

%ifarch x86_64
ln -s %{_bindir}/wine64 $builddir/mingw-sysroot/bin/wine
%endif

# (anssi) another hack, this seems to be missing from mingw so we grab it from
# wine - fixes build
[ "$(find -name propvarutil.h)" ] && echo "remove this hack" && exit 1
ln -s %{_includedir}/wine/windows/propvarutil.h $builddir/mingw-sysroot/mingw/include

cd wine-mozilla
wine/make_package \
%ifarch x86_64
	-win64
%else
	-win32
%endif

%install
install -d -m755 %{buildroot}%{_datadir}/wine/gecko
install -m644 wine_gecko-*/dist/wine_gecko-%{version}-*.msi %{buildroot}%{_datadir}/wine/gecko

%ifarch x86_64
%files -n wine64-gecko
%else
%files
%endif
%doc wine-mozilla/LEGAL
%doc wine-mozilla/LICENSE
%doc wine-mozilla/toolkit/content/license.html
%dir %{_datadir}/wine/gecko
%{_datadir}/wine/gecko/*.msi


%changelog

* Thu Aug 09 2012 dams <dams> 1.4-1.mga1
+ Revision: 280087
- new version 1.4 to fit wine 1.4.1

* Mon May 09 2011 anssi <anssi> 1.2.0-1.mga1
+ Revision: 96591
- update mingw-w64 headers and crt to recent snapshots (needed to fix build)
- bundle upstream recommended versions of gcc and binutils and build them
  against mingw-w64 headers for now (needed to fix build)
- enable x86_64 build (wine64-gecko) now, it works with the bundled
  toolchain
- drop now unneeded buildrequires on lcab, instead buildrequire wine-bin
- remove now unneeded mozilla build workaround
- workaround cross compilation misdetection in mozilla/nsprpub configure

  + ahmad <ahmad>
    - Update to 1.2.0

* Thu Mar 10 2011 ahmad <ahmad> 1.1.0-2.mga1
+ Revision: 67279
- imported package wine-gecko


* Sun Oct 10 2010 Anssi Hannula <anssi@mandriva.org> 1.1.0-1mdv2011.0
+ Revision: 584505
- new version
- build from sources (with bundled mingw-w64 crt+headers)

* Mon Dec 14 2009 Anssi Hannula <anssi@mandriva.org> 1.0.0-1mdv2011.0
+ Revision: 478585
- initial Mandriva release