[Kde-java] [PATCH] Qt Java patches

Dominique Devriese dominique.devriese at student.kuleuven.ac.be
Wed Apr 7 16:23:19 CEST 2004


Hi,

Attached are two patches for qtjava and kdejava:

The first one ( 019-libqtjavasupport_la.diff ) is a bit complicated to
explain:
 Debian Java Policy requires that libqtjava.* and libkdejava.* are put
 into /usr/lib/jni.  I have made a Debian-specific patch that makes
 this the case.  However, this means that libqtjava.* is no longer in
 a location managed by ldconfig.  Because of this, kdejava, which
 links against qtjava, is given an rpath for qtjava, to tell it that
 it can find the latter in /usr/lib/jni.  And rpath's are a pretty bad
 thing, so there is the problem.  The solution that this patch
 implements is to split up qtjava into the part of qtjava containing
 only the jni code ( called libqtjava.* ), and the rest of qtjava (
 i.e. the QtSupport and JavaLib classes, called libqtjavasupport.* ).
 Only libqtjavasupport is needed by kdejava, and only libqtjava is
 needed by the java interpreter.  Thus, by making libkdejava and
 libqtjava link against libqtjavasupport, and by putting
 libqtjavasupport into /usr/lib, the rpath problems are solved.  I
 think this patch is useful for other distributions as well, so I
 would therefore like to commit it to KDE CVS.  Ok to do so ?

The second patch ( 020-cleanjarfiles.diff ) is simpler:
 Problem is that kdejava/koala/Makefile.am creates .jar files in the
 build target, but does not clean them in the clean target.  This
 patch fixes that, and also removes some superfluous code that tries
 to make sure that the generated .moc files are cleaned on a
 distclean, which is already the case without it.  Ok to commit ?

For another thing, I'm also wondering about a patch that I inherited
from the previous debian kdebindings maintainer ( or someone who
worked on it, at least ), but that I don't understand: it makes the
kdejava java files compile with "-encoding iso-8859-1" among the
JAVACFLAGS.  Does anyone know what the benefit of this would be ?

