From 15ce26197ee572979f11cec6d12122923a81e8dc Mon Sep 17 00:00:00 2001 From: Francois Andriot Date: Sat, 28 Apr 2012 12:44:45 +0200 Subject: [PATCH] RHEL/Fedora: updates Koffice for GCC 4.7 --- ...koffice-3.5.13-fix_gcc47_compilation.patch | 56 +++++++++ .../koffice/koffice-3.5.13-fix_libpng.patch | 11 ++ .../koffice/koffice-3.5.13-fix_ruby_1.9.patch | 118 ++++++++++++++++++ .../applications/koffice/trinity-koffice.spec | 68 ++++++---- 4 files changed, 228 insertions(+), 25 deletions(-) create mode 100644 redhat/applications/koffice/koffice-3.5.13-fix_gcc47_compilation.patch create mode 100644 redhat/applications/koffice/koffice-3.5.13-fix_libpng.patch create mode 100644 redhat/applications/koffice/koffice-3.5.13-fix_ruby_1.9.patch diff --git a/redhat/applications/koffice/koffice-3.5.13-fix_gcc47_compilation.patch b/redhat/applications/koffice/koffice-3.5.13-fix_gcc47_compilation.patch new file mode 100644 index 000000000..d632a9d79 --- /dev/null +++ b/redhat/applications/koffice/koffice-3.5.13-fix_gcc47_compilation.patch @@ -0,0 +1,56 @@ +--- koffice/chalk/plugins/viewplugins/scripting/chalkcore/krs_iterator.h.ORI 2012-04-26 20:22:29.322777779 +0200 ++++ koffice/chalk/plugins/viewplugins/scripting/chalkcore/krs_iterator.h 2012-04-26 20:23:21.216311169 +0200 +@@ -137,12 +137,12 @@ + } + initiales = initiales.upper(); + // set/get general +- addFunction("set" + initiales, &Iterator::setPixel); +- addFunction("get" + initiales, &Iterator::getPixel); ++ this->addFunction("set" + initiales, &Iterator::setPixel); ++ this->addFunction("get" + initiales, &Iterator::getPixel); + kdDebug(41011) << ( "get" + initiales ) << endl; + // Various colorSpace +- addFunction("invertColor", &Iterator::invertColor); +- addFunction("darken", &Iterator::darken); ++ this->addFunction("invertColor", &Iterator::invertColor); ++ this->addFunction("darken", &Iterator::darken); + } + + ~Iterator() +--- koffice/filters/chalk/png/kis_png_converter.cc.gcc47 2012-04-26 16:38:35.805156927 -0400 ++++ koffice/filters/chalk/png/kis_png_converter.cc 2012-04-26 16:49:27.179323394 -0400 +@@ -43,6 +43,8 @@ + #include + #include + ++#include ++ + namespace { + + const TQ_UINT8 PIXEL_BLUE = 0; +@@ -222,6 +224,7 @@ + + // Read image profile + png_charp profile_name, profile_data; ++ unsigned char* uprofile_data = reinterpret_cast(profile_data); + int compression_type; + png_uint_32 proflen; + int number_of_passes = 1; +@@ -230,7 +233,7 @@ + number_of_passes = png_set_interlace_handling(png_ptr); + + KisProfile* profile = 0; +- if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &profile_data, &proflen)) ++ if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &uprofile_data, &proflen)) + { + TQByteArray profile_rawdata; + // XXX: Hardcoded for icc type -- is that correct for us? +@@ -627,7 +630,7 @@ + } else { // Profile + char* name = new char[(*it)->type().length()+1]; + strcpy(name, (*it)->type().ascii()); +- png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (char*)(*it)->annotation().data(), (*it) -> annotation() . size()); ++ png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (unsigned char*)(*it)->annotation().data(), (*it) -> annotation() . size()); + } + ++it; + } diff --git a/redhat/applications/koffice/koffice-3.5.13-fix_libpng.patch b/redhat/applications/koffice/koffice-3.5.13-fix_libpng.patch new file mode 100644 index 000000000..cba4b2584 --- /dev/null +++ b/redhat/applications/koffice/koffice-3.5.13-fix_libpng.patch @@ -0,0 +1,11 @@ +--- /dev/shm/applications/koffice/filters/chalk/png/kis_png_converter.cc 2011-06-27 13:54:18.000000000 -0500 ++++ /dev/shm/applications/koffice/filters/chalk/png/kis_png_converter.cc.new 2011-11-07 15:38:47.918508855 -0600 +@@ -785,7 +785,7 @@ + + void KisPNGConverter::progress(png_structp png_ptr, png_uint_32 row_number, int pass) + { +- if(png_ptr == NULL || row_number > PNG_MAX_UINT || pass > 7) return; ++ if(png_ptr == NULL || row_number > PNG_UINT_31_MAX || pass > 7) return; + // setProgress(row_number); + } + diff --git a/redhat/applications/koffice/koffice-3.5.13-fix_ruby_1.9.patch b/redhat/applications/koffice/koffice-3.5.13-fix_ruby_1.9.patch new file mode 100644 index 000000000..9802009fa --- /dev/null +++ b/redhat/applications/koffice/koffice-3.5.13-fix_ruby_1.9.patch @@ -0,0 +1,118 @@ +diff -urN koffice/configure.in koffice.new/configure.in +--- koffice/configure.in 2011-08-21 18:30:53.000000000 -0500 ++++ koffice.new/configure.in 2011-12-08 17:56:31.000000000 -0600 +@@ -1539,14 +1539,22 @@ + # Check for Ruby + + if test "x$compile_kross" = "xyes" ; then +- AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18], ruby) ++ AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18 ruby1.9 ruby19], ruby) + + if test -n "$RUBY"; then + AC_MSG_CHECKING(for Ruby dirs) + RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'` + RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'` + RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'` +- RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyincludedir"@:>@)'` ++ if test -n "$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'"; then ++ # Ruby 1.9 ++ RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'` ++ RUBY_VERSION_H=ruby/version.h ++ else ++ # not Ruby 1.9 ++ RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyincludedir"@:>@)'` ++ RUBY_VERSION_H=version.h ++ fi + RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'` + RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'` + RUBY_ENABLESHARED=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"ENABLE_SHARED"@:>@)'` +@@ -1599,7 +1607,7 @@ + [ + AC_TRY_COMPILE([ + #include +- #include ++ #include <$RUBY_VERSION_H> + ],[ + + #if(RUBY_VERSION_MAJOR==1 && RUBY_VERSION_MINOR == 8 && RUBY_VERSION_TEENY <= 1) +diff -urN koffice/lib/kross/configure.in.in koffice.new/lib/kross/configure.in.in +--- koffice/lib/kross/configure.in.in 2010-08-11 22:16:27.000000000 -0500 ++++ koffice.new/lib/kross/configure.in.in 2011-12-08 17:56:28.000000000 -0600 +@@ -21,14 +21,22 @@ + # Check for Ruby + + if test "x$compile_kross" = "xyes" ; then +- AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18], ruby) ++ AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18 ruby1.9 ruby19], ruby) + + if test -n "$RUBY"; then + AC_MSG_CHECKING(for Ruby dirs) + RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'` + RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'` + RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'` +- RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyincludedir"@:>@)'` ++ if test -n "$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'"; then ++ # Ruby 1.9 ++ RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'` ++ RUBY_VERSION_H=ruby/version.h ++ else ++ # not Ruby 1.9 ++ RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyincludedir"@:>@)'` ++ RUBY_VERSION_H=version.h ++ fi + RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'` + RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'` + RUBY_ENABLESHARED=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"ENABLE_SHARED"@:>@)'` +@@ -81,7 +89,7 @@ + [ + AC_TRY_COMPILE([ + #include +- #include ++ #include <$RUBY_VERSION_H> + ],[ + + #if(RUBY_VERSION_MAJOR==1 && RUBY_VERSION_MINOR == 8 && RUBY_VERSION_TEENY <= 1) +diff -urN koffice/lib/kross/ruby/rubyextension.cpp koffice.new/lib/kross/ruby/rubyextension.cpp +--- koffice/lib/kross/ruby/rubyextension.cpp 2011-08-17 20:25:04.000000000 -0500 ++++ koffice.new/lib/kross/ruby/rubyextension.cpp 2011-12-08 21:18:42.000000000 -0600 +@@ -18,7 +18,7 @@ + ***************************************************************************/ + #include "rubyextension.h" + +-#include ++#include + + #include + #include +@@ -211,7 +211,7 @@ + case T_ARRAY: + { + TQValueList l; +- for(int i = 0; i < RARRAY(value)->len; i++) ++ for(int i = 0; i < RARRAY_LEN(value); i++) + { + Kross::Api::Object::Ptr o = toObject( rb_ary_entry( value , i ) ); + if(o) l.append(o); +diff -urN koffice/lib/kross/ruby/rubyscript.cpp koffice.new/lib/kross/ruby/rubyscript.cpp +--- koffice/lib/kross/ruby/rubyscript.cpp 2011-06-25 13:42:29.000000000 -0500 ++++ koffice.new/lib/kross/ruby/rubyscript.cpp 2011-12-08 21:45:36.000000000 -0600 +@@ -21,8 +21,8 @@ + + #include + #include +-#include +-#include ++#include ++#include + + #include
+ +@@ -70,6 +70,8 @@ + krossdebug("RubyScript::compile()"); + #endif + int critical; ++ int ruby_nerrs; ++ int ruby_in_eval; + + ruby_nerrs = 0; + ruby_errinfo = Qnil; diff --git a/redhat/applications/koffice/trinity-koffice.spec b/redhat/applications/koffice/trinity-koffice.spec index 5e8a87d0c..9f487c4e6 100644 --- a/redhat/applications/koffice/trinity-koffice.spec +++ b/redhat/applications/koffice/trinity-koffice.spec @@ -1,12 +1,12 @@ # Default version for this component %define kdecomp koffice %define version 1.6.3 -%define release 3 +%define release 4 # If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". %if "%{?_prefix}" != "/usr" %define _variant .opt -%define _docdir %{_prefix}/share/doc +%define _docdir %{_datadir}/doc %endif # TDE 3.5.13 specific building variables @@ -20,6 +20,16 @@ BuildRequires: autoconf automake libtool m4 %define with_kross 1 %endif +%if 0%{?fedora} >= 17 +%define with_ruby 0 +%else +%define with_ruby 1 +%endif + +# Ruby 1.9 includes are located in strance directories ... (taken from ruby 1.9 spec file) +%global _normalized_cpu %(echo %{_target_cpu} | sed 's/^ppc/powerpc/;s/i.86/i386/;s/sparcv./sparc/;s/armv.*/arm/') + + Name: trinity-%{kdecomp} Summary: An integrated office suite Version: %{?version} @@ -36,7 +46,6 @@ Prefix: %{_prefix} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: %{kdecomp}-3.5.13.tar.gz -Source1: chalk.xpm Source100: koshell.png # [koffice] Disable GraphicksMagick version >= 1.2.0 [Bug #353] @@ -55,6 +64,12 @@ Patch8: kexi-mysql_migrate_long_text-1.1.3.patch Patch9: kexi-fix-support-for-boolean-types.patch Patch10: kexi-thoushand_objects_support-1.1.3-2.patch Patch11: kexi-fp_expressions-1.1.3.patch +# [koffice] Fix compilation with GCC 4.7 [Bug #958] +Patch12: koffice-3.5.13-fix_gcc47_compilation.patch +# [koffice] Fix compilation with Ruby 1.9 [Bug #735] +Patch13: koffice-3.5.13-fix_ruby_1.9.patch +# [koffice] Fix compilation with libpng [Bug #603] +Patch14: koffice-3.5.13-fix_libpng.patch # BuildRequires: world-devel ;) BuildRequires: trinity-kdelibs-devel @@ -77,8 +92,9 @@ BuildRequires: gettext-devel BuildRequires: mysql-devel BuildRequires: desktop-file-utils BuildRequires: perl -BuildRequires: wv2-devel >= 0.4.0 -BuildRequires: libpqxx2-devel +BuildRequires: trinity-wv2-devel >= 0.4.0 +#BuildRequires: trinity-libpqxx-devel >= 2.6.0 +BuildRequires: libpqxx-devel BuildRequires: doxygen BuildRequires: aspell-devel BuildRequires: libxslt-devel @@ -86,20 +102,15 @@ BuildRequires: OpenEXR-devel BuildRequires: libexif-devel BuildRequires: libGL-devel libGLU-devel BuildRequires: readline-devel +%if 0%{?with_ruby} BuildRequires: ruby ruby-devel >= 1.8.2 +%endif BuildRequires: libpaper-devel BuildRequires: libXi-devel BuildRequires: libutempter-devel BuildRequires: poppler-qt-devel >= 0.1.2 BuildRequires: GraphicsMagick-devel >= 1.1.0 - -# libwpd for FC15 and FC16 is too recent for Koffice ! (0.9.x) -# So we built an alternate 0.8.x package ! -%if 0%{?fedora} >= 15 -BuildRequires: libwpd08-devel -%else -BuildRequires: libwpd-devel -%endif +BuildRequires: trinity-libwpd-devel %description @@ -259,7 +270,7 @@ Requires: %{name}-core = %{version}-%{release} %{summary}. %package chalk -Summary: pixel-based image manipulation program for the KDE Office Suite [Trinity] +Summary: pixel-based image manipulation program for the TDE Office Suite [Trinity] Group: Applications/Productivity Requires: %{name}-core = %{version}-%{release} Requires: %{name}-chalk-data = %{version}-%{release} @@ -268,18 +279,18 @@ Requires: %{name}-filters Chalk is a painting and image editing application for KOffice. Chalk contains both ease-of-use and fun features like guided painting. -This package is part of the KDE Office Suite. +This package is part of the TDE Office Suite. %package chalk-data Summary: data files for Chalk painting program [Trinity] Group: Applications/Productivity %description chalk-data This package contains architecture-independent data files for Chalk, -the painting program shipped with the KDE Office Suite. +the painting program shipped with the TDE Office Suite. See the chalk package for further information. -This package is part of the KDE Office Suite. +This package is part of the TDE Office Suite. @@ -296,9 +307,12 @@ This package is part of the KDE Office Suite. %patch9 -p0 %patch10 -p0 %patch11 -p0 +%patch12 -p1 -b .gcc47 +%patch13 -p1 +%patch14 -p5 # use LGC variant instead -sed -i.dejavu-lgc \ +%__sed -i.dejavu-lgc \ -e 's|DejaVu Sans|DejaVu LGC Sans|' \ -e 's|dejavu sans|dejavu lgc sans|' \ lib/kformula/{contextstyle,fontstyle,symboltable}.cc @@ -306,8 +320,8 @@ sed -i.dejavu-lgc \ # Ugly hack to modify TQT include directory inside autoconf files. # If TQT detection fails, it fallbacks to TQT4 instead of TQT3 ! %__sed -i admin/acinclude.m4.in \ - -e "s,/usr/include/tqt,%{_includedir}/tqt,g" \ - -e "s,kde_htmldir='.*',kde_htmldir='%{tde_docdir}/HTML',g" + -e "s|/usr/include/tqt|%{_includedir}/tqt|g" \ + -e "s|kde_htmldir='.*'|kde_htmldir='%{tde_docdir}/HTML'|g" %__cp -f "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in" %__cp -f "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" @@ -390,12 +404,9 @@ rm -f %{buildroot}%{_libdir}/libkformdesigner.so rm -f %{buildroot}%{_libdir}/libkplato*.so rm -f %{buildroot}%{_libdir}/libkpresenter*.so rm -f %{buildroot}%{_libdir}/libkword*.so -#rm -f %{buildroot}%{_libdir}/libkrita*.so rm -f %{buildroot}%{_libdir}/libkross*.so rm -f %{buildroot}%{_libdir}/libkugar*.so -# Chalk icon -%__install -D -m 644 %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/chalk.xpm %clean %__rm -rf %{buildroot} @@ -526,8 +537,10 @@ update-desktop-database -q &> /dev/null ||: %if 0%{?with_kross} > 0 %{_datadir}/apps/kross/ %{tde_libdir}/krosspython.* +%if 0%{?with_ruby} %{tde_libdir}/krossruby.* %endif +%endif %files libs %defattr(-,root,root,-) @@ -961,7 +974,6 @@ update-desktop-database -q &> /dev/null ||: %endif %files chalk-data -%{_datadir}/pixmaps/chalk.xpm %{_datadir}/applications/kde/chalk.desktop %{_datadir}/applnk/.hidden/chalk_*.desktop %{_datadir}/apps/konqueror/servicemenus/chalk_konqi.desktop @@ -971,10 +983,16 @@ update-desktop-database -q &> /dev/null ||: %{_datadir}/icons/hicolor/*/apps/chalk.png %{_datadir}/services/chalk*.desktop %{_datadir}/servicetypes/chalk*.desktop -#%{_datadir}/applnk/.hidden/chalk_pdf.desktop %changelog +* Thu Apr 26 2012 Francois Andriot - 1.6.3-4 +- Updates BuildRequires +- Build for Fedora 17 +- Fix compilation with GCC 4.7 [Bug #958] +- Fix compilation with Ruby 1.9 [Bug #735] +- Fix compilation with libpng [Bug #603] + * Sat Jan 07 2012 Francois Andriot - 1.6.3-3 - Fix GraphicksMagick 1.3 support [Bug #353] - Various patches for kexi [Bug #777]