%define majorver 8.6 Summary: The graphical toolkit for the Tcl scripting language Name: tk Version: %{majorver}.6 Release: 1 License: TCL Group: Development/Languages URL: http://tcl.sourceforge.net Source0: http://download.sourceforge.net/tcl/%{name}%{version}-src.tar.gz Source1: libtk8.5.so-aix32 Source2: libtk8.5.so-aix64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: tcl-devel = %{version} BuildRequires: fontconfig-devel >= 2.10.2-1 BuildRequires: libXft-devel >= 2.3.2-1 Requires: tcl = %{version} Requires: fontconfig >= 2.10.2-1 Requires: libXft >= 2.3.2-1 %define _libdir64 %{_prefix}/lib64 %description When paired with the Tcl scripting language, Tk provides a fast and powerful way to create cross-platform GUI applications. The library is available as 32-bit and 64-bit. %package devel Summary: Tk graphical toolkit development files Group: Development/Languages Requires: %{name} = %{version}-%{release} Requires: tcl-devel = %{version} %description devel When paired with the Tcl scripting language, Tk provides a fast and powerful way to create cross-platform GUI applications. The package contains the development files and man pages for tk. If you are compiling a 32-bit program, no special compiler options are needed. If you are compiling a 64-bit program, you have to compile and link your application with "cc_r -q64" or "gcc -maix64". %prep %setup -q -n %{name}%{version} mkdir -p ../64bit cp -r * ../64bit/ mv ../64bit . %build export CC="/usr/vac/bin/xlc_r -qcpluscmt" export PATH="/opt/freeware/bin:$PATH" # first build the 64-bit version export OBJECT_MODE=64 export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" cd 64bit/unix ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --mandir=%{_mandir} \ --enable-64bit \ --disable-shared --enable-static \ --enable-threads \ --enable-xft \ --with-x \ --with-tcl=%{_libdir64} /opt/freeware/bin/sed -i -e "s|-L\/opt\/freeware\/lib|-L\/opt\/freeware\/lib64|g" config.status ./config.status make %{?_smp_mflags} lib%{name}%{majorver}.a TCL_LIBRARY=%{_datadir}/%{name}%{majorver} /usr/vac/bin/CreateExportList -X64 %{name}.exp lib%{name}%{majorver}.a ${CC} -qmkshrobj lib%{name}%{majorver}.a -o lib%{name}%{majorver}.so -bE:%{name}.exp -L%{_libdir64} -L%{_libdir} -brtl -ltcl8.6 -lX11 -lXext -lXft -lfontconfig -lm rm -f lib%{name}%{majorver}.a %{name}.exp /usr/bin/ar -rv lib%{name}%{majorver}.a lib%{name}%{majorver}.so make %{?_smp_mflags} TK_LIBRARY=%{_datadir}/%{name}%{majorver} cd ../.. # now build the 32-bit version export OBJECT_MODE=32 export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" cd unix ./configure \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ --disable-shared --enable-static \ --enable-threads \ --enable-xft \ --with-x make %{?_smp_mflags} lib%{name}%{majorver}.a TCL_LIBRARY=%{_datadir}/%{name}%{majorver} /usr/vac/bin/CreateExportList -X32 %{name}.exp lib%{name}%{majorver}.a ${CC} -qmkshrobj lib%{name}%{majorver}.a -o lib%{name}%{majorver}.so -bE:%{name}.exp -L%{_libdir} -brtl -ltcl8.6 -lX11 -lXext -lXft -lfontconfig -lm rm -f lib%{name}%{majorver}.a %{name}.exp /usr/bin/ar -rv lib%{name}%{majorver}.a lib%{name}%{majorver}.so make %{?_smp_mflags} TK_LIBRARY=%{_datadir}/%{name}%{majorver} %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} export OBJECT_MODE=64 cd 64bit/unix make DESTDIR=${RPM_BUILD_ROOT} install TK_LIBRARY=%{_datadir}/%{name}%{majorver} mv ${RPM_BUILD_ROOT}%{_bindir}/wish%{majorver} ${RPM_BUILD_ROOT}%{_bindir}/wish%{majorver}_64 ln -sf with%{majorver}_64 ${RPM_BUILD_ROOT}%{_bindir}/wish_64 cd ../.. export OBJECT_MODE=32 cd unix make DESTDIR=${RPM_BUILD_ROOT} install TK_LIBRARY=%{_datadir}/%{name}%{majorver} ln -sf wish%{majorver} ${RPM_BUILD_ROOT}%{_bindir}/wish /usr/bin/strip ${RPM_BUILD_ROOT}%{_bindir}/* || : ln -sf lib%{name}%{majorver}.so ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.so ln -sf lib%{name}%{majorver}.so ${RPM_BUILD_ROOT}%{_libdir64}/lib%{name}.so # add the older v8.5 shared libraries for compatibility reasons # (make sure they're set for LOADONLY with 'strip -e') cp %{SOURCE1} ${RPM_BUILD_ROOT}%{_libdir}/libtk8.5.so /usr/bin/strip -X32 -e ${RPM_BUILD_ROOT}%{_libdir}/libtk8.5.so cp %{SOURCE2} ${RPM_BUILD_ROOT}%{_libdir64}/libtk8.5.so /usr/bin/strip -X64 -e ${RPM_BUILD_ROOT}%{_libdir64}/libtk8.5.so # add compatibility links for version 8.5 ( cd ${RPM_BUILD_ROOT}%{_libdir} ln -s %{name}%{majorver} %{name}8.5 cd ${RPM_BUILD_ROOT}%{_libdir64} ln -s %{name}%{majorver} %{name}8.5 ) ( cd ${RPM_BUILD_ROOT}%{_libdir} /usr/bin/chmod 0644 lib%{name}%{majorver}.a /usr/bin/ar -X32 -x lib%{name}%{majorver}.a cd ${RPM_BUILD_ROOT}%{_libdir64} /usr/bin/ar -X64 -x lib%{name}%{majorver}.a /usr/bin/rm -f lib%{name}%{majorver}.a ) # add the 64-bit shared library member /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}%{majorver}.a \ ${RPM_BUILD_ROOT}%{_libdir64}/lib%{name}%{majorver}.so \ mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/%{name}%{majorver} cat > ${RPM_BUILD_ROOT}%{_libdir}/%{name}%{majorver}/pkgIndex.tcl << EOF if {[catch {package present Tcl %{majorver}.0}]} return package ifneeded Tk %{version} [list load [file normalize [file join \$dir .. libtk%{majorver}.so]] Tk] EOF mkdir -p ${RPM_BUILD_ROOT}%{_libdir64}/%{name}%{majorver} cat > ${RPM_BUILD_ROOT}%{_libdir64}/%{name}%{majorver}/pkgIndex.tcl << EOF if {[catch {package present Tcl %{majorver}.0}]} return package ifneeded Tk %{version} [list load [file normalize [file join \$dir .. libtk%{majorver}.so]] Tk] EOF # "convince" tkConfig.sh that we have built shared libraries :-) /opt/freeware/bin/sed -i 's|TK_SHARED_BUILD=0|TK_SHARED_BUILD=1|g' ${RPM_BUILD_ROOT}%{_libdir}/tkConfig.sh /opt/freeware/bin/sed -i 's|TK_SHARED_BUILD=0|TK_SHARED_BUILD=1|g' ${RPM_BUILD_ROOT}%{_libdir64}/tkConfig.sh ( cd ${RPM_BUILD_ROOT} for dir in bin include lib lib64 do mkdir -p usr/linux/${dir} cd usr/linux/${dir} ln -sf ../../..%{_prefix}/${dir}/* . cd - done ) %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc README changes license.terms %{_bindir}/wish* %{_libdir}/lib%{name}%{majorver}.a %{_libdir}/lib*.so* %{_libdir64}/lib*.so* %dir %{_libdir}/%{name}%{majorver} %dir %{_libdir64}/%{name}%{majorver} %{_libdir}/%{name}%{majorver}/* %{_libdir64}/%{name}%{majorver}/* %dir %{_libdir}/%{name}8.5 %dir %{_libdir64}/%{name}8.5 %dir %{_datadir}/%{name}%{majorver} %{_datadir}/%{name}%{majorver}/* %{_mandir}/man1/* %{_mandir}/mann/* /usr/linux/bin/wish* /usr/linux/lib/lib%{name}%{majorver}.a /usr/linux/lib/lib*.so* /usr/linux/lib64/lib*.so* %files devel %defattr(-,root,system) %{_includedir}/* %{_libdir}/libtkstub*.a %{_libdir64}/libtkstub*.a %{_libdir}/%{name}Config.sh %{_libdir64}/%{name}Config.sh %{_libdir}/pkgconfig/* %{_libdir64}/pkgconfig/* %{_mandir}/man3/* /usr/linux/include/* /usr/linux/lib/libtkstub*.a /usr/linux/lib64/libtkstub*.a %changelog * Tue May 23 2017 Ravi Hirekurabar - 8.6.6-1 - updated to version 8.6.6 * Tue Oct 25 2016 Michael Perzl - 8.6.5-1 - updated to version 8.6.5 * Tue Oct 25 2016 Michael Perzl - 8.6.4-1 - fixed collision with AIX provided tk.base - updated to version 8.6.4 * Thu Dec 11 2014 Michael Perzl - 8.6.3-1 - updated to version 8.6.3 * Wed Sep 24 2014 Michael Perzl - 8.6.2-1 - updated to version 8.6.2 * Wed Sep 24 2014 Michael Perzl - 8.6.1-1 - updated to version 8.6.1 * Wed Sep 24 2014 Michael Perzl - 8.6.0-1 - updated to version 8.6.0 * Wed Nov 21 2012 Michael Perzl - 8.5.13-1 - updated to version 8.5.13 * Thu Aug 02 2012 Michael Perzl - 8.5.12-1 - updated to version 8.5.12 * Wed Nov 09 2011 Michael Perzl - 8.5.11-1 - updated to version 8.5.11 * Fri Jul 01 2011 Michael Perzl - 8.5.10-1 - updated to version 8.5.10 * Fri Nov 05 2010 Michael Perzl - 8.5.9-1 - updated to version 8.5.9 * Wed Nov 18 2009 Michael Perzl - 8.5.8-1 - updated to version 8.5.8 * Wed Jul 01 2009 Michael Perzl - 8.5.7-1 - updated to version 8.5.7 * Fri Jan 16 2009 Michael Perzl - 8.5.6-1 - updated to version 8.5.6 * Sat Nov 01 2008 Michael Perzl - 8.5.5-1 - updated to version 8.5.5 * Mon Aug 18 2008 Michael Perzl - 8.5.4-1 - updated to version 8.5.4 and included both 32-bit and 64-bit shared objects * Mon Jul 07 2008 Michael Perzl - 8.5.3-1 - updated to version 8.5.3 * Thu Apr 24 2008 Michael Perzl - 8.5.2-1 - first version for AIX V5.1 and higher