Blob Blame History Raw
%global __strip %{_mingw32_strip}
%global __objdump %{_mingw32_objdump}
%global _use_internal_dependency_generator 0
%global __find_requires %{_mingw32_findrequires}
%global __find_provides %{_mingw32_findprovides}
%define __debug_install_post %{_mingw32_debug_install_post}

%global majorver1 8
%global majorver2 5
%global majorver %{majorver1}.%{majorver2}
%global	vers %{majorver}.11

%global name1 tcl

Summary: MinGW Windows Tool Command Language, pronounced tickle
Name: mingw32-%{name1}
Version: %{vers}
Release: 2%{?dist}
License: TCL
Group: Development/Languages
URL: http://tcl.sourceforge.net/
Source0: http://downloads.sourceforge.net/sourceforge/tcl/%{name1}%{version}-src.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
Buildrequires: autoconf
BuildRequires: file
BuildRequires: m4
BuildRequires: net-tools
BuildRequires: tcl
BuildRequires: mingw32-filesystem >= 52
BuildRequires: mingw32-gcc
BuildRequires: mingw32-binutils
BuildRequires: mingw32-cpp
BuildRequires: mingw32-runtime
BuildRequires: mingw32-w32api
Patch0: tcl-8.5.1-autopath.patch
Patch1: tcl-8.5.10-conf.patch
Patch2: tcl-8.5.9-hidden.patch
Patch4: tcl-8.5.6-mingw32.patch
Patch5: tcl-nativetclsh.patch

%description
The Tcl (Tool Command Language) provides a powerful platform for
creating integration applications that tie together diverse
applications, protocols, devices, and frameworks. When paired with the
Tk toolkit, Tcl provides a fastest and powerful way to create
cross-platform GUI applications.  Tcl can also be used for a variety
of web-related tasks and for creating powerful command languages for
applications.


%{_mingw32_debug_package}


%prep
%setup -q -n %{name1}%{version}
chmod -x generic/tclThreadAlloc.c

%patch0 -p1 -b .autopath
%patch1 -p1 -b .conf
%patch2 -p1 -b .hidden
%patch4 -p0 -b .mingw32
%patch5 -p0 -b .nativetclsh

%build
pushd win
autoconf
%{_mingw32_configure} --disable-threads --enable-shared
# builds fail sometimes with %{?_smp_mflags}, so don't use
make TCL_LIBRARY=%{_mingw32_datadir}/%{name1}%{majorver}
popd

%install
rm -rf $RPM_BUILD_ROOT
make install -C win INSTALL_ROOT=$RPM_BUILD_ROOT TCL_LIBRARY=%{_mingw32_datadir}/%{name1}%{majorver}

ln -s tclsh%{majorver1}%{majorver2}.exe $RPM_BUILD_ROOT%{_mingw32_bindir}/tclsh.exe

mv $RPM_BUILD_ROOT%{_mingw32_libdir}/lib%{name1}%{majorver1}%{majorver2}.a $RPM_BUILD_ROOT%{_mingw32_libdir}/lib%{name1}%{majorver1}%{majorver2}.dll.a
mv $RPM_BUILD_ROOT%{_mingw32_libdir}/lib%{name1}stub%{majorver1}%{majorver2}.a $RPM_BUILD_ROOT%{_mingw32_libdir}/lib%{name1}stub%{majorver1}%{majorver2}.dll.a

# for linking with -lib%{name1}
ln -s lib%{name1}%{majorver1}%{majorver2}.dll.a $RPM_BUILD_ROOT%{_mingw32_libdir}/lib%{name1}.dll.a

#mkdir -p $RPM_BUILD_ROOT/%{_mingw32_libdir}/%{name1}%{majorver}
ln -s ../share/%{name1}%{majorver} $RPM_BUILD_ROOT/%{_mingw32_libdir}/%{name1}%{majorver}

# postgresql and maybe other packages too need tclConfig.sh
# paths don't look at /usr/lib for efficiency, so we symlink into tcl8.5 for now
ln -s %{_mingw32_libdir}/%{name1}Config.sh $RPM_BUILD_ROOT/%{_mingw32_libdir}/%{name1}%{majorver}/%{name1}Config.sh

