diff options
Diffstat (limited to 'redhat/tdebindings')
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) |