Re: kdewebdev (Quanta)

Ralf Habacker <[email protected]> Sat, 6 Aug 2005 17:50:16 +0200
Newsgroups gmane.comp.kde.devel.cygwin
Message-ID <[email protected]>
Am Dienstag, 2. August 2005 19:05 schrieb David H Gunnells:
> Hello,
> 
>   I recently installed cygwin and KDE 3.4.1 according to
> http://webdev.cegit.de/snapshots/kde-cygwin/kde/kde3.4/ (thanks Ralf!)
> but noticed that http://sourceforge.net/projects/kde-cygwin/ has only
> old releases available for download. Where might I find a more current
> version of Quanta (kdewebdev) for KDE on Windows than 3.2(!)? Thanks for
> taking the time to get KDE on winblows!
> 
There is currently no out of the box release of quanta. I've tried to build a 
release from http://websvn.kde.org/branches/KDE/3.4/kdewebdev/ but got two 
problems. For those who like to fix this by themself here are some notes: 


First, it seems that the recent kdelibs 3.4 has problems unpacking gzipped 
files, which I hadn't found yet.

I have only a workaround by using tar files instead of gzipped tar files for 
quanta's toolbars. It requires applying the quanta-cygwin.patch in the 
checkout kwebdev dir and the following command line for converting the 
installed toolbar files. 

	find /opt/kde3.4/share/apps/quanta/toolbars/ -name '*.tgz' -exec gzip -d {} 
\;
 
The appended quanta-gzip-filter-testcase.patch could be applied to kwebdev dir 
to get a ktartest application in quanta/src to see that unzipping goes wrong. 


The second problem is that quanta consumes 99% cpu usage after starting. An 
strace using quanta's pid (strace -p <quanta-pid>) shows quanta loops through 
network readv calls and got error messages of 10054=WSAECONNRESET. Currently 
I have not idea what's going wrong. 

some hints for configuring kwebdev from cvs (basic development package like 
gcc autotools and so one are required)
1ยท checkout unsermake from 
http://websvn.kde.org/trunk/kdenonbeta/unsermake/?rev=443540 
2. checkout kwebdev from http://websvn.kde.org/branches/KDE/3.4/kdewebdev/
3. enter kwebdev source root and run 
	unsermake -f Makefile.cvs 
4. configure using the appended configure.cygwin 
	. ./configure.cygwin 

Regards
-- 
Ralf Habacker

_______________________________________________
kde-cygwin mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-cygwin
configure.cygwin (text/plain, 399 B)
./configure LDFLAGS="-Wl,--enable-runtime-pseudo-reloc -L/usr/X11R6/lib -lXext -lSM -lICE -lX11 -L/opt/qt/3.3/lib -lqt-mt -Wl,--script,/opt/qt/3.3/mkspecs/cygwin-g++/i386pe.x-no-rdata -ldcop -lkdecore -lkio -lkdeui"  \
	--disable-rpath                           \
	--disable-closure                         \
	--prefix=/opt/kde3.4                      \
	--with-qt-dir=/opt/qt/3.3                 \
quanta-cygwin.patch (text/x-diff, 1.8 KB)
Index: quanta/src/quanta.cpp
===================================================================
--- quanta/src/quanta.cpp	(revision 442913)
+++ quanta/src/quanta.cpp	(working copy)
@@ -2686,8 +2688,11 @@
   KURL tempURL;
   tempURL.setPath(tempFileName);
   saveToolbarToFile(toolbarName, tempURL);
-
+#ifdef __CYGWIN__
+  return tempFileName + ".toolbar.tar";
+#else
   return tempFileName + ".toolbar.tgz";
+#endif 
 }
 
 /** Sends a toolbar in mail. */
@@ -3515,10 +3520,15 @@
     KTempDir* tempDir = new KTempDir(tmpDir);
     tempDir->setAutoDelete(true);
     tempDirList.append(tempDir);
