summaryrefslogtreecommitdiffstats
path: root/redhat/tdebindings
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/tdebindings')
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13-fix_dcopc_header_location.patch12
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13-fixes.patch80
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13-missing_ldflags.patch32
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13-openjdk_remove_hpi_support.patch41
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch691
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-detect_ruby_pkg.patch86
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fallback_to_ruby19_pc_file.patch34
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fix_dcopjava_ldflags.patch11
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_on_x86.patch82
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby18.patch56
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby19.patch683
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fix_rhel5_ftbfs.patch31
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-fix_ruby_detect_when_pc_file_is_19.patch55
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-set_have_ruby19.patch30
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13.1-use_cflags_from_pc_file.patch78
-rw-r--r--redhat/tdebindings/kdebindings-3.5.6-libgcj.patch48
-rw-r--r--redhat/tdebindings/trinity-kdebindings-3.5.12.spec295
-rw-r--r--redhat/tdebindings/trinity-kdebindings-3.5.13.1.spec1112
-rw-r--r--redhat/tdebindings/trinity-kdebindings-3.5.13.spec1061
19 files changed, 4518 insertions, 0 deletions
diff --git a/redhat/tdebindings/kdebindings-3.5.13-fix_dcopc_header_location.patch b/redhat/tdebindings/kdebindings-3.5.13-fix_dcopc_header_location.patch
new file mode 100644
index 000000000..d9880371a
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13-fix_dcopc_header_location.patch
@@ -0,0 +1,12 @@
+--- kdebindings/dcopc/Makefile.am.ORI 2012-08-02 19:39:33.981833237 +0000
++++ kdebindings/dcopc/Makefile.am 2012-08-02 19:39:45.085467620 +0000
+@@ -10,7 +10,7 @@
+ libdcopc_la_LDFLAGS = -version-info 1:0 $(X_LDFLAGS) -lICE -no-undefined
+
+-include_HEADERS = dcopc.h marshal.h dcopobject.h util.h
+-includedir = $(prefix)/include/dcopc
++dcopcinclude_HEADERS = dcopc.h marshal.h dcopobject.h util.h
++dcopcincludedir = $(includedir)/dcopc
+
+ noinst_HEADERS = global.h
+
diff --git a/redhat/tdebindings/kdebindings-3.5.13-fixes.patch b/redhat/tdebindings/kdebindings-3.5.13-fixes.patch
new file mode 100644
index 000000000..360aa8d23
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13-fixes.patch
@@ -0,0 +1,80 @@
+diff -urN tdebindings/configure.in.in tdebindings.new/configure.in.in
+--- tdebindings/configure.in.in 2011-12-25 00:54:22.000000000 -0600
++++ tdebindings.new/configure.in.in 2012-02-25 17:56:52.000000000 -0600
+@@ -302,4 +302,4 @@
+ KDE_CHECK_KNS
+
+ dnl remove when fixed
+-DO_NOT_COMPILE="$DO_NOT_COMPILE dcopjava qtsharp"
++DO_NOT_COMPILE="$DO_NOT_COMPILE qtsharp"
+diff -urN tdebindings/dcopc/configure.in.in tdebindings.new/dcopc/configure.in.in
+--- tdebindings/dcopc/configure.in.in 2011-12-25 00:54:22.000000000 -0600
++++ tdebindings.new/dcopc/configure.in.in 2012-02-23 15:44:16.000000000 -0600
+@@ -1,7 +1,3 @@
+-dnl if test "$GTK_CONFIG" = "no"; then
+- DO_NOT_COMPILE="$DO_NOT_COMPILE dcopc"
+-dnl fi
+-dnl
+ dnl AC_CHECK_GETHOSTNAME
+
+ AC_GTK_2
+diff -urN tdebindings/dcopperl/DCOP.xs tdebindings.new/dcopperl/DCOP.xs
+--- tdebindings/dcopperl/DCOP.xs 2011-12-25 00:54:22.000000000 -0600
++++ tdebindings.new/dcopperl/DCOP.xs 2012-02-23 16:29:28.000000000 -0600
+@@ -26,11 +26,11 @@
+ #undef vform
+ #endif
+
+-#include <qpoint.h>
+-#include <qrect.h>
+-#include <qregexp.h>
+-#include <qsize.h>
+-#include <qstringlist.h>
++#include <tqpoint.h>
++#include <tqrect.h>
++#include <tqregexp.h>
++#include <tqsize.h>
++#include <tqstringlist.h>
+
+ #include <dcopclient.h>
+ #include <dcopref.h>
+diff -urN tdebindings/qtsharp/src/generator/Printer.cs tdebindings.new/qtsharp/src/generator/Printer.cs
+--- tdebindings/qtsharp/src/generator/Printer.cs 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtsharp/src/generator/Printer.cs 2012-02-25 16:22:12.000000000 -0600
+@@ -226,7 +226,7 @@
+ {
+ if (check)
+ return "\n\n\t\t\tif ((qparent = parent) != null)\n" +
+- "\t\t\t\parent.AddChild (this);\n";
++ "\t\t\tparent.AddChild (this);\n";
+ else
+ return "";
+ }
+diff -urN tdebindings/xparts/configure.in.in tdebindings.new/xparts/configure.in.in
+--- tdebindings/xparts/configure.in.in 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/xparts/configure.in.in 2012-02-25 18:15:48.000000000 -0600
+@@ -1 +1 @@
+-DO_NOT_COMPILE="$DO_NOT_COMPILE xparts"
++# DO_NOT_COMPILE="$DO_NOT_COMPILE xparts"
+--- kdebindings/dcopjava/binding/Makefile.am.ORI 2012-04-25 20:47:03.520286136 +0200
++++ kdebindings/dcopjava/binding/Makefile.am 2012-04-25 20:51:13.379853911 +0200
+@@ -1,7 +1,7 @@
+ lib_LTLIBRARIES = libjavadcop.la
+
+ libjavadcop_la_SOURCES = client.cpp
+-libjavadcop_la_LDFLAGS = $(KDE_LDFLAGS) $(KDE_PLUGIN) -lDCOP -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx
++libjavadcop_la_LDFLAGS = $(KDE_LDFLAGS) $(KDE_PLUGIN) -lDCOP -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx -I$(QTINC) -L$(QTLIB)
+ libjavadcop_la_LIBADD = $(LIB_KDECORE)
+
+ INCLUDES = $(jni_includes) $(all_includes)
+--- kdebindings/xparts/xpart_notepad/Makefile.am.ORI 2012-04-25 21:16:17.476461045 +0200
++++ kdebindings/xparts/xpart_notepad/Makefile.am 2012-04-25 21:16:30.908149806 +0200
+@@ -10,7 +10,7 @@
+ xp_notepad_SOURCES = xp_notepad.cpp xpart.skel xparthost.stub
+ xp_notepad_LDADD = ../src/kde/libkdexparts.la
+ #xp_notepad_LDFLAGS = -L$(prefix)/lib -lxpcom $(all_libraries)
+-xp_notepad_LDFLAGS = -L$(prefix)/lib $(all_libraries)
++xp_notepad_LDFLAGS = -L$(prefix)/lib -lDCOP -lkdecore $(all_libraries)
+
+ shell_xparthost_SOURCES = shell_xparthost.cpp
+ shell_xparthost_LDADD = $(top_builddir)/xparts/src/kde/libkdexparts.la
diff --git a/redhat/tdebindings/kdebindings-3.5.13-missing_ldflags.patch b/redhat/tdebindings/kdebindings-3.5.13-missing_ldflags.patch
new file mode 100644
index 000000000..0c79566db
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13-missing_ldflags.patch
@@ -0,0 +1,32 @@
+--- kdebindings/smoke/kde/Makefile.am.ORI 2012-07-30 14:03:33.850946697 +0200
++++ kdebindings/smoke/kde/Makefile.am 2012-07-30 14:04:22.961921086 +0200
+@@ -9,7 +9,7 @@
+ libsmokekde_la_LDFLAGS = -version-info 3:2:2 -no-undefined $(all_libraries) $(GLINC) $(KDE_RPATH)
+
+ # the libraries to link against.
+-libsmokekde_la_LIBADD = $(LIB_KHTML) -lkjs -lfontconfig $(LIB_KMDI) $(LIB_KNS) $(LIB_KSPELL) $(LIB_KUTILS) $(LIB_KDEPRINT) $(GLLIB)
++libsmokekde_la_LIBADD = $(LIB_KHTML) -lkjs -lfontconfig $(LIB_KMDI) $(LIB_KNS) $(LIB_KSPELL) $(LIB_KUTILS) $(LIB_KDEPRINT) $(GLLIB) $(LIB_QT) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_KIO) $(LIB_KPARTS) -lDCOP -lkdefx
+
+ x_sources = x_1.cpp x_2.cpp x_3.cpp x_4.cpp x_5.cpp x_6.cpp x_7.cpp \
+ x_8.cpp x_9.cpp x_10.cpp x_11.cpp x_12.cpp x_13.cpp x_14.cpp x_15.cpp \
+--- kdebindings/kdejava/koala/kdejava/Makefile.am.ORI 2012-07-30 14:18:07.024345627 +0200
++++ kdebindings/kdejava/koala/kdejava/Makefile.am 2012-07-30 14:18:19.055092255 +0200
+@@ -33,6 +33,6 @@
+
+ libkdejava_la_LDFLAGS = $(all_libraries) -no-undefined -version-info $(SOMAJOR):$(SOMINOR):$(SOSUBMINOR)
+
+-libkdejava_la_LIBADD = $(top_builddir)/qtjava/javalib/qtjava/libqtjavasupport.la -lkmdi $(LIB_KHTML) $(LIB_KSPELL) $(LIB_KIO)
++libkdejava_la_LIBADD = $(top_builddir)/qtjava/javalib/qtjava/libqtjavasupport.la -lkmdi $(LIB_KHTML) $(LIB_KSPELL) $(LIB_KIO) $(LIB_KDECORE) $(LIB_KPARTS) $(LIB_KDEUI) $(LIB_KUTILS) $(LIB_KDEPRINT) -lDCOP -lkdefx
+
+ KDE_OPTIONS = qtonly nofinal
+--- kdebindings/xparts/src/kde/Makefile.am.ORI 2012-07-30 14:27:24.347613550 +0200
++++ kdebindings/xparts/src/kde/Makefile.am 2010-08-12 05:12:49.000000000 +0200
+@@ -5,7 +5,7 @@
+
+ libkdexparts_la_SOURCES = xparthost_kpart.cpp xparthost.skel xpart.stub \
+ kbrowsersignals.cpp xbrowsersignals.skel xbrowserextension.stub
+-libkdexparts_la_LIBADD = $(LIB_KPARTS)
++libkdexparts_la_LIBADD = $(LIB_KPARTS) $(LIB_QT) $(LIB_KDECORE) $(LIB_KDEUI) -lDCOP
+ libkdexparts_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 1:0
+
+ xpart_DIR=$(srcdir)/../interfaces
diff --git a/redhat/tdebindings/kdebindings-3.5.13-openjdk_remove_hpi_support.patch b/redhat/tdebindings/kdebindings-3.5.13-openjdk_remove_hpi_support.patch
new file mode 100644
index 000000000..35725e65a
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13-openjdk_remove_hpi_support.patch
@@ -0,0 +1,41 @@
+--- kdebindings/admin/acinclude.m4.in.ORI 2012-04-25 05:49:48.912503289 -0400
++++ kdebindings/admin/acinclude.m4.in 2012-04-25 05:57:37.855079509 -0400
+@@ -5587,7 +5587,6 @@
+ kde_java_includedir=no
+ kde_java_libjvmdir=no
+ kde_java_libgcjdir=no
+- kde_java_libhpidir=no
+ else
+ if test "x$ac_java_dir" = "x"; then
+
+@@ -5685,8 +5684,6 @@
+ else
+ kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
+ fi
+- dnl Look for libhpi.so and avoid green threads
+- kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
+
+ dnl Now check everything's fine under there
+ dnl the include dir is our flag for having the JDK
+@@ -5733,12 +5730,6 @@
+
+ dnl not needed for gcj compile
+
+- if test "x$kde_java_libgcjdir" = "x"; then
+- if test ! -r "$kde_java_libhpidir/libhpi.so"; then
+- AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
+- fi
+- fi
+-
+ if test -n "$jni_includes"; then
+ dnl Check for JNI version
+ AC_LANG_SAVE
+@@ -5776,7 +5767,7 @@
+ JAR=$kde_java_bindir/jar
+ AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+ if test "x$kde_java_libgcjdir" = "x"; then
+- JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
++ JVMLIBS="-L$kde_java_libjvmdir -ljvm"
+ else
+ if test "x$JVMLIBS" = "x"; then
+ if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
diff --git a/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch b/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch
new file mode 100644
index 000000000..481f0441d
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch
@@ -0,0 +1,691 @@
+diff -urN tdebindings/korundum/bin/Makefile.am tdebindings.new/korundum/bin/Makefile.am
+--- tdebindings/korundum/bin/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/bin/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,4 +1,4 @@
+-INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ bin_PROGRAMS = krubyinit
+ krubyinit_LDFLAGS = -module $(all_libraries) -version-info 0:0:0 -L$(top_srcdir)/smoke/kde/ -L$(RUBY_LIBDIR) -lkmdi -lknewstuff
+diff -urN tdebindings/korundum/bin/krubyinit.cpp tdebindings.new/korundum/bin/krubyinit.cpp
+--- tdebindings/korundum/bin/krubyinit.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/bin/krubyinit.cpp 2012-02-25 22:13:38.000000000 -0600
+@@ -24,6 +24,6 @@
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- ruby_options(argc, argv);
+- ruby_run();
++ void* node = ruby_options(argc, argv);
++ ruby_run_node(node);
+ }
+diff -urN tdebindings/korundum/rubylib/korundum/Korundum.cpp tdebindings.new/korundum/rubylib/korundum/Korundum.cpp
+--- tdebindings/korundum/rubylib/korundum/Korundum.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/Korundum.cpp 2012-02-25 22:13:50.000000000 -0600
+@@ -805,7 +805,7 @@
+ // isn't in the Smoke runtime
+ TQValueList<DCOPRef> windowList;
+
+- for (long i = 0; i < RARRAY(result)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(result); i++) {
+ VALUE item = rb_ary_entry(result, i);
+ smokeruby_object *o = value_obj_info(item);
+ if( !o || !o->ptr)
+@@ -822,7 +822,7 @@
+ // And special case this type too
+ TQValueList<TQCString> propertyList;
+
+- for (long i = 0; i < RARRAY(result)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(result); i++) {
+ VALUE item = rb_ary_entry(result, i);
+ propertyList.append(TQCString(StringValuePtr(item)));
+ }
+@@ -836,7 +836,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(result, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE action = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE item = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -926,7 +926,7 @@
+ {
+ VALUE dcopObject = rb_funcall(kde_module, rb_intern("createDCOPObject"), 1, self);
+
+- TQString signalname(rb_id2name(rb_frame_last_func()));
++ TQString signalname(rb_id2name(rb_frame_this_func()));
+ VALUE args = getdcopinfo(self, signalname);
+
+ if(args == Qnil) return Qfalse;
+@@ -1020,7 +1020,7 @@
+
+ if (rb_funcall(kde_module, rb_intern("hasDCOPSignals"), 1, klass) == Qtrue) {
+ VALUE signalNames = rb_funcall(kde_module, rb_intern("getDCOPSignalNames"), 1, klass);
+- for (long index = 0; index < RARRAY(signalNames)->len; index++) {
++ for (long index = 0; index < RARRAY_LEN(signalNames); index++) {
+ VALUE signal = rb_ary_entry(signalNames, index);
+ rb_define_method(klass, StringValuePtr(signal), (VALUE (*) (...)) k_dcop_signal, -1);
+ }
+@@ -1088,9 +1088,9 @@
+ TQStrList *args = new TQStrList;
+
+ if (value_args != Qnil) {
+- for (long i = 0; i < RARRAY(value_args)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(value_args); i++) {
+ VALUE item = rb_ary_entry(value_args, i);
+- args->append(TQString::fromLatin1(StringValuePtr(item), RSTRING(item)->len));
++ args->append(TQString::fromLatin1(StringValuePtr(item), RSTRING_LEN(item)));
+ }
+ }
+
+diff -urN tdebindings/korundum/rubylib/korundum/Makefile.am tdebindings.new/korundum/rubylib/korundum/Makefile.am
+--- tdebindings/korundum/rubylib/korundum/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,6 +1,6 @@
+-INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+-rubylibdir = $(RUBY_ARCHDIR)
++rubylibdir = $(RUBY_LIBDIR)
+ rubylib_LTLIBRARIES = korundum.la
+ korundum_la_LDFLAGS = -module $(all_libraries) -version-info 0:0:0
+ korundum_la_METASOURCES = AUTO
+diff -urN tdebindings/korundum/rubylib/korundum/configure.in.in tdebindings.new/korundum/rubylib/korundum/configure.in.in
+--- tdebindings/korundum/rubylib/korundum/configure.in.in 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/configure.in.in 2012-02-25 22:12:17.000000000 -0600
+@@ -8,10 +8,30 @@
+ RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
+ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
+- AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR])
++ RUBY_LIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
++ 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_ARCHDIR
++ RUBY_VERSION_H=version.h
++ fi
++ RUBY_LIBRUBYARG=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
++ AC_MSG_RESULT([
++ archdir $RUBY_ARCHDIR,
++ sitearchdir $RUBY_SITEARCHDIR,
++ sitedir $RUBY_SITEDIR,
++ libdir $RUBY_LIBDIR,
++ includedir $RUBY_INCLUDEDIR,
++ librubyarg $RUBY_LIBRUBYARG])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+- AC_SUBST(RUBY_RUBYLIBDIR)
+ AC_SUBST(RUBY_SITEDIR)
++ AC_SUBST(RUBY_RUBYLIBDIR)
++ AC_SUBST(RUBY_LIBDIR)
++ AC_SUBST(RUBY_INCLUDEDIR)
++ AC_SUBST(RUBY_LIBRUBYARG)
+ fi
+
+diff -urN tdebindings/korundum/rubylib/korundum/kdehandlers.cpp tdebindings.new/korundum/rubylib/korundum/kdehandlers.cpp
+--- tdebindings/korundum/rubylib/korundum/kdehandlers.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/kdehandlers.cpp 2012-02-25 22:14:03.000000000 -0600
+@@ -122,7 +122,7 @@
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ QCStringList *stringlist = new QCStringList;
+
+ for(long i = 0; i < count; i++) {
+@@ -131,7 +131,7 @@
+ stringlist->append(TQCString());
+ continue;
+ }
+- stringlist->append(TQCString(StringValuePtr(item), RSTRING(item)->len + 1));
++ stringlist->append(TQCString(StringValuePtr(item), RSTRING_LEN(item) + 1));
+ }
+
+ m->item().s_voidp = stringlist;
+@@ -184,19 +184,19 @@
+ VALUE optionslist = *(m->var());
+ if (optionslist == Qnil
+ || TYPE(optionslist) != T_ARRAY
+- || RARRAY(optionslist)->len == 0 )
++ || RARRAY_LEN(optionslist) == 0 )
+ {
+ m->item().s_voidp = 0;
+ break;
+ }
+
+ // Allocate 'length + 1' entries, to include an all NULLs last entry
+- KCmdLineOptions *cmdLineOptions = (KCmdLineOptions *) calloc( RARRAY(optionslist)->len + 1,
++ KCmdLineOptions *cmdLineOptions = (KCmdLineOptions *) calloc( RARRAY_LEN(optionslist) + 1,
+ sizeof(struct KCmdLineOptions) );
+
+ VALUE options;
+ long i;
+- for(i = 0; i < RARRAY(optionslist)->len; i++) {
++ for(i = 0; i < RARRAY_LEN(optionslist); i++) {
+ options = rb_ary_entry(optionslist, i);
+ VALUE temp = rb_ary_entry(options, 0);
+ cmdLineOptions[i].name = StringValuePtr(temp);
+@@ -244,7 +244,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQValueList<WId> *valuelist = new TQValueList<WId>;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -815,7 +815,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ KURL::List *kurllist = new KURL::List;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -916,11 +916,11 @@
+
+ KIO::UDSEntryList *cpplist = new KIO::UDSEntryList;
+
+- for(long i = 0; i < RARRAY(list)->len; i++) {
++ for(long i = 0; i < RARRAY_LEN(list); i++) {
+ VALUE item = rb_ary_entry(list, i);
+ KIO::UDSEntry *cppsublist = new KIO::UDSEntry;
+
+- for (int j = 0; j < RARRAY(item)->len; j++) {
++ for (int j = 0; j < RARRAY_LEN(item); j++) {
+ VALUE subitem = rb_ary_entry(item, j);
+ smokeruby_object *o = value_obj_info(subitem);
+ if(!o || !o->ptr)
+@@ -998,7 +998,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1103,7 +1103,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1211,7 +1211,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -1316,7 +1316,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+diff -urN tdebindings/qtruby/bin/Makefile.am tdebindings.new/qtruby/bin/Makefile.am
+--- tdebindings/qtruby/bin/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/bin/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,4 +1,4 @@
+-INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ bin_PROGRAMS = qtrubyinit
+ qtrubyinit_LDFLAGS = -module $(all_libraries) -version-info 0:0:0 -L$(top_srcdir)/smoke/qt/ -L$(RUBY_LIBDIR)
+diff -urN tdebindings/qtruby/bin/qtrubyinit.cpp tdebindings.new/qtruby/bin/qtrubyinit.cpp
+--- tdebindings/qtruby/bin/qtrubyinit.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/bin/qtrubyinit.cpp 2012-02-25 22:13:23.000000000 -0600
+@@ -24,6 +24,6 @@
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- ruby_options(argc, argv);
+- ruby_run();
++ void* node = ruby_options(argc, argv);
++ ruby_run_node(node);
+ }
+diff -urN tdebindings/qtruby/rubylib/designer/rbuic/Makefile.am tdebindings.new/qtruby/rubylib/designer/rbuic/Makefile.am
+--- tdebindings/qtruby/rubylib/designer/rbuic/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/designer/rbuic/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -4,7 +4,7 @@
+ bin_PROGRAMS = rbuic
+ noinst_LTLIBRARIES = librbuic.la
+
+-INCLUDES = $(all_includes)
++INCLUDES = $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ METASOURCES = AUTO
+
+@@ -12,8 +12,8 @@
+ librbuic_la_LIBADD = $(LIB_QT) $(LIBZ)
+
+ rbuic_SOURCES = main.cpp
+-rbuic_LDADD = librbuic.la $(all_libraries)
+-rbuic_LDFLAGS =
++rbuic_LDADD = librbuic.la $(all_libraries)
++rbuic_LDFLAGS =
+
+ EXTRA_DIST = domtool.cpp domtool.h embed.cpp form.cpp globaldefs.h main.cpp object.cpp parser.cpp parser.h subclassing.cpp uic.cpp uic.h widgetdatabase.cpp widgetdatabase.h widgetinterface.h
+
+diff -urN tdebindings/qtruby/rubylib/designer/uilib/Makefile.am tdebindings.new/qtruby/rubylib/designer/uilib/Makefile.am
+--- tdebindings/qtruby/rubylib/designer/uilib/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/designer/uilib/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,6 +1,6 @@
+-INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+-rubylibdir = $(RUBY_ARCHDIR)
++rubylibdir = $(RUBY_LIBDIR)
+ rubylib_LTLIBRARIES = qui.la
+ qui_la_SOURCES = qui.cpp
+ qui_la_LDFLAGS = -module -export-dynamic $(all_libraries) -version-info 0:0:0
+diff -urN tdebindings/qtruby/rubylib/qtruby/Makefile.am tdebindings.new/qtruby/rubylib/qtruby/Makefile.am
+--- tdebindings/qtruby/rubylib/qtruby/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,4 +1,4 @@
+-INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ noinst_HEADERS = qtruby.h marshall.h smokeruby.h extconf.rb
+
+diff -urN tdebindings/qtruby/rubylib/qtruby/Qt.cpp tdebindings.new/qtruby/rubylib/qtruby/Qt.cpp
+--- tdebindings/qtruby/rubylib/qtruby/Qt.cpp 2012-02-21 13:58:54.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/Qt.cpp 2012-02-25 22:12:52.000000000 -0600
+@@ -110,7 +110,7 @@
+ };
+
+ #define logger logger_backend
+-void rb_str_catf(VALUE self, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
++void rb_str_catf_1(VALUE self, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
+
+ static VALUE (*_new_kde)(int, VALUE *, VALUE) = 0;
+ static VALUE (*_kconfigskeletonitem_immutable)(VALUE) = 0;
+@@ -820,7 +820,7 @@
+ }
+ };
+
+-void rb_str_catf(VALUE self, const char *format, ...)
++void rb_str_catf_1(VALUE self, const char *format, ...)
+ {
+ va_list ap;
+ va_start(ap, format);
+@@ -985,16 +985,16 @@
+ VALUE r = rb_str_new2("");
+ Smoke::Method &meth = qt_Smoke->methods[id];
+ const char *tname = qt_Smoke->types[meth.ret].name;
+- if(meth.flags & Smoke::mf_static) rb_str_catf(r, "static ");
+- rb_str_catf(r, "%s ", (tname ? tname:"void"));
+- rb_str_catf(r, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ if(meth.flags & Smoke::mf_static) rb_str_catf_1(r, "static ");
++ rb_str_catf_1(r, "%s ", (tname ? tname:"void"));
++ rb_str_catf_1(r, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+ for(int i = 0; i < meth.numArgs; i++) {
+- if(i) rb_str_catf(r, ", ");
++ if(i) rb_str_catf_1(r, ", ");
+ tname = qt_Smoke->types[qt_Smoke->argumentList[meth.args+i]].name;
+- rb_str_catf(r, "%s", (tname ? tname:"void"));
++ rb_str_catf_1(r, "%s", (tname ? tname:"void"));
+ }
+- rb_str_catf(r, ")");
+- if(meth.flags & Smoke::mf_const) rb_str_catf(r, " const");
++ rb_str_catf_1(r, ")");
++ if(meth.flags & Smoke::mf_const) rb_str_catf_1(r, " const");
+ return r;
+ }
+
+@@ -1177,7 +1177,7 @@
+ // Start with #<Qt::HBoxLayout:0x30139030> from the original inspect() call
+ // Drop the closing '>'
+ VALUE inspect_str = rb_call_super(0, 0);
+- rb_str_resize(inspect_str, RSTRING(inspect_str)->len - 1);
++ rb_str_resize(inspect_str, RSTRING_LEN(inspect_str) - 1);
+
+ smokeruby_object * o = 0;
+ Data_Get_Struct(self, smokeruby_object, o);
+@@ -1220,7 +1220,7 @@
+ // Start with #<Qt::HBoxLayout:0x30139030>
+ // Drop the closing '>'
+ VALUE inspect_str = rb_funcall(self, rb_intern("to_s"), 0, 0);
+- rb_str_resize(inspect_str, RSTRING(inspect_str)->len - 1);
++ rb_str_resize(inspect_str, RSTRING_LEN(inspect_str) - 1);
+ rb_funcall(pp, rb_intern("text"), 1, inspect_str);
+ rb_funcall(pp, rb_intern("breakable"), 0);
+
+@@ -1236,7 +1236,7 @@
+ VALUE obj = getPointerObject(qobject->parent());
+ if (obj != Qnil) {
+ VALUE parent_inspect_str = rb_funcall(obj, rb_intern("to_s"), 0, 0);
+- rb_str_resize(parent_inspect_str, RSTRING(parent_inspect_str)->len - 1);
++ rb_str_resize(parent_inspect_str, RSTRING_LEN(parent_inspect_str) - 1);
+ parentInspectString = StringValuePtr(parent_inspect_str);
+ } else {
+ parentInspectString.sprintf("#<%s:0x0", qobject->parent()->className());
+@@ -1382,7 +1382,7 @@
+ return *(c.var());
+ } else if ( argc == 1
+ && TYPE(argv[0]) == T_ARRAY
+- && RARRAY(argv[0])->len > 0
++ && RARRAY_LEN(argv[0]) > 0
+ && TYPE(rb_ary_entry(argv[0], 0)) != T_STRING )
+ {
+ _current_method = new_qvariant_qlist;
+@@ -1741,7 +1741,7 @@
+ VALUE * local_argv = (VALUE *) calloc(argc + 1, sizeof(VALUE));
+ VALUE temp = rb_ary_dup(argv[0]);
+ rb_ary_unshift(temp, rb_gv_get("$0"));
+- local_argv[0] = INT2NUM(RARRAY(temp)->len);
++ local_argv[0] = INT2NUM(RARRAY_LEN(temp));
+ local_argv[1] = temp;
+ result = new_qt(2, local_argv, klass);
+ free(local_argv);
+@@ -1772,7 +1772,7 @@
+ VALUE
+ getmetainfo(VALUE self, int &offset, int &index)
+ {
+- const char * signalname = rb_id2name(rb_frame_last_func());
++ const char * signalname = rb_id2name(rb_frame_this_func());
+ VALUE metaObject_value = rb_funcall(qt_internal_module, rb_intern("getMetaObject"), 1, self);
+
+ smokeruby_object *ometa = value_obj_info(metaObject_value);
+@@ -1862,7 +1862,7 @@
+ // Now, I need to find out if this means me
+ int index;
+ char *slotname;
+- bool isSignal = qstrcmp(rb_id2name(rb_frame_last_func()), "qt_emit") == 0;
++ bool isSignal = qstrcmp(rb_id2name(rb_frame_this_func()), "qt_emit") == 0;
+ VALUE mocArgs = getslotinfo(self, id, slotname, index, isSignal);
+ if(mocArgs == Qnil) {
+ // No ruby slot/signal found, assume the target is a C++ one
+@@ -2009,7 +2009,7 @@
+ return Qnil;
+ }
+ TQByteArray * dataArray = (TQByteArray*) o->ptr;
+- dataArray->setRawData(StringValuePtr(data), RSTRING(data)->len);
++ dataArray->setRawData(StringValuePtr(data), RSTRING_LEN(data));
+ return self;
+ }
+
+@@ -2195,7 +2195,7 @@
+ m->name = new char[strlen(name) + 1]; // this too
+ strcpy((char*)m->name, name);
+ m->parameters = 0;
+- m->count = RARRAY(params)->len;
++ m->count = RARRAY_LEN(params);
+
+ if (m->count > 0) {
+ m->parameters = new QUParameter[m->count];
+@@ -2213,7 +2213,7 @@
+ static VALUE
+ make_QMetaData_tbl(VALUE /*self*/, VALUE list)
+ {
+- long count = RARRAY(list)->len;
++ long count = RARRAY_LEN(list);
+ QMetaData *m = new QMetaData[count];
+
+ for (long i = 0; i < count; i++) {
+@@ -2281,7 +2281,7 @@
+ static VALUE
+ add_signal_methods(VALUE self, VALUE klass, VALUE signalNames)
+ {
+- for (long index = 0; index < RARRAY(signalNames)->len; index++) {
++ for (long index = 0; index < RARRAY_LEN(signalNames); index++) {
+ VALUE signal = rb_ary_entry(signalNames, index);
+ rb_define_method(klass, StringValuePtr(signal), (VALUE (*) (...)) qt_signal, -1);
+ }
+@@ -2597,28 +2597,28 @@
+ {
+ VALUE errmsg = rb_str_new2("");
+ if(rmeths != Qnil) {
+- int count = RARRAY(rmeths)->len;
++ int count = RARRAY_LEN(rmeths);
+ for(int i = 0; i < count; i++) {
+- rb_str_catf(errmsg, "\t");
++ rb_str_catf_1(errmsg, "\t");
+ int id = NUM2INT(rb_ary_entry(rmeths, i));
+ Smoke::Method &meth = qt_Smoke->methods[id];
+ const char *tname = qt_Smoke->types[meth.ret].name;
+ if(meth.flags & Smoke::mf_enum) {
+- rb_str_catf(errmsg, "enum ");
+- rb_str_catf(errmsg, "%s::%s", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+- rb_str_catf(errmsg, "\n");
++ rb_str_catf_1(errmsg, "enum ");
++ rb_str_catf_1(errmsg, "%s::%s", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ rb_str_catf_1(errmsg, "\n");
+ } else {
+ if(meth.flags & Smoke::mf_static) rb_str_catf(errmsg, "static ");
+- rb_str_catf(errmsg, "%s ", (tname ? tname:"void"));
+- rb_str_catf(errmsg, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ rb_str_catf_1(errmsg, "%s ", (tname ? tname:"void"));
++ rb_str_catf_1(errmsg, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+ for(int i = 0; i < meth.numArgs; i++) {
+- if(i) rb_str_catf(errmsg, ", ");
++ if(i) rb_str_catf_1(errmsg, ", ");
+ tname = qt_Smoke->types[qt_Smoke->argumentList[meth.args+i]].name;
+- rb_str_catf(errmsg, "%s", (tname ? tname:"void"));
++ rb_str_catf_1(errmsg, "%s", (tname ? tname:"void"));
+ }
+- rb_str_catf(errmsg, ")");
+- if(meth.flags & Smoke::mf_const) rb_str_catf(errmsg, " const");
+- rb_str_catf(errmsg, "\n");
++ rb_str_catf_1(errmsg, ")");
++ if(meth.flags & Smoke::mf_const) rb_str_catf_1(errmsg, " const");
++ rb_str_catf_1(errmsg, "\n");
+ }
+ }
+ }
+diff -urN tdebindings/qtruby/rubylib/qtruby/configure.in.in tdebindings.new/qtruby/rubylib/qtruby/configure.in.in
+--- tdebindings/qtruby/rubylib/qtruby/configure.in.in 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/configure.in.in 2012-02-25 22:12:17.000000000 -0600
+@@ -9,13 +9,29 @@
+ RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
+ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
++ 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_ARCHDIR
++ RUBY_VERSION_H=version.h
++ fi
+ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+- AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, libdir $RUBY_LIBDIR, librubyarg $RUBY_LIBRUBYARG])
++ AC_MSG_RESULT([
++ archdir $RUBY_ARCHDIR,
++ sitearchdir $RUBY_SITEARCHDIR,
++ sitedir $RUBY_SITEDIR,
++ libdir $RUBY_LIBDIR,
++ includedir $RUBY_INCLUDEDIR,
++ librubyarg $RUBY_LIBRUBYARG])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+ AC_SUBST(RUBY_SITEDIR)
+ AC_SUBST(RUBY_RUBYLIBDIR)
+ AC_SUBST(RUBY_LIBDIR)
++ AC_SUBST(RUBY_INCLUDEDIR)
+ AC_SUBST(RUBY_LIBRUBYARG)
+ fi
+
+diff -urN tdebindings/qtruby/rubylib/qtruby/handlers.cpp tdebindings.new/qtruby/rubylib/qtruby/handlers.cpp
+--- tdebindings/qtruby/rubylib/qtruby/handlers.cpp 2012-02-21 13:58:54.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/handlers.cpp 2012-02-25 22:13:09.000000000 -0600
+@@ -755,7 +755,7 @@
+ break;
+ }
+
+- int len = RSTRING(rv)->len;
++ int len = RSTRING_LEN(rv);
+ char* mem = (char*) malloc(len+1);
+ memcpy(mem, StringValuePtr(rv), len);
+ mem[len] ='\0';
+@@ -788,7 +788,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int len = RSTRING(rv)->len;
++ int len = RSTRING_LEN(rv);
+ char* mem = (char*) malloc(len+1);
+ memcpy(mem, StringValuePtr(rv), len);
+ mem[len] ='\0';
+@@ -824,7 +824,7 @@
+
+ TQString * s;
+ if (qstrcmp(KCODE, "UTF8") == 0)
+- s = new TQString(TQString::fromUtf8(StringValuePtr(rstring), RSTRING(rstring)->len));
++ s = new TQString(TQString::fromUtf8(StringValuePtr(rstring), RSTRING_LEN(rstring)));
+ else if (qstrcmp(KCODE, "EUC") == 0)
+ s = new TQString(codec->toUnicode(StringValuePtr(rstring)));
+ else if (qstrcmp(KCODE, "SJIS") == 0)
+@@ -832,7 +832,7 @@
+ else if(qstrcmp(KCODE, "NONE") == 0)
+ s = new TQString(TQString::fromLatin1(StringValuePtr(rstring)));
+ else
+- s = new TQString(TQString::fromLocal8Bit(StringValuePtr(rstring), RSTRING(rstring)->len));
++ s = new TQString(TQString::fromLocal8Bit(StringValuePtr(rstring), RSTRING_LEN(rstring)));
+ return s;
+ }
+
+@@ -944,7 +944,7 @@
+ s = new TQCString();
+ } else {
+ // Add 1 to the ruby string length to allow for a TQCString '\0' terminator
+- s = new TQCString(StringValuePtr(*(m->var())), RSTRING(*(m->var()))->len + 1);
++ s = new TQCString(StringValuePtr(*(m->var())), RSTRING_LEN(*(m->var())) + 1);
+ }
+ m->item().s_voidp = s;
+
+@@ -1007,7 +1007,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(av)->len;
++ int count = RARRAY_LEN(av);
+ QCOORD *coord = new QCOORD[count + 2];
+ for(long i = 0; i < count; i++) {
+ VALUE svp = rb_ary_entry(av, i);
+@@ -1167,15 +1167,15 @@
+ VALUE arglist = *(m->var());
+ if (arglist == Qnil
+ || TYPE(arglist) != T_ARRAY
+- || RARRAY(arglist)->len == 0 )
++ || RARRAY_LEN(arglist) == 0 )
+ {
+ m->item().s_voidp = 0;
+ break;
+ }
+
+- char **argv = new char *[RARRAY(arglist)->len + 1];
++ char **argv = new char *[RARRAY_LEN(arglist) + 1];
+ long i;
+- for(i = 0; i < RARRAY(arglist)->len; i++) {
++ for(i = 0; i < RARRAY_LEN(arglist); i++) {
+ VALUE item = rb_ary_entry(arglist, i);
+ char *s = StringValuePtr(item);
+ argv[i] = new char[strlen(s) + 1];
+@@ -1207,7 +1207,7 @@
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQStringList *stringlist = new QStringList;
+
+ for(long i = 0; i < count; i++) {
+@@ -1269,7 +1269,7 @@
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQStrList *stringlist = new QStrList;
+
+ for(long i = 0; i < count; i++) {
+@@ -1278,7 +1278,7 @@
+ stringlist->append(TQString());
+ continue;
+ }
+- stringlist->append(TQString::fromUtf8(StringValuePtr(item), RSTRING(item)->len));
++ stringlist->append(TQString::fromUtf8(StringValuePtr(item), RSTRING_LEN(item)));
+ }
+
+ m->item().s_voidp = stringlist;
+@@ -1331,7 +1331,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1421,7 +1421,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQValueList<int> *valuelist = new TQValueList<int>;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1513,7 +1513,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+ (*map)[TQString(StringValuePtr(key))] = TQString(StringValuePtr(value));
+@@ -1569,7 +1569,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -1673,7 +1673,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ QRgb *rgb = new QRgb[count + 2];
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1702,7 +1702,7 @@
+ case Marshall::FromVALUE:
+ {
+ VALUE list = *(m->var());
+- if (TYPE(list) != T_ARRAY || RARRAY(list)->len != 2) {
++ if (TYPE(list) != T_ARRAY || RARRAY_LEN(list) != 2) {
+ m->item().s_voidp = 0;
+ break;
+ }
+@@ -1770,7 +1770,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-detect_ruby_pkg.patch b/redhat/tdebindings/kdebindings-3.5.13.1-detect_ruby_pkg.patch
new file mode 100644
index 000000000..47dcc16b5
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-detect_ruby_pkg.patch
@@ -0,0 +1,86 @@
+commit de49c7480893e7d52f64ec1166a55cdf97b2541e
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1347381606 -0500
+
+ Detect presence of Ruby pkg-config file and adjust directory search accordingly
+
+diff --git a/korundum/rubylib/korundum/configure.in.in b/korundum/rubylib/korundum/configure.in.in
+index 81ad0bc..5782123 100644
+--- a/korundum/rubylib/korundum/configure.in.in
++++ b/korundum/rubylib/korundum/configure.in.in
+@@ -1,13 +1,28 @@
++KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [
++ AC_MSG_WARN([Could not find pkg-config])
++])
++
+ AC_CHECK_PROG(RUBY, ruby, ruby)
+
+ if test -z "$RUBY"; then
+ DO_NOT_COMPILE="$DO_NOT_COMPILE korundum"
+ else
+ 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_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
++ if test -n "$PKGCONFIG"; then
++ RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
++ if test -n "$RUBY_VERSION"; then
++ RUBY_ARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
++ RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
++ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
++ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
++ fi
++ fi
++ if test -z "$RUBY_VERSION"; then
++ 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_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
++ fi
+ AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/rubylib/qtruby/configure.in.in
+index 453bb68..3cfa630 100644
+--- a/qtruby/rubylib/qtruby/configure.in.in
++++ b/qtruby/rubylib/qtruby/configure.in.in
+@@ -1,15 +1,32 @@
++KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [
++ AC_MSG_WARN([Could not find pkg-config])
++])
++
+ AC_CHECK_PROG(RUBY, ruby, ruby)
+
+ if test -z "$RUBY"; then
+ DO_NOT_COMPILE="$DO_NOT_COMPILE qtruby"
+ else
+ 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_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
+- RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
+- RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
++ if test -n "$PKGCONFIG"; then
++ RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
++ if test -n "$RUBY_VERSION"; then
++ RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
++ RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
++ RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
++ RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
++ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"libdir"@:>@)'`
++ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
++ fi
++ fi
++ if test -z "$RUBY_VERSION"; then
++ 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_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
++ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
++ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
++ fi
+ AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, libdir $RUBY_LIBDIR, librubyarg $RUBY_LIBRUBYARG])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fallback_to_ruby19_pc_file.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fallback_to_ruby19_pc_file.patch
new file mode 100644
index 000000000..85c496d10
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fallback_to_ruby19_pc_file.patch
@@ -0,0 +1,34 @@
+commit 2f6e9c735fe8486ee3484c47c0e8ff999b699abc
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1347987185 -0500
+
+ Fall back to ruby-1.9 pkgconfig file if needed
+
+diff --git a/korundum/rubylib/korundum/configure.in.in b/korundum/rubylib/korundum/configure.in.in
+index e4ab2fd..924f42f 100644
+--- a/korundum/rubylib/korundum/configure.in.in
++++ b/korundum/rubylib/korundum/configure.in.in
+@@ -10,6 +10,9 @@ else
+ AC_MSG_CHECKING(for ruby dirs)
+ if test -n "$PKGCONFIG"; then
+ RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
++ if test -z "$RUBY_VERSION"; then
++ RUBY_VERSION=`$PKGCONFIG ruby-1.9 --modversion 2>/dev/null`
++ fi
+ if test -n "$RUBY_VERSION"; then
+ RUBY_ARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
+ RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
+diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/rubylib/qtruby/configure.in.in
+index 7ad0e4d..e7f4f2c 100644
+--- a/qtruby/rubylib/qtruby/configure.in.in
++++ b/qtruby/rubylib/qtruby/configure.in.in
+@@ -10,6 +10,9 @@ else
+ AC_MSG_CHECKING(for ruby dirs)
+ if test -n "$PKGCONFIG"; then
+ RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
++ if test -z "$RUBY_VERSION"; then
++ RUBY_VERSION=`$PKGCONFIG ruby-1.9 --modversion 2>/dev/null`
++ fi
+ if test -n "$RUBY_VERSION"; then
+ RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
+ RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fix_dcopjava_ldflags.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fix_dcopjava_ldflags.patch
new file mode 100644
index 000000000..99fceae54
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fix_dcopjava_ldflags.patch
@@ -0,0 +1,11 @@
+--- kdebindings-3.5.13.1/dcopjava/binding/Makefile.am.ORI 2012-09-29 19:17:32.829295550 +0200
++++ kdebindings-3.5.13.1/dcopjava/binding/Makefile.am 2012-09-29 19:17:07.309943594 +0200
+@@ -1,7 +1,7 @@
+ lib_LTLIBRARIES = libjavadcop.la
+
+ libjavadcop_la_SOURCES = client.cpp
+-libjavadcop_la_LDFLAGS = $(KDE_LDFLAGS) $(KDE_PLUGIN) -lDCOP -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx
++libjavadcop_la_LDFLAGS = $(KDE_LDFLAGS) $(KDE_PLUGIN) -lDCOP -lkdecore -lkdeui $(LIB_QT) -lkjs -lkdefx $(QT_LDFLAGS)
+ libjavadcop_la_LIBADD = $(LIB_KDECORE)
+
+ INCLUDES = $(jni_includes) $(all_includes)
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_on_x86.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_on_x86.patch
new file mode 100644
index 000000000..9190c9940
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_on_x86.patch
@@ -0,0 +1,82 @@
+commit a901a1232ab8f8432c63dc97e0efd9fed051d2c7
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1348264715 -0500
+
+ Fix FTBFS on x86 systems
+
+diff --git a/korundum/bin/krubyinit.cpp b/korundum/bin/krubyinit.cpp
+index 12b0f6e..2a7f6c5 100644
+--- a/korundum/bin/krubyinit.cpp
++++ b/korundum/bin/krubyinit.cpp
+@@ -1,5 +1,7 @@
+ #include <ruby.h>
+
++#define HAVE_STRLCAT_PROTO 1
++#define HAVE_STRLCPY_PROTO 1
+ #include "config.h"
+
+ #ifndef HAVE_RUBY_1_9
+diff --git a/korundum/rubylib/korundum/Korundum.cpp b/korundum/rubylib/korundum/Korundum.cpp
+index 124e2a1..da9f099 100644
+--- a/korundum/rubylib/korundum/Korundum.cpp
++++ b/korundum/rubylib/korundum/Korundum.cpp
+@@ -40,6 +40,8 @@
+ #include <smokeruby.h>
+ #include <smoke.h>
+
++#define HAVE_STRLCAT_PROTO 1
++#define HAVE_STRLCPY_PROTO 1
+ #include "config.h"
+
+ #ifndef HAVE_RUBY_1_9
+diff --git a/korundum/rubylib/korundum/kdehandlers.cpp b/korundum/rubylib/korundum/kdehandlers.cpp
+index 6961301..11b97b5 100644
+--- a/korundum/rubylib/korundum/kdehandlers.cpp
++++ b/korundum/rubylib/korundum/kdehandlers.cpp
+@@ -52,6 +52,8 @@
+ #include <dom/dom_string.h>
+ #include <dom/html_element.h>
+
++#define HAVE_STRLCAT_PROTO 1
++#define HAVE_STRLCPY_PROTO 1
+ #include "config.h"
+
+ #ifndef HAVE_RUBY_1_9
+diff --git a/qtruby/bin/qtrubyinit.cpp b/qtruby/bin/qtrubyinit.cpp
+index c9569d9..dd732b1 100644
+--- a/qtruby/bin/qtrubyinit.cpp
++++ b/qtruby/bin/qtrubyinit.cpp
+@@ -1,5 +1,7 @@
+ #include <ruby.h>
+
++#define HAVE_STRLCAT_PROTO 1
++#define HAVE_STRLCPY_PROTO 1
+ #include "config.h"
+
+ #ifndef HAVE_RUBY_1_9
+diff --git a/qtruby/rubylib/qtruby/Qt.cpp b/qtruby/rubylib/qtruby/Qt.cpp
+index 370ad6d..b264d44 100644
+--- a/qtruby/rubylib/qtruby/Qt.cpp
++++ b/qtruby/rubylib/qtruby/Qt.cpp
+@@ -60,6 +60,8 @@
+ #include "smokeruby.h"
+ #include "smoke.h"
+
++#define HAVE_STRLCAT_PROTO 1
++#define HAVE_STRLCPY_PROTO 1
+ #include "config.h"
+
+ #ifndef HAVE_RUBY_1_9
+diff --git a/qtruby/rubylib/qtruby/handlers.cpp b/qtruby/rubylib/qtruby/handlers.cpp
+index f3d0dda..2f6b5e7 100644
+--- a/qtruby/rubylib/qtruby/handlers.cpp
++++ b/qtruby/rubylib/qtruby/handlers.cpp
+@@ -47,6 +47,8 @@
+ #define HINT_BYTES HINT_BYTE
+ #endif
+
++#define HAVE_STRLCAT_PROTO 1
++#define HAVE_STRLCPY_PROTO 1
+ #include "config.h"
+
+ #ifndef HAVE_RUBY_1_9
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby18.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby18.patch
new file mode 100644
index 000000000..2798aa904
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby18.patch
@@ -0,0 +1,56 @@
+commit 14594d81891b0bdf9aa03f72b88d6939eee59f02
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1347389903 -0500
+
+ Fix FTBFS on ruby 1.8.x
+
+diff --git a/korundum/bin/krubyinit.cpp b/korundum/bin/krubyinit.cpp
+index f53f830..12b0f6e 100644
+--- a/korundum/bin/krubyinit.cpp
++++ b/korundum/bin/krubyinit.cpp
+@@ -25,13 +25,18 @@
+ * *
+ ***************************************************************************/
+
+-// this name can be used to allow apps
++// this name can be used to allow apps
+ // to detect what they were started with
+ static const char* script_name = "krubyinit_app";
+
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- void* node = ruby_options(argc, argv);
++#ifdef HAVE_RUBY_1_9
++ void* node = ruby_options(argc, argv);
+ ruby_run_node(node);
++#else // HAVE_RUBY_1_9
++ ruby_options(argc, argv);
++ ruby_run();
++#endif // HAVE_RUBY_1_9
+ }
+diff --git a/qtruby/bin/qtrubyinit.cpp b/qtruby/bin/qtrubyinit.cpp
+index 65c00c4..c9569d9 100644
+--- a/qtruby/bin/qtrubyinit.cpp
++++ b/qtruby/bin/qtrubyinit.cpp
+@@ -25,13 +25,18 @@ qrubyinit - makes use of tdeinit_wrapper possible for ruby programs
+ * *
+ ***************************************************************************/
+
+-// this name can be used to allow apps
++// this name can be used to allow apps
+ // to detect what they were started with
+ static const char* script_name = "qrubyinit_app";
+
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- void* node = ruby_options(argc, argv);
++#ifdef HAVE_RUBY_1_9
++ void* node = ruby_options(argc, argv);
+ ruby_run_node(node);
++#else // HAVE_RUBY_1_9
++ ruby_options(argc, argv);
++ ruby_run();
++#endif // HAVE_RUBY_1_9
+ }
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby19.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby19.patch
new file mode 100644
index 000000000..aefdb6019
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ftbfs_ruby19.patch
@@ -0,0 +1,683 @@
+commit ef7a60860d18e9be343b6fa5fe8d76fd080cead0
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1347385969 -0500
+
+ Fix FTBS on ruby 1.9.x
+ Thanks to Darrell Anderson for the majority of the patch!
+
+diff --git a/korundum/bin/Makefile.am b/korundum/bin/Makefile.am
+index f8c0942..4c3e637 100644
+--- a/korundum/bin/Makefile.am
++++ b/korundum/bin/Makefile.am
+@@ -1,4 +1,4 @@
+-INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
+
+ bin_PROGRAMS = krubyinit
+ krubyinit_LDFLAGS = -module $(all_libraries) -version-info 0:0:0 -L$(top_srcdir)/smoke/kde/ -L$(RUBY_LIBDIR) -lkmdi -lknewstuff
+diff --git a/korundum/bin/krubyinit.cpp b/korundum/bin/krubyinit.cpp
+index 7ed0b0a..f53f830 100644
+--- a/korundum/bin/krubyinit.cpp
++++ b/korundum/bin/krubyinit.cpp
+@@ -1,5 +1,13 @@
+ #include <ruby.h>
+
++#include "config.h"
++
++#ifndef HAVE_RUBY_1_9
++#define RARRAY_LEN(x) (RARRAY(x)->len)
++#define RSTRING_LEN(x) (RSTRING(x)->len)
++#define rb_str_catf_1 rb_str_catf
++#endif
++
+ /***************************************************************************
+ krubyinit - makes use of kdeinit_wrapper possible for ruby programs
+ -------------------
+@@ -24,6 +32,6 @@ static const char* script_name = "krubyinit_app";
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- ruby_options(argc, argv);
+- ruby_run();
++ void* node = ruby_options(argc, argv);
++ ruby_run_node(node);
+ }
+diff --git a/korundum/rubylib/korundum/Korundum.cpp b/korundum/rubylib/korundum/Korundum.cpp
+index cc3ce2a..124e2a1 100644
+--- a/korundum/rubylib/korundum/Korundum.cpp
++++ b/korundum/rubylib/korundum/Korundum.cpp
+@@ -40,6 +40,14 @@
+ #include <smokeruby.h>
+ #include <smoke.h>
+
++#include "config.h"
++
++#ifndef HAVE_RUBY_1_9
++#define RARRAY_LEN(x) (RARRAY(x)->len)
++#define RSTRING_LEN(x) (RSTRING(x)->len)
++#define rb_str_catf_1 rb_str_catf
++#endif
++
+ extern "C" {
+ extern VALUE qt_internal_module;
+ extern VALUE kconfigskeleton_class;
+@@ -805,7 +813,7 @@ public:
+ // isn't in the Smoke runtime
+ TQValueList<DCOPRef> windowList;
+
+- for (long i = 0; i < RARRAY(result)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(result); i++) {
+ VALUE item = rb_ary_entry(result, i);
+ smokeruby_object *o = value_obj_info(item);
+ if( !o || !o->ptr)
+@@ -822,7 +830,7 @@ public:
+ // And special case this type too
+ TQValueList<TQCString> propertyList;
+
+- for (long i = 0; i < RARRAY(result)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(result); i++) {
+ VALUE item = rb_ary_entry(result, i);
+ propertyList.append(TQCString(StringValuePtr(item)));
+ }
+@@ -836,7 +844,7 @@ public:
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(result, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE action = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE item = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -926,7 +934,7 @@ k_dcop_signal(int argc, VALUE * argv, VALUE self)
+ {
+ VALUE dcopObject = rb_funcall(kde_module, rb_intern("createDCOPObject"), 1, self);
+
+- TQString signalname(rb_id2name(rb_frame_last_func()));
++ TQString signalname(rb_id2name(rb_frame_this_func()));
+ VALUE args = getdcopinfo(self, signalname);
+
+ if(args == Qnil) return Qfalse;
+@@ -1020,7 +1028,7 @@ new_kde(int argc, VALUE * argv, VALUE klass)
+
+ if (rb_funcall(kde_module, rb_intern("hasDCOPSignals"), 1, klass) == Qtrue) {
+ VALUE signalNames = rb_funcall(kde_module, rb_intern("getDCOPSignalNames"), 1, klass);
+- for (long index = 0; index < RARRAY(signalNames)->len; index++) {
++ for (long index = 0; index < RARRAY_LEN(signalNames); index++) {
+ VALUE signal = rb_ary_entry(signalNames, index);
+ rb_define_method(klass, StringValuePtr(signal), (VALUE (*) (...)) k_dcop_signal, -1);
+ }
+@@ -1088,9 +1096,9 @@ konsole_part_startprogram(VALUE self, VALUE value_program, VALUE value_args)
+ TQStrList *args = new TQStrList;
+
+ if (value_args != Qnil) {
+- for (long i = 0; i < RARRAY(value_args)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(value_args); i++) {
+ VALUE item = rb_ary_entry(value_args, i);
+- args->append(TQString::fromLatin1(StringValuePtr(item), RSTRING(item)->len));
++ args->append(TQString::fromLatin1(StringValuePtr(item), RSTRING_LEN(item)));
+ }
+ }
+
+diff --git a/korundum/rubylib/korundum/kdehandlers.cpp b/korundum/rubylib/korundum/kdehandlers.cpp
+index 70932d5..6961301 100644
+--- a/korundum/rubylib/korundum/kdehandlers.cpp
++++ b/korundum/rubylib/korundum/kdehandlers.cpp
+@@ -52,6 +52,14 @@
+ #include <dom/dom_string.h>
+ #include <dom/html_element.h>
+
++#include "config.h"
++
++#ifndef HAVE_RUBY_1_9
++#define RARRAY_LEN(x) (RARRAY(x)->len)
++#define RSTRING_LEN(x) (RSTRING(x)->len)
++#define rb_str_catf_1 rb_str_catf
++#endif
++
+ extern "C" {
+ extern VALUE set_obj_info(const char * className, smokeruby_object * o);
+ };
+@@ -122,7 +130,7 @@ void marshall_TQCStringList(Marshall *m) {
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ QCStringList *stringlist = new QCStringList;
+
+ for(long i = 0; i < count; i++) {
+@@ -131,7 +139,7 @@ void marshall_TQCStringList(Marshall *m) {
+ stringlist->append(TQCString());
+ continue;
+ }
+- stringlist->append(TQCString(StringValuePtr(item), RSTRING(item)->len + 1));
++ stringlist->append(TQCString(StringValuePtr(item), RSTRING_LEN(item) + 1));
+ }
+
+ m->item().s_voidp = stringlist;
+@@ -184,19 +192,19 @@ void marshall_KCmdLineOptions(Marshall *m) {
+ VALUE optionslist = *(m->var());
+ if (optionslist == Qnil
+ || TYPE(optionslist) != T_ARRAY
+- || RARRAY(optionslist)->len == 0 )
++ || RARRAY_LEN(optionslist) == 0 )
+ {
+ m->item().s_voidp = 0;
+ break;
+ }
+
+ // Allocate 'length + 1' entries, to include an all NULLs last entry
+- KCmdLineOptions *cmdLineOptions = (KCmdLineOptions *) calloc( RARRAY(optionslist)->len + 1,
++ KCmdLineOptions *cmdLineOptions = (KCmdLineOptions *) calloc( RARRAY_LEN(optionslist) + 1,
+ sizeof(struct KCmdLineOptions) );
+
+ VALUE options;
+ long i;
+- for(i = 0; i < RARRAY(optionslist)->len; i++) {
++ for(i = 0; i < RARRAY_LEN(optionslist); i++) {
+ options = rb_ary_entry(optionslist, i);
+ VALUE temp = rb_ary_entry(options, 0);
+ cmdLineOptions[i].name = StringValuePtr(temp);
+@@ -244,7 +252,7 @@ void marshall_WIdList(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQValueList<WId> *valuelist = new TQValueList<WId>;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -815,7 +823,7 @@ void marshall_KURLList(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ KURL::List *kurllist = new KURL::List;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -916,11 +924,11 @@ void marshall_UDSEntryList(Marshall *m) {
+
+ KIO::UDSEntryList *cpplist = new KIO::UDSEntryList;
+
+- for(long i = 0; i < RARRAY(list)->len; i++) {
++ for(long i = 0; i < RARRAY_LEN(list); i++) {
+ VALUE item = rb_ary_entry(list, i);
+ KIO::UDSEntry *cppsublist = new KIO::UDSEntry;
+
+- for (int j = 0; j < RARRAY(item)->len; j++) {
++ for (int j = 0; j < RARRAY_LEN(item); j++) {
+ VALUE subitem = rb_ary_entry(item, j);
+ smokeruby_object *o = value_obj_info(subitem);
+ if(!o || !o->ptr)
+@@ -998,7 +1006,7 @@ void marshall_ItemList(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1103,7 +1111,7 @@ void marshall_ValueItemList(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1211,7 +1219,7 @@ void marshall_Map(Marshall *m) {
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -1316,7 +1324,7 @@ void marshall_TQMapTQCStringDCOPRef(Marshall *m) {
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+diff --git a/qtruby/bin/Makefile.am b/qtruby/bin/Makefile.am
+index e53bd0f..0e1dbdb 100644
+--- a/qtruby/bin/Makefile.am
++++ b/qtruby/bin/Makefile.am
+@@ -1,4 +1,4 @@
+-INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
+
+ bin_PROGRAMS = qtrubyinit
+ qtrubyinit_LDFLAGS = -module $(all_libraries) -version-info 0:0:0 -L$(top_srcdir)/smoke/qt/ -L$(RUBY_LIBDIR)
+diff --git a/qtruby/bin/qtrubyinit.cpp b/qtruby/bin/qtrubyinit.cpp
+index c4e8024..65c00c4 100644
+--- a/qtruby/bin/qtrubyinit.cpp
++++ b/qtruby/bin/qtrubyinit.cpp
+@@ -1,5 +1,13 @@
+ #include <ruby.h>
+
++#include "config.h"
++
++#ifndef HAVE_RUBY_1_9
++#define RARRAY_LEN(x) (RARRAY(x)->len)
++#define RSTRING_LEN(x) (RSTRING(x)->len)
++#define rb_str_catf_1 rb_str_catf
++#endif
++
+ /***************************************************************************
+ qrubyinit - makes use of kdeinit_wrapper possible for ruby programs
+ -------------------
+@@ -24,6 +32,6 @@ static const char* script_name = "qrubyinit_app";
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- ruby_options(argc, argv);
+- ruby_run();
++ void* node = ruby_options(argc, argv);
++ ruby_run_node(node);
+ }
+diff --git a/qtruby/rubylib/designer/uilib/Makefile.am b/qtruby/rubylib/designer/uilib/Makefile.am
+index 04ce1c8..9900635 100644
+--- a/qtruby/rubylib/designer/uilib/Makefile.am
++++ b/qtruby/rubylib/designer/uilib/Makefile.am
+@@ -1,7 +1,7 @@
+-INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
+
+ rubylibdir = $(RUBY_ARCHDIR)
+ rubylib_LTLIBRARIES = qui.la
+ qui_la_SOURCES = qui.cpp
+ qui_la_LDFLAGS = -module -export-dynamic $(all_libraries) -version-info 0:0:0
+-qui_la_LIBADD = -lqui
+\ No newline at end of file
++qui_la_LIBADD = -lqui
+diff --git a/qtruby/rubylib/qtruby/Qt.cpp b/qtruby/rubylib/qtruby/Qt.cpp
+index 3d71cfc..370ad6d 100644
+--- a/qtruby/rubylib/qtruby/Qt.cpp
++++ b/qtruby/rubylib/qtruby/Qt.cpp
+@@ -60,6 +60,14 @@
+ #include "smokeruby.h"
+ #include "smoke.h"
+
++#include "config.h"
++
++#ifndef HAVE_RUBY_1_9
++#define RARRAY_LEN(x) (RARRAY(x)->len)
++#define RSTRING_LEN(x) (RSTRING(x)->len)
++#define rb_str_catf_1 rb_str_catf
++#endif
++
+ // #define DEBUG
+
+ #define QTRUBY_VERSION "1.0.13"
+@@ -110,7 +118,7 @@ bool application_terminated = false;
+ };
+
+ #define logger logger_backend
+-void rb_str_catf(VALUE self, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
++void rb_str_catf_1(VALUE self, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
+
+ static VALUE (*_new_kde)(int, VALUE *, VALUE) = 0;
+ static VALUE (*_kconfigskeletonitem_immutable)(VALUE) = 0;
+@@ -820,7 +828,7 @@ public:
+ }
+ };
+
+-void rb_str_catf(VALUE self, const char *format, ...)
++void rb_str_catf_1(VALUE self, const char *format, ...)
+ {
+ va_list ap;
+ va_start(ap, format);
+@@ -985,16 +993,16 @@ VALUE prettyPrintMethod(Smoke::Index id)
+ VALUE r = rb_str_new2("");
+ Smoke::Method &meth = qt_Smoke->methods[id];
+ const char *tname = qt_Smoke->types[meth.ret].name;
+- if(meth.flags & Smoke::mf_static) rb_str_catf(r, "static ");
+- rb_str_catf(r, "%s ", (tname ? tname:"void"));
+- rb_str_catf(r, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ if(meth.flags & Smoke::mf_static) rb_str_catf_1(r, "static ");
++ rb_str_catf_1(r, "%s ", (tname ? tname:"void"));
++ rb_str_catf_1(r, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+ for(int i = 0; i < meth.numArgs; i++) {
+- if(i) rb_str_catf(r, ", ");
++ if(i) rb_str_catf_1(r, ", ");
+ tname = qt_Smoke->types[qt_Smoke->argumentList[meth.args+i]].name;
+- rb_str_catf(r, "%s", (tname ? tname:"void"));
++ rb_str_catf_1(r, "%s", (tname ? tname:"void"));
+ }
+- rb_str_catf(r, ")");
+- if(meth.flags & Smoke::mf_const) rb_str_catf(r, " const");
++ rb_str_catf_1(r, ")");
++ if(meth.flags & Smoke::mf_const) rb_str_catf_1(r, " const");
+ return r;
+ }
+
+@@ -1177,7 +1185,7 @@ inspect_qobject(VALUE self)
+ // Start with #<Qt::HBoxLayout:0x30139030> from the original inspect() call
+ // Drop the closing '>'
+ VALUE inspect_str = rb_call_super(0, 0);
+- rb_str_resize(inspect_str, RSTRING(inspect_str)->len - 1);
++ rb_str_resize(inspect_str, RSTRING_LEN(inspect_str) - 1);
+
+ smokeruby_object * o = 0;
+ Data_Get_Struct(self, smokeruby_object, o);
+@@ -1220,7 +1228,7 @@ pretty_print_qobject(VALUE self, VALUE pp)
+ // Start with #<Qt::HBoxLayout:0x30139030>
+ // Drop the closing '>'
+ VALUE inspect_str = rb_funcall(self, rb_intern("to_s"), 0, 0);
+- rb_str_resize(inspect_str, RSTRING(inspect_str)->len - 1);
++ rb_str_resize(inspect_str, RSTRING_LEN(inspect_str) - 1);
+ rb_funcall(pp, rb_intern("text"), 1, inspect_str);
+ rb_funcall(pp, rb_intern("breakable"), 0);
+
+@@ -1236,7 +1244,7 @@ pretty_print_qobject(VALUE self, VALUE pp)
+ VALUE obj = getPointerObject(qobject->parent());
+ if (obj != Qnil) {
+ VALUE parent_inspect_str = rb_funcall(obj, rb_intern("to_s"), 0, 0);
+- rb_str_resize(parent_inspect_str, RSTRING(parent_inspect_str)->len - 1);
++ rb_str_resize(parent_inspect_str, RSTRING_LEN(parent_inspect_str) - 1);
+ parentInspectString = StringValuePtr(parent_inspect_str);
+ } else {
+ parentInspectString.sprintf("#<%s:0x0", qobject->parent()->className());
+@@ -1382,7 +1390,7 @@ static Smoke::Index new_qvariant_qmap = 0;
+ return *(c.var());
+ } else if ( argc == 1
+ && TYPE(argv[0]) == T_ARRAY
+- && RARRAY(argv[0])->len > 0
++ && RARRAY_LEN(argv[0]) > 0
+ && TYPE(rb_ary_entry(argv[0], 0)) != T_STRING )
+ {
+ _current_method = new_qvariant_qlist;
+@@ -1741,7 +1749,7 @@ new_qapplication(int argc, VALUE * argv, VALUE klass)
+ VALUE * local_argv = (VALUE *) calloc(argc + 1, sizeof(VALUE));
+ VALUE temp = rb_ary_dup(argv[0]);
+ rb_ary_unshift(temp, rb_gv_get("$0"));
+- local_argv[0] = INT2NUM(RARRAY(temp)->len);
++ local_argv[0] = INT2NUM(RARRAY_LEN(temp));
+ local_argv[1] = temp;
+ result = new_qt(2, local_argv, klass);
+ free(local_argv);
+@@ -1772,7 +1780,7 @@ qapplication_argv(VALUE /*self*/)
+ VALUE
+ getmetainfo(VALUE self, int &offset, int &index)
+ {
+- const char * signalname = rb_id2name(rb_frame_last_func());
++ const char * signalname = rb_id2name(rb_frame_this_func());
+ VALUE metaObject_value = rb_funcall(qt_internal_module, rb_intern("getMetaObject"), 1, self);
+
+ smokeruby_object *ometa = value_obj_info(metaObject_value);
+@@ -1862,7 +1870,7 @@ tqt_invoke(int /*argc*/, VALUE * argv, VALUE self)
+ // Now, I need to find out if this means me
+ int index;
+ char *slotname;
+- bool isSignal = qstrcmp(rb_id2name(rb_frame_last_func()), "qt_emit") == 0;
++ bool isSignal = qstrcmp(rb_id2name(rb_frame_this_func()), "qt_emit") == 0;
+ VALUE mocArgs = getslotinfo(self, id, slotname, index, isSignal);
+ if(mocArgs == Qnil) {
+ // No ruby slot/signal found, assume the target is a C++ one
+@@ -2009,7 +2017,7 @@ qbytearray_setRawData(VALUE self, VALUE data)
+ return Qnil;
+ }
+ TQByteArray * dataArray = (TQByteArray*) o->ptr;
+- dataArray->setRawData(StringValuePtr(data), RSTRING(data)->len);
++ dataArray->setRawData(StringValuePtr(data), RSTRING_LEN(data));
+ return self;
+ }
+
+@@ -2195,7 +2203,7 @@ make_QUMethod(VALUE /*self*/, VALUE name_value, VALUE params)
+ m->name = new char[strlen(name) + 1]; // this too
+ strcpy((char*)m->name, name);
+ m->parameters = 0;
+- m->count = RARRAY(params)->len;
++ m->count = RARRAY_LEN(params);
+
+ if (m->count > 0) {
+ m->parameters = new QUParameter[m->count];
+@@ -2213,7 +2221,7 @@ make_QUMethod(VALUE /*self*/, VALUE name_value, VALUE params)
+ static VALUE
+ make_QMetaData_tbl(VALUE /*self*/, VALUE list)
+ {
+- long count = RARRAY(list)->len;
++ long count = RARRAY_LEN(list);
+ QMetaData *m = new QMetaData[count];
+
+ for (long i = 0; i < count; i++) {
+@@ -2281,7 +2289,7 @@ add_metaobject_methods(VALUE self, VALUE klass)
+ static VALUE
+ add_signal_methods(VALUE self, VALUE klass, VALUE signalNames)
+ {
+- for (long index = 0; index < RARRAY(signalNames)->len; index++) {
++ for (long index = 0; index < RARRAY_LEN(signalNames); index++) {
+ VALUE signal = rb_ary_entry(signalNames, index);
+ rb_define_method(klass, StringValuePtr(signal), (VALUE (*) (...)) qt_signal, -1);
+ }
+@@ -2597,28 +2605,28 @@ dumpCandidates(VALUE /*self*/, VALUE rmeths)
+ {
+ VALUE errmsg = rb_str_new2("");
+ if(rmeths != Qnil) {
+- int count = RARRAY(rmeths)->len;
++ int count = RARRAY_LEN(rmeths);
+ for(int i = 0; i < count; i++) {
+- rb_str_catf(errmsg, "\t");
++ rb_str_catf_1(errmsg, "\t");
+ int id = NUM2INT(rb_ary_entry(rmeths, i));
+ Smoke::Method &meth = qt_Smoke->methods[id];
+ const char *tname = qt_Smoke->types[meth.ret].name;
+ if(meth.flags & Smoke::mf_enum) {
+- rb_str_catf(errmsg, "enum ");
+- rb_str_catf(errmsg, "%s::%s", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+- rb_str_catf(errmsg, "\n");
++ rb_str_catf_1(errmsg, "enum ");
++ rb_str_catf_1(errmsg, "%s::%s", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ rb_str_catf_1(errmsg, "\n");
+ } else {
+ if(meth.flags & Smoke::mf_static) rb_str_catf(errmsg, "static ");
+- rb_str_catf(errmsg, "%s ", (tname ? tname:"void"));
+- rb_str_catf(errmsg, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ rb_str_catf_1(errmsg, "%s ", (tname ? tname:"void"));
++ rb_str_catf_1(errmsg, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+ for(int i = 0; i < meth.numArgs; i++) {
+- if(i) rb_str_catf(errmsg, ", ");
++ if(i) rb_str_catf_1(errmsg, ", ");
+ tname = qt_Smoke->types[qt_Smoke->argumentList[meth.args+i]].name;
+- rb_str_catf(errmsg, "%s", (tname ? tname:"void"));
++ rb_str_catf_1(errmsg, "%s", (tname ? tname:"void"));
+ }
+- rb_str_catf(errmsg, ")");
+- if(meth.flags & Smoke::mf_const) rb_str_catf(errmsg, " const");
+- rb_str_catf(errmsg, "\n");
++ rb_str_catf_1(errmsg, ")");
++ if(meth.flags & Smoke::mf_const) rb_str_catf_1(errmsg, " const");
++ rb_str_catf_1(errmsg, "\n");
+ }
+ }
+ }
+diff --git a/qtruby/rubylib/qtruby/handlers.cpp b/qtruby/rubylib/qtruby/handlers.cpp
+index 703c9d0..f3d0dda 100644
+--- a/qtruby/rubylib/qtruby/handlers.cpp
++++ b/qtruby/rubylib/qtruby/handlers.cpp
+@@ -47,6 +47,14 @@
+ #define HINT_BYTES HINT_BYTE
+ #endif
+
++#include "config.h"
++
++#ifndef HAVE_RUBY_1_9
++#define RARRAY_LEN(x) (RARRAY(x)->len)
++#define RSTRING_LEN(x) (RSTRING(x)->len)
++#define rb_str_catf_1 rb_str_catf
++#endif
++
+ extern "C" {
+ extern VALUE set_obj_info(const char * className, smokeruby_object * o);
+ extern VALUE qt_internal_module;
+@@ -755,7 +763,7 @@ static void marshall_charP(Marshall *m) {
+ break;
+ }
+
+- int len = RSTRING(rv)->len;
++ int len = RSTRING_LEN(rv);
+ char* mem = (char*) malloc(len+1);
+ memcpy(mem, StringValuePtr(rv), len);
+ mem[len] ='\0';
+@@ -788,7 +796,7 @@ void marshall_ucharP(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int len = RSTRING(rv)->len;
++ int len = RSTRING_LEN(rv);
+ char* mem = (char*) malloc(len+1);
+ memcpy(mem, StringValuePtr(rv), len);
+ mem[len] ='\0';
+@@ -824,7 +832,7 @@ qstringFromRString(VALUE rstring) {
+
+ TQString * s;
+ if (qstrcmp(KCODE, "UTF8") == 0)
+- s = new TQString(TQString::fromUtf8(StringValuePtr(rstring), RSTRING(rstring)->len));
++ s = new TQString(TQString::fromUtf8(StringValuePtr(rstring), RSTRING_LEN(rstring)));
+ else if (qstrcmp(KCODE, "EUC") == 0)
+ s = new TQString(codec->toUnicode(StringValuePtr(rstring)));
+ else if (qstrcmp(KCODE, "SJIS") == 0)
+@@ -832,7 +840,7 @@ qstringFromRString(VALUE rstring) {
+ else if(qstrcmp(KCODE, "NONE") == 0)
+ s = new TQString(TQString::fromLatin1(StringValuePtr(rstring)));
+ else
+- s = new TQString(TQString::fromLocal8Bit(StringValuePtr(rstring), RSTRING(rstring)->len));
++ s = new TQString(TQString::fromLocal8Bit(StringValuePtr(rstring), RSTRING_LEN(rstring)));
+ return s;
+ }
+
+@@ -944,7 +952,7 @@ static void marshall_TQCString(Marshall *m) {
+ s = new TQCString();
+ } else {
+ // Add 1 to the ruby string length to allow for a TQCString '\0' terminator
+- s = new TQCString(StringValuePtr(*(m->var())), RSTRING(*(m->var()))->len + 1);
++ s = new TQCString(StringValuePtr(*(m->var())), RSTRING_LEN(*(m->var())) + 1);
+ }
+ m->item().s_voidp = s;
+
+@@ -1007,7 +1015,7 @@ static void marshall_TQCOORD_array(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(av)->len;
++ int count = RARRAY_LEN(av);
+ QCOORD *coord = new QCOORD[count + 2];
+ for(long i = 0; i < count; i++) {
+ VALUE svp = rb_ary_entry(av, i);
+@@ -1167,15 +1175,15 @@ static void marshall_charP_array(Marshall *m) {
+ VALUE arglist = *(m->var());
+ if (arglist == Qnil
+ || TYPE(arglist) != T_ARRAY
+- || RARRAY(arglist)->len == 0 )
++ || RARRAY_LEN(arglist) == 0 )
+ {
+ m->item().s_voidp = 0;
+ break;
+ }
+
+- char **argv = new char *[RARRAY(arglist)->len + 1];
++ char **argv = new char *[RARRAY_LEN(arglist) + 1];
+ long i;
+- for(i = 0; i < RARRAY(arglist)->len; i++) {
++ for(i = 0; i < RARRAY_LEN(arglist); i++) {
+ VALUE item = rb_ary_entry(arglist, i);
+ char *s = StringValuePtr(item);
+ argv[i] = new char[strlen(s) + 1];
+@@ -1207,7 +1215,7 @@ void marshall_TQStringList(Marshall *m) {
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQStringList *stringlist = new QStringList;
+
+ for(long i = 0; i < count; i++) {
+@@ -1269,7 +1277,7 @@ void marshall_TQStrList(Marshall *m) {
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQStrList *stringlist = new QStrList;
+
+ for(long i = 0; i < count; i++) {
+@@ -1278,7 +1286,7 @@ void marshall_TQStrList(Marshall *m) {
+ stringlist->append(TQString());
+ continue;
+ }
+- stringlist->append(TQString::fromUtf8(StringValuePtr(item), RSTRING(item)->len));
++ stringlist->append(TQString::fromUtf8(StringValuePtr(item), RSTRING_LEN(item)));
+ }
+
+ m->item().s_voidp = stringlist;
+@@ -1331,7 +1339,7 @@ void marshall_ItemList(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1421,7 +1429,7 @@ void marshall_TQValueListInt(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQValueList<int> *valuelist = new TQValueList<int>;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1513,7 +1521,7 @@ void marshall_TQMapTQStringTQString(Marshall *m) {
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+ (*map)[TQString(StringValuePtr(key))] = TQString(StringValuePtr(value));
+@@ -1569,7 +1577,7 @@ void marshall_TQMapTQStringTQVariant(Marshall *m) {
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -1673,7 +1681,7 @@ void marshall_TQRgb_array(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ QRgb *rgb = new QRgb[count + 2];
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1702,7 +1710,7 @@ void marshall_TQPairintint(Marshall *m) {
+ case Marshall::FromVALUE:
+ {
+ VALUE list = *(m->var());
+- if (TYPE(list) != T_ARRAY || RARRAY(list)->len != 2) {
++ if (TYPE(list) != T_ARRAY || RARRAY_LEN(list) != 2) {
+ m->item().s_voidp = 0;
+ break;
+ }
+@@ -1770,7 +1778,7 @@ void marshall_ValueItemList(Marshall *m) {
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fix_rhel5_ftbfs.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fix_rhel5_ftbfs.patch
new file mode 100644
index 000000000..326e7c72e
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fix_rhel5_ftbfs.patch
@@ -0,0 +1,31 @@
+--- kdebindings-3.5.13.1/qtruby/rubylib/qtruby/Qt.cpp.OLD 2012-09-29 20:08:00.156164195 +0200
++++ kdebindings-3.5.13.1/qtruby/rubylib/qtruby/Qt.cpp 2012-09-29 20:08:43.936538689 +0200
+@@ -1782,7 +1782,7 @@
+ VALUE
+ getmetainfo(VALUE self, int &offset, int &index)
+ {
+- const char * signalname = rb_id2name(rb_frame_this_func());
++ const char * signalname = rb_id2name(rb_frame_last_func());
+ VALUE metaObject_value = rb_funcall(qt_internal_module, rb_intern("getMetaObject"), 1, self);
+
+ smokeruby_object *ometa = value_obj_info(metaObject_value);
+@@ -1872,7 +1872,7 @@
+ // Now, I need to find out if this means me
+ int index;
+ char *slotname;
+- bool isSignal = qstrcmp(rb_id2name(rb_frame_this_func()), "qt_emit") == 0;
++ bool isSignal = qstrcmp(rb_id2name(rb_frame_last_func()), "qt_emit") == 0;
+ VALUE mocArgs = getslotinfo(self, id, slotname, index, isSignal);
+ if(mocArgs == Qnil) {
+ // No ruby slot/signal found, assume the target is a C++ one
+--- kdebindings-3.5.13.1/korundum/rubylib/korundum/Korundum.cpp.OLD 2012-09-29 20:11:43.597168589 +0200
++++ kdebindings-3.5.13.1/korundum/rubylib/korundum/Korundum.cpp 2012-09-29 20:11:56.908163792 +0200
+@@ -936,7 +936,7 @@
+ {
+ VALUE dcopObject = rb_funcall(kde_module, rb_intern("createDCOPObject"), 1, self);
+
+- TQString signalname(rb_id2name(rb_frame_this_func()));
++ TQString signalname(rb_id2name(rb_frame_last_func()));
+ VALUE args = getdcopinfo(self, signalname);
+
+ if(args == Qnil) return Qfalse;
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-fix_ruby_detect_when_pc_file_is_19.patch b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ruby_detect_when_pc_file_is_19.patch
new file mode 100644
index 000000000..f9fc1aec8
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-fix_ruby_detect_when_pc_file_is_19.patch
@@ -0,0 +1,55 @@
+commit 10fc891a7e282d2cbab27ab53d9b980147fadb9a
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1348248800 -0500
+
+ Fix Ruby detection when .pc file is ruby-1.9
+
+diff --git a/korundum/rubylib/korundum/configure.in.in b/korundum/rubylib/korundum/configure.in.in
+index 924f42f..e19d5b4 100644
+--- a/korundum/rubylib/korundum/configure.in.in
++++ b/korundum/rubylib/korundum/configure.in.in
+@@ -10,15 +10,17 @@ else
+ AC_MSG_CHECKING(for ruby dirs)
+ if test -n "$PKGCONFIG"; then
+ RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
+- if test -z "$RUBY_VERSION"; then
++ if test -n "$RUBY_VERSION"; then
++ RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
++ else
+ RUBY_VERSION=`$PKGCONFIG ruby-1.9 --modversion 2>/dev/null`
++ RUBY_CFLAGS=`$PKGCONFIG ruby-1.9 --cflags`
+ fi
+ if test -n "$RUBY_VERSION"; then
+ RUBY_ARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
+ RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
+ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
+- RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
+ AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x])
+ fi
+ fi
+diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/rubylib/qtruby/configure.in.in
+index e7f4f2c..f0594c6 100644
+--- a/qtruby/rubylib/qtruby/configure.in.in
++++ b/qtruby/rubylib/qtruby/configure.in.in
+@@ -10,8 +10,11 @@ else
+ AC_MSG_CHECKING(for ruby dirs)
+ if test -n "$PKGCONFIG"; then
+ RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
+- if test -z "$RUBY_VERSION"; then
++ if test -n "$RUBY_VERSION"; then
++ RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
++ else
+ RUBY_VERSION=`$PKGCONFIG ruby-1.9 --modversion 2>/dev/null`
++ RUBY_CFLAGS=`$PKGCONFIG ruby-1.9 --cflags`
+ fi
+ if test -n "$RUBY_VERSION"; then
+ RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
+@@ -20,7 +23,6 @@ else
+ RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
+ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"libdir"@:>@)'`
+ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+- RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
+ AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x])
+ fi
+ fi
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-set_have_ruby19.patch b/redhat/tdebindings/kdebindings-3.5.13.1-set_have_ruby19.patch
new file mode 100644
index 000000000..9c41fd9eb
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-set_have_ruby19.patch
@@ -0,0 +1,30 @@
+commit 46659f992d49f86347c43528a8705657b6896cb7
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1347384077 -0500
+
+ Set HAVE_RUBY_1_9 if ruby 1.9.x installed
+
+diff --git a/korundum/rubylib/korundum/configure.in.in b/korundum/rubylib/korundum/configure.in.in
+index e0d581b..e4ab2fd 100644
+--- a/korundum/rubylib/korundum/configure.in.in
++++ b/korundum/rubylib/korundum/configure.in.in
+@@ -16,6 +16,7 @@ else
+ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
+ RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
++ AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x])
+ fi
+ fi
+ if test -z "$RUBY_VERSION"; then
+diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/rubylib/qtruby/configure.in.in
+index a875b2f..7ad0e4d 100644
+--- a/qtruby/rubylib/qtruby/configure.in.in
++++ b/qtruby/rubylib/qtruby/configure.in.in
+@@ -18,6 +18,7 @@ else
+ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"libdir"@:>@)'`
+ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+ RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
++ AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x])
+ fi
+ fi
+ if test -z "$RUBY_VERSION"; then
diff --git a/redhat/tdebindings/kdebindings-3.5.13.1-use_cflags_from_pc_file.patch b/redhat/tdebindings/kdebindings-3.5.13.1-use_cflags_from_pc_file.patch
new file mode 100644
index 000000000..ba6a6175f
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13.1-use_cflags_from_pc_file.patch
@@ -0,0 +1,78 @@
+commit c1faffb8ed0ebae85f21eb3e3ca81a2692a81ae9
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1347382645 -0500
+
+ Use cflags from ruby pc file
+
+diff --git a/korundum/rubylib/korundum/Makefile.am b/korundum/rubylib/korundum/Makefile.am
+index 5642728..541e3f5 100644
+--- a/korundum/rubylib/korundum/Makefile.am
++++ b/korundum/rubylib/korundum/Makefile.am
+@@ -1,4 +1,4 @@
+-INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
+
+ rubylibdir = $(RUBY_ARCHDIR)
+ rubylib_LTLIBRARIES = korundum.la
+diff --git a/korundum/rubylib/korundum/configure.in.in b/korundum/rubylib/korundum/configure.in.in
+index 5782123..e0d581b 100644
+--- a/korundum/rubylib/korundum/configure.in.in
++++ b/korundum/rubylib/korundum/configure.in.in
+@@ -15,6 +15,7 @@ else
+ RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
+ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
++ RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
+ fi
+ fi
+ if test -z "$RUBY_VERSION"; then
+@@ -23,10 +24,11 @@ else
+ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
+ fi
+- AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR])
++ AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, cflags $RUBY_CFLAGS])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+ AC_SUBST(RUBY_RUBYLIBDIR)
+ AC_SUBST(RUBY_SITEDIR)
++ AC_SUBST(RUBY_CFLAGS)
+ fi
+
+diff --git a/qtruby/rubylib/qtruby/Makefile.am b/qtruby/rubylib/qtruby/Makefile.am
+index 156f80a..56b320f 100644
+--- a/qtruby/rubylib/qtruby/Makefile.am
++++ b/qtruby/rubylib/qtruby/Makefile.am
+@@ -1,4 +1,4 @@
+-INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
+
+ noinst_HEADERS = qtruby.h marshall.h smokeruby.h extconf.rb
+
+diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/rubylib/qtruby/configure.in.in
+index 3cfa630..a875b2f 100644
+--- a/qtruby/rubylib/qtruby/configure.in.in
++++ b/qtruby/rubylib/qtruby/configure.in.in
+@@ -17,6 +17,7 @@ else
+ RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
+ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"libdir"@:>@)'`
+ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
++ RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
+ fi
+ fi
+ if test -z "$RUBY_VERSION"; then
+@@ -27,12 +28,13 @@ else
+ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
+ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+ fi
+- AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, libdir $RUBY_LIBDIR, librubyarg $RUBY_LIBRUBYARG])
++ AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, libdir $RUBY_LIBDIR, librubyarg $RUBY_LIBRUBYARG, cflags $RUBY_CFLAGS])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+ AC_SUBST(RUBY_SITEDIR)
+ AC_SUBST(RUBY_RUBYLIBDIR)
+ AC_SUBST(RUBY_LIBDIR)
+ AC_SUBST(RUBY_LIBRUBYARG)
++ AC_SUBST(RUBY_CFLAGS)
+ fi
+
diff --git a/redhat/tdebindings/kdebindings-3.5.6-libgcj.patch b/redhat/tdebindings/kdebindings-3.5.6-libgcj.patch
new file mode 100644
index 000000000..4ec555a4a
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.6-libgcj.patch
@@ -0,0 +1,48 @@
+--- kdebindings-3.5.6/admin/acinclude.m4.in.libgcj 2007-01-15 17:16:52.000000000 -0600
++++ kdebindings-3.5.6/admin/acinclude.m4.in 2007-03-19 12:08:45.000000000 -0500
+@@ -5261,7 +5261,18 @@
+ dnl Look for libjvm.so
+ kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+ dnl Look for libgcj.so
+- kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
++ if test -z "$PKG_CONFIG"; then
++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++ fi
++ if (`$PKG_CONFIG --exists libgcj-4.1`) ; then
++ JVMLIBS=`$PKG_CONFIG --libs libgcj-4.1`
++ kde_java_libgcjdir=`$PKG_CONFIG --variable=libdir libgcj-4.1`
++ elif (`$PKG_CONFIG --exists libgcj`) ; then
++ JVMLIBS=`$PKG_CONFIG --libs libgcj`
++ kde_java_libgcjdir=`$PKG_CONFIG --variable=libdir libgcj`
++ else
++ kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
++ fi
+ dnl Look for libhpi.so and avoid green threads
+ kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
+
+@@ -5302,10 +5313,6 @@
+ if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
+ AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
+ fi
+- else
+- if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
+- AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
+- fi
+ fi
+
+ if test ! -x "$kde_java_bindir/java"; then
+@@ -5359,7 +5366,13 @@
+ if test "x$kde_java_libgcjdir" = "x"; then
+ JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
+ else
+- JVMLIBS="-L$kde_java_libgcjdir -lgcj"
++ if test "x$JVMLIBS" = "x"; then
++ if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
++ AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
++ else
++ JVMLIBS="-L$kde_java_libgcjdir -lgcj"
++ fi
++ fi
+ fi
+ AC_MSG_RESULT([java JDK in $kde_java_bindir])
+
diff --git a/redhat/tdebindings/trinity-kdebindings-3.5.12.spec b/redhat/tdebindings/trinity-kdebindings-3.5.12.spec
new file mode 100644
index 000000000..2c4af58b7
--- /dev/null
+++ b/redhat/tdebindings/trinity-kdebindings-3.5.12.spec
@@ -0,0 +1,295 @@
+# Default version for this component
+%if "%{?version}" == ""
+%define version 3.5.12
+%endif
+%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
+%endif
+
+# TDE 3.5.12 specific building variables
+BuildRequires: autoconf automake libtool m4
+%define tde_docdir %{_docdir}
+%define tde_libdir %{_libdir}/kde3
+%define tde_includedir %{_includedir}/kde
+
+
+Name: trinity-kdebindings
+Summary: TDE bindings to non-C++ languages
+Version: %{?version}
+Release: %{?release}%{?dist}%{_variant}
+
+License: GPLv2
+Group: User Interface/Desktops
+
+Vendor: Trinity Project
+Packager: Francois Andriot <francois.andriot@free.fr>
+URL: http://www.trinitydesktop.org/
+
+Source0: kdebindings-%{version}.tar.gz
+
+Prefix: %{_prefix}
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+
+# RedHat Legacy patches (from Fedora)
+Patch1: kdebindings-3.5.6-libgcj.patch
+
+# TDE official patches (unmodified)
+# [kde-common] Add python2.7 to Python search paths
+Patch2: http://www.trinitydesktop.org/patches/r1244127.diff
+
+BuildRequires: desktop-file-utils
+BuildRequires: tqtinterface-devel
+BuildRequires: trinity-kdelibs-devel
+BuildRequires: zlib-devel
+BuildRequires: perl(ExtUtils::MakeMaker)
+BuildRequires: trinity-arts-devel
+BuildRequires: glib-devel gtk+-devel
+%define perl_ver %{expand:%%(eval `perl -V:version`; echo $version)}
+%define perl_vendorarch %{expand:%%(eval `perl -V:installvendorarch`; echo $installvendorarch)}
+%define perl_vendorlib %{expand:%%(eval `perl -V:installvendorlib`; echo $installvendorlib)}
+%define perl_man3dir %{expand:%%(eval `perl -V:installman3dir`; echo $installman3dir)}
+
+Requires: trinity-kdelibs
+Requires: trinity-kdebase
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%define python_ver %{expand:%%(%{__python} -c "import sys ; print sys.version[:3]")}
+%define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
+
+## dcoppython
+BuildRequires: python-devel
+Provides: %{name}-dcoppython = %{version}-%{release}
+
+## ruby
+BuildRequires: ruby-devel >= 1.8, ruby
+Provides: %{name}-ruby = %{version}-%{release}
+%{!?ruby_arch: %define ruby_arch %(ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]')}
+%{!?ruby_sitelib: %define ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')}
+%{!?ruby_sitearch: %define ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')}
+
+## java
+%if 0%{?rhel} && 0%{?rhel} < 6
+BuildRequires: java-1.4.2-gcj-compat-devel libgcj-devel gcc-java
+%else
+BuildRequires: java-devel >= 1.4.2
+%endif
+%define java_home %{_usr}/lib/jvm/java
+%define _with_java --with-java=%{java_home}
+Provides: %{name}-java = %{version}-%{release}
+
+%description
+KDE/DCOP bindings to non-C++ languages
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: trinity-kdelibs-devel
+%description devel
+Development files for the KDE bindings.
+
+## dcopperl
+%package dcopperl
+Summary: DCOP Bindings for Perl
+Group: Development/Libraries
+%description dcopperl
+Perl bindings to the DCOP interprocess communication protocol used by KDE
+
+
+%prep
+%setup -q -n kdebindings
+%patch1 -p1 -b .libgcj
+%patch2 -p1
+
+%__cp "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in"
+%__cp "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh"
+%__make -f admin/Makefile.common
+
+
+%build
+unset QTDIR || : ; source /etc/profile.d/qt.sh
+export PATH="%{_bindir}:${PATH}"
+export LDFLAGS="-L%{_libdir} -I%{_includedir}"
+
+unset JAVA_HOME ||:
+%{?java_home:JAVA_HOME=%{java_home}; export JAVA_HOME}
+
+# sip/PyQt/PyKDE built separately, not here
+export DO_NOT_COMPILE="$DO_NOT_COMPILE python"
+
+%configure \
+ --includedir=%{tde_includedir} \
+ --disable-rpath \
+ --enable-new-ldflags \
+ --disable-debug --disable-warnings \
+ --disable-dependency-tracking \
+ --with-extra-libs=%{_libdir} \
+ --with-pythondir=%{_usr} \
+ --enable-closure \
+ --disable-final \
+ %{?_with_java} %{!?_with_java:--without-java} \
+ %{?_enable_qscintilla} %{!?_enable_qscintilla:--disable-qscintilla} \
+ --with-extra-includes=%{_includedir}/tqt
+
+
+pushd dcopperl
+CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS=vendor
+
+# Ugly hack to add TQT include directory in Makefile
+sed -i Makefile \
+ -e "s,^\(INC = .*\),\1 -I%{_includedir}/tqt,"
+
+%__make OPTIMIZE="$RPM_OPT_FLAGS" ||:
+popd
+
+# smoke/ not smp-safe
+%__make -C smoke
+
+# The rest is smp-safe
+%__make %{?_smp_mflags} PYTHON=%{__python}
+
+
+%install
+export PATH="%{_bindir}:${PATH}"
+%__rm -rf $RPM_BUILD_ROOT
+
+%__make install DESTDIR=%{?buildroot} \
+ PYTHON=%{__python}
+
+desktop-file-install \
+ --vendor="" \
+ --add-category="Qt" \
+ --add-category="KDE" \
+ --add-category="Utility" \
+ --dir $RPM_BUILD_ROOT%{_datadir}/applications/kde \
+ $RPM_BUILD_ROOT%{_datadir}/applnk/Utilities/*.desktop ||:
+
+## File lists
+# perl
+find $RPM_BUILD_ROOT -type f -a \( -name perllocal.pod -o -name .packlist \
+ -o \( -name '*.bs' -a -empty \) \) -exec rm -f {} ';'
+
+find $RPM_BUILD_ROOT%{perl_vendorarch} -type f -print | \
+ sed "s@^$RPM_BUILD_ROOT@@g" >> %{name}-dcopperl.list
+find $RPM_BUILD_ROOT%{perl_vendorlib} -type f -print | \
+ sed "s@^$RPM_BUILD_ROOT@@g" >> %{name}-dcopperl.list
+if [ "$(cat %{name}-dcopperl.list)X" = "X" ] ; then
+ echo "ERROR: EMPTY FILE LIST"; exit 1
+fi
+
+# locale's
+%find_lang %{name} || touch %{name}.lang
+HTML_DIR=$(kde-config --expandvars --install html)
+if [ -d $RPM_BUILD_ROOT$HTML_DIR ]; then
+for lang_dir in $RPM_BUILD_ROOT$HTML_DIR/* ; do
+ if [ -d $lang_dir ]; then
+ lang=$(basename $lang_dir)
+ echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang
+ # replace absolute symlinks with relative ones
+ pushd $lang_dir
+ for i in *; do
+ [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common
+ done
+ popd
+ fi
+done
+fi
+
+# rpmdocs
+for dir in dcopperl dcoppython kalyptus %{?_with_java:kdejava qtjava} kjsembed korundum qtruby qtsharp smoke; do
+ for file in AUTHORS ChangeLog README TODO ; do
+ test -s "$dir/$file" && install -p -m644 -D "$dir/$file" "rpmdocs/$dir/$file"
+ done
+done
+
+%clean
+%__rm -rf $RPM_BUILD_ROOT
+
+
+%post
+/sbin/ldconfig ||:
+touch --no-create %{_datadir}/icons/hicolor ||:
+gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||:
+update-desktop-database >& /dev/null ||:
+
+%postun
+/sbin/ldconfig ||:
+touch --no-create %{_datadir}/icons/hicolor ||:
+gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||:
+update-desktop-database >& /dev/null ||:
+
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING README
+%doc rpmdocs/*
+%{_bindir}/*
+%{tde_libdir}/*
+%{_libdir}/lib*.la
+%{_libdir}/lib*.so.*
+%{_datadir}/appl*/*/*.desktop
+%{_datadir}/apps/embedjs/
+%{_datadir}/apps/kate/scripts/*
+%{_datadir}/apps/kjsembed/
+%{_datadir}/icons/hicolor/*/*/*
+%{_datadir}/service*/*.desktop
+%{_mandir}/man1/*
+%{python_sitearch}/*
+#%{_libdir}/python%{python_ver}/*.py*
+%if "%{?_with_java:1}" == "1"
+%{_libdir}/java
+%{_libdir}/jni/*.so.*
+%endif
+#%{ruby_sitearch}/*
+#%{ruby_sitelib}/K*
+#%{ruby_sitelib}/Qt*
+%{_usr}/lib/ruby/*/*
+%{ruby_arch}/*.so.*
+
+# Excludes 'kjscmd' (conflicts with 'kdelibs' from RHEL6)
+%if "%{?_prefix}" == "/usr"
+%exclude %{_bindir}/kjscmd
+%exclude %{_mandir}/man1/kjscmd*
+%endif
+
+
+%files dcopperl -f %{name}-dcopperl.list
+%defattr(-,root,root,-)
+%doc dcopperl/AUTHORS dcopperl/Changes dcopperl/README dcopperl/TODO
+%{perl_man3dir}/DCOP.3pm.gz
+
+%files devel
+%defattr(-,root,root,-)
+%{tde_includedir}/*
+%{_libdir}/lib*.so
+%if "%{?_with_java:1}" == "1"
+%{_libdir}/jni/*.so
+%{_libdir}/jni/*.la
+%endif
+%{ruby_arch}/*.so
+%{ruby_arch}/*.la
+
+%changelog
+* Sun Sep 18 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-4
+- Add RHEL5 support
+- Add 'ruby_arch' macro to avoid handling distro-specific ruby path
+
+* Sun Sep 04 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-3
+- Import to GIT
+
+* Tue Aug 23 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-2
+- Small fixes for F15
+- Add 'patch2' to handle Python 2.7
+
+* Mon Aug 22 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-1
+- Correct macro to install under "/opt", if desired
+
+* Tue Jun 21 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-0
+- Initial version for RHEL 6
+- Specfile based on Fedora 8 'kdebindings 3.5.10-1'
diff --git a/redhat/tdebindings/trinity-kdebindings-3.5.13.1.spec b/redhat/tdebindings/trinity-kdebindings-3.5.13.1.spec
new file mode 100644
index 000000000..55c4e5b04
--- /dev/null
+++ b/redhat/tdebindings/trinity-kdebindings-3.5.13.1.spec
@@ -0,0 +1,1112 @@
+# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
+%if "%{?tde_prefix}" != "/usr"
+%define _variant .opt
+%endif
+
+# TDE 3.5.13 specific building variables
+%define tde_bindir %{tde_prefix}/bin
+%define tde_datadir %{tde_prefix}/share
+%define tde_docdir %{tde_datadir}/doc
+%define tde_includedir %{tde_prefix}/include
+%define tde_libdir %{tde_prefix}/%{_lib}
+%define tde_mandir %{tde_datadir}/man
+
+%define tde_tdeappdir %{tde_datadir}/applications/kde
+%define tde_tdedocdir %{tde_docdir}/tde
+%define tde_tdeincludedir %{tde_includedir}/tde
+%define tde_tdelibdir %{tde_libdir}/trinity
+
+%define _docdir %{tde_docdir}
+
+Name: trinity-tdebindings
+Summary: TDE bindings to non-C++ languages
+Version: 3.5.13.1
+Release: 1%{?dist}%{_variant}
+
+License: GPLv2
+Group: User Interface/Desktops
+
+Vendor: Trinity Project
+Packager: Francois Andriot <francois.andriot@free.fr>
+URL: http://www.trinitydesktop.org/
+
+Prefix: %{tde_prefix}
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+Source0: kdebindings-3.5.13.1.tar.gz
+
+# RedHat Legacy patches (from Fedora)
+Patch1: kdebindings-3.5.6-libgcj.patch
+
+# [kdebindings] Removes 'hpi' support in openjdk (obsolete in openjdk 1.7.0) [Bug #978]
+Patch2: kdebindings-3.5.13-openjdk_remove_hpi_support.patch
+# [kdebindings] Fix directory for dcopc include
+Patch6: kdebindings-3.5.13-fix_dcopc_header_location.patch
+# [kdebindings] Fix FTBFS in dcopjava/bindings
+Patch7: kdebindings-3.5.13.1-fix_dcopjava_ldflags.patch
+
+# [tdebindings] Detect presence of Ruby pkg-config file and adjust directory search accordingly [Commit #de49c748]
+Patch10: kdebindings-3.5.13.1-detect_ruby_pkg.patch
+# [tdebindings] Use cflags from ruby pc file [Commit #c1faffb8]
+Patch11: kdebindings-3.5.13.1-use_cflags_from_pc_file.patch
+# [tdebindings] Set HAVE_RUBY_1_9 if ruby 1.9.x installed [Commit #46659f99]
+Patch12: kdebindings-3.5.13.1-set_have_ruby19.patch
+# [tdebindings] Fix FTBS on ruby 1.9.x [Commit #ef7a6086]
+Patch13: kdebindings-3.5.13.1-fix_ftbfs_ruby19.patch
+# [tdebindings] Fix FTBFS on ruby 1.8.x [Commit #14594d81]
+Patch14: kdebindings-3.5.13.1-fix_ftbfs_ruby18.patch
+# [tdebindings] Fall back to ruby-1.9 pkgconfig file if needed [Commit #2f6e9c73]
+Patch15: kdebindings-3.5.13.1-fallback_to_ruby19_pc_file.patch
+# [tdebindings] Fix Ruby detection when .pc file is ruby-1.9 [Commit #10fc891a]
+Patch16: kdebindings-3.5.13.1-fix_ruby_detect_when_pc_file_is_19.patch
+# [tdebindings] Fix FTBFS on x86 systems [Commit #a901a123]
+Patch17: kdebindings-3.5.13.1-fix_ftbfs_on_x86.patch
+# [tdebindings] Function 'rb_frame_this_func' does not exist in RHEL5
+Patch18: kdebindings-3.5.13.1-fix_rhel5_ftbfs.patch
+
+BuildRequires: autoconf automake libtool m4
+BuildRequires: trinity-tqtinterface-devel >= %{version}
+BuildRequires: trinity-arts-devel >= %{version}
+BuildRequires: trinity-tdelibs-devel >= %{version}
+
+BuildRequires: desktop-file-utils
+BuildRequires: zlib-devel
+BuildRequires: perl(ExtUtils::MakeMaker)
+
+%if 0%{?rhel} == 4
+BuildRequires: evolution28-gtk2-devel
+%else
+BuildRequires: gtk2-devel
+BuildRequires: xulrunner-devel
+%endif
+
+%if 0%{?fedora} || 0%{?rhel}
+%define with_gtk1 1
+BuildRequires: glib-devel
+BuildRequires: gtk+-devel
+%endif
+%if 0%{?mgaversion} || 0%{?mdkversion}
+%define with_gtk1 1
+BuildRequires: %{_lib}glib1.2-devel
+BuildRequires: %{_lib}gtk+-devel
+%endif
+
+%if 0%{?mgaversion} || 0%{?mdkversion}
+BuildRequires: %{_lib}gdk_pixbuf2.0-devel
+%else
+%if 0%{?fedora} >= 17
+BuildRequires: gdk-pixbuf2-devel
+%else
+BuildRequires: gdk-pixbuf-devel
+%endif
+%endif
+
+
+## Python
+BuildRequires: python-devel
+%define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
+
+## ruby
+BuildRequires: ruby-devel >= 1.8, ruby
+%{!?ruby_arch: %define ruby_arch %(ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]')}
+%{!?ruby_rubylibdir: %define ruby_rubylibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["rubylibdir"]')}
+# 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/')
+
+## java
+%if 0%{?rhel} >= 4 && 0%{?rhel} <= 5
+BuildRequires: java-1.4.2-gcj-compat-devel
+BuildRequires: libgcj-devel
+BuildRequires: gcc-java
+%endif
+
+%if 0%{?rhel} >= 6 || 0%{?fedora} || 0%{?mdkversion} || 0%{?mgaversion} || 0%{?suse_version}
+
+# PCLinuxOS use SUN's Java
+%if 0%{?pclinuxos}
+BuildRequires: java-1.6.0-sun
+BuildRequires: java-1.6.0-sun-devel
+%else
+
+# Others use OpenJDK
+BuildRequires: java-openjdk
+BuildRequires: java-devel >= 1.4.2
+%if 0%{?fedora} >= 17 || 0%{?suse_version} >= 1220
+BuildRequires: java-1.7.0-openjdk-devel
+%else
+BuildRequires: java-1.6.0-openjdk-devel
+%endif
+
+%endif
+%endif
+
+%if 0%{?suse_version}
+%define java_home %{_usr}/%{_lib}/jvm/java
+%else
+%if 0%{?rhel} == 4
+%define java_home %{_usr}/lib/jvm/java-1.4.2-gcj-1.4.2.0
+%else
+%define java_home %{_usr}/lib/jvm/java
+%endif
+%endif
+%define _with_java --with-java=%{java_home}
+
+## Perl
+# There is no 'perl-devel' package on RHEL5
+%if 0%{?rhel} >= 6 || 0%{?fedora} || 0%{?mdkversion} || 0%{?mgaversion}
+BuildRequires: perl-devel
+%endif
+%define perl_vendorarch %{expand:%%(eval `perl -V:installvendorarch`; echo $installvendorarch)}
+
+
+Obsoletes: trinity-kdebindings < %{version}-%{release}
+Provides: trinity-kdebindings = %{version}-%{release}
+
+# Metapackage requires
+Requires: trinity-tdebindings-java = %{version}-%{release}
+Requires: trinity-libsmokeqt1 = %{version}-%{release}
+Requires: trinity-libsmokekde1 = %{version}-%{release}
+Requires: trinity-perl-dcop = %{version}-%{release}
+Requires: trinity-python-dcop = %{version}-%{release}
+Requires: trinity-libkjsembed1 = %{version}-%{release}
+Requires: trinity-kjscmd = %{version}-%{release}
+Requires: trinity-juic = %{version}-%{release}
+Requires: trinity-libkorundum0-ruby = %{version}-%{release}
+Requires: trinity-libqt0-ruby = %{version}-%{release}
+
+
+%description
+TDE/DCOP bindings to non-C++ languages
+
+%files
+
+##########
+
+%package java
+Summary: TDE Java bindings metapackage [Trinity]
+Group: Environment/Libraries
+Requires: trinity-libdcop3-java = %{version}-%{release}
+Requires: trinity-libdcop3-jni = %{version}-%{release}
+Requires: trinity-libqt3-java = %{version}-%{release}
+Requires: trinity-libqt3-jni = %{version}-%{release}
+Requires: trinity-libtrinity-java = %{version}-%{release}
+Requires: trinity-libtrinity-jni = %{version}-%{release}
+
+%description java
+A metapackage depending on all TDE, Qt and DCOP bindings libraries
+related to the Java language.
+
+This package is part of the official TDE bindings module.
+
+%files java
+%defattr(-,root,root,-)
+
+##########
+
+%package -n trinity-libdcop3-java
+Summary: DCOP bindings for Java [Trinity]
+Group: Environment/Libraries
+
+Requires: trinity-libdcop3-jni = %{version}-%{release}
+
+%description -n trinity-libdcop3-java
+This package contains the Java classes necessary to run Java programs
+using the Java DCOP bindings. DCOP is the TDE Desktop COmmunications
+Protocol, used for communicating with running TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libdcop3-java
+%defattr(-,root,root,-)
+#%{tde_datadir}/java/dcopjava*.jar
+%{tde_libdir}/java/org/kde/DCOP/*.class
+
+##########
+
+%package -n trinity-libdcop3-java-devel
+Summary: DCOP bindings for Java (dcopidl2java program) [Trinity]
+Group: Development/Libraries
+Requires: trinity-libdcop3-java = %{version}-%{release}
+
+%description -n trinity-libdcop3-java-devel
+This package contains the dcopidl2java program which generates Java
+stubs from DCOP IDL files, necessary to do development with the DCOP Java
+bindings. DCOP is the TDE Desktop COmmunications Protocol, used for
+communicating with running TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libdcop3-java-devel
+%defattr(-,root,root,-)
+%{tde_bindir}/dcopidl2java
+
+##########
+
+%package -n trinity-libdcop3-jni
+Summary: DCOP bindings for Java ( Native libraries ) [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libdcop3-jni
+This package contains the shared libraries and scripts necessary to
+run programs using the Java DCOP bindings. DCOP is the TDE Desktop
+COmmunications Protocol, used for communicating with running TDE
+applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libdcop3-jni
+%defattr(-,root,root,-)
+%{tde_libdir}/libjavadcop.la
+%{tde_libdir}/libjavadcop.so
+
+%post -n trinity-libdcop3-jni
+/sbin/ldconfig || :
+
+%postun -n trinity-libdcop3-jni
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libqt3-java
+Summary: Java bindings for Qt [Trinity]
+Group: Environment/Libraries
+Requires: trinity-libdcop3-jni = %{version}-%{release}
+Requires: trinity-libqt3-jni = %{version}-%{release}
+Requires: trinity-juic = %{version}-%{release}
+
+%description -n trinity-libqt3-java
+This package contains the Java classes necessary to run Java programs
+using the Java Qt bindings. Qt is a very popular GUI toolkit, used by
+the TDE desktop environment.
+
+It also includes many example programs that make use of these bindings,
+plus many of the Qt Tutorial examples translated into Java.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt3-java
+%defattr(-,root,root,-)
+%{tde_libdir}/java/qtjava*.jar
+%{tde_tdedocdir}/HTML/en/javalib/
+
+##########
+
+%package -n trinity-libqt3-jni
+Summary: Java bindings for Qt ( Native libraries ) [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libqt3-jni
+This package contains the shared libraries necessary to run Java
+programs using the Java Qt bindings. Qt is a very popular GUI
+toolkit, used by the TDE desktop environment.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt3-jni
+%defattr(-,root,root,-)
+%{tde_libdir}/libqtjavasupport.la
+%{tde_libdir}/libqtjavasupport.so.*
+%{tde_libdir}/jni/libqtjava.la
+%{tde_libdir}/jni/libqtjava.so.*
+%doc qtjava/ChangeLog
+
+##########
+
+%package -n trinity-libqt3-jni-devel
+Summary: Development files fo Java bindings for Qt ( Native libraries ) [Trinity]
+Group: Development/Libraries
+Requires: trinity-libqt3-jni = %{version}-%{release}
+
+%description -n trinity-libqt3-jni-devel
+This package contains the development files for trinity-libqt3-jni.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt3-jni-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/libqtjavasupport.so
+%{tde_libdir}/jni/libqtjava.so
+
+##########
+
+%package -n trinity-libtrinity-java
+Summary: tdelibs bindings for Java [Trinity]
+Group: Environment/Libraries
+
+Requires: trinity-libtrinity-jni = %{version}-%{release}
+
+%description -n trinity-libtrinity-java
+This package contains the Java classes necessary to run Java programs
+using the Java tdelibs bindings. TDE is the Trinity Desktop Environment, a
+very popular UNIX Desktop Environment.
+
+It also includes some example applications that use these Java
+classes, and multiple usage samples of the most common TDE classes.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libtrinity-java
+%defattr(-,root,root,-)
+%{tde_libdir}/java/koala*.jar
+
+##########
+
+%package -n trinity-libtrinity-jni
+Summary: tdelibs bindings for java ( Native libraries ) [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libtrinity-jni
+This package contains the shared libraries necessary to run Java
+programs using the Java tdelibs bindings. TDE is the Trinity Desktop
+Environment, a very popular UNIX Desktop Environment.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libtrinity-jni
+%defattr(-,root,root,-)
+%{tde_libdir}/jni/libkdejava.la
+%{tde_libdir}/jni/libkdejava.so.*
+%doc kdejava/ChangeLog
+
+##########
+
+%package -n trinity-libtrinity-jni-devel
+Summary: Development files for tdelibs bindings for java ( Native libraries ) [Trinity]
+Group: Development/Libraries
+Requires: trinity-libtrinity-jni = %{version}-%{release}
+
+%description -n trinity-libtrinity-jni-devel
+This package contains the development files for trinity-libtrinity-jni.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libtrinity-jni-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/jni/libkdejava.so
+
+##########
+
+%package -n trinity-libsmokeqt1
+Summary: SMOKE Binding Library to Qt
+Group: Environment/Libraries
+
+%description -n trinity-libsmokeqt1
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+Qt library.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokeqt1
+%defattr(-,root,root,-)
+%{tde_libdir}/libsmokeqt.so.*
+
+%post -n trinity-libsmokeqt1
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokeqt1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libsmokeqt-devel
+Summary: SMOKE Binding Library to Qt - Development Files
+Group: Development/Libraries
+Requires: trinity-libsmokeqt1 = %{version}-%{release}
+
+%description -n trinity-libsmokeqt-devel
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+Qt library. This package contains the development files for the
+library.
+
+If you are a normal user, you probably don't need this
+package.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokeqt-devel
+%defattr(-,root,root,-)
+%{tde_tdeincludedir}/smoke.h
+%{tde_libdir}/libsmokeqt.so
+%{tde_libdir}/libsmokeqt.la
+
+%post -n trinity-libsmokeqt-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokeqt-devel
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libsmokekde1
+Summary: SMOKE Binding Library to TDE
+Group: Environment/Libraries
+
+%description -n trinity-libsmokekde1
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+TDE libraries.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokekde1
+%defattr(-,root,root,-)
+%{tde_libdir}/libsmokekde.so.*
+
+%post -n trinity-libsmokekde1
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokekde1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libsmokekde-devel
+Summary: SMOKE Binding Library to TDE - Development Files
+Group: Development/Libraries
+Requires: trinity-libsmokekde1 = %{version}-%{release}
+
+%description -n trinity-libsmokekde-devel
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+Qt and TDE libraries. This package contains the development files for
+the library.
+
+If you are a normal user, you probably don't need this
+package.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokekde-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/libsmokekde.so
+%{tde_libdir}/libsmokekde.la
+
+%post -n trinity-libsmokekde-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokekde-devel
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-perl-dcop
+Summary: DCOP Bindings for Perl
+Group: Development/Libraries
+
+Obsoletes: trinity-kdebindings-dcopperl < %{version}-%{release}
+Provides: trinity-kdebindings-dcopperl = %{version}-%{release}
+
+%description -n trinity-perl-dcop
+Perl bindings to the DCOP interprocess communication protocol used by TDE
+
+%files -n trinity-perl-dcop
+%defattr(-,root,root,-)
+%{perl_vendorarch}/auto/DCOP/*
+%{perl_vendorarch}/DCOP.pm
+%{perl_vendorarch}/DCOP/*
+%doc dcopperl/AUTHORS dcopperl/Changes dcopperl/README dcopperl/TODO
+%{tde_mandir}/man3/DCOP.3pm*
+
+##########
+
+%package -n trinity-python-dcop
+Summary: DCOP bindings for Python
+Group: Environment/Libraries
+Requires: python
+#Provides: %{name}-dcoppython = %{version}-%{release}
+
+%description -n trinity-python-dcop
+This package contains the shared libraries necessary to run and
+develop Python programs using the Python DCOP bindings
+libraries. DCOP is the TDE Desktop COmmunications Protocol, used for
+communicating with running TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-python-dcop
+%defattr(-,root,root,-)
+%{python_sitearch}/pcop.la
+%{python_sitearch}/pcop.so
+%{python_sitearch}/pydcop.py*
+
+##########
+
+%package -n trinity-libkjsembed1
+Summary: Embedded JavaScript library
+Group: Environment/Libraries
+
+%description -n trinity-libkjsembed1
+This package contains the shared libraries necessary to run programs
+linked with the KJSEmbed library. This library provides JavaScript
+embedded scripting facilities to TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libkjsembed1
+%defattr(-,root,root,-)
+%{tde_libdir}/libkjsembed.so.*
+%{tde_tdelibdir}/libimagefxplugin.la
+%{tde_tdelibdir}/libimagefxplugin.so
+%{tde_datadir}/services/imagefx_plugin.desktop
+%{tde_tdelibdir}/libqprocessplugin.so
+%{tde_tdelibdir}/libqprocessplugin.la
+%{tde_datadir}/services/qprocess_plugin.desktop
+%{tde_tdelibdir}/libfileitemplugin.la
+%{tde_tdelibdir}/libfileitemplugin.so
+%{tde_datadir}/services/kfileitem_plugin.desktop
+%{tde_datadir}/apps/kjsembed/cmdline.js
+%{tde_datadir}/servicetypes/binding_type.desktop
+%{tde_bindir}/embedjs
+%{tde_datadir}/apps/embedjs/embedjsui.rc
+%{tde_datadir}/applnk/Utilities/embedjs.desktop
+%{tde_datadir}/icons/hicolor/16x16/apps/embedjs.png
+%{tde_datadir}/icons/hicolor/32x32/apps/embedjs.png
+%{tde_tdelibdir}/libjavascript.la
+%{tde_tdelibdir}/libjavascript.so
+%{tde_datadir}/apps/kate/scripts/swaptabs.js
+%{tde_datadir}/apps/kate/scripts/swaptabs.ui
+%{tde_datadir}/apps/kate/scripts/swaptabs.desktop
+%{tde_datadir}/services/javascript.desktop
+%doc kjsembed/docs/ChangeLog
+
+%post -n trinity-libkjsembed1
+/sbin/ldconfig ||:
+touch --no-create %{tde_datadir}/icons/hicolor ||:
+gtk-update-icon-cache -q %{tde_datadir}/icons/hicolor 2> /dev/null ||:
+update-desktop-database >& /dev/null ||:
+
+%postun -n trinity-libkjsembed1
+/sbin/ldconfig ||:
+touch --no-create %{tde_datadir}/icons/hicolor ||:
+gtk-update-icon-cache -q %{tde_datadir}/icons/hicolor 2> /dev/null ||:
+update-desktop-database >& /dev/null ||:
+
+##########
+
+%package -n trinity-libkjsembed-devel
+Summary: Embedded JavaScript library (Development files)
+Group: Development/Libraries
+Requires: trinity-libkjsembed1 = %{version}-%{release}
+
+%description -n trinity-libkjsembed-devel
+This package contains the header files and symbolic links necessary
+to develop and compile programs using the KJSEmbed library. This
+library provides JavaScript embedded scripting facilities to TDE
+applications.
+
+It also includes lots of example programs that make use of these
+bindings, plus comprehensive documentation of the bindings.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libkjsembed-devel
+%defattr(-,root,root,-)
+%{tde_tdeincludedir}/kjsembed/
+%{tde_libdir}/libkjsembed.so
+%{tde_libdir}/libkjsembed.la
+%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+
+%post -n trinity-libkjsembed-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libkjsembed-devel
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-kjscmd
+Summary: A script interpreter using the TDE JavaScript library
+Group: Environment/Libraries
+
+%description -n trinity-kjscmd
+This package contains the kjscmd program, which is a standalone
+JavaScript interpreter using the KJSEmbed library.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-kjscmd
+%defattr(-,root,root,-)
+%{tde_bindir}/kjscmd
+%{tde_tdeappdir}/kjscmd.desktop
+%{tde_mandir}/man1/kjscmd.*
+%{tde_tdelibdir}/libjsconsoleplugin.la
+%{tde_tdelibdir}/libjsconsoleplugin.so
+
+%post -n trinity-kjscmd
+update-desktop-database >& /dev/null ||:
+
+%postun -n trinity-kjscmd
+update-desktop-database >& /dev/null ||:
+
+##########
+
+%package -n trinity-juic
+Summary: The Qt Java UI Compiler
+Group: Environment/Libraries
+Requires: trinity-libqt3-java = %{version}-%{release}
+
+%description -n trinity-juic
+This package contains the juic program, which is used to convert
+a UI description file generated by the Qt Designer, and converts
+it into a Qt Java class. It is necessary for compiling and
+developing programs using the Qt Java bindings together with Qt
+Designer.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-juic
+%defattr(-,root,root,-)
+%{tde_bindir}/juic
+%{tde_datadir}/juic/
+
+##########
+
+%package -n trinity-libkorundum0-ruby
+Summary: TDE bindings for Ruby [Trinity]
+Group: Environment/Libraries
+Requires: trinity-libqt0-ruby = %{version}-%{release}
+
+%description -n trinity-libkorundum0-ruby
+This package contains the files necessary for running and developing
+Ruby code using the Korundum TDE Ruby bindings.
+
+It also includes some example programs and templates that make use of
+these bindings.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libkorundum0-ruby
+%defattr(-,root,root,-)
+%{tde_bindir}/rbkdesh
+%{tde_bindir}/rbkdeapi
+%{tde_bindir}/krubyinit
+%{tde_bindir}/rbkconfig_compiler
+%{ruby_rubylibdir}/Korundum.rb
+%{ruby_rubylibdir}/KDE/korundum.rb
+%{ruby_arch}/korundum.la
+%{ruby_arch}/korundum.so*
+%doc korundum/ChangeLog
+
+%post -n trinity-libkorundum0-ruby
+/sbin/ldconfig || :
+
+%postun -n trinity-libkorundum0-ruby
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libqt0-ruby
+Summary: Qt bindings for Ruby [Trinity]
+Group: Environment/Libraries
+Requires: ruby
+
+%description -n trinity-libqt0-ruby
+This package contains the files necessary for running and developing
+Ruby code using the Qt Ruby bindings.
+
+It also includes some example programs that make use of these bindings,
+plus many of the Qt Tutorial examples translated into Ruby.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt0-ruby
+%defattr(-,root,root,-)
+%{tde_bindir}/rbqtsh
+%{tde_bindir}/rbqtapi
+%{tde_bindir}/rbuic
+%{tde_bindir}/qtrubyinit
+%{ruby_rubylibdir}/Qt/qtruby.rb
+%{ruby_rubylibdir}/Qt.rb
+%{ruby_arch}/qtruby.so*
+%{ruby_arch}/qtruby.la
+%{ruby_arch}/qui.so*
+%{ruby_arch}/qui.la
+%doc qtruby/ChangeLog
+
+%post -n trinity-libqt0-ruby
+/sbin/ldconfig || :
+
+%postun -n trinity-libqt0-ruby
+/sbin/ldconfig || :
+
+##########
+
+%if 0
+%package -n trinity-kmozilla
+Summary: Kmozilla for TDE
+Group: Environment/Libraries
+
+%description -n trinity-kmozilla
+%{summary}
+
+%files -n trinity-kmozilla
+%defattr(-,root,root,-)
+%{tde_bindir}/kmozilla
+%{tde_libdir}/libkmozillapart.so.*
+%{tde_libdir}/libkmozillapart.so
+%{tde_libdir}/libkmozillapart.la
+%{tde_datadir}/services/kmozilla.desktop
+%endif
+
+##########
+
+%package -n trinity-xpart-notepad
+Summary: A small XPart editor
+Group: Applications/Utilities
+
+%description -n trinity-xpart-notepad
+xpart_notepad is a small XPart editor. Use it to understand how to use XPart.
+
+%files -n trinity-xpart-notepad
+%defattr(-,root,root,-)
+%{tde_bindir}/shell_xparthost
+%{tde_bindir}/xp_notepad
+%{tde_libdir}/libxp_notepadpart.la
+%{tde_libdir}/libxp_notepadpart.so
+%{tde_libdir}/libxp_notepadpart.so.*
+%{tde_datadir}/services/xp_notepad.desktop
+%doc xparts/xpart_notepad/README
+
+%post -n trinity-xpart-notepad
+/sbin/ldconfig || :
+
+%postun -n trinity-xpart-notepad
+/sbin/ldconfig || :
+
+##########
+
+%if 0%{?with_gtk1}
+%package -n trinity-libgtkxparts1
+Summary: Xparts library for GTK
+Group: Environment/Libraries
+
+%description -n trinity-libgtkxparts1
+%{summary}
+
+%files -n trinity-libgtkxparts1
+%defattr(-,root,root,-)
+%{tde_libdir}/libgtkxparts.so.*
+%{tde_libdir}/libgtkxparts.la
+
+%post -n trinity-libgtkxparts1
+/sbin/ldconfig || :
+
+%postun -n trinity-libgtkxparts1
+/sbin/ldconfig || :
+%endif
+
+##########
+
+%package -n trinity-libkdexparts1
+Summary: Xparts library for KDE
+Group: Environment/Libraries
+
+%description -n trinity-libkdexparts1
+%{summary}
+
+%files -n trinity-libkdexparts1
+%defattr(-,root,root,-)
+%{tde_libdir}/libkdexparts.so.*
+%{tde_libdir}/libkdexparts.la
+
+%post -n trinity-libkdexparts1
+/sbin/ldconfig || :
+
+%postun -n trinity-libkdexparts1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libxparts-devel
+Summary: Xparts development files
+Group: Development/Libraries
+%if 0%{?with_gtk1}
+Requires: trinity-libgtkxparts1 = %{version}-%{release}
+%endif
+Requires: trinity-libkdexparts1 = %{version}-%{release}
+
+%description -n trinity-libxparts-devel
+%{summary}
+
+%files -n trinity-libxparts-devel
+%defattr(-,root,root,-)
+%{tde_tdeincludedir}/xkparts/
+%if 0%{?with_gtk1}
+%{tde_libdir}/libgtkxparts.so
+%endif
+%{tde_libdir}/libkdexparts.so
+
+%post -n trinity-libxparts-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libxparts-devel
+/sbin/ldconfig || :
+
+##########
+
+%package xparts-extras
+Summary: Extra xparts for TDE [Trinity]
+Group: Environment/Libraries
+
+# Metapckage requires
+Requires: trinity-xpart-notepad = %{version}-%{release}
+%if 0%{?with_gtk1}
+Requires: trinity-libgtkxparts1 = %{version}-%{release}
+%endif
+Requires: trinity-libkdexparts1 = %{version}-%{release}
+Requires: trinity-libdcop-c = %{version}-%{release}
+
+%description xparts-extras
+This package contains extra xparts-based modules for Trinity
+This includes the mozilla-konqueror plugin
+
+This package is part of the official TDE bindings module.
+
+%files xparts-extras
+
+###########
+
+%package -n trinity-libdcop-c
+Summary: DCOP bindings for C [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libdcop-c
+%{summary}
+
+%files -n trinity-libdcop-c
+%defattr(-,root,root,-)
+%{tde_libdir}/libdcopc.so.*
+
+%post -n trinity-libdcop-c
+/sbin/ldconfig || :
+
+%postun -n trinity-libdcop-c
+/sbin/ldconfig || :
+
+###########
+
+%package -n trinity-libdcop-c-devel
+Summary: DCOP bindings for C, development files [Trinity]
+Group: Development/Libraries
+Requires: trinity-libdcop-c = %{version}-%{release}
+
+%description -n trinity-libdcop-c-devel
+%{summary}
+
+%files -n trinity-libdcop-c-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/libdcopc.so
+%{tde_libdir}/libdcopc.la
+%{tde_tdeincludedir}/dcopc/
+
+%post -n trinity-libdcop-c-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libdcop-c-devel
+/sbin/ldconfig || :
+
+##########
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Requires: trinity-tdelibs-devel
+
+Obsoletes: trinity-kdebindings-devel < %{version}-%{release}
+Provides: trinity-kdebindings-devel = %{version}-%{release}
+
+# Metapackage
+Requires: trinity-libsmokeqt-devel = %{version}-%{release}
+Requires: trinity-libdcop3-java-devel = %{version}-%{release}
+Requires: trinity-libsmokekde-devel = %{version}-%{release}
+Requires: trinity-libkjsembed-devel = %{version}-%{release}
+Requires: trinity-libxparts-devel = %{version}-%{release}
+Requires: trinity-libdcop-c-devel = %{version}-%{release}
+Requires: trinity-libqt3-jni-devel = %{version}-%{release}
+Requires: trinity-libtrinity-jni-devel = %{version}-%{release}
+
+%description devel
+Development files for the TDE bindings.
+
+%files devel
+
+##########
+
+%if 0%{?suse_version} || 0%{?pclinuxos}
+%debug_package
+%endif
+
+##########
+
+%prep
+%setup -q -n kdebindings-3.5.13.1
+%patch1 -p1 -b .libgcj
+
+%if 0%{?fedora} >= 17 || 0%{?suse_version} >= 1220
+%patch2 -p1 -b .libhpi
+%endif
+%patch6 -p1 -b .dcopcinclude
+%patch7 -p1 -b .dcopjavaldflags
+
+%patch10 -p1 -b .ruby19
+%patch11 -p1 -b .ruby19
+%patch12 -p1 -b .ruby19
+%patch13 -p1 -b .ruby19
+%patch14 -p1 -b .ruby19
+%patch15 -p1 -b .ruby19
+%patch16 -p1 -b .ruby19
+%patch17 -p1 -b .ruby19
+%if 0%{?rhel} >= 4 && 0%{?rhel} <= 5
+%patch18 -p1 -b .ruby
+%endif
+
+# Adds non-standard Ruby include path in include dirs
+%if 0%{?rhel} == 5
+#for d in \
+# qtruby/rubylib/qtruby \
+# qtruby/rubylib/designer/uilib \
+# qtruby/bin \
+# korundum/rubylib/korundum \
+# korundum/bin \
+#; do
+# echo -e "\nINCLUDES += -I%{_usr}/include/%{_normalized_cpu}-%{_target_os}" >> "${d}/Makefile.am"
+#done
+%endif
+
+# Disable kmozilla, it does not build with recent xulrunner (missing 'libmozjs.so')
+%__sed -i "xparts/Makefile.am" \
+ -e "s|SUBDIRS = .*|SUBDIRS = src xpart_notepad|"
+
+# 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|%{tde_includedir}/tqt|g" \
+ -e "s|kde_htmldir='.*'|kde_htmldir='%{tde_tdedocdir}/HTML'|g"
+
+%__cp -f "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in"
+%__cp -f "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" || %__cp -f "/usr/share/libtool/ltmain.sh" "admin/ltmain.sh"
+%__make -f "admin/Makefile.common"
+
+
+%build
+unset QTDIR || : ; source /etc/profile.d/qt3.sh
+export PATH="%{tde_bindir}:${PATH}"
+export LDFLAGS="-L%{tde_libdir} -I%{tde_includedir}"
+
+unset JAVA_HOME ||:
+%{?java_home:JAVA_HOME=%{java_home}; export JAVA_HOME}
+
+# sip/PyQt/PyKDE built separately, not here
+export DO_NOT_COMPILE="$DO_NOT_COMPILE python"
+
+# Specific path for RHEL4
+if [ -d /usr/X11R6 ]; then
+ export CXXFLAGS="${CXXFLAGS} -I/usr/X11R6/include -L/usr/X11R6/%{_lib}"
+fi
+
+%configure \
+ --prefix=%{tde_prefix} \
+ --exec-prefix=%{tde_prefix} \
+ --bindir=%{tde_bindir} \
+ --datadir=%{tde_datadir} \
+ --docdir=%{tde_docdir} \
+ --includedir=%{tde_tdeincludedir} \
+ --libdir=%{tde_libdir} \
+ --mandir=%{tde_mandir} \
+ --disable-rpath \
+ --enable-new-ldflags \
+ --disable-debug --disable-warnings \
+ --disable-dependency-tracking \
+ --with-extra-libs=%{tde_libdir} \
+ --with-pythondir=%{_usr} \
+ --enable-closure \
+ --enable-final \
+ %{?_with_java} %{!?_with_java:--without-java} \
+ %{?_enable_qscintilla} %{!?_enable_qscintilla:--disable-qscintilla} \
+ --with-extra-includes=%{tde_includedir}/tqt
+
+pushd dcopperl
+CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS=vendor
+
+# Ugly hack to add TQT include directory in Makefile
+# Also modifies the man pages directory
+sed -i Makefile \
+ -e "s|^\(INC = .*\)|\1 -I%{tde_includedir}/tqt|" \
+ -e "s|/usr/share/man|%{tde_mandir}|g"
+
+%__make OPTIMIZE="$RPM_OPT_FLAGS" ||:
+popd
+
+# smoke (not smp-safe)
+%__make -C smoke
+
+# The rest is smp-safe
+%__make %{?_smp_mflags} PYTHON=%{__python}
+
+
+%install
+export PATH="%{tde_bindir}:${PATH}"
+%__rm -rf $RPM_BUILD_ROOT
+
+%__make install DESTDIR=%{?buildroot} \
+ PYTHON=%{__python}
+
+# Removes some perl files
+find $RPM_BUILD_ROOT -type f -a \( -name perllocal.pod -o -name .packlist \
+ -o \( -name '*.bs' -a -empty \) \) -exec rm -f {} ';'
+
+# locale's
+%find_lang %{name} || touch %{name}.lang
+HTML_DIR=$(kde-config --expandvars --install html)
+if [ -d $RPM_BUILD_ROOT$HTML_DIR ]; then
+for lang_dir in $RPM_BUILD_ROOT$HTML_DIR/* ; do
+ if [ -d $lang_dir ]; then
+ lang=$(basename $lang_dir)
+ echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang
+ # replace absolute symlinks with relative ones
+ pushd $lang_dir
+ for i in *; do
+ [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common
+ done
+ popd
+ fi
+done
+fi
+
+# Installs juic
+%__install -D -m 755 qtjava/designer/juic/bin/juic %{?buildroot}%{tde_bindir}/juic
+%__install -d -m 755 %{?buildroot}%{tde_datadir}/juic/common
+%__install qtjava/designer/juic/common/*.xml %{?buildroot}%{tde_datadir}/juic/common
+%__install qtjava/designer/juic/common/*.xsl %{?buildroot}%{tde_datadir}/juic/common
+%__install -d -m 755 %{?buildroot}%{tde_datadir}/juic/java
+%__install qtjava/designer/juic/java/*.xml %{?buildroot}%{tde_datadir}/juic/java
+%__install qtjava/designer/juic/java/*.xsl %{?buildroot}%{tde_datadir}/juic/java
+%__install qtjava/designer/juic/juic.xsl %{?buildroot}%{tde_datadir}/juic
+
+# kjsembed sample files
+%__install -d -m 755 %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customobject_plugin.cpp %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customobject_plugin.h %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customobject_plugin.desktop %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customqobject_plugin.cpp %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customqobject_plugin.h %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customqobject_plugin.desktop %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+
+
+# Man installation location is wrong on RHEL4...
+if [ -d "%{buildroot}%{_mandir}/man3" ]; then
+ mv -f %{buildroot}%{_mandir}/man3 %{buildroot}%{tde_mandir}/man3/
+ rm -rf %{buildroot}%{_mandir}
+fi
+
+
+%clean
+%__rm -rf $RPM_BUILD_ROOT
+
+
+
+%changelog
+* Sat Sep 29 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13.1-1
+- Initial build for TDE 3.5.13.1
diff --git a/redhat/tdebindings/trinity-kdebindings-3.5.13.spec b/redhat/tdebindings/trinity-kdebindings-3.5.13.spec
new file mode 100644
index 000000000..2637b79eb
--- /dev/null
+++ b/redhat/tdebindings/trinity-kdebindings-3.5.13.spec
@@ -0,0 +1,1061 @@
+# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
+%if "%{?tde_prefix}" != "/usr"
+%define _variant .opt
+%endif
+
+# TDE 3.5.13 specific building variables
+%define tde_bindir %{tde_prefix}/bin
+%define tde_datadir %{tde_prefix}/share
+%define tde_docdir %{tde_datadir}/doc
+%define tde_includedir %{tde_prefix}/include
+%define tde_libdir %{tde_prefix}/%{_lib}
+%define tde_mandir %{tde_datadir}/man
+
+%define tde_tdeappdir %{tde_datadir}/applications/kde
+%define tde_tdedocdir %{tde_docdir}/kde
+%define tde_tdeincludedir %{tde_includedir}/kde
+%define tde_tdelibdir %{tde_libdir}/trinity
+
+%define _docdir %{tde_docdir}
+
+Name: trinity-tdebindings
+Summary: TDE bindings to non-C++ languages
+Version: 3.5.13
+Release: 5%{?dist}%{_variant}
+
+License: GPLv2
+Group: User Interface/Desktops
+
+Vendor: Trinity Project
+Packager: Francois Andriot <francois.andriot@free.fr>
+URL: http://www.trinitydesktop.org/
+
+Prefix: %{tde_prefix}
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+Source0: kdebindings-%{version}.tar.gz
+
+# RedHat Legacy patches (from Fedora)
+Patch1: kdebindings-3.5.6-libgcj.patch
+
+# [kdebindings] Removes 'hpi' support in openjdk (obsolete in openjdk 1.7.0) [Bug #978]
+Patch2: kdebindings-3.5.13-openjdk_remove_hpi_support.patch
+# [kdebindings] Allow compilation with Ruby >= 1.9 [Bug #597]
+Patch3: kdebindings-3.5.13-ruby_1.9.patch
+# [kdebindings] Fix various build issues [Bug #597]
+Patch4: kdebindings-3.5.13-fixes.patch
+# [kdebindings] Fix smoke compilation on MGA2 (missing LDFLAGS)
+Patch5: kdebindings-3.5.13-missing_ldflags.patch
+# [kdebindings] Fix directory for dcopc include
+Patch6: kdebindings-3.5.13-fix_dcopc_header_location.patch
+
+BuildRequires: autoconf automake libtool m4
+BuildRequires: tqtinterface-devel
+BuildRequires: trinity-arts-devel
+BuildRequires: trinity-kdelibs-devel
+
+BuildRequires: desktop-file-utils
+BuildRequires: zlib-devel
+BuildRequires: perl(ExtUtils::MakeMaker)
+BuildRequires: gtk2-devel
+BuildRequires: java-openjdk
+BuildRequires: xulrunner-devel
+
+%if 0%{?fedora}
+BuildRequires: glib-devel
+BuildRequires: gtk+-devel
+%endif
+%if 0%{?mgaversion} || 0%{?mdkversion}
+BuildRequires: %{_lib}glib1.2-devel
+BuildRequires: %{_lib}gtk+-devel
+%endif
+
+%if 0%{?mgaversion} || 0%{?mdkversion}
+BuildRequires: %{_lib}gdk_pixbuf2.0-devel
+%else
+%if 0%{?fedora} >= 17
+BuildRequires: gdk-pixbuf2-devel
+%else
+BuildRequires: gdk-pixbuf-devel
+%endif
+%endif
+
+
+## Python
+BuildRequires: python-devel
+%define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
+
+## ruby
+BuildRequires: ruby-devel >= 1.8, ruby
+%{!?ruby_arch: %define ruby_arch %(ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]')}
+%{!?ruby_rubylibdir: %define ruby_rubylibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["rubylibdir"]')}
+# 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/')
+
+## java
+%if 0%{?rhel} > 0 && 0%{?rhel} < 6
+BuildRequires: java-1.4.2-gcj-compat-devel libgcj-devel gcc-java
+%else
+BuildRequires: java-devel >= 1.4.2
+%if 0%{?fedora} >= 17
+BuildRequires: java-1.7.0-openjdk-devel
+%else
+BuildRequires: java-1.6.0-openjdk-devel
+%endif
+%endif
+%define java_home %{_usr}/lib/jvm/java
+%define _with_java --with-java=%{java_home}
+
+## Perl
+# There is no 'perl-devel' package on RHEL5
+%if 0%{?rhel} >= 6 || 0%{?fedora} || 0%{?mdkversion} || 0%{?mgaversion}
+BuildRequires: perl-devel
+%endif
+%define perl_vendorarch %{expand:%%(eval `perl -V:installvendorarch`; echo $installvendorarch)}
+
+
+Obsoletes: trinity-kdebindings < %{version}-%{release}
+Provides: trinity-kdebindings = %{version}-%{release}
+
+# Metapackage requires
+Requires: trinity-tdebindings-java = %{version}-%{release}
+Requires: trinity-libsmokeqt1 = %{version}-%{release}
+Requires: trinity-libsmokekde1 = %{version}-%{release}
+Requires: trinity-perl-dcop = %{version}-%{release}
+Requires: trinity-python-dcop = %{version}-%{release}
+Requires: trinity-libkjsembed1 = %{version}-%{release}
+Requires: trinity-kjscmd = %{version}-%{release}
+Requires: trinity-juic = %{version}-%{release}
+Requires: trinity-libkorundum0-ruby = %{version}-%{release}
+Requires: trinity-libqt0-ruby = %{version}-%{release}
+
+
+%description
+TDE/DCOP bindings to non-C++ languages
+
+%files
+
+##########
+
+%package java
+Summary: TDE Java bindings metapackage [Trinity]
+Group: Environment/Libraries
+Requires: trinity-libdcop3-java = %{version}-%{release}
+Requires: trinity-libdcop3-jni = %{version}-%{release}
+Requires: trinity-libqt3-java = %{version}-%{release}
+Requires: trinity-libqt3-jni = %{version}-%{release}
+Requires: trinity-libtrinity-java = %{version}-%{release}
+Requires: trinity-libtrinity-jni = %{version}-%{release}
+
+%description java
+A metapackage depending on all TDE, Qt and DCOP bindings libraries
+related to the Java language.
+
+This package is part of the official TDE bindings module.
+
+%files java
+%defattr(-,root,root,-)
+
+##########
+
+%package -n trinity-libdcop3-java
+Summary: DCOP bindings for Java [Trinity]
+Group: Environment/Libraries
+
+Requires: trinity-libdcop3-jni = %{version}-%{release}
+
+%description -n trinity-libdcop3-java
+This package contains the Java classes necessary to run Java programs
+using the Java DCOP bindings. DCOP is the TDE Desktop COmmunications
+Protocol, used for communicating with running TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libdcop3-java
+%defattr(-,root,root,-)
+#%{tde_datadir}/java/dcopjava*.jar
+%{tde_libdir}/java/org/kde/DCOP/*.class
+
+##########
+
+%package -n trinity-libdcop3-java-devel
+Summary: DCOP bindings for Java (dcopidl2java program) [Trinity]
+Group: Development/Libraries
+Requires: trinity-libdcop3-java = %{version}-%{release}
+
+%description -n trinity-libdcop3-java-devel
+This package contains the dcopidl2java program which generates Java
+stubs from DCOP IDL files, necessary to do development with the DCOP Java
+bindings. DCOP is the TDE Desktop COmmunications Protocol, used for
+communicating with running TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libdcop3-java-devel
+%defattr(-,root,root,-)
+%{tde_bindir}/dcopidl2java
+
+##########
+
+%package -n trinity-libdcop3-jni
+Summary: DCOP bindings for Java ( Native libraries ) [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libdcop3-jni
+This package contains the shared libraries and scripts necessary to
+run programs using the Java DCOP bindings. DCOP is the TDE Desktop
+COmmunications Protocol, used for communicating with running TDE
+applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libdcop3-jni
+%defattr(-,root,root,-)
+%{tde_libdir}/libjavadcop.la
+%{tde_libdir}/libjavadcop.so
+
+%post -n trinity-libdcop3-jni
+/sbin/ldconfig || :
+
+%postun -n trinity-libdcop3-jni
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libqt3-java
+Summary: Java bindings for Qt [Trinity]
+Group: Environment/Libraries
+Requires: trinity-libdcop3-jni = %{version}-%{release}
+Requires: trinity-libqt3-jni = %{version}-%{release}
+Requires: trinity-juic = %{version}-%{release}
+
+%description -n trinity-libqt3-java
+This package contains the Java classes necessary to run Java programs
+using the Java Qt bindings. Qt is a very popular GUI toolkit, used by
+the TDE desktop environment.
+
+It also includes many example programs that make use of these bindings,
+plus many of the Qt Tutorial examples translated into Java.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt3-java
+%defattr(-,root,root,-)
+%{tde_libdir}/java/qtjava*.jar
+%{tde_tdedocdir}/HTML/en/javalib/
+
+##########
+
+%package -n trinity-libqt3-jni
+Summary: Java bindings for Qt ( Native libraries ) [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libqt3-jni
+This package contains the shared libraries necessary to run Java
+programs using the Java Qt bindings. Qt is a very popular GUI
+toolkit, used by the TDE desktop environment.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt3-jni
+%defattr(-,root,root,-)
+%{tde_libdir}/libqtjavasupport.la
+%{tde_libdir}/libqtjavasupport.so.*
+%{tde_libdir}/jni/libqtjava.la
+%{tde_libdir}/jni/libqtjava.so.*
+%doc qtjava/ChangeLog
+
+##########
+
+%package -n trinity-libqt3-jni-devel
+Summary: Development files fo Java bindings for Qt ( Native libraries ) [Trinity]
+Group: Development/Libraries
+Requires: trinity-libqt3-jni = %{version}-%{release}
+
+%description -n trinity-libqt3-jni-devel
+This package contains the development files for trinity-libqt3-jni.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt3-jni-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/libqtjavasupport.so
+%{tde_libdir}/jni/libqtjava.so
+
+##########
+
+%package -n trinity-libtrinity-java
+Summary: tdelibs bindings for Java [Trinity]
+Group: Environment/Libraries
+
+Requires: trinity-libtrinity-jni = %{version}-%{release}
+
+%description -n trinity-libtrinity-java
+This package contains the Java classes necessary to run Java programs
+using the Java tdelibs bindings. TDE is the Trinity Desktop Environment, a
+very popular UNIX Desktop Environment.
+
+It also includes some example applications that use these Java
+classes, and multiple usage samples of the most common TDE classes.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libtrinity-java
+%defattr(-,root,root,-)
+%{tde_libdir}/java/koala*.jar
+
+##########
+
+%package -n trinity-libtrinity-jni
+Summary: tdelibs bindings for java ( Native libraries ) [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libtrinity-jni
+This package contains the shared libraries necessary to run Java
+programs using the Java tdelibs bindings. TDE is the Trinity Desktop
+Environment, a very popular UNIX Desktop Environment.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libtrinity-jni
+%defattr(-,root,root,-)
+%{tde_libdir}/jni/libkdejava.la
+%{tde_libdir}/jni/libkdejava.so.*
+%doc kdejava/ChangeLog
+
+##########
+
+%package -n trinity-libtrinity-jni-devel
+Summary: Development files for tdelibs bindings for java ( Native libraries ) [Trinity]
+Group: Development/Libraries
+Requires: trinity-libtrinity-jni = %{version}-%{release}
+
+%description -n trinity-libtrinity-jni-devel
+This package contains the development files for trinity-libtrinity-jni.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libtrinity-jni-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/jni/libkdejava.so
+
+##########
+
+%package -n trinity-libsmokeqt1
+Summary: SMOKE Binding Library to Qt
+Group: Environment/Libraries
+
+%description -n trinity-libsmokeqt1
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+Qt library.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokeqt1
+%defattr(-,root,root,-)
+%{tde_libdir}/libsmokeqt.so.*
+
+%post -n trinity-libsmokeqt1
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokeqt1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libsmokeqt-devel
+Summary: SMOKE Binding Library to Qt - Development Files
+Group: Development/Libraries
+Requires: trinity-libsmokeqt1 = %{version}-%{release}
+
+%description -n trinity-libsmokeqt-devel
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+Qt library. This package contains the development files for the
+library.
+
+If you are a normal user, you probably don't need this
+package.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokeqt-devel
+%defattr(-,root,root,-)
+%{tde_tdeincludedir}/smoke.h
+%{tde_libdir}/libsmokeqt.so
+%{tde_libdir}/libsmokeqt.la
+
+%post -n trinity-libsmokeqt-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokeqt-devel
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libsmokekde1
+Summary: SMOKE Binding Library to TDE
+Group: Environment/Libraries
+
+%description -n trinity-libsmokekde1
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+TDE libraries.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokekde1
+%defattr(-,root,root,-)
+%{tde_libdir}/libsmokekde.so.*
+
+%post -n trinity-libsmokekde1
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokekde1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libsmokekde-devel
+Summary: SMOKE Binding Library to TDE - Development Files
+Group: Development/Libraries
+Requires: trinity-libsmokekde1 = %{version}-%{release}
+
+%description -n trinity-libsmokekde-devel
+The "Scripting Meta Object Kompiler Engine" library is used by
+various TDE language bindings packages to provide interfaces to the
+Qt and TDE libraries. This package contains the development files for
+the library.
+
+If you are a normal user, you probably don't need this
+package.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libsmokekde-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/libsmokekde.so
+%{tde_libdir}/libsmokekde.la
+
+%post -n trinity-libsmokekde-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libsmokekde-devel
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-perl-dcop
+Summary: DCOP Bindings for Perl
+Group: Development/Libraries
+
+Obsoletes: trinity-kdebindings-dcopperl < %{version}-%{release}
+Provides: trinity-kdebindings-dcopperl = %{version}-%{release}
+
+%description -n trinity-perl-dcop
+Perl bindings to the DCOP interprocess communication protocol used by TDE
+
+%files -n trinity-perl-dcop
+%defattr(-,root,root,-)
+%{perl_vendorarch}/auto/DCOP/*
+%{perl_vendorarch}/DCOP.pm
+%{perl_vendorarch}/DCOP/*
+%doc dcopperl/AUTHORS dcopperl/Changes dcopperl/README dcopperl/TODO
+%{tde_mandir}/man3/DCOP.3pm*
+
+##########
+
+%package -n trinity-python-dcop
+Summary: DCOP bindings for Python
+Group: Environment/Libraries
+Requires: python
+#Provides: %{name}-dcoppython = %{version}-%{release}
+
+%description -n trinity-python-dcop
+This package contains the shared libraries necessary to run and
+develop Python programs using the Python DCOP bindings
+libraries. DCOP is the TDE Desktop COmmunications Protocol, used for
+communicating with running TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-python-dcop
+%defattr(-,root,root,-)
+%{python_sitearch}/pcop.la
+%{python_sitearch}/pcop.so
+%{python_sitearch}/pydcop.py*
+
+##########
+
+%package -n trinity-libkjsembed1
+Summary: Embedded JavaScript library
+Group: Environment/Libraries
+
+%description -n trinity-libkjsembed1
+This package contains the shared libraries necessary to run programs
+linked with the KJSEmbed library. This library provides JavaScript
+embedded scripting facilities to TDE applications.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libkjsembed1
+%defattr(-,root,root,-)
+%{tde_libdir}/libkjsembed.so.*
+%{tde_tdelibdir}/libimagefxplugin.la
+%{tde_tdelibdir}/libimagefxplugin.so
+%{tde_datadir}/services/imagefx_plugin.desktop
+%{tde_tdelibdir}/libqprocessplugin.so
+%{tde_tdelibdir}/libqprocessplugin.la
+%{tde_datadir}/services/qprocess_plugin.desktop
+%{tde_tdelibdir}/libfileitemplugin.la
+%{tde_tdelibdir}/libfileitemplugin.so
+%{tde_datadir}/services/kfileitem_plugin.desktop
+%{tde_datadir}/apps/kjsembed/cmdline.js
+%{tde_datadir}/servicetypes/binding_type.desktop
+%{tde_bindir}/embedjs
+%{tde_datadir}/apps/embedjs/embedjsui.rc
+%{tde_datadir}/applnk/Utilities/embedjs.desktop
+%{tde_datadir}/icons/hicolor/16x16/apps/embedjs.png
+%{tde_datadir}/icons/hicolor/32x32/apps/embedjs.png
+%{tde_tdelibdir}/libjavascript.la
+%{tde_tdelibdir}/libjavascript.so
+%{tde_datadir}/apps/kate/scripts/swaptabs.js
+%{tde_datadir}/apps/kate/scripts/swaptabs.ui
+%{tde_datadir}/apps/kate/scripts/swaptabs.desktop
+%{tde_datadir}/services/javascript.desktop
+%doc kjsembed/docs/ChangeLog
+
+%post -n trinity-libkjsembed1
+/sbin/ldconfig ||:
+touch --no-create %{_datadir}/icons/hicolor ||:
+gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||:
+update-desktop-database >& /dev/null ||:
+
+%postun -n trinity-libkjsembed1
+/sbin/ldconfig ||:
+touch --no-create %{_datadir}/icons/hicolor ||:
+gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||:
+update-desktop-database >& /dev/null ||:
+
+##########
+
+%package -n trinity-libkjsembed-devel
+Summary: Embedded JavaScript library (Development files)
+Group: Development/Libraries
+Requires: trinity-libkjsembed1 = %{version}-%{release}
+
+%description -n trinity-libkjsembed-devel
+This package contains the header files and symbolic links necessary
+to develop and compile programs using the KJSEmbed library. This
+library provides JavaScript embedded scripting facilities to TDE
+applications.
+
+It also includes lots of example programs that make use of these
+bindings, plus comprehensive documentation of the bindings.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libkjsembed-devel
+%defattr(-,root,root,-)
+%{tde_tdeincludedir}/kjsembed/
+%{tde_libdir}/libkjsembed.so
+%{tde_libdir}/libkjsembed.la
+%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+
+%post -n trinity-libkjsembed-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libkjsembed-devel
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-kjscmd
+Summary: A script interpreter using the TDE JavaScript library
+Group: Environment/Libraries
+
+%description -n trinity-kjscmd
+This package contains the kjscmd program, which is a standalone
+JavaScript interpreter using the KJSEmbed library.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-kjscmd
+%defattr(-,root,root,-)
+%{tde_bindir}/kjscmd
+%{tde_tdeappdir}/kjscmd.desktop
+%{tde_mandir}/man1/kjscmd.*
+%{tde_tdelibdir}/libjsconsoleplugin.la
+%{tde_tdelibdir}/libjsconsoleplugin.so
+
+%post -n trinity-kjscmd
+update-desktop-database >& /dev/null ||:
+
+%postun -n trinity-kjscmd
+update-desktop-database >& /dev/null ||:
+
+##########
+
+%package -n trinity-juic
+Summary: The Qt Java UI Compiler
+Group: Environment/Libraries
+Requires: trinity-libqt3-java = %{version}-%{release}
+
+%description -n trinity-juic
+This package contains the juic program, which is used to convert
+a UI description file generated by the Qt Designer, and converts
+it into a Qt Java class. It is necessary for compiling and
+developing programs using the Qt Java bindings together with Qt
+Designer.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-juic
+%defattr(-,root,root,-)
+%{tde_bindir}/juic
+%{tde_datadir}/juic/
+
+##########
+
+%package -n trinity-libkorundum0-ruby
+Summary: TDE bindings for Ruby [Trinity]
+Group: Environment/Libraries
+Requires: trinity-libqt0-ruby = %{version}-%{release}
+
+%description -n trinity-libkorundum0-ruby
+This package contains the files necessary for running and developing
+Ruby code using the Korundum TDE Ruby bindings.
+
+It also includes some example programs and templates that make use of
+these bindings.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libkorundum0-ruby
+%defattr(-,root,root,-)
+%{tde_bindir}/rbkdesh
+%{tde_bindir}/rbkdeapi
+%{tde_bindir}/krubyinit
+%{tde_bindir}/rbkconfig_compiler
+%{ruby_rubylibdir}/Korundum.rb
+%{ruby_rubylibdir}/KDE/korundum.rb
+%if 0%{?fedora} == 17
+%{_usr}/%{_lib}/korundum.la
+%{_usr}/%{_lib}/korundum.so*
+%else
+%{ruby_arch}/korundum.la
+%{ruby_arch}/korundum.so*
+%endif
+%doc korundum/ChangeLog
+
+%post -n trinity-libkorundum0-ruby
+/sbin/ldconfig || :
+
+%postun -n trinity-libkorundum0-ruby
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libqt0-ruby
+Summary: Qt bindings for Ruby [Trinity]
+Group: Environment/Libraries
+Requires: ruby
+
+%description -n trinity-libqt0-ruby
+This package contains the files necessary for running and developing
+Ruby code using the Qt Ruby bindings.
+
+It also includes some example programs that make use of these bindings,
+plus many of the Qt Tutorial examples translated into Ruby.
+
+This package is part of the official TDE bindings module.
+
+%files -n trinity-libqt0-ruby
+%defattr(-,root,root,-)
+%{tde_bindir}/rbqtsh
+%{tde_bindir}/rbqtapi
+%{tde_bindir}/rbuic
+%{tde_bindir}/qtrubyinit
+%{ruby_rubylibdir}/Qt/qtruby.rb
+%{ruby_rubylibdir}/Qt.rb
+%{ruby_arch}/qtruby.so*
+%{ruby_arch}/qtruby.la
+%if 0%{?fedora} >= 17
+%{_usr}/%{_lib}/qui.so*
+%{_usr}/%{_lib}/qui.la
+%else
+%{ruby_arch}/qui.so*
+%{ruby_arch}/qui.la
+%endif
+%doc qtruby/ChangeLog
+
+%post -n trinity-libqt0-ruby
+/sbin/ldconfig || :
+
+%postun -n trinity-libqt0-ruby
+/sbin/ldconfig || :
+
+##########
+
+%if 0
+%package -n trinity-kmozilla
+Summary: Kmozilla for TDE
+Group: Environment/Libraries
+
+%description -n trinity-kmozilla
+%{summary}
+
+%files -n trinity-kmozilla
+%defattr(-,root,root,-)
+%{tde_bindir}/kmozilla
+%{tde_libdir}/libkmozillapart.so.*
+%{tde_libdir}/libkmozillapart.so
+%{tde_libdir}/libkmozillapart.la
+%{tde_datadir}/services/kmozilla.desktop
+%endif
+
+##########
+
+%package -n trinity-xpart-notepad
+Summary: A small XPart editor
+Group: Applications/Utilities
+
+%description -n trinity-xpart-notepad
+xpart_notepad is a small XPart editor. Use it to understand how to use XPart.
+
+%files -n trinity-xpart-notepad
+%defattr(-,root,root,-)
+%{tde_bindir}/shell_xparthost
+%{tde_bindir}/xp_notepad
+%{tde_libdir}/libxp_notepadpart.la
+%{tde_libdir}/libxp_notepadpart.so
+%{tde_libdir}/libxp_notepadpart.so.*
+%{tde_datadir}/services/xp_notepad.desktop
+%doc xparts/xpart_notepad/README
+
+%post -n trinity-xpart-notepad
+/sbin/ldconfig || :
+
+%postun -n trinity-xpart-notepad
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libgtkxparts1
+Summary: Xparts library for GTK
+Group: Environment/Libraries
+
+%description -n trinity-libgtkxparts1
+%{summary}
+
+%files -n trinity-libgtkxparts1
+%defattr(-,root,root,-)
+%{tde_libdir}/libgtkxparts.so.*
+%{tde_libdir}/libgtkxparts.la
+
+%post -n trinity-libgtkxparts1
+/sbin/ldconfig || :
+
+%postun -n trinity-libgtkxparts1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libkdexparts1
+Summary: Xparts library for KDE
+Group: Environment/Libraries
+
+%description -n trinity-libkdexparts1
+%{summary}
+
+%files -n trinity-libkdexparts1
+%defattr(-,root,root,-)
+%{tde_libdir}/libkdexparts.so.*
+%{tde_libdir}/libkdexparts.la
+
+%post -n trinity-libkdexparts1
+/sbin/ldconfig || :
+
+%postun -n trinity-libkdexparts1
+/sbin/ldconfig || :
+
+##########
+
+%package -n trinity-libxparts-devel
+Summary: Xparts development files
+Group: Development/Libraries
+Requires: trinity-libgtkxparts1 = %{version}-%{release}
+Requires: trinity-libkdexparts1 = %{version}-%{release}
+
+%description -n trinity-libxparts-devel
+%{summary}
+
+%files -n trinity-libxparts-devel
+%defattr(-,root,root,-)
+%{tde_tdeincludedir}/xkparts/
+%{tde_libdir}/libgtkxparts.so
+%{tde_libdir}/libkdexparts.so
+
+%post -n trinity-libxparts-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libxparts-devel
+/sbin/ldconfig || :
+
+##########
+
+%package xparts-extras
+Summary: Extra xparts for TDE [Trinity]
+Group: Environment/Libraries
+
+# Metapckage requires
+Requires: trinity-xpart-notepad = %{version}-%{release}
+Requires: trinity-libgtkxparts1 = %{version}-%{release}
+Requires: trinity-libkdexparts1 = %{version}-%{release}
+Requires: trinity-libdcop-c = %{version}-%{release}
+
+%description xparts-extras
+This package contains extra xparts-based modules for Trinity
+This includes the mozilla-konqueror plugin
+
+This package is part of the official TDE bindings module.
+
+%files xparts-extras
+
+###########
+
+%package -n trinity-libdcop-c
+Summary: DCOP bindings for C [Trinity]
+Group: Environment/Libraries
+
+%description -n trinity-libdcop-c
+%{summary}
+
+%files -n trinity-libdcop-c
+%defattr(-,root,root,-)
+%{tde_libdir}/libdcopc.so.*
+
+%post -n trinity-libdcop-c
+/sbin/ldconfig || :
+
+%postun -n trinity-libdcop-c
+/sbin/ldconfig || :
+
+###########
+
+%package -n trinity-libdcop-c-devel
+Summary: DCOP bindings for C, development files [Trinity]
+Group: Development/Libraries
+Requires: trinity-libdcop-c = %{version}-%{release}
+
+%description -n trinity-libdcop-c-devel
+%{summary}
+
+%files -n trinity-libdcop-c-devel
+%defattr(-,root,root,-)
+%{tde_libdir}/libdcopc.so
+%{tde_libdir}/libdcopc.la
+%{tde_tdeincludedir}/dcopc/
+
+%post -n trinity-libdcop-c-devel
+/sbin/ldconfig || :
+
+%postun -n trinity-libdcop-c-devel
+/sbin/ldconfig || :
+
+##########
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Requires: trinity-tdelibs-devel
+
+Obsoletes: trinity-kdebindings-devel < %{version}-%{release}
+Provides: trinity-kdebindings-devel = %{version}-%{release}
+
+# Metapackage
+Requires: trinity-libsmokeqt-devel = %{version}-%{release}
+Requires: trinity-libdcop3-java-devel = %{version}-%{release}
+Requires: trinity-libsmokekde-devel = %{version}-%{release}
+Requires: trinity-libkjsembed-devel = %{version}-%{release}
+Requires: trinity-libxparts-devel = %{version}-%{release}
+Requires: trinity-libdcop-c-devel = %{version}-%{release}
+Requires: trinity-libqt3-jni-devel = %{version}-%{release}
+Requires: trinity-libtrinity-jni-devel = %{version}-%{release}
+
+%description devel
+Development files for the TDE bindings.
+
+%files devel
+
+##########
+
+%prep
+%setup -q -n kdebindings
+%patch1 -p1 -b .libgcj
+
+%if 0%{?fedora} >= 17
+%patch2 -p1 -b .libhpi
+%patch3 -p1
+%endif
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1 -b .dcopcinclude
+
+# Adds non-standard Ruby include path in include dirs
+for d in \
+ qtruby/rubylib/qtruby \
+ qtruby/rubylib/designer/uilib \
+ qtruby/bin \
+ korundum/rubylib/korundum \
+ korundum/bin \
+; do
+ echo -e "\nINCLUDES += -I%{_usr}/include/%{_normalized_cpu}-%{_target_os}" >> "${d}/Makefile.am"
+done
+
+# Disable kmozilla, it does not build with recent xulrunner (missing 'libmozjs.so')
+%__sed -i "xparts/Makefile.am" \
+ -e "s|SUBDIRS = .*|SUBDIRS = src xpart_notepad|"
+
+# 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|%{tde_includedir}/tqt|g" \
+ -e "s|kde_htmldir='.*'|kde_htmldir='%{tde_tdedocdir}/HTML'|g"
+
+%__cp -f "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in"
+%__cp -f "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" || %__cp -f "/usr/share/libtool/ltmain.sh" "admin/ltmain.sh"
+%__make -f "admin/Makefile.common"
+
+
+%build
+unset QTDIR || : ; source /etc/profile.d/qt.sh
+export PATH="%{tde_bindir}:${PATH}"
+export LDFLAGS="-L%{tde_libdir} -I%{tde_includedir}"
+
+unset JAVA_HOME ||:
+%{?java_home:JAVA_HOME=%{java_home}; export JAVA_HOME}
+
+# sip/PyQt/PyKDE built separately, not here
+export DO_NOT_COMPILE="$DO_NOT_COMPILE python"
+
+%configure \
+ --prefix=%{tde_prefix} \
+ --exec-prefix=%{tde_prefix} \
+ --bindir=%{tde_bindir} \
+ --datadir=%{tde_datadir} \
+ --docdir=%{tde_docdir} \
+ --includedir=%{tde_tdeincludedir} \
+ --libdir=%{tde_libdir} \
+ --mandir=%{tde_mandir} \
+ --disable-rpath \
+ --enable-new-ldflags \
+ --disable-debug --disable-warnings \
+ --disable-dependency-tracking \
+ --with-extra-libs=%{tde_libdir} \
+ --with-pythondir=%{_usr} \
+ --enable-closure \
+ --enable-final \
+ %{?_with_java} %{!?_with_java:--without-java} \
+ %{?_enable_qscintilla} %{!?_enable_qscintilla:--disable-qscintilla} \
+ --with-extra-includes=%{tde_includedir}/tqt
+
+pushd dcopperl
+CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS=vendor
+
+# Ugly hack to add TQT include directory in Makefile
+# Also modifies the man pages directory
+sed -i Makefile \
+ -e "s|^\(INC = .*\)|\1 -I%{tde_includedir}/tqt|" \
+ -e "s|/usr/share/man|%{tde_mandir}|g"
+
+%__make OPTIMIZE="$RPM_OPT_FLAGS" ||:
+popd
+
+# smoke (not smp-safe)
+%__make -C smoke
+
+# The rest is smp-safe
+%__make %{?_smp_mflags} PYTHON=%{__python}
+
+
+%install
+export PATH="%{tde_bindir}:${PATH}"
+%__rm -rf $RPM_BUILD_ROOT
+
+%__make install DESTDIR=%{?buildroot} \
+ PYTHON=%{__python}
+
+# Removes some perl files
+find $RPM_BUILD_ROOT -type f -a \( -name perllocal.pod -o -name .packlist \
+ -o \( -name '*.bs' -a -empty \) \) -exec rm -f {} ';'
+
+# locale's
+%find_lang %{name} || touch %{name}.lang
+HTML_DIR=$(kde-config --expandvars --install html)
+if [ -d $RPM_BUILD_ROOT$HTML_DIR ]; then
+for lang_dir in $RPM_BUILD_ROOT$HTML_DIR/* ; do
+ if [ -d $lang_dir ]; then
+ lang=$(basename $lang_dir)
+ echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang
+ # replace absolute symlinks with relative ones
+ pushd $lang_dir
+ for i in *; do
+ [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common
+ done
+ popd
+ fi
+done
+fi
+
+# Installs juic
+%__install -D -m 755 qtjava/designer/juic/bin/juic %{?buildroot}%{tde_bindir}/juic
+%__install -d -m 755 %{?buildroot}%{tde_datadir}/juic/common
+%__install qtjava/designer/juic/common/*.xml %{?buildroot}%{tde_datadir}/juic/common
+%__install qtjava/designer/juic/common/*.xsl %{?buildroot}%{tde_datadir}/juic/common
+%__install -d -m 755 %{?buildroot}%{tde_datadir}/juic/java
+%__install qtjava/designer/juic/java/*.xml %{?buildroot}%{tde_datadir}/juic/java
+%__install qtjava/designer/juic/java/*.xsl %{?buildroot}%{tde_datadir}/juic/java
+%__install qtjava/designer/juic/juic.xsl %{?buildroot}%{tde_datadir}/juic
+
+# kjsembed sample files
+%__install -d -m 755 %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customobject_plugin.cpp %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customobject_plugin.h %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customobject_plugin.desktop %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customqobject_plugin.cpp %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customqobject_plugin.h %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+%__install kjsembed/plugins/customqobject_plugin.desktop %{?buildroot}%{tde_docdir}/trinity-libkjsembed-devel/plugin-examples/customobject/
+
+
+%clean
+%__rm -rf $RPM_BUILD_ROOT
+
+
+
+%changelog
+* Sun Jul 29 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-5
+- Split into several packages
+- Add support for Mageia 2
+- Fix dcopperl man page location
+- Removes strange install stuff from legacy Fedora
+
+* Tue Apr 24 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-4
+- Add support for Fedora 17
+- Removes 'hpi' support in openjdk (obsolete in openjdk 1.7.0) [Bug #978]
+- Allow compilation with Ruby >= 1.9 [Bug #597]
+- Fix various build issues [Bug #597]
+
+* Fri Nov 25 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.13-3
+- Fix HTML directory location
+
+* Fri Nov 04 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.13-2
+- Add missing BuildRequires
+
+* Sun Oct 30 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.13-1
+- Initial release for RHEL 6, RHEL 5 and Fedora 15
+
+* Sat Sep 03 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.13-0
+- Import to GIT
+- Built with future TDE version (3.5.13 + cmake + QT3.3.8d)