Anyway, on a more general note: I've recently more or less finished
the kdebindings packaging, and sent the package to Chris Cheney, who's
going to check them, and hopefully sponsor them ( i.e. upload them for
me, as I'm not a Debian Developer yet ), so with some luck, kdejava
and qtjava should be appearing in Debian in a few weeks.

cheers
domi

-------------- next part --------------
--- kdebindings/qtjava/javalib/qtjava/Makefile.am.old	2004-04-06 02:15:38.000000000 +0200
+++ kdebindings/qtjava/javalib/qtjava/Makefile.am	2004-04-06 02:18:50.000000000 +0200
@@ -8,7 +8,7 @@
 
 LDFLAGS = 
 
-libqtjava_la_SOURCES = JavaSlot.cpp QSyntaxHighlighter.cpp QToolBox.cpp QSplashScreen.cpp QSpinWidget.cpp QHttpResponseHeader.cpp QHttpRequestHeader.cpp QHttpHeader.cpp QEventLoop.cpp QGb18030Codec.cpp QXmlSimpleReader.cpp QXmlReader.cpp QXmlParseException.cpp QXmlNamespaceSupport.cpp QXmlLocator.cpp QXmlLexicalHandler.cpp QXmlInputSource.cpp QXmlErrorHandler.cpp QXmlEntityResolver.cpp QXmlDTDHandler.cpp QXmlDefaultHandler.cpp QXmlDeclHandler.cpp QXmlContentHandler.cpp QXmlAttributes.cpp QWorkspace.cpp QWMatrix.cpp QWizard.cpp QWidgetStack.cpp QWidgetItem.cpp QWidget.cpp QWheelEvent.cpp QWhatsThis.cpp QVGroupBox.cpp QVButtonGroup.cpp QVBoxLayout.cpp QVBox.cpp QVariant.cpp QValidator.cpp QUuid.cpp QUtf8Codec.cpp QUtf16Codec.cpp QUrlOperator.cpp QUrlInfo.cpp QUrl.cpp QUriDrag.cpp QtSupport.cpp QTsciiCodec.cpp QTranslatorMessage.cpp QTranslator.cpp QToolTipGroup.cpp QToolTip.cpp QToolButton.cpp QToolBar.cpp qtjava.cpp QTimerEvent.cpp QTimer.cpp QTimeEdit.cpp QTextView.cpp QTextStream.cpp QTextOStream.cpp QTextIStream.cpp QTextEncoder.cpp QTextEdit.cpp QTextDrag.cpp QTextDecoder.cpp QTextCodec.cpp QTextBrowser.cpp QTabWidget.cpp QTabletEvent.cpp QTableSelection.cpp QTableItem.cpp QTable.cpp QTabDialog.cpp QTabBar.cpp QTab.cpp Qt.cpp QStyleSheetItem.cpp QStyleSheet.cpp QStyleFactory.cpp QStyle.cpp QStoredDrag.cpp QStatusBar.cpp QSqlResult.cpp QSqlRecord.cpp QSqlQuery.cpp QSqlPropertyMap.cpp QSqlIndex.cpp QSqlForm.cpp QSqlField.cpp QSqlError.cpp QSqlEditorFactory.cpp QSqlDriver.cpp QSqlDatabase.cpp QSqlCursor.cpp QSql.cpp QSplitter.cpp QSpinBox.cpp QSpacerItem.cpp QSound.cpp QSocketNotifier.cpp QSocketDevice.cpp QSocket.cpp QSlider.cpp QSjisCodec.cpp QSizePolicy.cpp QSizeGrip.cpp QSize.cpp QSimpleRichText.cpp QSignalMapper.cpp QSignal.cpp QShowEvent.cpp QSettings.cpp QSessionManager.cpp QServerSocket.cpp QSemiModal.cpp QScrollView.cpp QScrollBar.cpp QResizeEvent.cpp QRegion.cpp QRegExpValidator.cpp QRegExp.cpp QRect.cpp QRangeControl.cpp QRadioButton.cpp QPushButton.cpp QProgressDialog.cpp QProgressBar.cpp QProcess.cpp QPrinter.cpp QPrintDialog.cpp QPopupMenu.cpp QPolygonScanner.cpp QPointArray.cpp QPoint.cpp QPixmap.cpp QPicture.cpp QPen.cpp QPalette.cpp QPaintEvent.cpp QPainter.cpp QPaintDeviceMetrics.cpp QPaintDevice.cpp QObjectCleanupHandler.cpp QObject.cpp QNetworkProtocol.cpp QNetworkOperation.cpp QMultiLineEdit.cpp QMovie.cpp QMoveEvent.cpp QMouseEvent.cpp QMimeSourceFactory.cpp QMimeSource.cpp QMetaProperty.cpp QMetaObject.cpp QMetaEnum.cpp QMetaData.cpp QMessageBox.cpp QMenuItem.cpp QMenuData.cpp QMenuBar.cpp QMainWindow.cpp QLocalFs.cpp QListViewItem.cpp QListView.cpp QListBoxText.cpp QListBoxPixmap.cpp QListBoxItem.cpp QListBox.cpp QLineEdit.cpp QLibrary.cpp QLCDNumber.cpp QLayoutItem.cpp QLayout.cpp QLabel.cpp QKeySequence.cpp QKeyEvent.cpp QJpUnicodeConv.cpp QJisCodec.cpp QIODeviceSource.cpp QIODevice.cpp QIntValidator.cpp QInputDialog.cpp QIMEvent.cpp QImageTextKeyLang.cpp QImageIO.cpp QImageFormatType.cpp QImageFormat.cpp QImageDrag.cpp QImageDecoder.cpp QImageConsumer.cpp QImage.cpp QIconViewItem.cpp QIconView.cpp QIconSet.cpp QIconDragItem.cpp QIconDrag.cpp QHttp.cpp QHostAddress.cpp QHideEvent.cpp QHGroupBox.cpp QHebrewCodec.cpp QHeader.cpp QHButtonGroup.cpp QHBoxLayout.cpp QHBox.cpp QGroupBox.cpp QGridView.cpp QGridLayout.cpp QGrid.cpp QFtp.cpp QFrame.cpp QFontMetrics.cpp QFontInfo.cpp QFontDialog.cpp QFontDatabase.cpp QFont.cpp QFocusEvent.cpp QFocusData.cpp QFilePreview.cpp QFileInfo.cpp QFileIconProvider.cpp QFileDialog.cpp QFile.cpp QEvent.cpp QEucKrCodec.cpp QEucJpCodec.cpp QErrorMessage.cpp QEditorFactory.cpp QDropSite.cpp QDropEvent.cpp QDragResponseEvent.cpp QDragObject.cpp QDragMoveEvent.cpp QDragManager.cpp QDragLeaveEvent.cpp QDragEnterEvent.cpp QDoubleValidator.cpp QDomText.cpp QDomProcessingInstruction.cpp QDomNotation.cpp QDomNode.cpp QDomNamedNodeMap.cpp QDomImplementation.cpp QDomEntityReference.cpp QDomEntity.cpp QDomElement.cpp QDomDocumentType.cpp QDomDocumentFragment.cpp QDomDocument.cpp QDomComment.cpp QDomCharacterData.cpp QDomCDATASection.cpp QDomAttr.cpp QDockWindow.cpp QDockArea.cpp QDir.cpp QDialog.cpp QDial.cpp QDesktopWidget.cpp QDateTimeEditBase.cpp QDateTimeEdit.cpp QDateEdit.cpp QDataView.cpp QDataTable.cpp QDataStream.cpp QDataSource.cpp QDataSink.cpp QDataPump.cpp QDataBrowser.cpp QCustomMenuItem.cpp QCustomEvent.cpp QCursor.cpp QContextMenuEvent.cpp QComboTableItem.cpp QComboBox.cpp QColorGroup.cpp QColorDrag.cpp QColorDialog.cpp QColor.cpp QCloseEvent.cpp QClipboard.cpp QClassInfo.cpp QChildEvent.cpp QCheckTableItem.cpp QCheckListItem.cpp QCheckBox.cpp QCanvasView.cpp QCanvasText.cpp QCanvasSprite.cpp QCanvasSpline.cpp QCanvasRectangle.cpp QCanvasPolygonalItem.cpp QCanvasPolygon.cpp QCanvasPixmapArray.cpp QCanvasPixmap.cpp QCanvasLine.cpp QCanvasItem.cpp QCanvasEllipse.cpp QCanvas.cpp QButtonGroup.cpp QButton.cpp QBuffer.cpp QBrush.cpp QBoxLayout.cpp QBitmap.cpp QBig5Codec.cpp QAuServer.cpp QAsyncIO.cpp QApplication.cpp QActionGroup.cpp QAction.cpp QAccel.cpp 
+libqtjava_la_SOURCES = QSyntaxHighlighter.cpp QToolBox.cpp QSplashScreen.cpp QSpinWidget.cpp QHttpResponseHeader.cpp QHttpRequestHeader.cpp QHttpHeader.cpp QEventLoop.cpp QGb18030Codec.cpp QXmlSimpleReader.cpp QXmlReader.cpp QXmlParseException.cpp QXmlNamespaceSupport.cpp QXmlLocator.cpp QXmlLexicalHandler.cpp QXmlInputSource.cpp QXmlErrorHandler.cpp QXmlEntityResolver.cpp QXmlDTDHandler.cpp QXmlDefaultHandler.cpp QXmlDeclHandler.cpp QXmlContentHandler.cpp QXmlAttributes.cpp QWorkspace.cpp QWMatrix.cpp QWizard.cpp QWidgetStack.cpp QWidgetItem.cpp QWidget.cpp QWheelEvent.cpp QWhatsThis.cpp QVGroupBox.cpp QVButtonGroup.cpp QVBoxLayout.cpp QVBox.cpp QVariant.cpp QValidator.cpp QUuid.cpp QUtf8Codec.cpp QUtf16Codec.cpp QUrlOperator.cpp QUrlInfo.cpp QUrl.cpp QUriDrag.cpp QTsciiCodec.cpp QTranslatorMessage.cpp QTranslator.cpp QToolTipGroup.cpp QToolTip.cpp QToolButton.cpp QToolBar.cpp qtjava.cpp QTimerEvent.cpp QTimer.cpp QTimeEdit.cpp QTextView.cpp QTextStream.cpp QTextOStream.cpp QTextIStream.cpp QTextEncoder.cpp QTextEdit.cpp QTextDrag.cpp QTextDecoder.cpp QTextCodec.cpp QTextBrowser.cpp QTabWidget.cpp QTabletEvent.cpp QTableSelection.cpp QTableItem.cpp QTable.cpp QTabDialog.cpp QTabBar.cpp QTab.cpp Qt.cpp QStyleSheetItem.cpp QStyleSheet.cpp QStyleFactory.cpp QStyle.cpp QStoredDrag.cpp QStatusBar.cpp QSqlResult.cpp QSqlRecord.cpp QSqlQuery.cpp QSqlPropertyMap.cpp QSqlIndex.cpp QSqlForm.cpp QSqlField.cpp QSqlError.cpp QSqlEditorFactory.cpp QSqlDriver.cpp QSqlDatabase.cpp QSqlCursor.cpp QSql.cpp QSplitter.cpp QSpinBox.cpp QSpacerItem.cpp QSound.cpp QSocketNotifier.cpp QSocketDevice.cpp QSocket.cpp QSlider.cpp QSjisCodec.cpp QSizePolicy.cpp QSizeGrip.cpp QSize.cpp QSimpleRichText.cpp QSignalMapper.cpp QSignal.cpp QShowEvent.cpp QSettings.cpp QSessionManager.cpp QServerSocket.cpp QSemiModal.cpp QScrollView.cpp QScrollBar.cpp QResizeEvent.cpp QRegion.cpp QRegExpValidator.cpp QRegExp.cpp QRect.cpp QRangeControl.cpp QRadioButton.cpp QPushButton.cpp QProgressDialog.cpp QProgressBar.cpp QProcess.cpp QPrinter.cpp QPrintDialog.cpp QPopupMenu.cpp QPolygonScanner.cpp QPointArray.cpp QPoint.cpp QPixmap.cpp QPicture.cpp QPen.cpp QPalette.cpp QPaintEvent.cpp QPainter.cpp QPaintDeviceMetrics.cpp QPaintDevice.cpp QObjectCleanupHandler.cpp QObject.cpp QNetworkProtocol.cpp QNetworkOperation.cpp QMultiLineEdit.cpp QMovie.cpp QMoveEvent.cpp QMouseEvent.cpp QMimeSourceFactory.cpp QMimeSource.cpp QMetaProperty.cpp QMetaObject.cpp QMetaEnum.cpp QMetaData.cpp QMessageBox.cpp QMenuItem.cpp QMenuData.cpp QMenuBar.cpp QMainWindow.cpp QLocalFs.cpp QListViewItem.cpp QListView.cpp QListBoxText.cpp QListBoxPixmap.cpp QListBoxItem.cpp QListBox.cpp QLineEdit.cpp QLibrary.cpp QLCDNumber.cpp QLayoutItem.cpp QLayout.cpp QLabel.cpp QKeySequence.cpp QKeyEvent.cpp QJpUnicodeConv.cpp QJisCodec.cpp QIODeviceSource.cpp QIODevice.cpp QIntValidator.cpp QInputDialog.cpp QIMEvent.cpp QImageTextKeyLang.cpp QImageIO.cpp QImageFormatType.cpp QImageFormat.cpp QImageDrag.cpp QImageDecoder.cpp QImageConsumer.cpp QImage.cpp QIconViewItem.cpp QIconView.cpp QIconSet.cpp QIconDragItem.cpp QIconDrag.cpp QHttp.cpp QHostAddress.cpp QHideEvent.cpp QHGroupBox.cpp QHebrewCodec.cpp QHeader.cpp QHButtonGroup.cpp QHBoxLayout.cpp QHBox.cpp QGroupBox.cpp QGridView.cpp QGridLayout.cpp QGrid.cpp QFtp.cpp QFrame.cpp QFontMetrics.cpp QFontInfo.cpp QFontDialog.cpp QFontDatabase.cpp QFont.cpp QFocusEvent.cpp QFocusData.cpp QFilePreview.cpp QFileInfo.cpp QFileIconProvider.cpp QFileDialog.cpp QFile.cpp QEvent.cpp QEucKrCodec.cpp QEucJpCodec.cpp QErrorMessage.cpp QEditorFactory.cpp QDropSite.cpp QDropEvent.cpp QDragResponseEvent.cpp QDragObject.cpp QDragMoveEvent.cpp QDragManager.cpp QDragLeaveEvent.cpp QDragEnterEvent.cpp QDoubleValidator.cpp QDomText.cpp QDomProcessingInstruction.cpp QDomNotation.cpp QDomNode.cpp QDomNamedNodeMap.cpp QDomImplementation.cpp QDomEntityReference.cpp QDomEntity.cpp QDomElement.cpp QDomDocumentType.cpp QDomDocumentFragment.cpp QDomDocument.cpp QDomComment.cpp QDomCharacterData.cpp QDomCDATASection.cpp QDomAttr.cpp QDockWindow.cpp QDockArea.cpp QDir.cpp QDialog.cpp QDial.cpp QDesktopWidget.cpp QDateTimeEditBase.cpp QDateTimeEdit.cpp QDateEdit.cpp QDataView.cpp QDataTable.cpp QDataStream.cpp QDataSource.cpp QDataSink.cpp QDataPump.cpp QDataBrowser.cpp QCustomMenuItem.cpp QCustomEvent.cpp QCursor.cpp QContextMenuEvent.cpp QComboTableItem.cpp QComboBox.cpp QColorGroup.cpp QColorDrag.cpp QColorDialog.cpp QColor.cpp QCloseEvent.cpp QClipboard.cpp QClassInfo.cpp QChildEvent.cpp QCheckTableItem.cpp QCheckListItem.cpp QCheckBox.cpp QCanvasView.cpp QCanvasText.cpp QCanvasSprite.cpp QCanvasSpline.cpp QCanvasRectangle.cpp QCanvasPolygonalItem.cpp QCanvasPolygon.cpp QCanvasPixmapArray.cpp QCanvasPixmap.cpp QCanvasLine.cpp QCanvasItem.cpp QCanvasEllipse.cpp QCanvas.cpp QButtonGroup.cpp QButton.cpp QBuffer.cpp QBrush.cpp QBoxLayout.cpp QBitmap.cpp QBig5Codec.cpp QAuServer.cpp QAsyncIO.cpp QApplication.cpp QActionGroup.cpp QAction.cpp QAccel.cpp 
 KDE_OPTIONS = qtonly
 
 
@@ -27,5 +27,11 @@
 # of your shared lib (published for the users)
 noinst_HEADERS = QtSupport.h JavaSlot.h
 
+lib_LTLIBRARIES = libqtjavasupport.la
+libqtjavasupport_la_SOURCES = JavaSlot.cpp QtSupport.cpp
+libqtjavasupport_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 1:0:0
+libqtjavasupport_la_LIBADD = $(LIB_QT)
+
 libqtjava_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 1:0:0
-libqtjava_la_LIBADD =  $(LIB_QT)
+libqtjava_la_LIBADD =  $(LIB_QT) libqtjavasupport.la
+
--- kdebindings/kdejava/koala/kdejava/Makefile.am.old	2004-04-06 02:19:42.000000000 +0200
+++ kdebindings/kdejava/koala/kdejava/Makefile.am	2004-04-06 02:24:01.000000000 +0200
@@ -33,6 +33,6 @@
 
 libkdejava_la_LDFLAGS = $(all_libraries) -no-undefined -version-info $(SOMAJOR):$(SOMINOR):$(SOSUBMINOR) 
 
-libkdejava_la_LIBADD = $(top_builddir)/qtjava/javalib/qtjava/libqtjava.la -lkmdi $(LIB_KHTML) $(LIB_KSPELL) $(LIB_KIO)
+libkdejava_la_LIBADD = $(top_builddir)/qtjava/javalib/qtjava/libqtjavasupport.la -lkmdi $(LIB_KHTML) $(LIB_KSPELL) $(LIB_KIO)
 
 KDE_OPTIONS = qtonly
-------------- next part --------------
Index: kdebindings/kdejava/koala/Makefile.am
===================================================================
RCS file: /home/kde/kdebindings/kdejava/koala/Makefile.am,v
retrieving revision 1.16.2.1
diff -u -r1.16.2.1 Makefile.am
--- kdebindings/kdejava/koala/Makefile.am	1 Apr 2004 00:59:28 -0000	1.16.2.1
+++ kdebindings/kdejava/koala/Makefile.am	6 Apr 2004 20:07:57 -0000
@@ -39,7 +39,7 @@
 koala_LDFLAGS = $(all_libraries) $(KDE_RPATH)
 
 # them while "make clean", use CLEANFILES
-DISTCLEANFILES = $(koala_METASOURCES)
+CLEANFILES = koala.jar
 
 # make messages.po. Move this one to ../po/ and "make merge" in po
 # the -x is for skipping messages already translated in kdelibs
Index: kdebindings/qtjava/javalib/Makefile.am
===================================================================
RCS file: /home/kde/kdebindings/qtjava/javalib/Makefile.am,v
retrieving revision 1.5.6.1
diff -u -r1.5.6.1 Makefile.am
--- kdebindings/qtjava/javalib/Makefile.am	1 Apr 2004 00:58:04 -0000	1.5.6.1
+++ kdebindings/qtjava/javalib/Makefile.am	6 Apr 2004 20:07:57 -0000
@@ -32,7 +32,7 @@
 javalib_LDFLAGS = $(all_libraries) 
 
 # them while "make clean", use CLEANFILES
-DISTCLEANFILES = $(javalib_test_METASOURCES)
+CLEANFILES = koala.jar
 
 
 
-------------- next part --------------
Index: kdebindings/kdejava/koala/org/kde/koala/Makefile.am
===================================================================
RCS file: /home/kde/kdebindings/kdejava/koala/org/kde/koala/Makefile.am,v
retrieving revision 1.39.2.3
diff -u -r1.39.2.3 Makefile.am
--- kdebindings/kdejava/koala/org/kde/koala/Makefile.am	3 Apr 2004 12:21:18 -0000	1.39.2.3
+++ kdebindings/kdejava/koala/org/kde/koala/Makefile.am	5 Apr 2004 12:02:43 -0000
@@ -12,6 +12,6 @@
 
 JAVAROOT = ../../..
 CLASSPATH = $(srcdir)/../../..:$(srcdir)/../../../../../qtjava/javalib:$(srcdir)
-JAVACFLAGS = -classpath $(CLASSPATH)
+JAVACFLAGS = -classpath $(CLASSPATH) -encoding iso-8859-1
 # Prevent stupid automake from putting JAVAC=javac in Makefile.in
 JAVAC = @JAVAC@


More information about the Kde-java mailing list