mkdir -p $RPM_BUILD_ROOT/%{_mingw32_includedir}/%{name1}-private/{generic,win}
find generic win -name "*.h" -exec cp -p '{}' $RPM_BUILD_ROOT/%{_mingw32_includedir}/%{name1}-private/'{}' ';'
( cd $RPM_BUILD_ROOT/%{_mingw32_includedir}
	for i in *.h ; do
		[ -f $RPM_BUILD_ROOT/%{_mingw32_includedir}/%{name1}-private/generic/$i ] && ln -sf ../../$i $RPM_BUILD_ROOT/%{_mingw32_includedir}/%{name1}-private/generic ;
	done
) || true

# fix executable bits
chmod a-x $RPM_BUILD_ROOT/%{_mingw32_datadir}/%{name1}%{majorver}/encoding/*.enc
chmod a-x $RPM_BUILD_ROOT/%{_mingw32_libdir}/*/pkgIndex.tcl

# remove buildroot traces
sed -i -e "s|$PWD/win|%{_libdir}|; s|$PWD|%{_includedir}/%{name}-private|" $RPM_BUILD_ROOT/%{_mingw32_libdir}/%{name1}Config.sh
rm -rf $RPM_BUILD_ROOT/%{_mingw32_datadir}/%{name1}%{majorver}/tclAppInit.c
rm -rf $RPM_BUILD_ROOT/%{_mingw32_datadir}/%{name1}%{majorver}/ldAix

# move windows packages to where tcl85.dll will find them
mv $RPM_BUILD_ROOT/%{_mingw32_libdir}/dde* $RPM_BUILD_ROOT/%{_mingw32_libdir}/%{name1}%{majorver}/
mv $RPM_BUILD_ROOT/%{_mingw32_libdir}/reg* $RPM_BUILD_ROOT/%{_mingw32_libdir}/%{name1}%{majorver}/

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%{_mingw32_bindir}/%{name1}sh.exe
%{_mingw32_bindir}/%{name1}sh%{majorver1}%{majorver2}.exe
%{_mingw32_bindir}/%{name1}%{majorver1}%{majorver2}.dll
%{_mingw32_bindir}/%{name1}pip%{majorver1}%{majorver2}.dll
%{_mingw32_libdir}/lib%{name1}%{majorver1}%{majorver2}.dll.a
%{_mingw32_libdir}/lib%{name1}stub%{majorver1}%{majorver2}.dll.a
%{_mingw32_libdir}/lib%{name1}.dll.a
%{_mingw32_libdir}/%{name1}Config.sh
%{_mingw32_datadir}/%{name1}%{majorver}
%{_mingw32_datadir}/%{name1}%{majorver1}
%{_mingw32_includedir}/*
%{_mingw32_libdir}/%{name1}%{majorver}/
%doc README changes 
%doc license.terms

%changelog
* Mon Feb 27 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 8.5.11-2
- Rebuild against the mingw-w64 toolchain

* Mon Jan 16 2012 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.11-1
- update 8.5.11

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.5.9-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Thu Feb 10 2011 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.9-4
- put the reg and dde libraries where tcl85.dll searches for it
 
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.5.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Feb  2 2011 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.9-2
- put the tcl library where tclsh.exe searches for it

* Mon Dec  6 2010 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.9-1
- update to 8.5.9

* Thu Aug  5 2010 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.8-1
- update to 8.5.8

* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.5.7-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Mon Jun 22 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.7-6
- add debuginfo packages

* Sat May 23 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.7-5
- rebuilt

* Sat May 23 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.7-4
- use native shell to install tz data

* Sat May 23 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.7-3
- fix BRs

* Fri May 22 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.7-2
- remove check section

* Thu May 21 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.7-1
- update to 8.5.7
- simplify dir ownership

* Thu May 21 2009 Thomas Sailer <t.sailer@alumni.ethz.ch> - 8.5.6-1
- copy from native