From 481b46fdd0e36396cbbf2308dfce83df10b979df Mon Sep 17 00:00:00 2001 From: Robert Xu Date: Sun, 26 Feb 2012 12:50:04 -0500 Subject: Push working tdelibs (rpmlint errors don't count) --- opensuse/core/arts/.project | 12 - opensuse/core/arts/arts.changes | 5 + opensuse/core/arts/arts.spec | 68 +- opensuse/core/libdbus-1-tqt-0/.project | 12 - opensuse/core/libdbus-1-tqt-0/README.VERSION | 1 - .../libdbus-1-tqt-0/fix_circular_destructor.patch | 14 - opensuse/core/libdbus-1-tqt-0/fix_ifdef.patch | 18 - .../core/libdbus-1-tqt-0/libdbus-1-tqt-0.changes | 58 -- opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.spec | 135 --- opensuse/core/libdbus-1-tqt-0/r785103.patch | 996 --------------------- opensuse/core/libdbus-1-tqt-0/r795238.patch | 60 -- opensuse/core/libdbus-1-tqt0/README.VERSION | 1 + .../libdbus-1-tqt0/fix_circular_destructor.patch | 14 + opensuse/core/libdbus-1-tqt0/fix_ifdef.patch | 18 + .../core/libdbus-1-tqt0/libdbus-1-tqt0.changes | 63 ++ opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.spec | 138 +++ opensuse/core/libdbus-1-tqt0/r785103.patch | 996 +++++++++++++++++++++ opensuse/core/libdbus-1-tqt0/r795238.patch | 60 ++ opensuse/core/libdbus-tqt-1-0/.project | 12 - opensuse/core/libdbus-tqt-1-0/libdbus-tqt-1-0.spec | 30 +- opensuse/core/libtqt4/.project | 12 - opensuse/core/libtqt4/libtqt4.changes | 6 + opensuse/core/libtqt4/libtqt4.spec | 16 +- opensuse/core/qt3/.project | 12 - opensuse/core/qt3/_service | 3 - opensuse/core/qt3/add_qexport_visibility.patch | 63 -- opensuse/core/qt3/enable-designer-plugins.diff | 11 - opensuse/core/qt3/popen-leak-fix.diff | 10 - opensuse/core/qt3/pre_checkin.sh | 0 opensuse/core/qt3/qcstring-format-warnings.diff | 15 - opensuse/core/qt3/qt-transparency.patch | 22 +- opensuse/core/qt3/qt3-devel-doc.changes | 10 + opensuse/core/qt3/qt3-devel-doc.spec | 18 +- opensuse/core/qt3/qt3-devel-doc.spec.in | 35 +- opensuse/core/qt3/qt3-extensions.changes | 10 + opensuse/core/qt3/qt3-extensions.spec | 18 +- opensuse/core/qt3/qt3-extensions.spec.in | 127 +-- opensuse/core/qt3/qt3-warnings.diff | 13 - opensuse/core/qt3/qt3.changes | 10 + opensuse/core/qt3/qt3.spec | 20 +- opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff | 36 - opensuse/core/tde-filesystem/.project | 12 - opensuse/core/tde-filesystem/macros.tde | 37 +- opensuse/core/tde-filesystem/tde-filesystem.spec | 4 +- opensuse/core/tdelibs/kdelibs-3.5.10.tar.bz2 | Bin 15614607 -> 0 bytes opensuse/core/tdelibs/kdelibs-3.5.12.99.tar.bz2 | Bin 14993135 -> 0 bytes opensuse/core/tdelibs/tdelibs-devel-doc.spec | 6 +- opensuse/core/tdelibs/tdelibs.spec | 456 +++------- opensuse/core/tdelibs/tdelibs.spec.old | 826 +++++++++++++++++ 49 files changed, 2473 insertions(+), 2046 deletions(-) delete mode 100644 opensuse/core/arts/.project delete mode 100644 opensuse/core/libdbus-1-tqt-0/.project delete mode 100644 opensuse/core/libdbus-1-tqt-0/README.VERSION delete mode 100644 opensuse/core/libdbus-1-tqt-0/fix_circular_destructor.patch delete mode 100644 opensuse/core/libdbus-1-tqt-0/fix_ifdef.patch delete mode 100644 opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.changes delete mode 100644 opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.spec delete mode 100644 opensuse/core/libdbus-1-tqt-0/r785103.patch delete mode 100644 opensuse/core/libdbus-1-tqt-0/r795238.patch create mode 100644 opensuse/core/libdbus-1-tqt0/README.VERSION create mode 100644 opensuse/core/libdbus-1-tqt0/fix_circular_destructor.patch create mode 100644 opensuse/core/libdbus-1-tqt0/fix_ifdef.patch create mode 100644 opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.changes create mode 100644 opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.spec create mode 100644 opensuse/core/libdbus-1-tqt0/r785103.patch create mode 100644 opensuse/core/libdbus-1-tqt0/r795238.patch delete mode 100644 opensuse/core/libdbus-tqt-1-0/.project delete mode 100644 opensuse/core/libtqt4/.project delete mode 100644 opensuse/core/qt3/.project delete mode 100644 opensuse/core/qt3/_service delete mode 100644 opensuse/core/qt3/add_qexport_visibility.patch delete mode 100644 opensuse/core/qt3/enable-designer-plugins.diff delete mode 100644 opensuse/core/qt3/popen-leak-fix.diff mode change 100644 => 100755 opensuse/core/qt3/pre_checkin.sh delete mode 100644 opensuse/core/qt3/qcstring-format-warnings.diff delete mode 100644 opensuse/core/qt3/qt3-warnings.diff delete mode 100644 opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff delete mode 100644 opensuse/core/tde-filesystem/.project delete mode 100644 opensuse/core/tdelibs/kdelibs-3.5.10.tar.bz2 delete mode 100644 opensuse/core/tdelibs/kdelibs-3.5.12.99.tar.bz2 create mode 100644 opensuse/core/tdelibs/tdelibs.spec.old (limited to 'opensuse/core') diff --git a/opensuse/core/arts/.project b/opensuse/core/arts/.project deleted file mode 100644 index 18fc2a88d..000000000 --- a/opensuse/core/arts/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - arts - - - - - - - org.eclipse.linuxtools.rpm.core.rpmnature - - diff --git a/opensuse/core/arts/arts.changes b/opensuse/core/arts/arts.changes index 690c5f92d..7c8a8963a 100644 --- a/opensuse/core/arts/arts.changes +++ b/opensuse/core/arts/arts.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Feb 22 02:14:29 UTC 2012 - robxu9@gmail.com + +- Fix paths + ------------------------------------------------------------------- Sun Aug 21 02:15:14 UTC 2011 - rxu@lincomlinux.org diff --git a/opensuse/core/arts/arts.spec b/opensuse/core/arts/arts.spec index b7fd43e5f..979f89671 100644 --- a/opensuse/core/arts/arts.spec +++ b/opensuse/core/arts/arts.spec @@ -25,7 +25,7 @@ License: GPLv2+ Group: Productivity/Multimedia/Sound/Players Summary: Modular Software Synthesizer PreReq: permissions -Version: 1.5.10 +Version: R13.99 Release: 1 Source0: %{name}-%{version}.tar.bz2 Source1: artswrapper.7.gz @@ -34,7 +34,7 @@ Patch2: no-informational-messages.diff Patch5: arts-vorbis-fix.dif Patch7: fortify_source.patch Patch8: arts-start-on-demand.diff -Patch9: avoid_la_files.diff +#Patch9: avoid_la_files.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -107,10 +107,10 @@ Authors: %patch5 %patch7 %patch8 -%patch9 +#%patch9 %build -CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -DNDEBUG" CFLAGS="$CXXFLAGS" %cmake_tde -d build -- -DWITH_MAD=OFF -DCMAKE_SKIP_RPATH=OFF +CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -DNDEBUG" CFLAGS="$CXXFLAGS" %cmake_tdeusr -d build -- -DWITH_MAD=OFF -DCMAKE_SKIP_RPATH=OFF # shut off MAD support because that is only available in packman @@ -128,70 +128,68 @@ CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -DNDEBUG" CFLAGS="$CXXFLAGS" %cmake_tde -d bu %install %makeinstall_tde -d build %ifarch x86_64 -mkdir -p $RPM_BUILD_ROOT/%{_tde_prefix}/lib -ln -sf ../lib64/mcop $RPM_BUILD_ROOT/%{_tde_prefix}/lib/mcop +mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib +ln -sf ../lib64/mcop $RPM_BUILD_ROOT/%{_prefix}/lib/mcop %endif mkdir -p -m 755 $RPM_BUILD_ROOT/%_mandir/man7 cp %SOURCE1 $RPM_BUILD_ROOT/%_mandir/man7/ # unneeded -rm -rf %{buildroot}/%{_tde_libdir}/*.la +rm -rf %{buildroot}/%{_libdir}/*.la %clean rm -rf $RPM_BUILD_ROOT %post -%run_ldconfig +/sbin/ldconfig %run_permissions -%postun -%run_ldconfig +%postun -p /sbin/ldconfig -%post gmcop -%run_ldconfig +%post gmcop -p /sbin/ldconfig %postun gmcop -%run_ldconfig +/sbin/ldconfig %verifyscript -%verify_permissions -e %{_tde_bindir}/artswrapper +%verify_permissions -e %{_bindir}/artswrapper %files %defattr(-,root,root,755) %doc COPYING.LIB COPYING -%dir %{_tde_prefix} -%dir %{_tde_bindir} -%{_tde_bindir}/artscat -%{_tde_bindir}/arts[dpsr]* -%verify(not mode) %{_tde_bindir}/artswrapper -%dir %{_tde_libdir} -%{_tde_libdir}/libarts*.so.* -%{_tde_libdir}/libkmedia2*.so.* -%{_tde_libdir}/libmcop.so.* -%{_tde_libdir}/libmcop_mt.so.* -%{_tde_libdir}/libqtmcop.so.* -%{_tde_libdir}/libsoundserver_idl.so.* +%dir %{_prefix} +%dir %{_bindir} +%{_bindir}/artscat +%{_bindir}/arts[dpsr]* +%verify(not mode) %{_bindir}/artswrapper +%dir %{_libdir} +%{_libdir}/libarts*.so.* +%{_libdir}/libkmedia2*.so.* +%{_libdir}/libmcop.so.* +%{_libdir}/libmcop_mt.so.* +%{_libdir}/libqtmcop.so.* +%{_libdir}/libsoundserver_idl.so.* # these need to be in the base package for lt_dlopen() -%{_tde_libdir}/*.so -%{_tde_libdir}/mcop +%{_libdir}/*.so +%{_libdir}/mcop %ifarch x86_64 -%{_tde_prefix}/lib +%{_prefix}/lib %endif %{_mandir}/man7/artswrapper.7.gz %files devel %defattr(-,root,root) -%{_tde_bindir}/artsc-config -%{_tde_bindir}/mcopidl -%dir %{_tde_includedir} -%{_tde_includedir}/* +%{_bindir}/artsc-config +%{_bindir}/mcopidl +%dir %{_includedir} +%{_includedir}/* %{_libdir}/pkgconfig/arts.pc %files devel-static %defattr(-,root,root) -%{_tde_libdir}/libgsl.a +%{_libdir}/libartsgsl.a %files gmcop %defattr(-,root,root) -%{_tde_libdir}/libgmcop.so.* +%{_libdir}/libgmcop.so.* %changelog diff --git a/opensuse/core/libdbus-1-tqt-0/.project b/opensuse/core/libdbus-1-tqt-0/.project deleted file mode 100644 index 073316fd0..000000000 --- a/opensuse/core/libdbus-1-tqt-0/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - libdbus-1-tqt-0 - - - - - - - org.eclipse.linuxtools.rpm.core.rpmnature - - diff --git a/opensuse/core/libdbus-1-tqt-0/README.VERSION b/opensuse/core/libdbus-1-tqt-0/README.VERSION deleted file mode 100644 index b8b49c0d6..000000000 --- a/opensuse/core/libdbus-1-tqt-0/README.VERSION +++ /dev/null @@ -1 +0,0 @@ -In the TRINITY tree this is dependencies/dbus-1-tqt. diff --git a/opensuse/core/libdbus-1-tqt-0/fix_circular_destructor.patch b/opensuse/core/libdbus-1-tqt-0/fix_circular_destructor.patch deleted file mode 100644 index cadd26ca0..000000000 --- a/opensuse/core/libdbus-1-tqt-0/fix_circular_destructor.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: tools/dbusxml2qt3/methodgen.cpp -=================================================================== ---- tools/dbusxml2qt3/methodgen.cpp (Revision 805416) -+++ tools/dbusxml2qt3/methodgen.cpp (Arbeitskopie) -@@ -1740,7 +1740,8 @@ - stream << " for (; it != endIt; ++it)" << endl; - stream << " {" << endl; - stream << " QDBusObjectBase* interface = it.data();" << endl; -- stream << " delete interface;" << endl; -+ stream << " if (interface != this)" << endl; -+ stream << " delete interface;" << endl; - stream << " }" << endl; - stream << " interfaces.clear();" << endl; - stream << "}" << endl; diff --git a/opensuse/core/libdbus-1-tqt-0/fix_ifdef.patch b/opensuse/core/libdbus-1-tqt-0/fix_ifdef.patch deleted file mode 100644 index 99da35290..000000000 --- a/opensuse/core/libdbus-1-tqt-0/fix_ifdef.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- dbus/qdbusobjectpath.h -+++ dbus/qdbusobjectpath.h -@@ -21,6 +21,9 @@ - * - */ - -+#ifndef QDBUSOBJECTPATH_H -+#define QDBUSOBJECTPATH_H -+ - #include - - /** -@@ -111,3 +114,5 @@ - */ - static int validate(const QCString& path); - }; -+ -+#endif diff --git a/opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.changes b/opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.changes deleted file mode 100644 index f5e01f9af..000000000 --- a/opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.changes +++ /dev/null @@ -1,58 +0,0 @@ -------------------------------------------------------------------- -Sat Aug 13 15:57:46 UTC 2011 - rxu@lincomlinux.org - -- upgrade to TQt version and adjust accordingly - -------------------------------------------------------------------- -Fri Mar 6 15:38:51 CET 2009 - crrodriguez@suse.de - -- remove static libraries and "la" files - -------------------------------------------------------------------- -Thu May 8 17:15:13 CEST 2008 - hschaa@suse.de - -- Add fix_circular_destructor.patch which fixes a crash in the - generated objects - -------------------------------------------------------------------- -Wed Apr 9 17:45:53 CEST 2008 - hschaa@suse.de - -- Update to SVN revision 795238 which fixes some issues with KNM - -------------------------------------------------------------------- -Thu Mar 13 10:32:01 CET 2008 - hschaa@suse.de - -- Update to 0.8.1 + SVN revision 785103 -- Remove BRANCH_UPDATE.diff -- Add r785103.patch - -------------------------------------------------------------------- -Fri Feb 8 01:03:49 CET 2008 - dmueller@suse.de - -- also allow building on s390/s390x - -------------------------------------------------------------------- -Fri Jan 11 12:14:10 CET 2008 - hschaa@suse.de - -- add ifdefs to qdbusobjectpath.h (fix_ifdef.patch) - -------------------------------------------------------------------- -Wed Jan 9 19:01:49 CET 2008 - dmueller@suse.de - -- fix generation of nm introspection (branch update) - -------------------------------------------------------------------- -Mon Dec 17 16:43:44 CET 2007 - dmueller@suse.de - -- include bugfixes from SVN - -------------------------------------------------------------------- -Wed Dec 12 14:03:53 CET 2007 - hschaa@suse.de - -- Added packages to PDB - -------------------------------------------------------------------- -Fri Nov 30 13:30:33 CET 2007 - hschaa@suse.de - -- Initial checkin - diff --git a/opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.spec b/opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.spec deleted file mode 100644 index 06368c32d..000000000 --- a/opensuse/core/libdbus-1-tqt-0/libdbus-1-tqt-0.spec +++ /dev/null @@ -1,135 +0,0 @@ -# -# spec file for package libdbus-1-tqt-0 -# -# Copyright (c) 2011 the Trinity Project (opensuse). -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.trinitydesktop.org/ -# - -# norootforbuild - - -Name: libdbus-1-tqt-0 -Url: http://www.freedesktop.org/wiki/Software/DBusBindings -%define appname libdbus-1-tqt -BuildRequires: dbus-1-devel libtqt4-devel cmake -License: GPL v2 or later -Group: Development/Libraries/C and C++ -AutoReqProv: on -Version: 0.8.1 -Release: 1 -Summary: TQt DBus Bindings -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: %{appname}-%{version}.tar.bz2 -Patch1: fix_ifdef.patch -Patch2: r785103.patch -Patch3: r795238.patch -Patch4: fix_circular_destructor.patch - -%description -This library provides TQt-classes for accessing the DBus - - - -Authors: --------- - Kevin Krammer - -%package devel -License: GPL v2 or later -Summary: Development files for libdbus-1-tqt -Group: Development/Libraries/C and C++ -Requires: %{name} = %{version}-%{release} -Requires: dbus-1-devel libtqt4-devel - -%description devel -This library provides TQt-classes for accessing the DBus. - -This package holds the development files for libdbus-1-tqt. - - - -Authors: --------- - Kevin Krammer - -%package -n dbusxml2tqt -License: GPL v2 or later -Summary: Generate TQt-classes from DBus-introspection data -Group: Development/Libraries/C and C++ -Requires: %{name} = %{version}-%{release} - -%description -n dbusxml2tqt -dbusxml2tqt allows to generate TQt-classes from DBus-introspection data - - - -Authors: --------- - Kevin Krammer - -%prep -%setup -n %{appname}-%{version} -q -%patch1 -%patch2 -p1 -%patch3 -p0 -%patch4 -p0 - -%build -mkdir build -cd build -cmake ../ -%{__make} %{?jobs:-j%jobs} - -%install -make install DESTDIR=$RPM_BUILD_ROOT -#install -D -m 0755 ./tools/dbusxml2qt3/dbusxml2qt3 $RPM_BUILD_ROOT%{_bindir}/dbusxml2tqt -%{__rm} -f %{buildroot}%{_libdir}/*.la - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%doc README AUTHORS ChangeLog COPYING INSTALL -%{_libdir}/libdbus-1-tqt.so.0 -%{_libdir}/libdbus-1-tqt.so.0.8.1 - -%files devel -%defattr(-,root,root) -%{_libdir}/libdbus-1-tqt.so -%dir %{_includedir}/dbus-1.0/tqt -%dir %{_includedir}/dbus-1.0/tqt/dbus -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusconnection.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusdata.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusdataconverter.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusdatalist.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusdatamap.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbuserror.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusmacros.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusmessage.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusobject.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusobjectpath.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusproxy.h -%{_includedir}/dbus-1.0/tqt/dbus/tqdbusvariant.h -%{_libdir}/pkgconfig/dbus-1-tqt.pc - -%files -n dbusxml2tqt -%defattr(-,root,root) -%{_bindir}/dbusxml2tqt - -%changelog - diff --git a/opensuse/core/libdbus-1-tqt-0/r785103.patch b/opensuse/core/libdbus-1-tqt-0/r785103.patch deleted file mode 100644 index d07b87180..000000000 --- a/opensuse/core/libdbus-1-tqt-0/r785103.patch +++ /dev/null @@ -1,996 +0,0 @@ -diff -ur libdbus-1-qt3-0.8.1/qdbusintegrator.cpp ../dbus-qt4-qt3backport/qdbusintegrator.cpp ---- libdbus-1-qt3-0.8.1/qdbusintegrator.cpp 2007-12-17 12:34:08.000000000 +0100 -+++ ../dbus-qt4-qt3backport/qdbusintegrator.cpp 2008-03-13 10:28:54.000000000 +0100 -@@ -121,7 +121,7 @@ - QDBusConnectionPrivate *d = static_cast(data); - - int flags = dbus_watch_get_flags(watch); -- int fd = dbus_watch_get_fd(watch); -+ int fd = dbus_watch_get_unix_fd(watch); - - QDBusConnectionPrivate::Watcher watcher; - if (flags & DBUS_WATCH_READABLE) { -@@ -163,7 +163,7 @@ - //qDebug("remove watch"); - - QDBusConnectionPrivate *d = static_cast(data); -- int fd = dbus_watch_get_fd(watch); -+ int fd = dbus_watch_get_unix_fd(watch); - - QDBusConnectionPrivate::WatcherHash::iterator it = d->watchers.find(fd); - if (it != d->watchers.end()) -@@ -205,7 +205,7 @@ - //qDebug("toggle watch"); - - QDBusConnectionPrivate *d = static_cast(data); -- int fd = dbus_watch_get_fd(watch); -+ int fd = dbus_watch_get_unix_fd(watch); - - QDBusConnectionPrivate::WatcherHash::iterator it = d->watchers.find(fd); - if (it != d->watchers.end()) { -@@ -218,7 +218,7 @@ - int flags = dbus_watch_get_flags(watch); - - // qDebug("toggle watch %d to %d (write: %d, read: %d)", --// dbus_watch_get_fd(watch), enabled, -+// dbus_watch_get_unix_fd(watch), enabled, - // flags & DBUS_WATCH_WRITABLE, flags & DBUS_WATCH_READABLE); - - if (flags & DBUS_WATCH_READABLE && (*wit).read) -diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/classgen.cpp ../dbus-qt4-qt3backport/tools/dbusxml2qt3/classgen.cpp ---- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/classgen.cpp 2007-12-17 12:34:08.000000000 +0100 -+++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/classgen.cpp 2008-03-13 10:28:54.000000000 +0100 -@@ -38,6 +38,11 @@ - insert(key, true); - } - -+ void removeString(const QString& key) -+ { -+ erase(key); -+ } -+ - void insertStringList(const QStringList& list) - { - QStringList::const_iterator it = list.begin(); -@@ -194,6 +199,14 @@ - forwards.insertString("class QDomElement"); - if (!classData.signals.isEmpty()) - forwards.insertString("class QString"); -+ if (!classData.asyncMethods.isEmpty()) -+ { -+ includes["Qt"].insertString(""); -+ forwards.erase("template class QMap"); -+ -+ includes["qdbus"].insertString(""); -+ forwards.erase("class QDBusMessage"); -+ } - break; - - case Class::Proxy: -@@ -205,6 +218,11 @@ - forwards.insertString("class QString"); - if (!classData.properties.isEmpty()) - forwards.insertString("class QDBusVariant"); -+ if (!classData.asyncMethods.isEmpty()) -+ { -+ includes["Qt"].insertString(""); -+ forwards.erase("template class QMap"); -+ } - break; - - case Class::Node: -@@ -345,7 +363,7 @@ - stream << "#include \"" << (*it).name.lower() << ".h\"" << endl; - } - -- stream << "#include \"introspectable.h\"" << endl; -+ stream << "#include \"introspectableinterface.h\"" << endl; - - stream << endl; - } -@@ -442,7 +460,30 @@ - static void writeMethodDeclarations(const Class& classData, Class::Role role, - QTextStream& stream) - { -- if (!classData.methods.isEmpty()) -+ if (role == Class::Interface && !classData.asyncReplyMethods.isEmpty()) -+ { -+ stream << "public:" << endl; -+ -+ QValueList::const_iterator it = -+ classData.asyncReplyMethods.begin(); -+ QValueList::const_iterator endIt = -+ classData.asyncReplyMethods.end(); -+ for (; it != endIt; ++it) -+ { -+ Method method = *it; -+ method.name += "AsyncReply"; -+ -+ stream << " virtual void "; -+ MethodGenerator::writeMethodDeclaration(method, false, false, stream); -+ -+ stream << " virtual void " << (*it).name -+ << "AsyncError(int asyncCallId, const QDBusError& error);" -+ << endl; -+ stream << endl; -+ } -+ } -+ -+ if (!classData.methods.isEmpty() || !classData.asyncMethods.isEmpty()) - { - bool pureVirtual = true; - switch (role) -@@ -465,9 +506,35 @@ - QValueList::const_iterator endIt = classData.methods.end(); - for (; it != endIt; ++it) - { -+ if ((*it).async) continue; -+ - stream << " virtual bool "; - MethodGenerator::writeMethodDeclaration(*it, pureVirtual, true, stream); - } -+ -+ it = classData.asyncMethods.begin(); -+ endIt = classData.asyncMethods.end(); -+ for (; it != endIt; ++it) -+ { -+ Method method = *it; -+ method.name += "Async"; -+ -+ switch (role) -+ { -+ case Class::Interface: -+ stream << " virtual void "; -+ MethodGenerator::writeMethodDeclaration(method, pureVirtual, false, stream); -+ break; -+ -+ case Class::Proxy: -+ stream << " virtual bool "; -+ MethodGenerator::writeMethodDeclaration(method, pureVirtual, true, stream); -+ break; -+ -+ case Class::Node: // no async methods -+ break; -+ } -+ } - } - - if (!classData.properties.isEmpty()) -@@ -511,7 +578,7 @@ - switch (role) - { - case Class::Interface: -- if (!classData.methods.isEmpty()) -+ if (!classData.methods.isEmpty() || !classData.asyncMethods.isEmpty()) - { - stream << "protected: // implement sending replies" << endl; - stream << " virtual void handleMethodReply(const QDBusMessage& reply) = 0;" << endl; -@@ -527,15 +594,35 @@ - break; - - case Class::Proxy: -+ { - if (!classData.signals.isEmpty()) - { - stream << "protected slots: // usually no need to reimplement" << endl; - stream << " virtual void slotHandleDBusSignal(const QDBusMessage& message);" << endl; - stream << endl; - } -+ -+ if (!classData.asyncReplySignals.isEmpty()) -+ { -+ if (classData.signals.isEmpty()) -+ { -+ stream << "protected slots: // usually no need to reimplement" << endl; -+ } -+ stream << " virtual void slotHandleAsyncReply(int id, const QDBusMessage& message);" << endl; -+ stream << endl; -+ } -+ - stream << "protected:" << endl; - stream << " QDBusProxy* m_baseProxy;" << endl; -+ -+ if (!classData.asyncMethods.isEmpty()) -+ { -+ stream << endl; -+ stream << " QMap m_asyncCalls;" << endl; -+ } -+ - break; -+ } - - case Class::Node: // not variable methods - break; -@@ -547,7 +634,8 @@ - static void writeSignalDeclarations(const Class& classData, Class::Role role, - QTextStream& stream) - { -- if (classData.signals.isEmpty()) return; -+ if (classData.signals.isEmpty() && classData.asyncReplySignals.isEmpty()) -+ return; - - QString prefix; - switch (role) -@@ -578,6 +666,18 @@ - MethodGenerator::writeMethodDeclaration(*it, false, false, stream); - } - -+ it = classData.asyncReplySignals.begin(); -+ endIt = classData.asyncReplySignals.end(); -+ for (; it != endIt; ++it) -+ { -+ stream << prefix; -+ -+ Method signal = *it; -+ signal.name += "AsyncReply"; -+ -+ MethodGenerator::writeMethodDeclaration(signal, false, false, stream); -+ } -+ - stream << endl; - } - -@@ -598,8 +698,6 @@ - static void writeMethodCallDeclarations(const Class& classData, - QTextStream& stream) - { -- if (classData.methods.isEmpty()) return; -- - QValueList::const_iterator it = classData.methods.begin(); - QValueList::const_iterator endIt = classData.methods.end(); - for (; it != endIt; ++it) -@@ -607,6 +705,26 @@ - stream << " "; - MethodGenerator::writeMethodCallDeclaration(*it, stream); - } -+ -+ if (!classData.asyncReplyMethods.isEmpty()) -+ { -+ stream << "protected:" << endl; -+ stream << " QMap m_asyncCalls;" << endl; -+ stream << endl; -+ } -+} -+ -+static void writeInterfaceAsyncReplyHandlers(const Class& classData, -+ QTextStream& stream) -+{ -+ if (classData.asyncReplyMethods.isEmpty()) return; -+ -+ QValueList::const_iterator it = classData.asyncReplyMethods.begin(); -+ QValueList::const_iterator endIt = classData.asyncReplyMethods.end(); -+ for (; it != endIt; ++it) -+ { -+ MethodGenerator::writeInterfaceAsyncReplyHandler(classData, *it, stream); -+ } - } - - static void writeMethodCalls(const Class& classData, QTextStream& stream) -@@ -615,6 +733,15 @@ - QValueList::const_iterator endIt = classData.methods.end(); - for (; it != endIt; ++it) - { -+ if ((*it).async) continue; -+ -+ MethodGenerator::writeMethodCall(classData, *it, stream); -+ } -+ -+ it = classData.asyncMethods.begin(); -+ endIt = classData.asyncMethods.end(); -+ for (; it != endIt; ++it) -+ { - MethodGenerator::writeMethodCall(classData, *it, stream); - } - } -@@ -625,6 +752,15 @@ - QValueList::const_iterator endIt = classData.methods.end(); - for (; it != endIt; ++it) - { -+ if ((*it).async) continue; -+ -+ MethodGenerator::writeProxyMethod(classData.name, *it, stream); -+ } -+ -+ it = classData.asyncMethods.begin(); -+ endIt = classData.asyncMethods.end(); -+ for (; it != endIt; ++it) -+ { - MethodGenerator::writeProxyMethod(classData.name, *it, stream); - } - } -@@ -643,6 +779,121 @@ - } - } - -+static void splitAsyncProxyMethods(Class& classData) -+{ -+ // create the async identifier -+ Argument idArgMethod; -+ idArgMethod.name = "asyncCallId"; -+ idArgMethod.signature = "int"; -+ idArgMethod.isPrimitive = true; -+ idArgMethod.direction = Argument::Out; -+ -+ Argument idArgSignal = idArgMethod; -+ idArgSignal.direction = Argument::In; -+ -+ QValueList::iterator it = classData.methods.begin(); -+ QValueList::iterator endIt = classData.methods.end(); -+ for (; it != endIt; ++it) -+ { -+ if (!(*it).async) continue; -+ -+ Method method = *it; -+ -+ QValueList methodArgs; -+ QValueList signalArgs; -+ -+ // add id argument -+ methodArgs << idArgMethod; -+ signalArgs << idArgSignal; -+ -+ // split in/out arguments: "in" belong to the method, "out" to the new signal -+ QValueList::const_iterator argIt = method.arguments.begin(); -+ QValueList::const_iterator argEndIt = method.arguments.end(); -+ for (; argIt != argEndIt; ++argIt) -+ { -+ if ((*argIt).direction == Argument::Out) -+ { -+ // signal parameters are "out" but have "in" signature, -+ // e.g. "const T&" -+ Argument arg = *argIt; -+ arg.direction = Argument::In; -+ -+ signalArgs << arg; -+ } -+ else -+ methodArgs << *argIt; -+ } -+ -+ // change method -+ method.arguments = methodArgs; -+ -+ classData.asyncMethods << method; -+ -+ // create "callback" signal -+ Method signal = method; -+ signal.arguments = signalArgs; -+ -+ classData.asyncReplySignals << signal; -+ } -+} -+ -+static void splitAsyncInterfaceMethods(Class& classData) -+{ -+ // create the async identifier -+ Argument idArgMethod; -+ idArgMethod.name = "asyncCallId"; -+ idArgMethod.signature = "int"; -+ idArgMethod.isPrimitive = true; -+ idArgMethod.direction = Argument::In; -+ -+ Argument idArgReply = idArgMethod; -+ -+ QValueList::iterator it = classData.methods.begin(); -+ QValueList::iterator endIt = classData.methods.end(); -+ for (; it != endIt; ++it) -+ { -+ if (!(*it).async) continue; -+ -+ Method method = *it; -+ -+ QValueList methodArgs; -+ QValueList replyArgs; -+ -+ // add id argument -+ methodArgs << idArgMethod; -+ replyArgs << idArgReply; -+ -+ // split in/out arguments: "in" belong to the call, "out" to the reply -+ QValueList::const_iterator argIt = method.arguments.begin(); -+ QValueList::const_iterator argEndIt = method.arguments.end(); -+ for (; argIt != argEndIt; ++argIt) -+ { -+ if ((*argIt).direction == Argument::Out) -+ { -+ // reply parameters are "out" for the service but "in" for -+ // the reply handler -+ Argument arg = *argIt; -+ arg.direction = Argument::In; -+ -+ replyArgs << arg; -+ } -+ else -+ methodArgs << *argIt; -+ } -+ -+ // change method -+ method.arguments = methodArgs; -+ -+ classData.asyncMethods << method; -+ -+ // create reply handler -+ Method reply = method; -+ reply.arguments = replyArgs; -+ -+ classData.asyncReplyMethods << reply; -+ } -+} -+ - bool ClassGenerator::initStreams(const QString& baseName, - QTextStream& headerStream, - QTextStream& sourceStream) -@@ -680,7 +931,6 @@ - { - closeIncludeGuard(baseName, headerStream); - writeFileFooter(headerStream); -- - writeFileFooter(sourceStream); - - QIODevice* device = headerStream.device(); -@@ -717,33 +967,36 @@ - QTextStream& headerStream, - QTextStream& sourceStream) - { -+ Class classDataCopy = classData; -+ splitAsyncInterfaceMethods(classDataCopy); -+ - // create header -- writeHeaderIncludes(classData, Class::Interface, headerStream); -+ writeHeaderIncludes(classDataCopy, Class::Interface, headerStream); - -- openNamespaces(classData.namespaces, headerStream); -- openClassDeclaration(classData, Class::Interface, headerStream); -+ openNamespaces(classDataCopy.namespaces, headerStream); -+ openClassDeclaration(classDataCopy, Class::Interface, headerStream); - -- writeSignalDeclarations(classData, Class::Interface, headerStream); -- writeMethodDeclarations(classData, Class::Interface, headerStream); -- writeMethodCallDeclarations(classData, headerStream); -+ writeSignalDeclarations(classDataCopy, Class::Interface, headerStream); -+ writeMethodDeclarations(classDataCopy, Class::Interface, headerStream); -+ writeMethodCallDeclarations(classDataCopy, headerStream); - -- closeClassDeclaration(classData, Class::Interface, headerStream); -- closeNamespaces(classData.namespaces, headerStream); -+ closeClassDeclaration(classDataCopy, Class::Interface, headerStream); -+ closeNamespaces(classDataCopy.namespaces, headerStream); - - // create source -- writeSourceIncludes(classData, Class::Interface, sourceStream); -- -- openNamespaces(classData.namespaces, sourceStream); -+ writeSourceIncludes(classDataCopy, Class::Interface, sourceStream); - -- MethodGenerator::writeIntrospectionDataMethod(classData, sourceStream); -+ openNamespaces(classDataCopy.namespaces, sourceStream); - -- writeSignalEmitters(classData, sourceStream); -+ MethodGenerator::writeIntrospectionDataMethod(classDataCopy, sourceStream); - -- writeMethodCalls(classData, sourceStream); -+ writeSignalEmitters(classDataCopy, sourceStream); -+ writeInterfaceAsyncReplyHandlers(classDataCopy, sourceStream); -+ writeMethodCalls(classDataCopy, sourceStream); - -- MethodGenerator::writeInterfaceMainMethod(classData, sourceStream); -+ MethodGenerator::writeInterfaceMainMethod(classDataCopy, sourceStream); - -- closeNamespaces(classData.namespaces, sourceStream); -+ closeNamespaces(classDataCopy.namespaces, sourceStream); - - return true; - } -@@ -752,33 +1005,39 @@ - QTextStream& headerStream, - QTextStream& sourceStream) - { -+ Class classDataCopy = classData; -+ splitAsyncProxyMethods(classDataCopy); -+ - // create header -- writeHeaderIncludes(classData, Class::Proxy, headerStream); -+ writeHeaderIncludes(classDataCopy, Class::Proxy, headerStream); - -- openNamespaces(classData.namespaces, headerStream); -- openClassDeclaration(classData, Class::Proxy, headerStream); -+ openNamespaces(classDataCopy.namespaces, headerStream); -+ openClassDeclaration(classDataCopy, Class::Proxy, headerStream); - -- writeSignalDeclarations(classData, Class::Proxy, headerStream); -- writeMethodDeclarations(classData, Class::Proxy, headerStream); -+ writeSignalDeclarations(classDataCopy, Class::Proxy, headerStream); -+ writeMethodDeclarations(classDataCopy, Class::Proxy, headerStream); - -- closeClassDeclaration(classData, Class::Proxy, headerStream); -- closeNamespaces(classData.namespaces, headerStream); -+ closeClassDeclaration(classDataCopy, Class::Proxy, headerStream); -+ closeNamespaces(classDataCopy.namespaces, headerStream); - - // create source -- writeSourceIncludes(classData, Class::Proxy, sourceStream); -+ writeSourceIncludes(classDataCopy, Class::Proxy, sourceStream); - -- openNamespaces(classData.namespaces, sourceStream); -+ openNamespaces(classDataCopy.namespaces, sourceStream); - -- MethodGenerator::writeProxyBegin(classData, sourceStream); -+ MethodGenerator::writeProxyBegin(classDataCopy, sourceStream); - -- writeProxyMethods(classData, sourceStream); -+ writeProxyMethods(classDataCopy, sourceStream); - -- writeProxyProperties(classData, sourceStream); -+ writeProxyProperties(classDataCopy, sourceStream); - -- if (!classData.signals.isEmpty()) -- MethodGenerator::writeSignalHandler(classData, sourceStream); -+ if (!classDataCopy.signals.isEmpty()) -+ MethodGenerator::writeSignalHandler(classDataCopy, sourceStream); - -- closeNamespaces(classData.namespaces, sourceStream); -+ if (!classDataCopy.asyncReplySignals.isEmpty()) -+ MethodGenerator::writeProxyAsyncReplyHandler(classDataCopy, sourceStream); -+ -+ closeNamespaces(classDataCopy.namespaces, sourceStream); - - return true; - } -@@ -796,7 +1055,6 @@ - - closeClassDeclaration(classData, Class::Node, headerStream); - closeNamespaces(classData.namespaces, headerStream); -- closeIncludeGuard(classData.name, headerStream); - - // create source - writeSourceIncludes(classData, Class::Node, sourceStream); -diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/main.cpp ../dbus-qt4-qt3backport/tools/dbusxml2qt3/main.cpp ---- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/main.cpp 2007-12-17 12:34:08.000000000 +0100 -+++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/main.cpp 2008-03-13 10:28:54.000000000 +0100 -@@ -153,12 +153,16 @@ - exit(3); - } - -- QStringList nameParts = QStringList::split("::", options["classname"]); -+ // class name for node is handled differently later on -+ if (!generateNode) -+ { -+ QStringList nameParts = QStringList::split("::", options["classname"]); - -- interfaces[0].name = nameParts.back(); -+ interfaces[0].name = nameParts.back(); - -- nameParts.pop_back(); -- interfaces[0].namespaces = nameParts; -+ nameParts.pop_back(); -+ interfaces[0].namespaces = nameParts; -+ } - } - - if (checkForOption(options, "namespace")) -@@ -284,6 +288,7 @@ - Method method; - method.name = "Introspect"; - method.noReply = false; -+ method.async = false; - - Argument argument; - argument.name = "data"; -diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.cpp ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.cpp ---- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.cpp 2007-12-17 12:34:08.000000000 +0100 -+++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.cpp 2008-03-13 10:28:54.000000000 +0100 -@@ -279,6 +279,24 @@ - return annotations; - } - -+static bool hasAnnotation(const QDomElement& element, const QString& annotation, QString* value = 0) -+{ -+ for (QDomNode node = element.firstChild(); !node.isNull(); -+ node = node.nextSibling()) -+ { -+ if (!node.isElement()) continue; -+ -+ QDomElement childElement = node.toElement(); -+ if (childElement.tagName() != "annotation") continue; -+ if (childElement.attribute("name") != annotation) continue; -+ -+ if (value != 0) *value = childElement.attribute("value"); -+ return true; -+ } -+ -+ return false; -+} -+ - static QValueList extractArguments(const QDomElement& methodElement, - Class& classData) - { -@@ -568,9 +586,13 @@ - method.name = element.attribute("name"); - method.arguments = extractArguments(element, classData); - method.noReply = false; -+ method.async = false; - - if (element.tagName() == "method") -+ { -+ method.async = hasAnnotation(element, "org.freedesktop.DBus.GLib.Async"); - classData.methods.append(method); -+ } - else - classData.signals.append(method); - } -@@ -689,36 +711,85 @@ - void MethodGenerator::writeMethodCallDeclaration(const Method& method, - QTextStream& stream) - { -- stream << "QDBusMessage call" << method.name -- << "(const QDBusMessage& mesage);" << endl; -+ if (method.async) -+ stream << "void call" << method.name << "Async"; -+ else -+ stream << "QDBusMessage call" << method.name; -+ -+ stream << "(const QDBusMessage& message);" << endl; - stream << endl; - } - - void MethodGenerator::writeMethodCall(const Class& classData, - const Method& method, QTextStream& stream) - { -- stream << "QDBusMessage " << classData.name << "::call" << method.name -- << "(const QDBusMessage& message)" << endl;; -+ if (method.async) -+ stream << "void " << classData.name << "::call" << method.name << "Async"; -+ else -+ stream << "QDBusMessage " << classData.name << "::call" << method.name; -+ -+ stream << "(const QDBusMessage& message)" << endl; - - stream << "{" << endl; -- stream << " QDBusError error;" << endl; -- stream << " QDBusMessage reply;" << endl; -- stream << endl; - -- writeVariables(" ", method, stream); -+ if (method.async) -+ { -+ // FIXME: using writeVariables by removing asyncCallId argument -+ Method reducedMethod = method; -+ reducedMethod.arguments.pop_front(); -+ -+ writeVariables(" ", reducedMethod, stream); -+ } -+ else -+ { -+ stream << " QDBusError error;" << endl; -+ stream << " QDBusMessage reply;" << endl; -+ stream << endl; -+ -+ writeVariables(" ", method, stream); -+ } - - stream << endl; -- stream << " if (" << method.name << "("; -+ -+ if (method.async) -+ { -+ stream << " int _asyncCallId = 0;" << endl; -+ stream << " while (m_asyncCalls.find(_asyncCallId) != m_asyncCalls.end())" -+ << endl; -+ stream << " {" << endl; -+ stream << " ++_asyncCallId;" << endl; -+ stream << " }" << endl; -+ stream << " m_asyncCalls.insert(_asyncCallId, message);" << endl; -+ stream << endl; -+ -+ stream << " " << method.name << "Async("; -+ } -+ else -+ stream << " if (" << method.name << "("; - - QValueList::const_iterator it = method.arguments.begin(); - QValueList::const_iterator endIt = method.arguments.end(); -- for (; it != endIt; ++it) -+ while (it != endIt) - { -- stream << "_" << (*it).name << ", "; -+ stream << "_" << (*it).name; -+ -+ ++it; -+ if (it != endIt) stream << ", "; - } - -- stream << "error))" << endl; -+ if (method.async) -+ { -+ stream << ");" << endl; -+ stream << endl; -+ -+ stream << " return;" << endl; -+ stream << "}" << endl; -+ stream << endl; -+ return; -+ } - -+ if (method.arguments.count() > 0) stream << ", "; -+ stream << "error))" << endl; - - stream << " {" << endl; - stream << " reply = QDBusMessage::methodReply(message);" << endl; -@@ -878,6 +949,102 @@ - stream << endl; - } - -+ -+void MethodGenerator::writeInterfaceAsyncReplyHandler(const Class& classData, -+ const Method& method, QTextStream& stream) -+{ -+ stream << "void " << classData.name << "::" << method.name -+ << "AsyncReply("; -+ -+ QValueList::const_iterator it = method.arguments.begin(); -+ QValueList::const_iterator endIt = method.arguments.end(); -+ while (it != endIt) -+ { -+ if (!(*it).isPrimitive && (*it).direction == Argument::In) -+ stream << "const "; -+ -+ stream << (*it).signature; -+ -+ if (!(*it).isPrimitive || (*it).direction == Argument::Out) stream << "&"; -+ -+ stream << " " << (*it).name; -+ -+ ++it; -+ if (it != endIt) stream << ", "; -+ } -+ stream << ")" << endl; -+ stream << endl; -+ stream << "{" << endl; -+ -+ stream << " QMap::iterator findIt = m_asyncCalls.find(asyncCallId);" << endl; -+ stream << " if (findIt == m_asyncCalls.end()) return;" << endl; -+ stream << endl; -+ -+ stream << " QDBusMessage call = findIt.data();" << endl; -+ stream << " m_asyncCalls.erase(findIt);" << endl; -+ stream << endl; -+ -+ stream << " QDBusMessage reply = QDBusMessage::methodReply(call);" -+ << endl; -+ -+ it = method.arguments.begin(); -+ for (++it; it != endIt; ++it) // skip asyncCallId at beginning -+ { -+ if (!(*it).annotatedType.isEmpty()) -+ { -+ stream << " QDBusData " << (*it).name << "Data;" << endl; -+ -+ // TODO error handling -+ stream << " if (QDBusDataConverter::convertToQDBusData<" -+ << (*it).annotatedType << ">(" << (*it).name << ", " -+ << (*it).name << "Data" -+ << ") != QDBusDataConverter::Success) return false;" -+ << endl; -+ stream << " reply << " << (*it).name << "Data;" << endl; -+ } -+ else if (!(*it).accessor.isEmpty()) -+ { -+ stream << " reply << QDBusData::from" << (*it).accessor << "("; -+ -+ if ((*it).subAccessor.isEmpty()) -+ stream << (*it).name; -+ else -+ stream << (*it).containerClass << "(" << (*it).name << ")"; -+ -+ stream << ");" << endl; -+ } -+ else -+ stream << " reply << " << (*it).name << ";" << endl; -+ } -+ stream << endl; -+ -+ stream << " handleMethodReply(reply);" << endl; -+ -+ stream << "}" << endl; -+ stream << endl; -+ -+ stream << "void " << classData.name << "::" << method.name -+ << "AsyncError(int asyncCallId, const QDBusError& error)"; -+ stream << endl; -+ -+ stream << "{" << endl; -+ -+ stream << " QMap::iterator findIt = m_asyncCalls.find(asyncCallId);" << endl; -+ stream << " if (findIt == m_asyncCalls.end()) return;" << endl; -+ stream << endl; -+ -+ stream << " QDBusMessage call = findIt.data();" << endl; -+ stream << " m_asyncCalls.erase(findIt);" << endl; -+ stream << endl; -+ -+ stream << " QDBusMessage reply = QDBusMessage::methodError(call, error);" -+ << endl; -+ stream << " handleMethodReply(reply);" << endl; -+ -+ stream << "}" << endl; -+ stream << endl; -+} -+ - void MethodGenerator::writeInterfaceMainMethod(const Class& classData, - QTextStream& stream) - { -@@ -897,10 +1064,19 @@ - { - stream << " if (message.member() == \"" << (*it).name << "\")" << endl; - stream << " {" << endl; -- stream << " QDBusMessage reply = call" << (*it).name << "(message);" -- << endl; -- stream << " handleMethodReply(reply);" << endl; -- stream << endl; -+ -+ if ((*it).async) -+ { -+ stream << " call" << (*it).name << "Async(message);" << endl; -+ stream << endl; -+ } -+ else -+ { -+ stream << " QDBusMessage reply = call" << (*it).name -+ << "(message);" << endl; -+ stream << " handleMethodReply(reply);" << endl; -+ stream << endl; -+ } - stream << " return true;" << endl; - stream << " }" << endl; - stream << endl; -@@ -967,6 +1143,15 @@ - << endl; - } - -+ if (!classData.asyncReplySignals.isEmpty()) -+ { -+ stream << " QObject::connect(m_baseProxy, " -+ << "SIGNAL(asyncReply(int, const QDBusMessage&))," << endl; -+ stream << " this, " -+ << " SLOT(slotHandleAsyncReply(int, const QDBusMessage&)));" -+ << endl; -+ } -+ - stream << "}" << endl; - - stream << endl; -@@ -988,7 +1173,8 @@ - void MethodGenerator::writeProxyMethod(const QString& className, - const Method& method, QTextStream& stream) - { -- stream << "bool " << className << "::" << method.name << "("; -+ stream << "bool " << className << "::" << method.name -+ << (method.async ? "Async(" : "("); - - QValueList::const_iterator it = method.arguments.begin(); - QValueList::const_iterator endIt = method.arguments.end(); -@@ -1064,6 +1250,22 @@ - return; - } - -+ if (method.async) -+ { -+ stream << " asyncCallId = m_baseProxy->sendWithAsyncReply(\""; -+ stream << method.name << "\", parameters);" << endl; -+ stream << endl; -+ -+ stream << " if (asyncCallId != 0) m_asyncCalls[asyncCallId] = \"" -+ << method.name << "\";" << endl; -+ stream << endl; -+ -+ stream << " return (asyncCallId != 0);" << endl; -+ stream << "}" << endl; -+ stream << endl; -+ return; -+ } -+ - stream << " QDBusMessage reply = m_baseProxy->sendWithReply(\""; - stream << method.name << "\", parameters, &error);" << endl; - stream << endl; -@@ -1335,6 +1537,58 @@ - } - } - -+void MethodGenerator::writeProxyAsyncReplyHandler(const Class& classData, -+ QTextStream& stream) -+{ -+ stream << "void " << classData.name -+ << "::slotHandleAsyncReply(int asyncCallId, const QDBusMessage& message)" << endl; -+ stream << "{" << endl; -+ -+ stream << " QMap::iterator findIt = " -+ << "m_asyncCalls.find(asyncCallId);" << endl; -+ stream << " if (findIt == m_asyncCalls.end()) return;" << endl; -+ stream << endl; -+ stream << " const QString signalName = findIt.data();" << endl; -+ stream << " m_asyncCalls.erase(findIt);" << endl; -+ stream << endl; -+ -+ QValueList::const_iterator it = classData.asyncReplySignals.begin(); -+ QValueList::const_iterator endIt = classData.asyncReplySignals.end(); -+ bool first = true; -+ for (; it != endIt; ++it) -+ { -+ stream << " "; -+ -+ if (!first) -+ stream << "else "; -+ else -+ first = false; -+ -+ stream << "if (signalName == \"" << (*it).name << "\")" << endl; -+ stream << " {" << endl; -+ -+ // FIXME tricking writeVariables and writeSignalEmit into writing -+ // the reply emit code by manipulating arguments and name -+ stream << " int _asyncCallId = asyncCallId;" << endl; -+ -+ Method signal = *it; -+ signal.arguments.pop_front(); -+ -+ writeVariables(" ", signal, stream); -+ stream << endl; -+ -+ signal = *it; -+ signal.name += "AsyncReply"; -+ -+ writeSignalEmit(signal, stream); -+ -+ stream << " }" << endl; -+ } -+ -+ stream << "}" << endl; -+ stream << endl; -+} -+ - void MethodGenerator::writeIntrospectionDataMethod(const Class& classData, - QTextStream& stream) - { -diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.h ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.h ---- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.h 2007-12-17 12:34:08.000000000 +0100 -+++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.h 2008-03-13 10:28:55.000000000 +0100 -@@ -61,6 +61,7 @@ - QString name; - QValueList arguments; - bool noReply; -+ bool async; - }; - - class Property : public Argument -@@ -86,6 +87,10 @@ - QValueList methods; - QValueList signals; - QValueList properties; -+ -+ QValueList asyncMethods; -+ QValueList asyncReplySignals; -+ QValueList asyncReplyMethods; - }; - - class MethodGenerator -@@ -109,6 +114,10 @@ - static void writeSignalEmitter(const Class& classData, const Method& method, - QTextStream& stream); - -+ static void writeInterfaceAsyncReplyHandler(const Class& classData, -+ const Method& method, -+ QTextStream& stream); -+ - static void writeInterfaceMainMethod(const Class& classData, - QTextStream& stream); - -@@ -125,6 +134,9 @@ - static void writeProxyProperty(const Class& classData, const Property& property, - QTextStream& stream); - -+ static void writeProxyAsyncReplyHandler(const Class& classData, -+ QTextStream& stream); -+ - static void writeIntrospectionDataMethod(const Class& classData, - QTextStream& stream); - diff --git a/opensuse/core/libdbus-1-tqt-0/r795238.patch b/opensuse/core/libdbus-1-tqt-0/r795238.patch deleted file mode 100644 index 3213c823d..000000000 --- a/opensuse/core/libdbus-1-tqt-0/r795238.patch +++ /dev/null @@ -1,60 +0,0 @@ -Index: dbus/qdbusdatamap.h -=================================================================== ---- dbus/qdbusdatamap.h (Revision 785103) -+++ dbus/qdbusdatamap.h (Revision 795238) -@@ -173,7 +173,7 @@ - } - else if (hasContainerValueType()) - { -- if (it.data()->buildSignature() != containerSignature) -+ if (it.data().buildDBusSignature() != containerSignature) - { - m_valueType = QDBusData::Invalid; - m_containerValueType = QDBusData(); -Index: dbus/qdbuserror.h -=================================================================== ---- dbus/qdbuserror.h (Revision 785103) -+++ dbus/qdbuserror.h (Revision 795238) -@@ -119,7 +119,7 @@ - * Returned by QDBusConnection's addConnection if the specified address - * isn't a valid D-Bus bus address. - * -- * @see QDBusConnection:::addConnection(const QString&,const QString&); -+ * @see QDBusConnection::addConnection(const QString&,const QString&); - */ - BadAddress, - -Index: tools/dbusxml2qt3/classgen.cpp -=================================================================== ---- tools/dbusxml2qt3/classgen.cpp (Revision 785103) -+++ tools/dbusxml2qt3/classgen.cpp (Revision 795238) -@@ -168,6 +168,17 @@ - extractForwardDeclarations(*it, forwards); - } - -+ it = classData.signals.begin(); -+ endIt = classData.signals.end(); -+ for (; it != endIt; ++it) -+ { -+ if ((*it).arguments.isEmpty()) continue; -+ -+ extractHeaderIncludes(*it, includes); -+ extractForwardDeclarations(*it, forwards); -+ } -+ -+ - QValueList::const_iterator propertyIt = classData.properties.begin(); - QValueList::const_iterator propertyEndIt = classData.properties.end(); - for (; propertyIt != propertyEndIt; ++propertyIt) -Index: dbus-1-qt3.pc.in -=================================================================== ---- dbus-1-qt3.pc.in (Revision 785103) -+++ dbus-1-qt3.pc.in (Revision 795238) -@@ -1,6 +1,6 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=${prefix}/lib -+libdir=@libdir@ - includedir=${prefix}/include/dbus-1.0/qt3 - - Name: dbus-1-qt3 diff --git a/opensuse/core/libdbus-1-tqt0/README.VERSION b/opensuse/core/libdbus-1-tqt0/README.VERSION new file mode 100644 index 000000000..b8b49c0d6 --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/README.VERSION @@ -0,0 +1 @@ +In the TRINITY tree this is dependencies/dbus-1-tqt. diff --git a/opensuse/core/libdbus-1-tqt0/fix_circular_destructor.patch b/opensuse/core/libdbus-1-tqt0/fix_circular_destructor.patch new file mode 100644 index 000000000..cadd26ca0 --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/fix_circular_destructor.patch @@ -0,0 +1,14 @@ +Index: tools/dbusxml2qt3/methodgen.cpp +=================================================================== +--- tools/dbusxml2qt3/methodgen.cpp (Revision 805416) ++++ tools/dbusxml2qt3/methodgen.cpp (Arbeitskopie) +@@ -1740,7 +1740,8 @@ + stream << " for (; it != endIt; ++it)" << endl; + stream << " {" << endl; + stream << " QDBusObjectBase* interface = it.data();" << endl; +- stream << " delete interface;" << endl; ++ stream << " if (interface != this)" << endl; ++ stream << " delete interface;" << endl; + stream << " }" << endl; + stream << " interfaces.clear();" << endl; + stream << "}" << endl; diff --git a/opensuse/core/libdbus-1-tqt0/fix_ifdef.patch b/opensuse/core/libdbus-1-tqt0/fix_ifdef.patch new file mode 100644 index 000000000..99da35290 --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/fix_ifdef.patch @@ -0,0 +1,18 @@ +--- dbus/qdbusobjectpath.h ++++ dbus/qdbusobjectpath.h +@@ -21,6 +21,9 @@ + * + */ + ++#ifndef QDBUSOBJECTPATH_H ++#define QDBUSOBJECTPATH_H ++ + #include + + /** +@@ -111,3 +114,5 @@ + */ + static int validate(const QCString& path); + }; ++ ++#endif diff --git a/opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.changes b/opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.changes new file mode 100644 index 000000000..bf37e62c7 --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.changes @@ -0,0 +1,63 @@ +------------------------------------------------------------------- +Thu Feb 2 03:12:24 UTC 2012 - robxu9@gmail.com + +- update to R13.99 + +------------------------------------------------------------------- +Sat Aug 13 15:57:46 UTC 2011 - rxu@lincomlinux.org + +- upgrade to TQt version and adjust accordingly + +------------------------------------------------------------------- +Fri Mar 6 15:38:51 CET 2009 - crrodriguez@suse.de + +- remove static libraries and "la" files + +------------------------------------------------------------------- +Thu May 8 17:15:13 CEST 2008 - hschaa@suse.de + +- Add fix_circular_destructor.patch which fixes a crash in the + generated objects + +------------------------------------------------------------------- +Wed Apr 9 17:45:53 CEST 2008 - hschaa@suse.de + +- Update to SVN revision 795238 which fixes some issues with KNM + +------------------------------------------------------------------- +Thu Mar 13 10:32:01 CET 2008 - hschaa@suse.de + +- Update to 0.8.1 + SVN revision 785103 +- Remove BRANCH_UPDATE.diff +- Add r785103.patch + +------------------------------------------------------------------- +Fri Feb 8 01:03:49 CET 2008 - dmueller@suse.de + +- also allow building on s390/s390x + +------------------------------------------------------------------- +Fri Jan 11 12:14:10 CET 2008 - hschaa@suse.de + +- add ifdefs to qdbusobjectpath.h (fix_ifdef.patch) + +------------------------------------------------------------------- +Wed Jan 9 19:01:49 CET 2008 - dmueller@suse.de + +- fix generation of nm introspection (branch update) + +------------------------------------------------------------------- +Mon Dec 17 16:43:44 CET 2007 - dmueller@suse.de + +- include bugfixes from SVN + +------------------------------------------------------------------- +Wed Dec 12 14:03:53 CET 2007 - hschaa@suse.de + +- Added packages to PDB + +------------------------------------------------------------------- +Fri Nov 30 13:30:33 CET 2007 - hschaa@suse.de + +- Initial checkin + diff --git a/opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.spec b/opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.spec new file mode 100644 index 000000000..329003857 --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/libdbus-1-tqt0.spec @@ -0,0 +1,138 @@ +# +# spec file for package libdbus-1-tqt0 +# +# Copyright (c) 2011 the Trinity Project (opensuse). +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.trinitydesktop.org/ +# + +# norootforbuild + + +Name: libdbus-1-tqt0 +Url: http://www.freedesktop.org/wiki/Software/DBusBindings +%define appname dbus-1-tqt +BuildRequires: dbus-1-devel libtqt4-devel cmake +License: GPL v2 or later +Group: Development/Libraries/C and C++ +AutoReqProv: on +Version: R13.99 +Release: 1 +Summary: TQt DBus Bindings +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source0: %{appname}-%{version}.tar.bz2 +Provides: libdbus-1-tqt-0 + +%description +This library provides TQt-classes for accessing the DBus + +Authors: +-------- + Kevin Krammer + +%package devel +License: GPL v2 or later +Summary: Development files for libdbus-1-tqt +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version}-%{release} +Requires: dbus-1-devel libtqt4-devel + +%description devel +This library provides TQt-classes for accessing the DBus. + +This package holds the development files for libdbus-1-tqt. + + + +Authors: +-------- + Kevin Krammer + +%package -n dbusxml2qt3 +License: GPL v2 or later +Summary: Generate Qt3-classes from DBus-introspection data +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version}-%{release} + +%description -n dbusxml2qt3 +dbusxml2tqt allows to generate TQt-compatible Qt3 classes from DBus-introspection data + + + +Authors: +-------- + Kevin Krammer + +%prep +%setup -n %{appname}-%{version} -q + +%build +mkdir build +cd build + cmake -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ + -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \ + -DLIB_INSTALL_DIR:PATH=%{_libdir} \ + -DLIBEXEC_INSTALL_DIR:PATH=%{_libexecdir} \ + -DLIB_SUFFIX=`$(echo %_lib | cut -b4-)` \ + -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DPKGCONFIG_INSTALL_DIR=%{_libdir}/pkgconfig \ + -DMAN_INSTALL_DIR=%{_mandir} \ + -DINFO_INSTALL_DIR=%{_infodir} \ + ../ + +%{__make} %{?jobs:-j%jobs} + +%install +cd build +make install DESTDIR=$RPM_BUILD_ROOT +#install -D -m 0755 ./tools/dbusxml2qt3/dbusxml2qt3 $RPM_BUILD_ROOT%{_bindir}/dbusxml2tqt +%{__rm} -f %{buildroot}%{_libdir}/*.la + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc README AUTHORS ChangeLog COPYING INSTALL +%{_libdir}/libdbus-1-tqt.so.0 +%{_libdir}/libdbus-1-tqt.so.0.0.0 + +%files devel +%defattr(-,root,root) +%{_libdir}/libdbus-1-tqt.so +%{_includedir}/tqdbusconnection.h +%{_includedir}/tqdbusdata.h +%{_includedir}/tqdbusdataconverter.h +%{_includedir}/tqdbusdatalist.h +%{_includedir}/tqdbusdatamap.h +%{_includedir}/tqdbuserror.h +%{_includedir}/tqdbusmacros.h +%{_includedir}/tqdbusmessage.h +%{_includedir}/tqdbusobject.h +%{_includedir}/tqdbusobjectpath.h +%{_includedir}/tqdbusproxy.h +%{_includedir}/tqdbusvariant.h +%{_libdir}/pkgconfig/dbus-1-tqt.pc + +%files -n dbusxml2qt3 +%defattr(-,root,root) +%{_bindir}/dbusxml2qt3 + +%changelog + diff --git a/opensuse/core/libdbus-1-tqt0/r785103.patch b/opensuse/core/libdbus-1-tqt0/r785103.patch new file mode 100644 index 000000000..d07b87180 --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/r785103.patch @@ -0,0 +1,996 @@ +diff -ur libdbus-1-qt3-0.8.1/qdbusintegrator.cpp ../dbus-qt4-qt3backport/qdbusintegrator.cpp +--- libdbus-1-qt3-0.8.1/qdbusintegrator.cpp 2007-12-17 12:34:08.000000000 +0100 ++++ ../dbus-qt4-qt3backport/qdbusintegrator.cpp 2008-03-13 10:28:54.000000000 +0100 +@@ -121,7 +121,7 @@ + QDBusConnectionPrivate *d = static_cast(data); + + int flags = dbus_watch_get_flags(watch); +- int fd = dbus_watch_get_fd(watch); ++ int fd = dbus_watch_get_unix_fd(watch); + + QDBusConnectionPrivate::Watcher watcher; + if (flags & DBUS_WATCH_READABLE) { +@@ -163,7 +163,7 @@ + //qDebug("remove watch"); + + QDBusConnectionPrivate *d = static_cast(data); +- int fd = dbus_watch_get_fd(watch); ++ int fd = dbus_watch_get_unix_fd(watch); + + QDBusConnectionPrivate::WatcherHash::iterator it = d->watchers.find(fd); + if (it != d->watchers.end()) +@@ -205,7 +205,7 @@ + //qDebug("toggle watch"); + + QDBusConnectionPrivate *d = static_cast(data); +- int fd = dbus_watch_get_fd(watch); ++ int fd = dbus_watch_get_unix_fd(watch); + + QDBusConnectionPrivate::WatcherHash::iterator it = d->watchers.find(fd); + if (it != d->watchers.end()) { +@@ -218,7 +218,7 @@ + int flags = dbus_watch_get_flags(watch); + + // qDebug("toggle watch %d to %d (write: %d, read: %d)", +-// dbus_watch_get_fd(watch), enabled, ++// dbus_watch_get_unix_fd(watch), enabled, + // flags & DBUS_WATCH_WRITABLE, flags & DBUS_WATCH_READABLE); + + if (flags & DBUS_WATCH_READABLE && (*wit).read) +diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/classgen.cpp ../dbus-qt4-qt3backport/tools/dbusxml2qt3/classgen.cpp +--- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/classgen.cpp 2007-12-17 12:34:08.000000000 +0100 ++++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/classgen.cpp 2008-03-13 10:28:54.000000000 +0100 +@@ -38,6 +38,11 @@ + insert(key, true); + } + ++ void removeString(const QString& key) ++ { ++ erase(key); ++ } ++ + void insertStringList(const QStringList& list) + { + QStringList::const_iterator it = list.begin(); +@@ -194,6 +199,14 @@ + forwards.insertString("class QDomElement"); + if (!classData.signals.isEmpty()) + forwards.insertString("class QString"); ++ if (!classData.asyncMethods.isEmpty()) ++ { ++ includes["Qt"].insertString(""); ++ forwards.erase("template class QMap"); ++ ++ includes["qdbus"].insertString(""); ++ forwards.erase("class QDBusMessage"); ++ } + break; + + case Class::Proxy: +@@ -205,6 +218,11 @@ + forwards.insertString("class QString"); + if (!classData.properties.isEmpty()) + forwards.insertString("class QDBusVariant"); ++ if (!classData.asyncMethods.isEmpty()) ++ { ++ includes["Qt"].insertString(""); ++ forwards.erase("template class QMap"); ++ } + break; + + case Class::Node: +@@ -345,7 +363,7 @@ + stream << "#include \"" << (*it).name.lower() << ".h\"" << endl; + } + +- stream << "#include \"introspectable.h\"" << endl; ++ stream << "#include \"introspectableinterface.h\"" << endl; + + stream << endl; + } +@@ -442,7 +460,30 @@ + static void writeMethodDeclarations(const Class& classData, Class::Role role, + QTextStream& stream) + { +- if (!classData.methods.isEmpty()) ++ if (role == Class::Interface && !classData.asyncReplyMethods.isEmpty()) ++ { ++ stream << "public:" << endl; ++ ++ QValueList::const_iterator it = ++ classData.asyncReplyMethods.begin(); ++ QValueList::const_iterator endIt = ++ classData.asyncReplyMethods.end(); ++ for (; it != endIt; ++it) ++ { ++ Method method = *it; ++ method.name += "AsyncReply"; ++ ++ stream << " virtual void "; ++ MethodGenerator::writeMethodDeclaration(method, false, false, stream); ++ ++ stream << " virtual void " << (*it).name ++ << "AsyncError(int asyncCallId, const QDBusError& error);" ++ << endl; ++ stream << endl; ++ } ++ } ++ ++ if (!classData.methods.isEmpty() || !classData.asyncMethods.isEmpty()) + { + bool pureVirtual = true; + switch (role) +@@ -465,9 +506,35 @@ + QValueList::const_iterator endIt = classData.methods.end(); + for (; it != endIt; ++it) + { ++ if ((*it).async) continue; ++ + stream << " virtual bool "; + MethodGenerator::writeMethodDeclaration(*it, pureVirtual, true, stream); + } ++ ++ it = classData.asyncMethods.begin(); ++ endIt = classData.asyncMethods.end(); ++ for (; it != endIt; ++it) ++ { ++ Method method = *it; ++ method.name += "Async"; ++ ++ switch (role) ++ { ++ case Class::Interface: ++ stream << " virtual void "; ++ MethodGenerator::writeMethodDeclaration(method, pureVirtual, false, stream); ++ break; ++ ++ case Class::Proxy: ++ stream << " virtual bool "; ++ MethodGenerator::writeMethodDeclaration(method, pureVirtual, true, stream); ++ break; ++ ++ case Class::Node: // no async methods ++ break; ++ } ++ } + } + + if (!classData.properties.isEmpty()) +@@ -511,7 +578,7 @@ + switch (role) + { + case Class::Interface: +- if (!classData.methods.isEmpty()) ++ if (!classData.methods.isEmpty() || !classData.asyncMethods.isEmpty()) + { + stream << "protected: // implement sending replies" << endl; + stream << " virtual void handleMethodReply(const QDBusMessage& reply) = 0;" << endl; +@@ -527,15 +594,35 @@ + break; + + case Class::Proxy: ++ { + if (!classData.signals.isEmpty()) + { + stream << "protected slots: // usually no need to reimplement" << endl; + stream << " virtual void slotHandleDBusSignal(const QDBusMessage& message);" << endl; + stream << endl; + } ++ ++ if (!classData.asyncReplySignals.isEmpty()) ++ { ++ if (classData.signals.isEmpty()) ++ { ++ stream << "protected slots: // usually no need to reimplement" << endl; ++ } ++ stream << " virtual void slotHandleAsyncReply(int id, const QDBusMessage& message);" << endl; ++ stream << endl; ++ } ++ + stream << "protected:" << endl; + stream << " QDBusProxy* m_baseProxy;" << endl; ++ ++ if (!classData.asyncMethods.isEmpty()) ++ { ++ stream << endl; ++ stream << " QMap m_asyncCalls;" << endl; ++ } ++ + break; ++ } + + case Class::Node: // not variable methods + break; +@@ -547,7 +634,8 @@ + static void writeSignalDeclarations(const Class& classData, Class::Role role, + QTextStream& stream) + { +- if (classData.signals.isEmpty()) return; ++ if (classData.signals.isEmpty() && classData.asyncReplySignals.isEmpty()) ++ return; + + QString prefix; + switch (role) +@@ -578,6 +666,18 @@ + MethodGenerator::writeMethodDeclaration(*it, false, false, stream); + } + ++ it = classData.asyncReplySignals.begin(); ++ endIt = classData.asyncReplySignals.end(); ++ for (; it != endIt; ++it) ++ { ++ stream << prefix; ++ ++ Method signal = *it; ++ signal.name += "AsyncReply"; ++ ++ MethodGenerator::writeMethodDeclaration(signal, false, false, stream); ++ } ++ + stream << endl; + } + +@@ -598,8 +698,6 @@ + static void writeMethodCallDeclarations(const Class& classData, + QTextStream& stream) + { +- if (classData.methods.isEmpty()) return; +- + QValueList::const_iterator it = classData.methods.begin(); + QValueList::const_iterator endIt = classData.methods.end(); + for (; it != endIt; ++it) +@@ -607,6 +705,26 @@ + stream << " "; + MethodGenerator::writeMethodCallDeclaration(*it, stream); + } ++ ++ if (!classData.asyncReplyMethods.isEmpty()) ++ { ++ stream << "protected:" << endl; ++ stream << " QMap m_asyncCalls;" << endl; ++ stream << endl; ++ } ++} ++ ++static void writeInterfaceAsyncReplyHandlers(const Class& classData, ++ QTextStream& stream) ++{ ++ if (classData.asyncReplyMethods.isEmpty()) return; ++ ++ QValueList::const_iterator it = classData.asyncReplyMethods.begin(); ++ QValueList::const_iterator endIt = classData.asyncReplyMethods.end(); ++ for (; it != endIt; ++it) ++ { ++ MethodGenerator::writeInterfaceAsyncReplyHandler(classData, *it, stream); ++ } + } + + static void writeMethodCalls(const Class& classData, QTextStream& stream) +@@ -615,6 +733,15 @@ + QValueList::const_iterator endIt = classData.methods.end(); + for (; it != endIt; ++it) + { ++ if ((*it).async) continue; ++ ++ MethodGenerator::writeMethodCall(classData, *it, stream); ++ } ++ ++ it = classData.asyncMethods.begin(); ++ endIt = classData.asyncMethods.end(); ++ for (; it != endIt; ++it) ++ { + MethodGenerator::writeMethodCall(classData, *it, stream); + } + } +@@ -625,6 +752,15 @@ + QValueList::const_iterator endIt = classData.methods.end(); + for (; it != endIt; ++it) + { ++ if ((*it).async) continue; ++ ++ MethodGenerator::writeProxyMethod(classData.name, *it, stream); ++ } ++ ++ it = classData.asyncMethods.begin(); ++ endIt = classData.asyncMethods.end(); ++ for (; it != endIt; ++it) ++ { + MethodGenerator::writeProxyMethod(classData.name, *it, stream); + } + } +@@ -643,6 +779,121 @@ + } + } + ++static void splitAsyncProxyMethods(Class& classData) ++{ ++ // create the async identifier ++ Argument idArgMethod; ++ idArgMethod.name = "asyncCallId"; ++ idArgMethod.signature = "int"; ++ idArgMethod.isPrimitive = true; ++ idArgMethod.direction = Argument::Out; ++ ++ Argument idArgSignal = idArgMethod; ++ idArgSignal.direction = Argument::In; ++ ++ QValueList::iterator it = classData.methods.begin(); ++ QValueList::iterator endIt = classData.methods.end(); ++ for (; it != endIt; ++it) ++ { ++ if (!(*it).async) continue; ++ ++ Method method = *it; ++ ++ QValueList methodArgs; ++ QValueList signalArgs; ++ ++ // add id argument ++ methodArgs << idArgMethod; ++ signalArgs << idArgSignal; ++ ++ // split in/out arguments: "in" belong to the method, "out" to the new signal ++ QValueList::const_iterator argIt = method.arguments.begin(); ++ QValueList::const_iterator argEndIt = method.arguments.end(); ++ for (; argIt != argEndIt; ++argIt) ++ { ++ if ((*argIt).direction == Argument::Out) ++ { ++ // signal parameters are "out" but have "in" signature, ++ // e.g. "const T&" ++ Argument arg = *argIt; ++ arg.direction = Argument::In; ++ ++ signalArgs << arg; ++ } ++ else ++ methodArgs << *argIt; ++ } ++ ++ // change method ++ method.arguments = methodArgs; ++ ++ classData.asyncMethods << method; ++ ++ // create "callback" signal ++ Method signal = method; ++ signal.arguments = signalArgs; ++ ++ classData.asyncReplySignals << signal; ++ } ++} ++ ++static void splitAsyncInterfaceMethods(Class& classData) ++{ ++ // create the async identifier ++ Argument idArgMethod; ++ idArgMethod.name = "asyncCallId"; ++ idArgMethod.signature = "int"; ++ idArgMethod.isPrimitive = true; ++ idArgMethod.direction = Argument::In; ++ ++ Argument idArgReply = idArgMethod; ++ ++ QValueList::iterator it = classData.methods.begin(); ++ QValueList::iterator endIt = classData.methods.end(); ++ for (; it != endIt; ++it) ++ { ++ if (!(*it).async) continue; ++ ++ Method method = *it; ++ ++ QValueList methodArgs; ++ QValueList replyArgs; ++ ++ // add id argument ++ methodArgs << idArgMethod; ++ replyArgs << idArgReply; ++ ++ // split in/out arguments: "in" belong to the call, "out" to the reply ++ QValueList::const_iterator argIt = method.arguments.begin(); ++ QValueList::const_iterator argEndIt = method.arguments.end(); ++ for (; argIt != argEndIt; ++argIt) ++ { ++ if ((*argIt).direction == Argument::Out) ++ { ++ // reply parameters are "out" for the service but "in" for ++ // the reply handler ++ Argument arg = *argIt; ++ arg.direction = Argument::In; ++ ++ replyArgs << arg; ++ } ++ else ++ methodArgs << *argIt; ++ } ++ ++ // change method ++ method.arguments = methodArgs; ++ ++ classData.asyncMethods << method; ++ ++ // create reply handler ++ Method reply = method; ++ reply.arguments = replyArgs; ++ ++ classData.asyncReplyMethods << reply; ++ } ++} ++ + bool ClassGenerator::initStreams(const QString& baseName, + QTextStream& headerStream, + QTextStream& sourceStream) +@@ -680,7 +931,6 @@ + { + closeIncludeGuard(baseName, headerStream); + writeFileFooter(headerStream); +- + writeFileFooter(sourceStream); + + QIODevice* device = headerStream.device(); +@@ -717,33 +967,36 @@ + QTextStream& headerStream, + QTextStream& sourceStream) + { ++ Class classDataCopy = classData; ++ splitAsyncInterfaceMethods(classDataCopy); ++ + // create header +- writeHeaderIncludes(classData, Class::Interface, headerStream); ++ writeHeaderIncludes(classDataCopy, Class::Interface, headerStream); + +- openNamespaces(classData.namespaces, headerStream); +- openClassDeclaration(classData, Class::Interface, headerStream); ++ openNamespaces(classDataCopy.namespaces, headerStream); ++ openClassDeclaration(classDataCopy, Class::Interface, headerStream); + +- writeSignalDeclarations(classData, Class::Interface, headerStream); +- writeMethodDeclarations(classData, Class::Interface, headerStream); +- writeMethodCallDeclarations(classData, headerStream); ++ writeSignalDeclarations(classDataCopy, Class::Interface, headerStream); ++ writeMethodDeclarations(classDataCopy, Class::Interface, headerStream); ++ writeMethodCallDeclarations(classDataCopy, headerStream); + +- closeClassDeclaration(classData, Class::Interface, headerStream); +- closeNamespaces(classData.namespaces, headerStream); ++ closeClassDeclaration(classDataCopy, Class::Interface, headerStream); ++ closeNamespaces(classDataCopy.namespaces, headerStream); + + // create source +- writeSourceIncludes(classData, Class::Interface, sourceStream); +- +- openNamespaces(classData.namespaces, sourceStream); ++ writeSourceIncludes(classDataCopy, Class::Interface, sourceStream); + +- MethodGenerator::writeIntrospectionDataMethod(classData, sourceStream); ++ openNamespaces(classDataCopy.namespaces, sourceStream); + +- writeSignalEmitters(classData, sourceStream); ++ MethodGenerator::writeIntrospectionDataMethod(classDataCopy, sourceStream); + +- writeMethodCalls(classData, sourceStream); ++ writeSignalEmitters(classDataCopy, sourceStream); ++ writeInterfaceAsyncReplyHandlers(classDataCopy, sourceStream); ++ writeMethodCalls(classDataCopy, sourceStream); + +- MethodGenerator::writeInterfaceMainMethod(classData, sourceStream); ++ MethodGenerator::writeInterfaceMainMethod(classDataCopy, sourceStream); + +- closeNamespaces(classData.namespaces, sourceStream); ++ closeNamespaces(classDataCopy.namespaces, sourceStream); + + return true; + } +@@ -752,33 +1005,39 @@ + QTextStream& headerStream, + QTextStream& sourceStream) + { ++ Class classDataCopy = classData; ++ splitAsyncProxyMethods(classDataCopy); ++ + // create header +- writeHeaderIncludes(classData, Class::Proxy, headerStream); ++ writeHeaderIncludes(classDataCopy, Class::Proxy, headerStream); + +- openNamespaces(classData.namespaces, headerStream); +- openClassDeclaration(classData, Class::Proxy, headerStream); ++ openNamespaces(classDataCopy.namespaces, headerStream); ++ openClassDeclaration(classDataCopy, Class::Proxy, headerStream); + +- writeSignalDeclarations(classData, Class::Proxy, headerStream); +- writeMethodDeclarations(classData, Class::Proxy, headerStream); ++ writeSignalDeclarations(classDataCopy, Class::Proxy, headerStream); ++ writeMethodDeclarations(classDataCopy, Class::Proxy, headerStream); + +- closeClassDeclaration(classData, Class::Proxy, headerStream); +- closeNamespaces(classData.namespaces, headerStream); ++ closeClassDeclaration(classDataCopy, Class::Proxy, headerStream); ++ closeNamespaces(classDataCopy.namespaces, headerStream); + + // create source +- writeSourceIncludes(classData, Class::Proxy, sourceStream); ++ writeSourceIncludes(classDataCopy, Class::Proxy, sourceStream); + +- openNamespaces(classData.namespaces, sourceStream); ++ openNamespaces(classDataCopy.namespaces, sourceStream); + +- MethodGenerator::writeProxyBegin(classData, sourceStream); ++ MethodGenerator::writeProxyBegin(classDataCopy, sourceStream); + +- writeProxyMethods(classData, sourceStream); ++ writeProxyMethods(classDataCopy, sourceStream); + +- writeProxyProperties(classData, sourceStream); ++ writeProxyProperties(classDataCopy, sourceStream); + +- if (!classData.signals.isEmpty()) +- MethodGenerator::writeSignalHandler(classData, sourceStream); ++ if (!classDataCopy.signals.isEmpty()) ++ MethodGenerator::writeSignalHandler(classDataCopy, sourceStream); + +- closeNamespaces(classData.namespaces, sourceStream); ++ if (!classDataCopy.asyncReplySignals.isEmpty()) ++ MethodGenerator::writeProxyAsyncReplyHandler(classDataCopy, sourceStream); ++ ++ closeNamespaces(classDataCopy.namespaces, sourceStream); + + return true; + } +@@ -796,7 +1055,6 @@ + + closeClassDeclaration(classData, Class::Node, headerStream); + closeNamespaces(classData.namespaces, headerStream); +- closeIncludeGuard(classData.name, headerStream); + + // create source + writeSourceIncludes(classData, Class::Node, sourceStream); +diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/main.cpp ../dbus-qt4-qt3backport/tools/dbusxml2qt3/main.cpp +--- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/main.cpp 2007-12-17 12:34:08.000000000 +0100 ++++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/main.cpp 2008-03-13 10:28:54.000000000 +0100 +@@ -153,12 +153,16 @@ + exit(3); + } + +- QStringList nameParts = QStringList::split("::", options["classname"]); ++ // class name for node is handled differently later on ++ if (!generateNode) ++ { ++ QStringList nameParts = QStringList::split("::", options["classname"]); + +- interfaces[0].name = nameParts.back(); ++ interfaces[0].name = nameParts.back(); + +- nameParts.pop_back(); +- interfaces[0].namespaces = nameParts; ++ nameParts.pop_back(); ++ interfaces[0].namespaces = nameParts; ++ } + } + + if (checkForOption(options, "namespace")) +@@ -284,6 +288,7 @@ + Method method; + method.name = "Introspect"; + method.noReply = false; ++ method.async = false; + + Argument argument; + argument.name = "data"; +diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.cpp ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.cpp +--- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.cpp 2007-12-17 12:34:08.000000000 +0100 ++++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.cpp 2008-03-13 10:28:54.000000000 +0100 +@@ -279,6 +279,24 @@ + return annotations; + } + ++static bool hasAnnotation(const QDomElement& element, const QString& annotation, QString* value = 0) ++{ ++ for (QDomNode node = element.firstChild(); !node.isNull(); ++ node = node.nextSibling()) ++ { ++ if (!node.isElement()) continue; ++ ++ QDomElement childElement = node.toElement(); ++ if (childElement.tagName() != "annotation") continue; ++ if (childElement.attribute("name") != annotation) continue; ++ ++ if (value != 0) *value = childElement.attribute("value"); ++ return true; ++ } ++ ++ return false; ++} ++ + static QValueList extractArguments(const QDomElement& methodElement, + Class& classData) + { +@@ -568,9 +586,13 @@ + method.name = element.attribute("name"); + method.arguments = extractArguments(element, classData); + method.noReply = false; ++ method.async = false; + + if (element.tagName() == "method") ++ { ++ method.async = hasAnnotation(element, "org.freedesktop.DBus.GLib.Async"); + classData.methods.append(method); ++ } + else + classData.signals.append(method); + } +@@ -689,36 +711,85 @@ + void MethodGenerator::writeMethodCallDeclaration(const Method& method, + QTextStream& stream) + { +- stream << "QDBusMessage call" << method.name +- << "(const QDBusMessage& mesage);" << endl; ++ if (method.async) ++ stream << "void call" << method.name << "Async"; ++ else ++ stream << "QDBusMessage call" << method.name; ++ ++ stream << "(const QDBusMessage& message);" << endl; + stream << endl; + } + + void MethodGenerator::writeMethodCall(const Class& classData, + const Method& method, QTextStream& stream) + { +- stream << "QDBusMessage " << classData.name << "::call" << method.name +- << "(const QDBusMessage& message)" << endl;; ++ if (method.async) ++ stream << "void " << classData.name << "::call" << method.name << "Async"; ++ else ++ stream << "QDBusMessage " << classData.name << "::call" << method.name; ++ ++ stream << "(const QDBusMessage& message)" << endl; + + stream << "{" << endl; +- stream << " QDBusError error;" << endl; +- stream << " QDBusMessage reply;" << endl; +- stream << endl; + +- writeVariables(" ", method, stream); ++ if (method.async) ++ { ++ // FIXME: using writeVariables by removing asyncCallId argument ++ Method reducedMethod = method; ++ reducedMethod.arguments.pop_front(); ++ ++ writeVariables(" ", reducedMethod, stream); ++ } ++ else ++ { ++ stream << " QDBusError error;" << endl; ++ stream << " QDBusMessage reply;" << endl; ++ stream << endl; ++ ++ writeVariables(" ", method, stream); ++ } + + stream << endl; +- stream << " if (" << method.name << "("; ++ ++ if (method.async) ++ { ++ stream << " int _asyncCallId = 0;" << endl; ++ stream << " while (m_asyncCalls.find(_asyncCallId) != m_asyncCalls.end())" ++ << endl; ++ stream << " {" << endl; ++ stream << " ++_asyncCallId;" << endl; ++ stream << " }" << endl; ++ stream << " m_asyncCalls.insert(_asyncCallId, message);" << endl; ++ stream << endl; ++ ++ stream << " " << method.name << "Async("; ++ } ++ else ++ stream << " if (" << method.name << "("; + + QValueList::const_iterator it = method.arguments.begin(); + QValueList::const_iterator endIt = method.arguments.end(); +- for (; it != endIt; ++it) ++ while (it != endIt) + { +- stream << "_" << (*it).name << ", "; ++ stream << "_" << (*it).name; ++ ++ ++it; ++ if (it != endIt) stream << ", "; + } + +- stream << "error))" << endl; ++ if (method.async) ++ { ++ stream << ");" << endl; ++ stream << endl; ++ ++ stream << " return;" << endl; ++ stream << "}" << endl; ++ stream << endl; ++ return; ++ } + ++ if (method.arguments.count() > 0) stream << ", "; ++ stream << "error))" << endl; + + stream << " {" << endl; + stream << " reply = QDBusMessage::methodReply(message);" << endl; +@@ -878,6 +949,102 @@ + stream << endl; + } + ++ ++void MethodGenerator::writeInterfaceAsyncReplyHandler(const Class& classData, ++ const Method& method, QTextStream& stream) ++{ ++ stream << "void " << classData.name << "::" << method.name ++ << "AsyncReply("; ++ ++ QValueList::const_iterator it = method.arguments.begin(); ++ QValueList::const_iterator endIt = method.arguments.end(); ++ while (it != endIt) ++ { ++ if (!(*it).isPrimitive && (*it).direction == Argument::In) ++ stream << "const "; ++ ++ stream << (*it).signature; ++ ++ if (!(*it).isPrimitive || (*it).direction == Argument::Out) stream << "&"; ++ ++ stream << " " << (*it).name; ++ ++ ++it; ++ if (it != endIt) stream << ", "; ++ } ++ stream << ")" << endl; ++ stream << endl; ++ stream << "{" << endl; ++ ++ stream << " QMap::iterator findIt = m_asyncCalls.find(asyncCallId);" << endl; ++ stream << " if (findIt == m_asyncCalls.end()) return;" << endl; ++ stream << endl; ++ ++ stream << " QDBusMessage call = findIt.data();" << endl; ++ stream << " m_asyncCalls.erase(findIt);" << endl; ++ stream << endl; ++ ++ stream << " QDBusMessage reply = QDBusMessage::methodReply(call);" ++ << endl; ++ ++ it = method.arguments.begin(); ++ for (++it; it != endIt; ++it) // skip asyncCallId at beginning ++ { ++ if (!(*it).annotatedType.isEmpty()) ++ { ++ stream << " QDBusData " << (*it).name << "Data;" << endl; ++ ++ // TODO error handling ++ stream << " if (QDBusDataConverter::convertToQDBusData<" ++ << (*it).annotatedType << ">(" << (*it).name << ", " ++ << (*it).name << "Data" ++ << ") != QDBusDataConverter::Success) return false;" ++ << endl; ++ stream << " reply << " << (*it).name << "Data;" << endl; ++ } ++ else if (!(*it).accessor.isEmpty()) ++ { ++ stream << " reply << QDBusData::from" << (*it).accessor << "("; ++ ++ if ((*it).subAccessor.isEmpty()) ++ stream << (*it).name; ++ else ++ stream << (*it).containerClass << "(" << (*it).name << ")"; ++ ++ stream << ");" << endl; ++ } ++ else ++ stream << " reply << " << (*it).name << ";" << endl; ++ } ++ stream << endl; ++ ++ stream << " handleMethodReply(reply);" << endl; ++ ++ stream << "}" << endl; ++ stream << endl; ++ ++ stream << "void " << classData.name << "::" << method.name ++ << "AsyncError(int asyncCallId, const QDBusError& error)"; ++ stream << endl; ++ ++ stream << "{" << endl; ++ ++ stream << " QMap::iterator findIt = m_asyncCalls.find(asyncCallId);" << endl; ++ stream << " if (findIt == m_asyncCalls.end()) return;" << endl; ++ stream << endl; ++ ++ stream << " QDBusMessage call = findIt.data();" << endl; ++ stream << " m_asyncCalls.erase(findIt);" << endl; ++ stream << endl; ++ ++ stream << " QDBusMessage reply = QDBusMessage::methodError(call, error);" ++ << endl; ++ stream << " handleMethodReply(reply);" << endl; ++ ++ stream << "}" << endl; ++ stream << endl; ++} ++ + void MethodGenerator::writeInterfaceMainMethod(const Class& classData, + QTextStream& stream) + { +@@ -897,10 +1064,19 @@ + { + stream << " if (message.member() == \"" << (*it).name << "\")" << endl; + stream << " {" << endl; +- stream << " QDBusMessage reply = call" << (*it).name << "(message);" +- << endl; +- stream << " handleMethodReply(reply);" << endl; +- stream << endl; ++ ++ if ((*it).async) ++ { ++ stream << " call" << (*it).name << "Async(message);" << endl; ++ stream << endl; ++ } ++ else ++ { ++ stream << " QDBusMessage reply = call" << (*it).name ++ << "(message);" << endl; ++ stream << " handleMethodReply(reply);" << endl; ++ stream << endl; ++ } + stream << " return true;" << endl; + stream << " }" << endl; + stream << endl; +@@ -967,6 +1143,15 @@ + << endl; + } + ++ if (!classData.asyncReplySignals.isEmpty()) ++ { ++ stream << " QObject::connect(m_baseProxy, " ++ << "SIGNAL(asyncReply(int, const QDBusMessage&))," << endl; ++ stream << " this, " ++ << " SLOT(slotHandleAsyncReply(int, const QDBusMessage&)));" ++ << endl; ++ } ++ + stream << "}" << endl; + + stream << endl; +@@ -988,7 +1173,8 @@ + void MethodGenerator::writeProxyMethod(const QString& className, + const Method& method, QTextStream& stream) + { +- stream << "bool " << className << "::" << method.name << "("; ++ stream << "bool " << className << "::" << method.name ++ << (method.async ? "Async(" : "("); + + QValueList::const_iterator it = method.arguments.begin(); + QValueList::const_iterator endIt = method.arguments.end(); +@@ -1064,6 +1250,22 @@ + return; + } + ++ if (method.async) ++ { ++ stream << " asyncCallId = m_baseProxy->sendWithAsyncReply(\""; ++ stream << method.name << "\", parameters);" << endl; ++ stream << endl; ++ ++ stream << " if (asyncCallId != 0) m_asyncCalls[asyncCallId] = \"" ++ << method.name << "\";" << endl; ++ stream << endl; ++ ++ stream << " return (asyncCallId != 0);" << endl; ++ stream << "}" << endl; ++ stream << endl; ++ return; ++ } ++ + stream << " QDBusMessage reply = m_baseProxy->sendWithReply(\""; + stream << method.name << "\", parameters, &error);" << endl; + stream << endl; +@@ -1335,6 +1537,58 @@ + } + } + ++void MethodGenerator::writeProxyAsyncReplyHandler(const Class& classData, ++ QTextStream& stream) ++{ ++ stream << "void " << classData.name ++ << "::slotHandleAsyncReply(int asyncCallId, const QDBusMessage& message)" << endl; ++ stream << "{" << endl; ++ ++ stream << " QMap::iterator findIt = " ++ << "m_asyncCalls.find(asyncCallId);" << endl; ++ stream << " if (findIt == m_asyncCalls.end()) return;" << endl; ++ stream << endl; ++ stream << " const QString signalName = findIt.data();" << endl; ++ stream << " m_asyncCalls.erase(findIt);" << endl; ++ stream << endl; ++ ++ QValueList::const_iterator it = classData.asyncReplySignals.begin(); ++ QValueList::const_iterator endIt = classData.asyncReplySignals.end(); ++ bool first = true; ++ for (; it != endIt; ++it) ++ { ++ stream << " "; ++ ++ if (!first) ++ stream << "else "; ++ else ++ first = false; ++ ++ stream << "if (signalName == \"" << (*it).name << "\")" << endl; ++ stream << " {" << endl; ++ ++ // FIXME tricking writeVariables and writeSignalEmit into writing ++ // the reply emit code by manipulating arguments and name ++ stream << " int _asyncCallId = asyncCallId;" << endl; ++ ++ Method signal = *it; ++ signal.arguments.pop_front(); ++ ++ writeVariables(" ", signal, stream); ++ stream << endl; ++ ++ signal = *it; ++ signal.name += "AsyncReply"; ++ ++ writeSignalEmit(signal, stream); ++ ++ stream << " }" << endl; ++ } ++ ++ stream << "}" << endl; ++ stream << endl; ++} ++ + void MethodGenerator::writeIntrospectionDataMethod(const Class& classData, + QTextStream& stream) + { +diff -ur libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.h ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.h +--- libdbus-1-qt3-0.8.1/tools/dbusxml2qt3/methodgen.h 2007-12-17 12:34:08.000000000 +0100 ++++ ../dbus-qt4-qt3backport/tools/dbusxml2qt3/methodgen.h 2008-03-13 10:28:55.000000000 +0100 +@@ -61,6 +61,7 @@ + QString name; + QValueList arguments; + bool noReply; ++ bool async; + }; + + class Property : public Argument +@@ -86,6 +87,10 @@ + QValueList methods; + QValueList signals; + QValueList properties; ++ ++ QValueList asyncMethods; ++ QValueList asyncReplySignals; ++ QValueList asyncReplyMethods; + }; + + class MethodGenerator +@@ -109,6 +114,10 @@ + static void writeSignalEmitter(const Class& classData, const Method& method, + QTextStream& stream); + ++ static void writeInterfaceAsyncReplyHandler(const Class& classData, ++ const Method& method, ++ QTextStream& stream); ++ + static void writeInterfaceMainMethod(const Class& classData, + QTextStream& stream); + +@@ -125,6 +134,9 @@ + static void writeProxyProperty(const Class& classData, const Property& property, + QTextStream& stream); + ++ static void writeProxyAsyncReplyHandler(const Class& classData, ++ QTextStream& stream); ++ + static void writeIntrospectionDataMethod(const Class& classData, + QTextStream& stream); + diff --git a/opensuse/core/libdbus-1-tqt0/r795238.patch b/opensuse/core/libdbus-1-tqt0/r795238.patch new file mode 100644 index 000000000..3213c823d --- /dev/null +++ b/opensuse/core/libdbus-1-tqt0/r795238.patch @@ -0,0 +1,60 @@ +Index: dbus/qdbusdatamap.h +=================================================================== +--- dbus/qdbusdatamap.h (Revision 785103) ++++ dbus/qdbusdatamap.h (Revision 795238) +@@ -173,7 +173,7 @@ + } + else if (hasContainerValueType()) + { +- if (it.data()->buildSignature() != containerSignature) ++ if (it.data().buildDBusSignature() != containerSignature) + { + m_valueType = QDBusData::Invalid; + m_containerValueType = QDBusData(); +Index: dbus/qdbuserror.h +=================================================================== +--- dbus/qdbuserror.h (Revision 785103) ++++ dbus/qdbuserror.h (Revision 795238) +@@ -119,7 +119,7 @@ + * Returned by QDBusConnection's addConnection if the specified address + * isn't a valid D-Bus bus address. + * +- * @see QDBusConnection:::addConnection(const QString&,const QString&); ++ * @see QDBusConnection::addConnection(const QString&,const QString&); + */ + BadAddress, + +Index: tools/dbusxml2qt3/classgen.cpp +=================================================================== +--- tools/dbusxml2qt3/classgen.cpp (Revision 785103) ++++ tools/dbusxml2qt3/classgen.cpp (Revision 795238) +@@ -168,6 +168,17 @@ + extractForwardDeclarations(*it, forwards); + } + ++ it = classData.signals.begin(); ++ endIt = classData.signals.end(); ++ for (; it != endIt; ++it) ++ { ++ if ((*it).arguments.isEmpty()) continue; ++ ++ extractHeaderIncludes(*it, includes); ++ extractForwardDeclarations(*it, forwards); ++ } ++ ++ + QValueList::const_iterator propertyIt = classData.properties.begin(); + QValueList::const_iterator propertyEndIt = classData.properties.end(); + for (; propertyIt != propertyEndIt; ++propertyIt) +Index: dbus-1-qt3.pc.in +=================================================================== +--- dbus-1-qt3.pc.in (Revision 785103) ++++ dbus-1-qt3.pc.in (Revision 795238) +@@ -1,6 +1,6 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ +-libdir=${prefix}/lib ++libdir=@libdir@ + includedir=${prefix}/include/dbus-1.0/qt3 + + Name: dbus-1-qt3 diff --git a/opensuse/core/libdbus-tqt-1-0/.project b/opensuse/core/libdbus-tqt-1-0/.project deleted file mode 100644 index f94f9c9ac..000000000 --- a/opensuse/core/libdbus-tqt-1-0/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - libdbus-tqt-1-0 - - - - - - - org.eclipse.linuxtools.rpm.core.rpmnature - - diff --git a/opensuse/core/libdbus-tqt-1-0/libdbus-tqt-1-0.spec b/opensuse/core/libdbus-tqt-1-0/libdbus-tqt-1-0.spec index 85cfb9d28..cc4460ff4 100644 --- a/opensuse/core/libdbus-tqt-1-0/libdbus-tqt-1-0.spec +++ b/opensuse/core/libdbus-tqt-1-0/libdbus-tqt-1-0.spec @@ -1,5 +1,5 @@ # -# spec file for package dbus-1-tqt +# spec file for package libdbus-tqt-1-0 # # Copyright (c) 2011 the Trinity Project (opensuse). # @@ -23,7 +23,7 @@ BuildRequires: dbus-1 dbus-1-devel libtqt4-devel cmake URL: http://dbus.freedesktop.org/ License: GPLv2+ Group: Development/Libraries/TDE -Version: 0.62 +Version: R13.99 Release: 1 AutoReqProv: on Summary: TQt/KDE bindings for D-Bus @@ -33,7 +33,7 @@ Patch0: dbus-qt3-compile-fix-thoenig-01.patch Patch1: dbus-qt3-do-not-close-shared-connection-thoenig-01.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: dbus-1 >= %( echo `rpm -q --queryformat '%{VERSION}-%{RELEASE}' dbus-1`) -Provides: dbus-1-tqt +Provides: dbus-tqt %package devel License: Other uncritical OpenSource License @@ -41,7 +41,7 @@ Summary: Developer package for TQt/KDE bindings for D-Bus Requires: dbus-1 >= %( echo `rpm -q --queryformat '%{VERSION}-%{RELEASE}' dbus-1`) Requires: dbus-1-devel >= %( echo `rpm -q --queryformat '%{VERSION}-%{RELEASE}' dbus-1-devel`) Requires: %{name} = %{version} -Provides: dbus-1-tqt-devel +Provides: dbus-tqt-devel AutoReqProv: on Group: Development/Libraries/TDE @@ -100,17 +100,17 @@ export CFLAGS="${RPM_OPT_FLAGS}" export CXXFLAGS="${RPM_OPT_FLAGS}" mkdir build cd build - cmake -DCMAKE_SKIP_RPATH=ON \\\ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \\\ - -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \\\ -      -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\ - -DLIB_INSTALL_DIR:PATH=%{_libdir} \\\ - -DLIBEXEC_INSTALL_DIR:PATH=%{_libexecdir} \\\ - -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\ - -DCMAKE_VERBOSE_MAKEFILE=ON \\\ -      -DQT_LIBRARY_DIRS=/usr/lib/qt3/%{_lib} \\\ -      -DQT_INCLUDE_DIRS=/usr/lib/qt3/include \\\ - -DPKGCONFIG_INSTALL_DIR=%{_libdir}/pkgconfig \\\ + cmake -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ +      -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \ + -DLIB_INSTALL_DIR:PATH=%{_libdir} \ + -DLIBEXEC_INSTALL_DIR:PATH=%{_libexecdir} \ + -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ +      -DQT_LIBRARY_DIRS=/usr/lib/qt3/%{_lib} \ +      -DQT_INCLUDE_DIRS=/usr/lib/qt3/include \ + -DPKGCONFIG_INSTALL_DIR=%{_libdir}/pkgconfig \ -DMAN_INSTALL_DIR=%{_mandir} \ ../ make diff --git a/opensuse/core/libtqt4/.project b/opensuse/core/libtqt4/.project deleted file mode 100644 index fcebb9b05..000000000 --- a/opensuse/core/libtqt4/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - libtqt4 - - - - - - - org.eclipse.linuxtools.rpm.core.rpmnature - - diff --git a/opensuse/core/libtqt4/libtqt4.changes b/opensuse/core/libtqt4/libtqt4.changes index f27210b31..e8752682e 100644 --- a/opensuse/core/libtqt4/libtqt4.changes +++ b/opensuse/core/libtqt4/libtqt4.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Feb 2 03:06:14 UTC 2012 - robxu9@gmail.com + +- Update to version R13.99 with Qt3 3.4.0 compat +- Fix group of libtqt4-devel + ------------------------------------------------------------------- Sat Aug 20 22:47:41 UTC 2011 - rxu@lincomlinux.org diff --git a/opensuse/core/libtqt4/libtqt4.spec b/opensuse/core/libtqt4/libtqt4.spec index 9108235bc..c3972cbae 100644 --- a/opensuse/core/libtqt4/libtqt4.spec +++ b/opensuse/core/libtqt4/libtqt4.spec @@ -21,7 +21,7 @@ Name: libtqt4 License: GPLv2+ Group: Graphical Desktop/TDE Summary: Interface and abstraction library for Qt and Trinity -Version: 3.5.12.99 +Version: R13.99 Release: 1 Source0: tqtinterface-%{version}.tar.bz2 URL: http://www.trinitydesktop.org/ @@ -32,13 +32,13 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build %define with_qt4 0 %if %{with_qt3} -BuildRequires: qt3-devel >= 3.3.8c -Requires: qt3 >= 3.3.8c +BuildRequires: qt3-devel >= 3.4.0 +Requires: qt3 >= 3.4.0 %endif %if %{with_qt4} -BuildRequires: libqt4-devel >= 4.7.0 -Requires: libqt4-x11 >= 4.7.0 +BuildRequires: libqt4-devel >= 4.8.0 +Requires: libqt4-x11 >= 4.8.0 %endif BuildRequires: cmake @@ -66,13 +66,13 @@ Authors: %package devel Summary: TQtinterface header files -Group: Graphical Desktop/TDE +Group: Development/Libraries/TDE Requires: libtqt4 = %{version} %if %{with_qt3} -Requires: qt3-devel >= 3.3.8c +Requires: qt3-devel >= 3.4.0 %endif %if %{with_qt4} -Requires: libqt4-devel >= 4.7.0 +Requires: libqt4-devel >= 4.8.0 %endif %description devel This package contains Trinity specific window options and commands. diff --git a/opensuse/core/qt3/.project b/opensuse/core/qt3/.project deleted file mode 100644 index c1be4d5ba..000000000 --- a/opensuse/core/qt3/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - qt3 - - - - - - - org.eclipse.linuxtools.rpm.core.rpmnature - - diff --git a/opensuse/core/qt3/_service b/opensuse/core/qt3/_service deleted file mode 100644 index 538a11b38..000000000 --- a/opensuse/core/qt3/_service +++ /dev/null @@ -1,3 +0,0 @@ - - yes - \ No newline at end of file diff --git a/opensuse/core/qt3/add_qexport_visibility.patch b/opensuse/core/qt3/add_qexport_visibility.patch deleted file mode 100644 index 26399a498..000000000 --- a/opensuse/core/qt3/add_qexport_visibility.patch +++ /dev/null @@ -1,63 +0,0 @@ -Index: src/kernel/qgplugin.h -================================================================================ ---- src/kernel/qgplugin.h -+++ src/kernel/qgplugin.h -@@ -93,35 +93,19 @@ - return i->iface(); \ - } - --# ifdef Q_WS_WIN --# ifdef Q_CC_BOR --# define Q_EXPORT_PLUGIN(PLUGIN) \ -- Q_PLUGIN_VERIFICATION_DATA \ -- Q_EXTERN_C __declspec(dllexport) \ -- const char * __stdcall qt_ucm_query_verification_data() \ -- { return qt_ucm_verification_data; } \ -- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* \ -- __stdcall ucm_instantiate() \ -- Q_PLUGIN_INSTANTIATE( PLUGIN ) --# else --# define Q_EXPORT_PLUGIN(PLUGIN) \ -- Q_PLUGIN_VERIFICATION_DATA \ -- Q_EXTERN_C __declspec(dllexport) \ -- const char *qt_ucm_query_verification_data() \ -- { return qt_ucm_verification_data; } \ -- Q_EXTERN_C __declspec(dllexport) QUnknownInterface* ucm_instantiate() \ -- Q_PLUGIN_INSTANTIATE( PLUGIN ) --# endif --# else --# define Q_EXPORT_PLUGIN(PLUGIN) \ -+#if defined(Q_WS_WIN) && defined(Q_CC_BOR) -+# define Q_STDCALL __stdcall -+#else -+# define Q_STDCALL -+#endif -+ -+#define Q_EXPORT_PLUGIN(PLUGIN) \ - Q_PLUGIN_VERIFICATION_DATA \ -- Q_EXTERN_C \ -- const char *qt_ucm_query_verification_data() \ -+ Q_EXTERN_C Q_EXPORT \ -+ const char * Q_STDCALL qt_ucm_query_verification_data() \ - { return qt_ucm_verification_data; } \ -- Q_EXTERN_C QUnknownInterface* ucm_instantiate() \ -+ Q_EXTERN_C Q_EXPORT QUnknownInterface* Q_STDCALL ucm_instantiate() \ - Q_PLUGIN_INSTANTIATE( PLUGIN ) --# endif -- - #endif - - struct QUnknownInterface; ---- src/tools/qglobal.h -+++ src/tools/qglobal.h -@@ -885,6 +885,10 @@ - # define Q_TEMPLATE_EXTERN - # undef Q_DISABLE_COPY /* avoid unresolved externals */ - # endif -+#elif defined(Q_CC_GNU) && __GNUC__ - 0 >= 4 -+# define Q_EXPORT __attribute__((visibility("default"))) -+# undef QT_MAKEDLL /* ignore these for other platforms */ -+# undef QT_DLL - #else - # undef QT_MAKEDLL /* ignore these for other platforms */ - # undef QT_DLL diff --git a/opensuse/core/qt3/enable-designer-plugins.diff b/opensuse/core/qt3/enable-designer-plugins.diff deleted file mode 100644 index 41147984d..000000000 --- a/opensuse/core/qt3/enable-designer-plugins.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- tools/designer/plugins/plugins.pro -+++ tools/designer/plugins/plugins.pro -@@ -4,6 +4,7 @@ - dlg \ - glade \ - rc \ -- kdevdlg -+ kdevdlg \ -+ glade - shared:SUBDIRS *= $$PLUGIN_DIRS - dll:SUBDIRS *= $$PLUGIN_DIRS diff --git a/opensuse/core/qt3/popen-leak-fix.diff b/opensuse/core/qt3/popen-leak-fix.diff deleted file mode 100644 index a00ab02a5..000000000 --- a/opensuse/core/qt3/popen-leak-fix.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- tools/linguist/shared/proparser.cpp -+++ tools/linguist/shared/proparser.cpp -@@ -207,6 +207,7 @@ QMap proFileTagMap( const QString& text ) - buff[read_in] = '\0'; - after += buff; - } -+ pclose( proc ); - (*it).replace( i, callToSystem.matchedLength(), after ); - i += after.length(); - } diff --git a/opensuse/core/qt3/pre_checkin.sh b/opensuse/core/qt3/pre_checkin.sh old mode 100644 new mode 100755 diff --git a/opensuse/core/qt3/qcstring-format-warnings.diff b/opensuse/core/qt3/qcstring-format-warnings.diff deleted file mode 100644 index cac735dbb..000000000 --- a/opensuse/core/qt3/qcstring-format-warnings.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- src/tools/qcstring.h (revision 658213) -+++ src/tools/qcstring.h (working copy) -@@ -164,7 +164,11 @@ public: - - QCString copy() const; - -- QCString &sprintf( const char *format, ... ); -+ QCString &sprintf( const char *format, ... ) -+#if defined(Q_CC_GNU) && !defined(__INSURE__) -+ __attribute__ ((format (printf, 2, 3))) -+#endif -+ ; - - int find( char c, int index=0, bool cs=TRUE ) const; - int find( const char *str, int index=0, bool cs=TRUE ) const; diff --git a/opensuse/core/qt3/qt-transparency.patch b/opensuse/core/qt3/qt-transparency.patch index b7bfa7b8a..10d6ed7fc 100644 --- a/opensuse/core/qt3/qt-transparency.patch +++ b/opensuse/core/qt3/qt-transparency.patch @@ -1,6 +1,8 @@ ---- src/kernel/qapplication.cpp +Index: src/kernel/qapplication.cpp +=================================================================== +--- src/kernel/qapplication.cpp.orig +++ src/kernel/qapplication.cpp -@@ -320,6 +320,7 @@ +@@ -320,6 +320,7 @@ void qt_init( int *, char **, QApplicati void qt_cleanup(); #if defined(Q_WS_X11) void qt_init( Display* dpy, Qt::HANDLE, Qt::HANDLE ); @@ -8,7 +10,7 @@ #endif Q_EXPORT bool qt_tryModalHelper( QWidget *widget, QWidget **rettop ); -@@ -908,7 +909,7 @@ +@@ -908,7 +909,7 @@ QApplication::QApplication(Display *dpy, qt_init( &argc, argv, GuiClient ); } else { @@ -17,9 +19,11 @@ } process_cmdline( &argc, argv ); ---- src/kernel/qapplication_x11.cpp +Index: src/kernel/qapplication_x11.cpp +=================================================================== +--- src/kernel/qapplication_x11.cpp.orig +++ src/kernel/qapplication_x11.cpp -@@ -201,6 +201,7 @@ +@@ -201,6 +201,7 @@ static bool mwIconic = FALSE; // main wi static Display *appDpy = 0; // X11 application display static char *appDpyName = 0; // X11 display name static bool appForeignDpy = FALSE; // we didn't create display @@ -27,16 +31,16 @@ static bool appSync = FALSE; // X11 synchronization #if defined(QT_DEBUG) static bool appNoGrab = FALSE; // X11 grabbing enabled -@@ -1632,7 +1633,7 @@ - setlocale( LC_ALL, "" ); // use correct char set mapping - setlocale( LC_NUMERIC, "C" ); // make sprintf()/scanf() work +@@ -1651,7 +1652,7 @@ void qt_init_internal( int *argcptr, cha + } + #endif - if ( display ) { + if ( display && ! qt_no_foreign_hack ) { // Qt part of other application appForeignDpy = TRUE; -@@ -2432,6 +2433,10 @@ +@@ -2464,6 +2465,10 @@ void qt_init( Display *display, Qt::HAND qt_init_internal( 0, 0, display, visual, colormap ); } diff --git a/opensuse/core/qt3/qt3-devel-doc.changes b/opensuse/core/qt3/qt3-devel-doc.changes index bffb1fdc2..ff9ca26ed 100644 --- a/opensuse/core/qt3/qt3-devel-doc.changes +++ b/opensuse/core/qt3/qt3-devel-doc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Feb 2 01:16:04 UTC 2012 - robxu9@gmail.com + +- Remove obsolete patches, update .in files, feel accomplished + +------------------------------------------------------------------- +Wed Feb 1 23:15:48 UTC 2012 - robxu9@gmail.com + +- Update to 3.4.0, which includes a breaking ABI change + ------------------------------------------------------------------- Sat Nov 19 23:23:57 UTC 2011 - andrea@nucleus.it diff --git a/opensuse/core/qt3/qt3-devel-doc.spec b/opensuse/core/qt3/qt3-devel-doc.spec index aa2dbcfa9..c43f17414 100644 --- a/opensuse/core/qt3/qt3-devel-doc.spec +++ b/opensuse/core/qt3/qt3-devel-doc.spec @@ -1,7 +1,7 @@ # # spec file for package qt3-devel-doc # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -30,7 +30,7 @@ License: GPL, QPL AutoReqProv: on Summary: Documentation for the Qt 3 Development Kit Group: Documentation/HTML -Version: 3.3.8d +Version: 3.4.0 Release: 1 PreReq: /bin/grep BuildArch: noarch @@ -39,7 +39,7 @@ Obsoletes: qt3-devel-tutorial Requires: qt3-devel # COMMON-BEGIN # COMMON-BEGIN -Source0: http://mirror.its.uidaho.edu/pub/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz +Source0: qt3-%{version}.tar.bz2 Source1: build_script.sh Source2: qtconfig3.desktop Source3: qtrc @@ -51,7 +51,7 @@ Source9: linguist.desktop Source5: linguist.png Source10: qt3.sh Source11: qt3.csh -# Translations did not change at 3.3.8d +# Translations did not change Source12: qt3-3.3.8b-translations.tar.bz2 Source102: baselibs.conf Source200: attributes @@ -70,17 +70,13 @@ Patch31: limit-image-size.diff Patch35: qt-transparency.patch Patch37: 0055-qtextedit_zoom.patch Patch39: fix-qtranslator-crash.diff -Patch42: add_qexport_visibility.patch Patch54: kmenu-search-fix.diff Patch113: fix-assistant-path.patch Patch117: qtimer-debug.diff -Patch121: qt3-warnings.diff -Patch125: qcstring-format-warnings.diff Patch127: mng-reading-fix.patch Patch134: fix-xinput-clash.diff Patch135: parseFontName.diff Patch136: qt3-no-date.diff -Patch137: popen-leak-fix.diff Patch139: gcc46.diff Patch140: revert-iodbc-to-uodbc.diff @@ -100,7 +96,7 @@ getting started with Qt in /usr/lib/qt3/doc. %define build_sub_dirs src plugins/src tools/designer/uilib/ tools/designer/uic tools/qtconfig tools/assistant/lib tools/assistant tutorial %prep -%setup -q -n qt3 +%setup -q %patch1 %patch2 %patch4 @@ -117,22 +113,18 @@ fi %patch35 %patch37 %patch39 -%patch42 %patch54 %patch113 %patch117 -%patch121 ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/ ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/ ln -sf $PWD/src/kernel/qinputcontext.h include/ ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/ ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/ -%patch125 %patch127 %patch134 %patch135 %patch136 -%patch137 %patch139 %patch140 cd translations diff --git a/opensuse/core/qt3/qt3-devel-doc.spec.in b/opensuse/core/qt3/qt3-devel-doc.spec.in index 090675643..91a409995 100644 --- a/opensuse/core/qt3/qt3-devel-doc.spec.in +++ b/opensuse/core/qt3/qt3-devel-doc.spec.in @@ -1,15 +1,23 @@ # -# spec file for package qt3 (Version 3.3.8d) +# spec file for package qt3-devel-doc # -# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild + Name: qt3-devel-doc BuildRequires: cups-devel freeglut-devel freetype2-devel gcc-c++ pkgconfig update-desktop-files qt3-devel %if %suse_version < 1130 @@ -20,9 +28,9 @@ BuildRequires: libpng14-devel URL: http://www.trolltech.com/ License: GPL, QPL Autoreqprov: on -Summary: Qt 3 Development Kit +Summary: Documentation for the Qt 3 Development Kit Group: Documentation/HTML -Version: 3.3.8d +Version: 3.4.0 Release: 1 PreReq: /bin/grep BuildArch: noarch @@ -33,10 +41,15 @@ Requires: qt3-devel # COMMON-END %description -You need this package if you want to compile programs with Qt 3. It -contains the "Qt Crossplatform Development Kit 2". You will find -include files, documentation, precompiled examples, and a tutorial for -getting started with Qt in /usr/lib/qt3. +This package contains the documentation for the Qt 3 Development Kit. + +You will find documentation, precompiled examples, and a tutorial for +getting started with Qt in /usr/lib/qt3/doc. + +This package contains the documentation for the Qt 3 Development Kit. + +You will find documentation, precompiled examples, and a tutorial for +getting started with Qt in /usr/lib/qt3/doc. %build export VERSION=%suse_version @@ -88,4 +101,4 @@ rm -rf ${RPM_BUILD_ROOT} /usr/share/applications/assistant3.desktop /usr/share/pixmaps/assistant3.png -%changelog -n qt3 +%changelog diff --git a/opensuse/core/qt3/qt3-extensions.changes b/opensuse/core/qt3/qt3-extensions.changes index bffb1fdc2..ff9ca26ed 100644 --- a/opensuse/core/qt3/qt3-extensions.changes +++ b/opensuse/core/qt3/qt3-extensions.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Feb 2 01:16:04 UTC 2012 - robxu9@gmail.com + +- Remove obsolete patches, update .in files, feel accomplished + +------------------------------------------------------------------- +Wed Feb 1 23:15:48 UTC 2012 - robxu9@gmail.com + +- Update to 3.4.0, which includes a breaking ABI change + ------------------------------------------------------------------- Sat Nov 19 23:23:57 UTC 2011 - andrea@nucleus.it diff --git a/opensuse/core/qt3/qt3-extensions.spec b/opensuse/core/qt3/qt3-extensions.spec index d44f8c188..15366559e 100644 --- a/opensuse/core/qt3/qt3-extensions.spec +++ b/opensuse/core/qt3/qt3-extensions.spec @@ -1,7 +1,7 @@ # # spec file for package qt3-extensions # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ BuildRequires: cups-devel krb5-devel mysql-devel postgresql-devel qt3-devel sql BuildRequires: fdupes %endif License: GPL, QPL -Version: 3.3.8d +Version: 3.4.0 Release: 1 AutoReqProv: on Requires: qt3 = %version @@ -32,7 +32,7 @@ Group: Development/Tools/Other Summary: Qt3 Extensions # COMMON-BEGIN # COMMON-BEGIN -Source0: http://mirror.its.uidaho.edu/pub/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz +Source0: qt3-%{version}.tar.bz2 Source1: build_script.sh Source2: qtconfig3.desktop Source3: qtrc @@ -44,7 +44,7 @@ Source9: linguist.desktop Source5: linguist.png Source10: qt3.sh Source11: qt3.csh -# Translations did not change at 3.3.8d +# Translations did not change Source12: qt3-3.3.8b-translations.tar.bz2 Source102: baselibs.conf Source200: attributes @@ -63,17 +63,13 @@ Patch31: limit-image-size.diff Patch35: qt-transparency.patch Patch37: 0055-qtextedit_zoom.patch Patch39: fix-qtranslator-crash.diff -Patch42: add_qexport_visibility.patch Patch54: kmenu-search-fix.diff Patch113: fix-assistant-path.patch Patch117: qtimer-debug.diff -Patch121: qt3-warnings.diff -Patch125: qcstring-format-warnings.diff Patch127: mng-reading-fix.patch Patch134: fix-xinput-clash.diff Patch135: parseFontName.diff Patch136: qt3-no-date.diff -Patch137: popen-leak-fix.diff Patch139: gcc46.diff Patch140: revert-iodbc-to-uodbc.diff @@ -89,7 +85,7 @@ Netscape plug-in modules. %define build_sub_dirs src plugins/src tools/designer/uilib/ tools/designer/uic tools/qtconfig tools/assistant/lib tools/assistant tutorial %prep -%setup -q -n qt3 +%setup -q %patch1 %patch2 %patch4 @@ -106,22 +102,18 @@ fi %patch35 %patch37 %patch39 -%patch42 %patch54 %patch113 %patch117 -%patch121 ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/ ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/ ln -sf $PWD/src/kernel/qinputcontext.h include/ ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/ ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/ -%patch125 %patch127 %patch134 %patch135 %patch136 -%patch137 %patch139 %patch140 cd translations diff --git a/opensuse/core/qt3/qt3-extensions.spec.in b/opensuse/core/qt3/qt3-extensions.spec.in index 736f1ae2b..ef53bf234 100644 --- a/opensuse/core/qt3/qt3-extensions.spec.in +++ b/opensuse/core/qt3/qt3-extensions.spec.in @@ -1,22 +1,30 @@ # -# spec file for package qt3-extensions (Version 3.3.8d) +# spec file for package qt3-extensions # -# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # -# Please submit bugfixes or comments via http://bugs.opensuse.org +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild + Name: qt3-extensions BuildRequires: cups-devel krb5-devel mysql-devel postgresql-devel qt3-devel sqlite2-devel unixODBC-devel update-desktop-files %if %suse_version > 1020 BuildRequires: fdupes %endif License: GPL, QPL -Version: 3.3.8d +Version: 3.4.0 Release: 1 Autoreqprov: on Requires: qt3 = %version @@ -26,17 +34,8 @@ Summary: Qt3 Extensions # COMMON-END %description -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +This package contains extension libraries for Qt 3, such as the +Netscape plug-in modules. %package -n qt3-devel-examples Summary: Programming Examples for Qt 3 @@ -46,17 +45,10 @@ Provides: qt3-examples Obsoletes: qt3-examples %description -n qt3-devel-examples -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. +This package contains small executables with code to demonstrate Qt +programming. -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +Have a look in /usr/share/doc/packages/qt3/examples/. %package -n qt3-mysql Summary: MySQL Plug-In for Qt @@ -64,17 +56,8 @@ Provides: qt3_database_plugin Group: Productivity/Databases/Clients %description -n qt3-mysql -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +Plug-in for using the MySQL database with the generic Qt database +interface. %package -n qt3-unixODBC Summary: A UnixODBC Plug-In for Qt @@ -82,17 +65,8 @@ Provides: qt3_database_plugin Group: Productivity/Databases/Clients %description -n qt3-unixODBC -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +A plug-in for using UnixODBC supported databases with the generic Qt +database interface. %package -n qt3-postgresql Summary: A PostgreSQL Plug-In for Qt @@ -100,17 +74,8 @@ Provides: qt3_database_plugin Group: Productivity/Databases/Clients %description -n qt3-postgresql -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +A Plug-in for using the PostgreSQL database with the generic Qt +database interface. %package -n qt3-sqlite Summary: SQLite Database Plug-In for Qt @@ -118,17 +83,8 @@ Provides: qt3_database_plugin Group: Development/Tools/Other %description -n qt3-sqlite -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +The Qt database supports SQLite with this plug-in. (No configured and +running daemon is required.) %package -n qt3-devel-tools Summary: User Interface Builder and other tools (designer, assistant, linguist) @@ -139,17 +95,9 @@ Obsoletes: qt3-designer Group: Development/Tools/GUI Builders %description -n qt3-devel-tools -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! +The designer creates .ui files. The uic generates C++ code from these +files. The package also contains the Qt Assistant (Qt documentation +browser) and the Qt Linguist (for translations). %package -n qt3-man Summary: Qt 3 Man Pages @@ -159,18 +107,7 @@ Conflicts: qtman qt-man Group: Documentation/Man %description -n qt3-man -Qt is a program library for developing applications with graphical user -interfaces. It allows you to rapidly develop professional programs. The -Qt library is available not only for Linux but for a great number of -Unices and even for Windows. Thus it is possible to write programs that -may be easily ported to those platforms. - -You need a license for using Qt with a non-GPL application, which can -be acquired from sales@trolltech.com. - -See /usr/share/doc/packages/qt3 for details about the new features of -the current Qt library! - +This package contains all the man pages for all the Qt 3 classes. %build export QTDIR=/usr/lib/qt3/ export WLIB=%_lib @@ -357,4 +294,4 @@ rm -rf ${RPM_BUILD_ROOT} %defattr(-,root,root) %{_mandir}/man*/* -%changelog -n qt3-extensions +%changelog diff --git a/opensuse/core/qt3/qt3-warnings.diff b/opensuse/core/qt3/qt3-warnings.diff deleted file mode 100644 index a67293de3..000000000 --- a/opensuse/core/qt3/qt3-warnings.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: src/kernel/qimage.h -=================================================================== ---- src/kernel/qimage.h (revision 594273) -+++ src/kernel/qimage.h (working copy) -@@ -58,7 +58,7 @@ public: - QCString lang; - - bool operator< (const QImageTextKeyLang& other) const -- { return key < other.key || key==other.key && lang < other.lang; } -+ { return key < other.key || (key==other.key && lang < other.lang); } - bool operator== (const QImageTextKeyLang& other) const - { return key==other.key && lang==other.lang; } - }; diff --git a/opensuse/core/qt3/qt3.changes b/opensuse/core/qt3/qt3.changes index bffb1fdc2..ff9ca26ed 100644 --- a/opensuse/core/qt3/qt3.changes +++ b/opensuse/core/qt3/qt3.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Feb 2 01:16:04 UTC 2012 - robxu9@gmail.com + +- Remove obsolete patches, update .in files, feel accomplished + +------------------------------------------------------------------- +Wed Feb 1 23:15:48 UTC 2012 - robxu9@gmail.com + +- Update to 3.4.0, which includes a breaking ABI change + ------------------------------------------------------------------- Sat Nov 19 23:23:57 UTC 2011 - andrea@nucleus.it diff --git a/opensuse/core/qt3/qt3.spec b/opensuse/core/qt3/qt3.spec index ffc2a9e61..0424f372c 100644 --- a/opensuse/core/qt3/qt3.spec +++ b/opensuse/core/qt3/qt3.spec @@ -1,7 +1,7 @@ # # spec file for package qt3 # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -34,13 +34,13 @@ Obsoletes: qt3-64bit %endif # Summary: A library for developing applications with graphical user interfaces -Version: 3.3.8d -Release: 110 +Version: 3.4.0 +Release: 1 Provides: qt_library_%version Recommends: kdelibs3-default-style PreReq: /bin/grep # COMMON-BEGIN -Source0: http://mirror.its.uidaho.edu/pub/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz +Source0: qt3-%{version}.tar.bz2 Source1: build_script.sh Source2: qtconfig3.desktop Source3: qtrc @@ -52,7 +52,7 @@ Source9: linguist.desktop Source5: linguist.png Source10: qt3.sh Source11: qt3.csh -# Translations did not change at 3.3.8d +# Translations did not change Source12: qt3-3.3.8b-translations.tar.bz2 Source102: baselibs.conf Source200: attributes @@ -71,17 +71,13 @@ Patch31: limit-image-size.diff Patch35: qt-transparency.patch Patch37: 0055-qtextedit_zoom.patch Patch39: fix-qtranslator-crash.diff -Patch42: add_qexport_visibility.patch Patch54: kmenu-search-fix.diff Patch113: fix-assistant-path.patch Patch117: qtimer-debug.diff -Patch121: qt3-warnings.diff -Patch125: qcstring-format-warnings.diff Patch127: mng-reading-fix.patch Patch134: fix-xinput-clash.diff Patch135: parseFontName.diff Patch136: qt3-no-date.diff -Patch137: popen-leak-fix.diff Patch139: gcc46.diff Patch140: revert-iodbc-to-uodbc.diff @@ -103,7 +99,7 @@ the current Qt library! %define build_sub_dirs src plugins/src tools/designer/uilib/ tools/designer/uic tools/qtconfig tools/assistant/lib tools/assistant tutorial %prep -%setup -q -n qt3 +%setup -q %patch1 %patch2 %patch4 @@ -120,22 +116,18 @@ fi %patch35 %patch37 %patch39 -%patch42 %patch54 %patch113 %patch117 -%patch121 ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/ ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/ ln -sf $PWD/src/kernel/qinputcontext.h include/ ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/ ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/ -%patch125 %patch127 %patch134 %patch135 %patch136 -%patch137 %patch139 %patch140 cd translations diff --git a/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff b/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff deleted file mode 100644 index 385e6111a..000000000 --- a/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff +++ /dev/null @@ -1,36 +0,0 @@ - -according to bug 345459, this fix for stacking letters from 3.3.8 -made it only a lot worse. revert. - - ---- src/kernel/qfontengine_x11.cpp -+++ src/kernel/qfontengine_x11.cpp -@@ -2672,23 +2655,16 @@ bool QOpenType::positionAndAdd(QShaperIt - // ###### fix the case where we have y advances. How do we handle this in Uniscribe????? - if (positions[i].new_advance) { - item->advances[i] = item->flags & QTextEngine::RightToLeft -- ? -qRound((positions[i].x_advance >> 6)*scale) -+ ? -qRound((positions[i].x_advance >> 6)*scale) - : qRound((positions[i].x_advance >> 6)*scale); - } else { - item->advances[i] += item->flags & QTextEngine::RightToLeft -- ? -qRound((positions[i].x_advance >> 6)*scale) -+ ? -qRound((positions[i].x_advance >> 6)*scale) - : qRound((positions[i].x_advance >> 6)*scale); - } -- int back = 0; -- item->offsets[i].x = qRound((positions[i].x_pos >> 6)*scale); -- item->offsets[i].y = qRound((positions[i].y_pos >> 6)*scale); -- while (positions[i-back].back) { -- back += positions[i - back].back; -- item->offsets[i].x += qRound((positions[i - back].x_pos >> 6)*scale); -- item->offsets[i].y += qRound((positions[i - back].y_pos >> 6)*scale); -- } -- item->offsets[i].y = -item->offsets[i].y; -- back = positions[i].back; -+ item->offsets[i].x = qRound((positions[i].x_pos >> 6)*scale); -+ item->offsets[i].y = -qRound((positions[i].y_pos >> 6)*scale); -+ int back = positions[i].back; - if (item->flags & QTextEngine::RightToLeft) { - while (back--) { - item->offsets[i].x -= item->advances[i-back]; diff --git a/opensuse/core/tde-filesystem/.project b/opensuse/core/tde-filesystem/.project deleted file mode 100644 index f5ebb3417..000000000 --- a/opensuse/core/tde-filesystem/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - tde-filesystem - - - - - - - org.eclipse.linuxtools.rpm.core.rpmnature - - diff --git a/opensuse/core/tde-filesystem/macros.tde b/opensuse/core/tde-filesystem/macros.tde index 20998b9b9..cfb1219d2 100644 --- a/opensuse/core/tde-filesystem/macros.tde +++ b/opensuse/core/tde-filesystem/macros.tde @@ -40,11 +40,42 @@ %_tde_modules %{_tde_modulesdir} %_tde_servicetypes %{_tde_servicetypesdir} -%_tde_platform_version 3.5.13 +%_tde_platform_version R13.99 -%tde_runtime_requires Requires: tdebase3-runtime >= %_tde_platform_version qt3 >= 3.3.8d +%tde_runtime_requires Requires: tdebase3-runtime >= %_tde_platform_version qt3 >= 3.4.0 %_tde_build_type release + +%cmake_tdeusr(d:) \ + export CFLAGS=$RPM_OPT_FLAGS \ + export CXXFLAGS=$RPM_OPT_FLAGS \ + export LDFLAGS="-Wl,-Bsymbolic-functions $LDFLAGS" \ + _tde_libsuffix=$(echo %_lib | cut -b4-) \ + bdir=. \ + %{-d:dir=%{-d*} \ + mkdir $dir \ + cd $dir \ + bdir=.. } \ + cmake -DCMAKE_SKIP_RPATH=ON \\\ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \\\ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \\\ + -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\ + -DLIB_INSTALL_DIR:PATH=%{_libdir} \\\ + -DLIBEXEC_INSTALL_DIR:PATH=%{_libexecdir} \\\ + -DLIB_SUFFIX="$_tde_libsuffix" \\\ + -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\ + -DCMAKE_BUILD_TYPE=%{_tde_build_type} \\\ + -DCMAKE_VERBOSE_MAKEFILE=ON \\\ + -DQT_LIBRARY_DIRS=/usr/lib/qt3/%{_lib} \\\ + -DQT_INCLUDE_DIRS=/usr/lib/qt3/include \\\ + -DPKGCONFIG_INSTALL_DIR=%{_libdir}/pkgconfig \\\ + -DMAN_INSTALL_DIR=%{_mandir} \\\ + -DINFO_INSTALL_DIR=%{_infodir} \\\ + $bdir %* \ + if [ "$bdir" == ".." ]; then \ + cd .. \ + fi \ +%{nil} %cmake_tde(d:) \ export CFLAGS=$RPM_OPT_FLAGS \ @@ -128,7 +159,7 @@ if test -f $HOME/.rpmmacros && test -d /usr/src/packages/SRPMS; then \ distribution=`grep ^%distribution $HOME/.rpmmacros | cut '-d ' -f2` \ fi \ - find $RPM_BUILD_ROOT/opt/kde3/share \\\ + find $RPM_BUILD_ROOT/%{_tde_sharedir} \\\ -name '*.desktop' 2> /dev/null | while read file; do \ test -r "$file" || continue \ grep -q "^X-SuSE-translate=" "$file" && continue \ diff --git a/opensuse/core/tde-filesystem/tde-filesystem.spec b/opensuse/core/tde-filesystem/tde-filesystem.spec index 06fa6b5fe..32b61b75e 100644 --- a/opensuse/core/tde-filesystem/tde-filesystem.spec +++ b/opensuse/core/tde-filesystem/tde-filesystem.spec @@ -20,7 +20,7 @@ Name: tde-filesystem Url: http://www.trinitydesktop.org/ -Version: 3.5.13 +Version: R13.99 Release: 1 License: LGPLv2.1+ Group: System/Fhs @@ -47,7 +47,7 @@ Authors: %install install -D -m644 %{SOURCE0} $RPM_BUILD_ROOT/etc/rpm/macros.tde - install -D -m644 %{SOURCE1} $RPM_BUILD_ROOT//usr/share/doc/packages/tde-filesystem/COPYING + install -D -m644 %{SOURCE1} $RPM_BUILD_ROOT/usr/share/doc/packages/tde-filesystem/COPYING %clean rm -rf "$RPM_BUILD_ROOT" diff --git a/opensuse/core/tdelibs/kdelibs-3.5.10.tar.bz2 b/opensuse/core/tdelibs/kdelibs-3.5.10.tar.bz2 deleted file mode 100644 index 914cfc6a4..000000000 Binary files a/opensuse/core/tdelibs/kdelibs-3.5.10.tar.bz2 and /dev/null differ diff --git a/opensuse/core/tdelibs/kdelibs-3.5.12.99.tar.bz2 b/opensuse/core/tdelibs/kdelibs-3.5.12.99.tar.bz2 deleted file mode 100644 index 9d4c96c44..000000000 Binary files a/opensuse/core/tdelibs/kdelibs-3.5.12.99.tar.bz2 and /dev/null differ diff --git a/opensuse/core/tdelibs/tdelibs-devel-doc.spec b/opensuse/core/tdelibs/tdelibs-devel-doc.spec index cef0e454a..f92476488 100644 --- a/opensuse/core/tdelibs/tdelibs-devel-doc.spec +++ b/opensuse/core/tdelibs/tdelibs-devel-doc.spec @@ -26,12 +26,12 @@ License: GPLv2+ Group: Documentation/HTML BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: Additional Package Documentation -Version: 3.5.12.99 +Version: R13.99 Release: 1 %define tdelibs_patch_level b BuildArch: noarch Requires: tdelibs qt3-devel-doc -Source0: kdelibs-%{version}.tar.bz2 +Source0: tdelibs-%{version}.tar.bz2 Source1: create-kdeapi Source4: api_docu_description @@ -50,7 +50,7 @@ Authors: %prep echo %suse_version -%setup -q -n kdelibs-%{version} +%setup -q -n tdelibs-%{version} %build %if %is_plus diff --git a/opensuse/core/tdelibs/tdelibs.spec b/opensuse/core/tdelibs/tdelibs.spec index 2576ad4d8..314ae8d5d 100644 --- a/opensuse/core/tdelibs/tdelibs.spec +++ b/opensuse/core/tdelibs/tdelibs.spec @@ -19,7 +19,7 @@ Name: tdelibs -BuildRequires: OpenEXR-devel arts-devel aspell-devel cups-devel fam-devel flac-devel krb5-devel +BuildRequires: OpenEXR-devel arts arts-devel aspell-devel cups-devel fam-devel flac-devel krb5-devel BuildRequires: libart_lgpl-devel libidn-devel libsndfile libtiff-devel BuildRequires: libxslt-devel openldap2-devel pcre-devel libtqt4-devel sgml-skel BuildRequires: db-devel libacl-devel libattr-devel unsermake update-desktop-files utempter @@ -31,7 +31,7 @@ License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Group: System/GUI/TDE BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: Trinity Base Libraries -Version: 3.5.12.99 +Version: R13.99 Release: 1 Provides: kups keramik tdelibs-cups tdelibs-33addons tdepim-networkstatus Provides: kdelibs3_base = 3.3 @@ -40,8 +40,7 @@ Requires: openssl tdelibs-default-style Requires: hicolor-icon-theme Recommends: ispell enscript Requires: sudo -Requires: libtqt4 -Source0: kdelibs-%{version}.tar.bz2 +Source0: %{name}-%{version}.tar.bz2 Source3: baselibs.conf Source4: api_docu_description Source6: tderc @@ -54,99 +53,6 @@ Source12: mimetype-icons.tar.bz2 Source14: vnd.openxmlformats-officedocument.wordprocessingml.document.desktop Source15: vnd.openxmlformats-officedocument.presentationml.presentation.desktop Source16: vnd.openxmlformats-officedocument.spreadsheetml.sheet.desktop -Patch0: 3_5_BRANCH.diff -Patch1: kdeversion.diff -Patch2: admin.diff -Patch3: show-distribution.diff -Patch5: applications.menu-fallback.diff -Patch7: stat-on-media.diff -Patch8: kmimelist.diff -Patch9: x-kde-InitialPreference.diff -Patch10: disable-idn-support.diff -Patch11: silence.diff -Patch12: smooth-scrolling.diff -Patch13: rubberband-selection.diff -Patch15: add-suse-translations.diff -Patch16: kde3rc.dif -Patch17: artwork.diff -Patch26: mimetype-changes.diff -Patch27: noauto-package.diff -Patch29: prefer_distribution_settings.dif -Patch34: allow-man-setgid.diff -Patch40: clever-menu.diff -Patch43: fileshare.diff -Patch44: fontconfig-reverse-lookup.diff -Patch45: limit-max-image-size.diff -Patch50: fix-gnome-help-support.diff -Patch950: fix-gnome-help-support_legacy.diff -Patch52: kdeprint-restart-cupsd.diff -Patch54: kdemm.diff -Patch55: fix-kdemm-build.diff -Patch56: fix-dcopidlng-within-kdelibs-build.diff -Patch57: kdemm-filepreview.diff -Patch60: fix-qxembed.diff -Patch65: integrate-global-pixmaps-new.diff -Patch66: integrate-global-pixmaps-10.1.diff -Patch70: ktip-icon-hack.diff -Patch80: CATALOG.kdelibs3.diff -Patch81: xml-catalog.diff -Patch83: kdelibs3-gcc-4.1-miscompile.diff -Patch85: desktop-translations.diff -Patch86: use-xauthlocalhostname.diff -Patch88: mozilla-sliders.patch -Patch89: kdeprint-utf8.diff -Patch90: kimproxy-warning.diff -Patch95: kdelibs_networkstatus_branch2.diff -Patch97: autostart-spec.diff -Patch105: kdelibs3-hicolor-scalable-sizes.patch -Patch106: use-mediamanager.diff -Patch108: patch-mimetype-iconnames.diff -Patch109: fix-kerberos-printing.diff -Patch110: printpreview.patch -Patch111: kfile-beagle.diff -Patch112: xinerama.patch -Patch113: kremoteencoding-utf8.diff -Patch114: no-progress-for-beagle-status-query.diff -Patch117: kickoff-drop-shadow.diff -Patch122: disable-samba-dialog-without-smb.diff -Patch123: lpoptions-cups-1.2.diff -Patch124: spellcheck-default-utf8.diff -Patch125: kde4-applications.diff -Patch126: avahi-pidfile.diff -Patch127: x-jar-desktop.diff -Patch128: google-mail.diff -Patch129: default-useragent.diff -Patch130: kwalletd-try-open.diff -Patch131: textcompletion-editor.diff -Patch132: no-debug-by-default.diff -Patch133: flash-player-non-oss.diff -Patch134: bundle-locale-help.diff -Patch149: networkstatus.diff -Patch150: kdesu-settings.diff -Patch152: bug-399296_ftphandling-fix.diff -Patch153: bug-382959_kabc_fix_vcardparser.patch -Patch154: r874968-ebay-crash.diff -Patch155: gcc44.diff -Patch156: fix-macmenu.patch -Patch157: ignore-inline-menu.diff -Patch158: bnc557126.diff -Patch159: xmlhttprequest_3.x.diff -Patch160: kdecode_fakes_include.diff -Patch161: gcc45.diff -Patch162: arts-acinclude.patch -Patch163: kdelibs-3.5.10-ossl-1.x.patch -Patch164: light_v_2_scrollbar_patch.patch - -Patch201: kdelibs-3.5.4-CVE-2009-1690.patch -Patch203: kdelibs-3.5.10-latex-syntax-kile-2.0.3.patch -Patch204: kdelibs-3.5.10-CVE-2009-2702.patch -Patch205: kdelibs-3.5.10-cve-2009-2537-select-length.patch -Patch206: kdelibs-3.5.10-cve-2009-1725.patch -Patch207: kdelibs-3.5.10-cve-2009-1698.patch - -Patch210: kdelibs-3.5.10-kio.patch -Patch211: oom_score_adj.patch -Patch212: kcontrol_crash_patch.diff %description This package contains tdelibs, one of the basic packages of the Trinity @@ -171,7 +77,7 @@ daemon. License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ Summary: The default TDE style Group: System/GUI/TDE -Provides: tdelibs:/opt/tde/%_lib/libkdefx.so.4 +Provides: tdelibs:%{_tde_libdir}/libtdefx.so.4 %description default-style This package contains the Plastik widget style and libkdefx. It only @@ -211,125 +117,10 @@ to develop applications that require these. %prep echo %suse_version -%setup -q -n kdelibs-%{version} -%patch0 -%patch1 -%patch3 -%patch5 -%patch7 -%patch10 -%patch11 -%patch12 -%patch13 -%patch15 -%patch16 -%patch17 -%patch26 -%patch27 -%patch29 -#%patch43 -#disable it because of BIC -#%patch45 -%if %suse_version > 1020 -%patch50 -%else -%patch950 -%endif -%patch52 -%patch34 -%patch44 -%patch40 -%patch8 -%patch9 +%setup -q tar xfvj %SOURCE10 -# TODO! -%patch54 -%patch55 -%patch56 -%patch57 -%patch60 -# 10.2 goes back to the version without suseadds -%if %suse_version > 1010 -%patch65 -%else -%if %suse_version > 1000 -%patch66 -%else -%patch65 -%endif -%endif -%patch70 rm -rf admin bunzip2 -cd %{SOURCE8} | tar xfv - --exclude=.cvsignore --exclude=CVS -install -m 755 %{SOURCE2} admin -%patch2 -%patch80 -p 1 -%patch81 -%if %suse_version > 1000 -%patch83 -%endif -%patch85 -%patch86 -%patch88 -%patch89 -%patch90 -%patch95 -%patch97 -%if %suse_version < 1030 -%patch105 -p 1 -%endif -%patch106 -%patch108 -%patch109 -%patch110 -%patch111 -%patch112 -%patch113 -%patch114 -%patch117 -%patch122 -%if %suse_version > 1010 -%patch123 -%endif -%patch124 -%patch125 -%patch126 -%patch127 -%patch128 -%patch129 -%patch130 -%patch131 -%patch132 -%if %suse_version > 1020 -%patch133 -%patch134 -%endif -%patch149 -%patch150 -%patch152 -%patch153 -%patch154 -%patch155 -%patch156 -%if %suse_version > 1110 -%patch157 -%endif -%patch158 -%patch159 -%patch160 -%patch161 -%patch162 -p1 -%patch163 -p1 -%patch164 -p1 -%patch201 -p1 -%patch203 -p1 -%patch204 -p1 -%patch205 -p1 -%patch206 -%patch207 -p1 -%patch210 -p1 -%patch211 -p1 -%patch212 tar xfvj %SOURCE12 # @@ -367,16 +158,15 @@ CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" export PATH=/usr/lib/mit/bin:$PATH # fast-malloc is not needed anymore -%cmake_tde -d build -- \ - -DCMAKE_SKIP_RPATH=OFF \ - -DKDE_MALLOC_FULL=OFF \ - -DKDE_MALLOC=OFF \ - -DKDE_DISTRIBUTION="$DISTRI" \ - -DSSL_INSTALL_DIR=/usr/ssl \ - -DPCSC_INSTALL_DIR=/usr \ - %if %is_plus - -DENABLE_DNOFIFY=ON \ - %endif +EXTRA_FLAGS="-DCMAKE_SKIP_RPATH=OFF -DKDE_MALLOC_FULL=OFF -DKDE_MALLOC=OFF -DSSL_INSTALL_DIR=/usr/ssl -DPCSC_INSTALL_DIR=/usr -DENABLE_DNOFIFY=ON" + +# -DKDE_DISTRIBUTION=\"$DISTRI\" + +# %if %is_plus +# -DENABLE_DNOFIFY=ON \ +# %endif + +%cmake_tde -d build -- $EXTRA_FLAGS %make_tde -d build @@ -482,7 +272,8 @@ sed '/ $RPM_BUILD_ROOT/etc/ld.so.conf.d/tdelibs.conf <= %( echo `rpm -q --queryformat '%{VERSION}' libtqt4`) +Requires: openssl tdelibs-default-style +Requires: hicolor-icon-theme +Recommends: ispell enscript +Requires: sudo +Source0: %{name}-%{version}.tar.bz2 +Source3: baselibs.conf +Source4: api_docu_description +Source6: tderc +# svn export svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin +Source8: admin.tar.bz2 +Source9: cr16-filesys-file_broken.png +Source10: kdemm-20050330.tar.bz2 +Source11: 10888-bt.tar.gz +Source12: mimetype-icons.tar.bz2 +Source14: vnd.openxmlformats-officedocument.wordprocessingml.document.desktop +Source15: vnd.openxmlformats-officedocument.presentationml.presentation.desktop +Source16: vnd.openxmlformats-officedocument.spreadsheetml.sheet.desktop +Patch0: 3_5_BRANCH.diff +Patch1: kdeversion.diff +Patch2: admin.diff +Patch3: show-distribution.diff +Patch5: applications.menu-fallback.diff +Patch7: stat-on-media.diff +Patch8: kmimelist.diff +Patch9: x-kde-InitialPreference.diff +Patch10: disable-idn-support.diff +Patch11: silence.diff +Patch12: smooth-scrolling.diff +Patch13: rubberband-selection.diff +Patch15: add-suse-translations.diff +Patch16: kde3rc.dif +Patch17: artwork.diff +Patch26: mimetype-changes.diff +Patch27: noauto-package.diff +Patch29: prefer_distribution_settings.dif +Patch34: allow-man-setgid.diff +Patch40: clever-menu.diff +Patch43: fileshare.diff +Patch44: fontconfig-reverse-lookup.diff +Patch45: limit-max-image-size.diff +Patch50: fix-gnome-help-support.diff +Patch950: fix-gnome-help-support_legacy.diff +Patch52: kdeprint-restart-cupsd.diff +Patch54: kdemm.diff +Patch55: fix-kdemm-build.diff +Patch56: fix-dcopidlng-within-kdelibs-build.diff +Patch57: kdemm-filepreview.diff +Patch60: fix-qxembed.diff +Patch65: integrate-global-pixmaps-new.diff +Patch66: integrate-global-pixmaps-10.1.diff +Patch70: ktip-icon-hack.diff +Patch80: CATALOG.kdelibs3.diff +Patch81: xml-catalog.diff +Patch83: kdelibs3-gcc-4.1-miscompile.diff +Patch85: desktop-translations.diff +Patch86: use-xauthlocalhostname.diff +Patch88: mozilla-sliders.patch +Patch89: kdeprint-utf8.diff +Patch90: kimproxy-warning.diff +Patch95: kdelibs_networkstatus_branch2.diff +Patch97: autostart-spec.diff +Patch105: kdelibs3-hicolor-scalable-sizes.patch +Patch106: use-mediamanager.diff +Patch108: patch-mimetype-iconnames.diff +Patch109: fix-kerberos-printing.diff +Patch110: printpreview.patch +Patch111: kfile-beagle.diff +Patch112: xinerama.patch +Patch113: kremoteencoding-utf8.diff +Patch114: no-progress-for-beagle-status-query.diff +Patch117: kickoff-drop-shadow.diff +Patch122: disable-samba-dialog-without-smb.diff +Patch123: lpoptions-cups-1.2.diff +Patch124: spellcheck-default-utf8.diff +Patch125: kde4-applications.diff +Patch126: avahi-pidfile.diff +Patch127: x-jar-desktop.diff +Patch128: google-mail.diff +Patch129: default-useragent.diff +Patch130: kwalletd-try-open.diff +Patch131: textcompletion-editor.diff +Patch132: no-debug-by-default.diff +Patch133: flash-player-non-oss.diff +Patch134: bundle-locale-help.diff +Patch149: networkstatus.diff +Patch150: kdesu-settings.diff +Patch152: bug-399296_ftphandling-fix.diff +Patch153: bug-382959_kabc_fix_vcardparser.patch +Patch154: r874968-ebay-crash.diff +Patch155: gcc44.diff +Patch156: fix-macmenu.patch +Patch157: ignore-inline-menu.diff +Patch158: bnc557126.diff +Patch159: xmlhttprequest_3.x.diff +Patch160: kdecode_fakes_include.diff +Patch161: gcc45.diff +Patch162: arts-acinclude.patch +Patch163: kdelibs-3.5.10-ossl-1.x.patch +Patch164: light_v_2_scrollbar_patch.patch + +Patch201: kdelibs-3.5.4-CVE-2009-1690.patch +Patch203: kdelibs-3.5.10-latex-syntax-kile-2.0.3.patch +Patch204: kdelibs-3.5.10-CVE-2009-2702.patch +Patch205: kdelibs-3.5.10-cve-2009-2537-select-length.patch +Patch206: kdelibs-3.5.10-cve-2009-1725.patch +Patch207: kdelibs-3.5.10-cve-2009-1698.patch + +Patch210: kdelibs-3.5.10-kio.patch +Patch211: oom_score_adj.patch +Patch212: kcontrol_crash_patch.diff + +%description +This package contains tdelibs, one of the basic packages of the Trinity +Desktop Environment. It contains the necessary libraries for the Trinity +desktop. + +This package is absolutely necessary for using TDE. + +%package arts +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +Summary: TDE aRts support +Group: System/GUI/TDE +Provides: tdelibs:/opt/tde/bin/artsmessage +Requires: arts >= %( echo `rpm -q --queryformat '%{VERSION}' arts`) +Recommends: tdemultimedia-arts + +%description arts +This package contains bindings and gui elements for using aRts sound +daemon. + +%package default-style +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +Summary: The default TDE style +Group: System/GUI/TDE +Provides: tdelibs:/opt/tde/%_lib/libkdefx.so.4 + +%description default-style +This package contains the Plastik widget style and libkdefx. It only +depends on TQt, not the KDE libraries. + +%package doc +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +Summary: Documentation for TDE Base Libraries +Group: System/GUI/TDE +Provides: tdelibs:/opt/tde/share/apps/ksgmltools2 +Provides: tdelibs_doc +Requires: sgml-skel libxml2 +%define regcat /usr/bin/sgml-register-catalog +PreReq: %{regcat} /usr/bin/xmlcatalog /usr/bin/edit-xml-catalog +PreReq: sed grep awk + +%description doc +This package contains the core environment and templates for the Trinity +help system. + +%package devel +License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ +# usefiles /opt/tde/bin/dcopidl /opt/tde/bin/dcopidl2cpp /opt/tde/bin/kdb2html /opt/tde/bin/preparetips +Requires: libtqt4-devel libvorbis-devel tdelibs = %version autoconf automake libxslt-devel libxml2-devel libart_lgpl-devel libjpeg-devel tde-filesystem +# next line from tde-devel-packages macro +Requires: tdelibs-doc libtiff-devel openssl-devel update-desktop-files +Requires: libdrm-devel dbus-1-tqt-devel +Requires: libattr-devel libacl-devel +Requires: tdelibs-arts +Summary: Trinity Base Package: Build Environment +Group: System/GUI/TDE +Requires: fam-devel pcre-devel libidn-devel arts-devel + +%description devel +This package contains all necessary include files and libraries needed +to develop applications that require these. + +%prep + echo %suse_version +%setup -q +%patch0 +%patch1 +%patch3 +%patch5 +%patch7 +%patch10 +%patch11 +%patch12 +%patch13 +%patch15 +%patch16 +%patch17 +%patch26 +%patch27 +%patch29 +#%patch43 +#disable it because of BIC +#%patch45 +%if %suse_version > 1020 +%patch50 +%else +%patch950 +%endif +%patch52 +%patch34 +%patch44 +%patch40 +%patch8 +%patch9 +tar xfvj %SOURCE10 +# TODO! +%patch54 +%patch55 +%patch56 +%patch57 +%patch60 +# 10.2 goes back to the version without suseadds +%if %suse_version > 1010 +%patch65 +%else +%if %suse_version > 1000 +%patch66 +%else +%patch65 +%endif +%endif +%patch70 +rm -rf admin +bunzip2 -cd %{SOURCE8} | tar xfv - --exclude=.cvsignore --exclude=CVS +install -m 755 %{SOURCE2} admin +%patch2 +%patch80 -p 1 +%patch81 +%if %suse_version > 1000 +%patch83 +%endif +%patch85 +%patch86 +%patch88 +%patch89 +%patch90 +%patch95 +%patch97 +%if %suse_version < 1030 +%patch105 -p 1 +%endif +%patch106 +%patch108 +%patch109 +%patch110 +%patch111 +%patch112 +%patch113 +%patch114 +%patch117 +%patch122 +%if %suse_version > 1010 +%patch123 +%endif +%patch124 +%patch125 +%patch126 +%patch127 +%patch128 +%patch129 +%patch130 +%patch131 +%patch132 +%if %suse_version > 1020 +%patch133 +%patch134 +%endif +%patch149 +%patch150 +%patch152 +%patch153 +%patch154 +%patch155 +%patch156 +%if %suse_version > 1110 +%patch157 +%endif +%patch158 +%patch159 +%patch160 +%patch161 +%patch162 -p1 +%patch163 -p1 +%patch164 -p1 +%patch201 -p1 +%patch203 -p1 +%patch204 -p1 +%patch205 -p1 +%patch206 +%patch207 -p1 +%patch210 -p1 +%patch211 -p1 +%patch212 + +tar xfvj %SOURCE12 +# +# define KDE version exactly +# +myrelease=$(echo %release | cut -d. -f-1) +sed 's,#define KDE_VERSION_STRING "\(.*\)",#define KDE_VERSION_STRING "\1 \\"release '$myrelease'\\"",' kdecore/kdeversion.h > kdecore/kdeversion.h_ && mv kdecore/kdeversion.h_ kdecore/kdeversion.h +# +# create build enviroment +# +#UNSERMAKE=yes make -f admin/Makefile.common cvs + +%build +export PATH=$PWD/admin/:$PATH +FINAL="--enable-final" +CFLAGS="$CFLAGS -fno-strict-aliasing" +CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" + +# common_options and do_make have been obsoleted by tde-filesystem + + export path_sudo=/usr/bin/sudo + # + # define the distribution exactly + # + test -e /.buildenv && . /.buildenv +%if %is_plus + # supplementary package + DISTRI="openSUSE $BUILD_DISTRIBUTION_VERSION UNSUPPORTED" +%else + # official build on released and maintained products + DISTRI="openSUSE $BUILD_DISTRIBUTION_VERSION" +%endif + sed 's,#define KDE_VERSION_STRING "\(.*\)",#define KDE_VERSION_STRING "\1 '"$ADD_VERSION"'",' kdecore/kdeversion.h > kdecore/kdeversion.h_ && mv kdecore/kdeversion.h_ kdecore/kdeversion.h + # find MIT kerberos + export PATH=/usr/lib/mit/bin:$PATH + # fast-malloc is not needed anymore + +%cmake_tde -d build -- \ + -DCMAKE_SKIP_RPATH=OFF \ + -DKDE_MALLOC_FULL=OFF \ + -DKDE_MALLOC=OFF \ + -DKDE_DISTRIBUTION="$DISTRI" \ + -DSSL_INSTALL_DIR=/usr/ssl \ + -DPCSC_INSTALL_DIR=/usr \ + %if %is_plus + -DENABLE_DNOFIFY=ON \ + %endif + +%make_tde -d build + +# +xmlcatbin=/usr/bin/xmlcatalog +# CATALOG=docbook-simple.xml +# $xmlcatbin --noout --create $CATALOG +# $xmlcatbin --noout --add "public" \ +# "-//OASIS//DTD Simplified DocBook XML V1.0//EN" \ +# "file://%{xml_mod_dtd_dir}/sdocbook.dtd" $CATALOG +# $xmlcatbin --noout --add "system" \ +# "http://www.oasis-open.org/docbook/xml/simple/1.0/sdocbook.dtd" \ +# "file://%{xml_mod_dtd_dir}/sdocbook.dtd" $CATALOG +%define FOR_ROOT_CAT for-catalog-%{name}-%{version}.xml +CATALOG=%{_tde_prefix}/share/apps/ksgmltools2/customization/catalog.xml +rm -f %{FOR_ROOT_CAT}.tmp +$xmlcatbin --noout --create %{FOR_ROOT_CAT}.tmp +# $xmlcatbin --noout --add "delegateSystem" \ +# "http://www.oasis-open.org/docbook/xml/simple/" \ +# "file:///$CATALOG" %{FOR_ROOT_CAT}.tmp +$xmlcatbin --noout --add "delegatePublic" \ + "-//KDE//DTD DocBook XML V4.2" \ + "file://$CATALOG" %{FOR_ROOT_CAT}.tmp +$xmlcatbin --noout --add "delegatePublic" \ + "-//KDE//ELEMENTS" \ + "file://$CATALOG" %{FOR_ROOT_CAT}.tmp +$xmlcatbin --noout --add "delegatePublic" \ + "-//KDE//ENTITIES" \ + "file://$CATALOG" %{FOR_ROOT_CAT}.tmp +# Create tag +sed '/ +/<\/catalog/i\ + ' \ + %{FOR_ROOT_CAT}.tmp > %{FOR_ROOT_CAT} + +%install + %makeinstall_tde -d build + mkdir -p $RPM_BUILD_ROOT/%{_tde_configkcfgdir} + install -D %SOURCE9 $RPM_BUILD_ROOT/%{_tde_icondir}/crystalsvg/16x16/filesystems/file_broken.png + mv $RPM_BUILD_ROOT/etc/xdg/menus/applications.menu \ + $RPM_BUILD_ROOT/etc/xdg/menus/applications.menu.kde + # + # lib64 compatibility symlink + # +%ifarch x86_64 ppc64 s390x mips64 sparc64 + mkdir -p $RPM_BUILD_ROOT/%{_tde_prefix}/lib/kde3/ + ln -sf ../../lib64/kde3/plugins \ + $RPM_BUILD_ROOT/%{_tde_prefix}/lib/kde3/plugins-lib64 +%endif + # + # add missing directories + # + for i in Applications Development Editors Edutainment Games Graphics Internet Multimedia Office Settings System Toys Utilities WordProcessing; do + install -d -m 0755 $RPM_BUILD_ROOT/%{_tde_appsdir}/$i + done + rm -f locale.list + for i in $(find /usr/share/locale -mindepth 1 -maxdepth 1 -type d | sed 's:/usr/share/locale/::'); do + install -d -m 755 $RPM_BUILD_ROOT/%{_tde_locale}/$i + install -d -m 755 $RPM_BUILD_ROOT/%{_tde_locale}/$i/LC_MESSAGES + install -d -m 755 $RPM_BUILD_ROOT/%{_tde_htmldir}/$i + echo "%lang($i) %doc %{_tde_locale}/$i" >> locale.list + done + %suse_update_desktop_file kresources X-KDE-settings-desktop + # unlike with other modules, tde_post_install shouldn't + # be put at the end of %install + %tde_post_install + # now create a filesystem layer + for theme in hicolor locolor; do + for j in actions apps filesystems mimetypes; do + for i in 16 22 32 48 64 128; do + install -d -m 0755 $RPM_BUILD_ROOT/%{_tde_icondir}/${theme}/${i}x${i}/${j} + done + install -d -m 0755 $RPM_BUILD_ROOT/%{_tde_icondir}/${theme}/scalable/${j} + done + done + install -d -m 0755 $RPM_BUILD_ROOT/etc/%{_tde_libdir} + install -d -m 0755 $RPM_BUILD_ROOT/etc/%{_tde_configdir} + install -d -m 0755 $RPM_BUILD_ROOT/%{_tde_datadir}/kdelibs/ + install -m 0644 %SOURCE6 $RPM_BUILD_ROOT/etc/ + rm -f $RPM_BUILD_ROOT/%{_tde_libdir}/libkdeinit_*.la + # + # add additional icon path (not needed anymore? we use cmake) + # + #mkdir -p ${RPM_BUILD_ROOT}/%{_tde_datadir}/kdelibs + #rm -f admin/*.orig + #cp -a admin ${RPM_BUILD_ROOT}/%{_tde_datadir}/kdelibs/ + # This is not needed on SUSE Linux! - Marcus Meissner + rm $RPM_BUILD_ROOT/%{_tde_bindir}/kgrantpty + # + # our version is in kdebase3 + # + rm -f $RPM_BUILD_ROOT/%{_tde_bindir}/fileshare* + # + # no sources for man pages + # + rm -f $RPM_BUILD_ROOT/%{_tde_htmldir}/en/kdelibs/man-* + # + # install BitTorrent icons + # + tar xfvz %SOURCE11 + for i in 16x16 22x22 32x32 48x48 64x64 128x128 ; do + install -m 0644 bt/$i/mimetypes/bt.png \ + $RPM_BUILD_ROOT/%{_tde_icondir}/crystalsvg/$i/mimetypes/torrent.png + done + cp CATALOG.%{name} catalog.xml ${RPM_BUILD_ROOT}/%{_tde_datadir}/ksgmltools2/customization/ + mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/xml + cp %{FOR_ROOT_CAT} ${RPM_BUILD_ROOT}%{_sysconfdir}/xml +# rm -f $RPM_BUILD_ROOT/%{_tde_libdir}/libkdefakes.la +# rm -f $RPM_BUILD_ROOT/%{_tde_libdir}/libkjava.la +rm -f $RPM_BUILD_ROOT/%{_tde_icondir}/hicolor/index.theme + # .desktop files in kdeaccessibility3 require the kttsd icon + for i in {16x16,22x22,32x32,48x48,64x64,128x128,scalable}; do mv $RPM_BUILD_ROOT/%{_tde_icondir}/crystalsvg/$i/apps/kttsd.* $RPM_BUILD_ROOT/%{_tde_icondir}/hicolor/$i/apps/;done + install -m 0644 %SOURCE14 $RPM_BUILD_ROOT/%{_tde_mimedir}/application/ + install -m 0644 %SOURCE15 $RPM_BUILD_ROOT/%{_tde_mimedir}/application/ + install -m 0644 %SOURCE16 $RPM_BUILD_ROOT/%{_tde_mimedir}/application/ + # fix bnc#396153 + for i in 16x16 22x22 32x32 48x48 64x64 128x128; do + ln -s %{_tde_icondir}/crystalsvg/$i/filesystems/network.png $RPM_BUILD_ROOT/%{_tde_icondir}/crystalsvg/$i/filesystems/preferences-system-network.png + ln -s %{_tde_icondir}/crystalsvg/$i/filesystems/desktop.png $RPM_BUILD_ROOT/%{_tde_icondir}/crystalsvg/$i/filesystems/preferences-desktop.png + done + chmod a-x $RPM_BUILD_ROOT/%{_tde_icondir}/crystalsvg/16x16/filesystems/file_broken.png + %fdupes -s $RPM_BUILD_ROOT + mkdir -p $RPM_BUILD_ROOT/etc/%{_tde_applicationsdir} + touch $RPM_BUILD_ROOT/etc/%{_tde_applicationsdir}/mimeinfo.cache + mkdir -p $RPM_BUILD_ROOT/%{_tde_applicationsdir} + touch $RPM_BUILD_ROOT/%{_tde_applicationsdir}/mimeinfo.cache +# Create /etc/ld.so.conf.d/kdelibs3.conf +mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d +cat > $RPM_BUILD_ROOT/etc/ld.so.conf.d/tdelibs.conf </dev/null 2>&1 + fi + if [ -x /usr/bin/edit-xml-catalog ]; then + edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \ + --add /etc/xml/%{FOR_ROOT_CAT} + fi + +%postun doc + if [ "$1" = "0" -a -x %{regcat} ]; then + %{regcat} -r %{_tde_datadir}/ksgmltools2/customization/CATALOG.%{name} >/dev/null 2>&1 + fi + # remove entries only on removal of file + if [ ! -f %{xml_sysconf_dir}/%{FOR_ROOT_CAT} -a -x /usr/bin/edit-xml-catalog ] ; then + edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \ + --del %{name}-%{version} + fi + exit 0 + +%clean + rm -rf ${RPM_BUILD_ROOT} + +%files default-style +%defattr(-,root,root) +%doc AUTHORS COPYING COPYING.BSD COPYING.LIB NAMING README +%{_tde_libdir}/libkdefx.so.* +%{_tde_libdir}/kde3/plugins/styles/plastik.* + +%files +%defattr(-,root,root) +%doc AUTHORS COPYING COPYING.BSD COPYING.LIB NAMING README +/etc/ld.so.conf.d/tdelibs.conf +%dir /etc/%{_tde_prefix} +%dir %{_tde_prefix} +%dir %{_tde_bindir} +%dir %{_tde_includedir} +%dir %{_tde_sharedir} +%dir %{_tde_configkcfgdir} +%_mandir/man*/* +%{_tde_bindir}/checkXML +%{_tde_bindir}/dcop +%{_tde_bindir}/dcopclient +%{_tde_bindir}/dcopfind +%{_tde_bindir}/dcopobject +%{_tde_bindir}/dcopref +%{_tde_bindir}/dcops* +%{_tde_bindir}/dcopquit +%{_tde_bindir}/imagetops +%{_tde_bindir}/ka* +%{_tde_bindir}/kbuildsycoca +%{_tde_bindir}/kco* +%{_tde_bindir}/kcmshell +%{_tde_bindir}/kded +%{_tde_bindir}/kdeinit* +%{_tde_bindir}/start_kdeinit +%{_tde_bindir}/start_kdeinit_wrapper +%{_tde_bindir}/kde-config +%{_tde_bindir}/kde-menu +%{_tde_bindir}/kdesu_stub +%{_tde_bindir}/kdontchangethehostname +%{_tde_bindir}/kfile +%{_tde_bindir}/ki* +%{_tde_bindir}/kfmexec +%{_tde_bindir}/klauncher +%{_tde_bindir}/kmailservice +%{_tde_bindir}/ktradertest +%{_tde_bindir}/knotify +%{_tde_bindir}/kstartupconfig +%{_tde_bindir}/kdostartupconfig +%verify(not mode) %{_tde_bindir}/kpac_dhcp_helper +%{_tde_bindir}/ksendbugmail +%{_tde_bindir}/kshell +%{_tde_bindir}/ktelnetservice +%{_tde_bindir}/kwrapper +%{_tde_bindir}/lnusertemp +%{_tde_bindir}/make_driver_db_lpr +%{_tde_bindir}/khotnewstuff +%{_tde_bindir}/makekdewidgets +%dir %{_tde_libdir} +%dir %{_tde_libdir}/kde3 +%{_tde_libdir}/kde3/dcopserver.* +%{_tde_libdir}/kde3/kaddprinterwizard.* +%{_tde_libdir}/kde3/kbuildsycoca.* +%{_tde_libdir}/kde3/kcmshell.* +%{_tde_libdir}/kde3/kcm_kresources.* +%{_tde_libdir}/kde3/kconf_update.* +%{_tde_libdir}/kde3/kcookiejar.* +%{_tde_libdir}/kde3/kded.* +%{_tde_libdir}/kde3/kded_proxyscout.* +%{_tde_libdir}/kde3/kfileaudiopreview.* +%{_tde_libdir}/kde3/klauncher.* +%{_tde_libdir}/kde3/knotify.* +%{_tde_libdir}/kde3/kabc* +%{_tde_libdir}/kde3/kbzip2filter.* +%{_tde_libdir}/kde3/kded_k* +%{_tde_libdir}/kde3/kdeprint_ext.* +%{_tde_libdir}/kde3/kdeprint_lp* +%{_tde_libdir}/kde3/kdeprint_rlpr.* +%{_tde_libdir}/kde3/kdeprint_tool_escputil.* +%{_tde_libdir}/kde3/kgzipfilter.* +%{_tde_libdir}/kde3/khtmlimagepart.* +%{_tde_libdir}/kde3/ki* +%{_tde_libdir}/kde3/kjavaappletviewer.* +%{_tde_libdir}/kde3/ktexteditor_* +%{_tde_libdir}/kde3/libk* +%{_tde_libdir}/kde3/kspell_* +%{_tde_libdir}/kde3/kstyle_plastik_config.* +%{_tde_libdir}/kde3/kstyle_highcontrast_config.* +%{_tde_libdir}/kde3/libshellscript.* +%exclude %{_tde_libdir}/kde3/plugins/styles/plastik.* +%{_tde_libdir}/kde3/plugins +%{_tde_libdir}/libDCOP.so.* +%exclude %{_tde_libdir}/libkdefx.so.* +%{_tde_libdir}/libk*.so.* +%{_tde_libdir}/libvcard.so.* +%{_tde_libdir}/libkdeinit*.so +%{_tde_libdir}/libnetworkstatus.so.* +%{_tde_libdir}/libconnectionmanager.so.* +%{_tde_libdir}/kde3/kded_networkstatus.* +%{_tde_appsdir} +%dir %{_tde_datadir} +%{_tde_datadir}/LICENSES +%{_tde_datadir}/ka* +%{_tde_datadir}/kc* +%dir %{_tde_datadir}/kdeprint +%{_tde_datadir}/kdeprint/apsdriver* +%{_tde_datadir}/kdeprint/filters +%{_tde_datadir}/kdeprint/icons +%{_tde_datadir}/kdeprint/lprngtooldriver1 +%{_tde_datadir}/kdeprint/pics +%dir %{_tde_datadir}/kdeprint/plugins +%{_tde_datadir}/kdeprint/plugins/ext.print +%{_tde_datadir}/kdeprint/plugins/lp*.print +%{_tde_datadir}/kdeprint/plugins/rlpr.print +%{_tde_datadir}/kdeprint/s* +%{_tde_datadir}/kdeprint/t* +%{_tde_datadir}/kdeui +%{_tde_datadir}/kdewidgets +%{_tde_datadir}/khtml +%{_tde_datadir}/kio_uiserver +%{_tde_datadir}/kjava +%{_tde_datadir}/knotify +%{_tde_datadir}/kssl +%{_tde_datadir}/kstyle +%{_tde_datadir}/ktexteditor_* +%{_tde_datadir}/proxyscout +%{_tde_datadir}/knewstuff +%{_tde_sharedir}/autostart +%{_tde_configdir} +%{_tde_sharedir}/emoticons +%{_tde_icondir}/icons +%{_tde_locale}/locale +%{_tde_mimedir}/mimelnk +%{_tde_sharedir}/service* +%config /etc/tderc +%{_tde_applicationsdir} +%{_tde_bindir}/cupsd* +%{_tde_bindir}/make_driver_db_cups +%{_tde_libdir}/kde3/kdeprint_cups.* +%{_tde_libdir}/kde3/cupsdconf.* +%{_tde_datadir}/kdeprint/cups* +%{_tde_datadir}/kdeprint/kde_logo.png +%{_tde_datadir}/kdeprint/plugins/cups.print +%{_tde_datadir}/kdeprint/preview* +%ifarch x86_64 ppc64 s390x mips64 sparc64 +%dir %{_tde_prefix}/lib +%dir %{_tde_prefix}/lib/kde3 +%{_tde_prefix}/lib/kde3/plugins-lib64 +%endif +/etc/xdg/menus +%dir /etc/%{_tde_prefix} +%dir /etc/%{_tde_sharedir} +%dir /etc/%{_tde_applicationsdir} +%ghost /etc/%{_tde_applicationsdir}/mimeinfo.cache +%dir %{_tde_prefix} +%dir %{_tde_sharedir} +%dir %{_tde_applicationsdir} +%ghost %{_tde_applicationsdir}/mimeinfo.cache + + +%files arts +%defattr(-,root,root) +%{_tde_bindir}/artsmessage +%{_tde_libdir}/libartskde.so.* + +%files doc +%defattr(-,root,root) +%doc %{_tde_docdir} +%{_tde_bindir}/meinproc +%{_tde_datadir}/ksgmltools2 +%config %{_sysconfdir}/xml/%{FOR_ROOT_CAT} + +%files devel +%defattr(-,root,root) +%dir %{_tde_datadir}/kdelibs +%{_tde_bindir}/dcopidl* +%{_tde_bindir}/kmimelist +%{_tde_bindir}/preparetips +%{_tde_bindir}/ksvgtopng +%{_tde_bindir}/kunittestmodrunner +#%{_tde_bindir}/MISC +%{_tde_includedir}/* +%{_tde_datadir}/dcopidlng +%{_tde_datadir}/kdelibs/admin +%{_tde_libdir}/libartskde.la +%{_tde_libdir}/libkunittest.la +%{_tde_libdir}/libkunittest.so +%{_tde_libdir}/libartskde.so +%{_tde_libdir}/libDCOP.so +%{_tde_libdir}/libvcard.so +%{_tde_libdir}/libvcard.la +%{_tde_libdir}/libDCOP.la +%{_tde_libdir}/lib*.a +%{_tde_libdir}/libkabc_dir.la +%{_tde_libdir}/libkabc_dir.so +%{_tde_libdir}/libkabc_file.la +%{_tde_libdir}/libkabc_file.so +%{_tde_libdir}/libkabc.la +%{_tde_libdir}/libkabc_ldapkio.la +%{_tde_libdir}/libkabc_ldapkio.so +%{_tde_libdir}/libkabc.so +%{_tde_libdir}/libkatepartinterfaces.la +%{_tde_libdir}/libkatepartinterfaces.so +%{_tde_libdir}/libkdecore.la +%{_tde_libdir}/libkdecore.so +%{_tde_libdir}/libkdefakes.la +%{_tde_libdir}/libkdefakes.so +%{_tde_libdir}/libkdefx.la +%{_tde_libdir}/libkdefx.so +%{_tde_libdir}/libkdemm.la +%{_tde_libdir}/libkdemm.so +%{_tde_libdir}/libkdeprint.la +%{_tde_libdir}/libkdeprint_management.la +%{_tde_libdir}/libkdeprint_management.so +%{_tde_libdir}/libkdeprint.so +%{_tde_libdir}/libkdesasl.la +%{_tde_libdir}/libkdesasl.so +%{_tde_libdir}/libkdesu.la +%{_tde_libdir}/libkdesu.so +%{_tde_libdir}/libkdeui.la +%{_tde_libdir}/libkdeui.so +%{_tde_libdir}/libkdnssd.la +%{_tde_libdir}/libkdnssd.so +%{_tde_libdir}/libkhtml.la +%{_tde_libdir}/libkhtml.so +%{_tde_libdir}/libkimproxy.la +%{_tde_libdir}/libkimproxy.so +%{_tde_libdir}/libkio.la +%{_tde_libdir}/libkio.so +%{_tde_libdir}/libkjava.la +%{_tde_libdir}/libkjava.so +%{_tde_libdir}/libkjs.la +%{_tde_libdir}/libkjs.so +%{_tde_libdir}/libkmdi2.la +%{_tde_libdir}/libkmdi2.so +%{_tde_libdir}/libkmdi.la +%{_tde_libdir}/libkmdi.so +%{_tde_libdir}/libkmediaplayer.la +%{_tde_libdir}/libkmediaplayer.so +%{_tde_libdir}/libkmid.la +%{_tde_libdir}/libkmid.so +%{_tde_libdir}/libknewstuff.la +%{_tde_libdir}/libknewstuff.so +%{_tde_libdir}/libkntlm.la +%{_tde_libdir}/libkntlm.so +%{_tde_libdir}/libkparts.la +%{_tde_libdir}/libkparts.so +%{_tde_libdir}/libkresources.la +%{_tde_libdir}/libkresources.so +%{_tde_libdir}/libkscreensaver.la +%{_tde_libdir}/libkscreensaver.so +%{_tde_libdir}/libkscript.la +%{_tde_libdir}/libkscript.so +%{_tde_libdir}/libkspell2.la +%{_tde_libdir}/libkspell2.so +%{_tde_libdir}/libkspell.la +%{_tde_libdir}/libkspell.so +%{_tde_libdir}/libktexteditor.la +%{_tde_libdir}/libktexteditor.so +%{_tde_libdir}/libkutils.la +%{_tde_libdir}/libkutils.so +%{_tde_libdir}/libkwalletbackend.la +%{_tde_libdir}/libkwalletbackend.so +%{_tde_libdir}/libkwalletclient.la +%{_tde_libdir}/libkwalletclient.so +%{_tde_libdir}/libnetworkstatus.la +%{_tde_libdir}/libnetworkstatus.so +%{_tde_libdir}/libconnectionmanager.la +%{_tde_libdir}/libconnectionmanager.so + +%changelog -- cgit v1.2.3