+#ifdef __CYGWIN__
+    QString tempFileName=tempDir->name() +"/"+ DTDs::ref()->getDTDNickNameFromName(dtdName).replace(QRegExp("\\s|\\."), "_") + ".tar";
+  //pack the .tag files and the description.rc into a .tar file
+    KTar tar(tempFileName, "application/x-tar");
+#else
     QString tempFileName=tempDir->name() +"/"+ DTDs::ref()->getDTDNickNameFromName(dtdName).replace(QRegExp("\\s|\\."), "_") + ".tgz";
-
   //pack the .tag files and the description.rc into a .tgz file
     KTar tar(tempFileName, "application/x-gzip");
+#endif 
     tar.open(IO_WriteOnly);
 
     KURL dirURL;
Index: kommander/widgets/Makefile.am
===================================================================
--- kommander/widgets/Makefile.am	(revision 442913)
+++ kommander/widgets/Makefile.am	(working copy)
@@ -10,7 +10,8 @@
 # the libraries to link against.
 libkommanderwidgets_la_LIBADD  = $(LIB_KIO) \
     $(top_builddir)/kommander/widget/libkommanderwidget.la \
-    $(top_builddir)/kommander/plugin/libkommanderplugin.la
+    $(top_builddir)/kommander/plugin/libkommanderplugin.la \
+    $(top_builddir)/kommander/factory/libkommanderfactory.la
 
 # which sources should be compiled for widgets
 libkommanderwidgets_la_SOURCES = buttongroup.cpp subdialog.cpp checkbox.cpp \
quanta-gzip-filter-testcase.patch (text/x-diff, 1.8 KB)
Index: Makefile.am
===================================================================
--- quanta/src/Makefile.am	(revision 442913)
+++ quanta/src/Makefile.am	(working copy)
@@ -8,8 +8,11 @@
 LIB_CVSSERVICE = $(top_builddir)/quanta/components/cvsservice/libcvsservice.la $(top_builddir)/lib/compatibility/cvsservice/libcvsservice_compat.la
 endif
 
-bin_PROGRAMS = quanta
+bin_PROGRAMS = quanta ktartest
 
+ktartest_SOURCES=ktartest.cpp 
+ktartest_LDFLAGS=-lkdecore -lkio -lqt-mt  $(all_libraries) 
+
 quanta_SOURCES = quanta_init.cpp quantaview.cpp quantadoc.cpp main.cpp document.cpp kqapp.cpp quanta.cpp dcopwindowmanagerif.skel dcopsettingsif.skel dcopquantaif.skel dcopsettings.cpp dtds.cpp dcopquanta.cpp viewmanager.cpp
 
 
--- /dev/null	2005-08-06 17:33:46.667334400 +0200
+++ quanta/src/ktartest.cpp	2005-08-05 20:49:49.264702400 +0200
@@ -0,0 +1,40 @@
+#include <kcmdlineargs.h>
+#include <kapplication.h>
+#include <kaboutdata.h>
+#include <ktar.h>
+#include <karchive.h>
+#include <qfileinfo.h>
+#include <qstring.h>
+#include <kdebug.h>
+
+
+
+//#define private public
+#include <stdio.h>
+#include <kglobalsettings.h>
+#include <ksycoca.h>
+
+int
+main(int argc, char *argv[])
+{
+   KAboutData about("kapptest", "kapptest", "version");
+   KCmdLineArgs::init(argc, argv, &about);
+
+   KApplication a;
+  
+   QString fileName = "/opt/kde3.4/share/apps/quanta/toolbars/html/style.toolbar.tar";
+   KTar xtar(fileName);
+   if (xtar.open(IO_ReadOnly))
+   {
+		 xtar.close();
+		 kdDebug() << "simple open/close" << fileName << " file: " << endl;
+	}
+	
+   KTar tar(fileName);
+   if (tar.open(IO_ReadOnly))
+   {
+     QString base = QFileInfo(fileName).baseName();
+     KArchiveFile* file = (KArchiveFile *) tar.directory()->entry(base+".toolbar");
+		 kdDebug() << base << " " << fileName << " file: " << file << endl;
+	}
+}