Compare commits

...

7 Commits

Author SHA1 Message Date
Mario Fetka 47cc8f14fa Import release 2.0alpha 2008-05-01 22:23:21 +00:00
Mario Fetka ca041a4e14 Import release 1.5.1 2008-04-06 14:46:38 +00:00
Mario Fetka 5165abf494 Import release 1.5 2008-01-09 22:42:53 +00:00
Mario Fetka 80c63a8d5b Import CVS HEAD before SVN migration 2007-03-19 12:00:00 +00:00
Mario Fetka 41192641d3 Import release 1.5pre2 2007-03-18 19:34:31 +00:00
Mario Fetka f76ea1c06e Import CVS snapshot Release-1_5_pre1 2006-10-09 21:11:54 +00:00
Mario Fetka a20dd6cfae Import CVS snapshot Release-1_4 2005-09-01 19:51:14 +00:00
700 changed files with 154561 additions and 105552 deletions
-25
View File
@@ -1,25 +0,0 @@
MakeVars.in
Makefile
Makefile.am
Makefile.in
Makefile.rules.in
acinclude.m4
aclocal.m4
autom4te*.cache
config.h
config.h.in
config.log
config.status
configure
configure.files
configure.in
conftest
inst-apps
kmess.kdevelop.pcs
kmess.kdevses
libtool
stamp-h
stamp-h.in
stamp-h1
stamp-h1.in
subdirs
+52 -28
View File
@@ -1,30 +1,50 @@
Developers:
Mike K. Bennett <mkb137@users.sourceforge.net>
Michael Curtis <mdcurtis@users.sourceforge.net>
Jan Tönjes <jan.toenjes@web.de>
Lin Haoxiang <linhaoxiang@hotmail.com>
Diederik van der Boor <vdboor@hotmail.com>
Jan Toenjes <jan.toenjes@web.de>
Diederik van der Boor <vdboor@codingdomain.com>
Richard Conway <richardconway@users.sourceforge.net>
Valerio Pilo <amroth@coldshock.net>
Translations:
Arabic - Mohamed Aser <mohasr@link.net>
Brazilian Portuguese - Mauricio Rother <mauricio@digicomm.com.br>
Catalan - Jaume Cornadó <jaumec@lleida.net>
Danish - Lars Sommer <admin@lasg.dk>
Dutch - Arend van Beelen Jr. <arend@auton.nl>
Estonian - Jyri Toomessoo <nuubik@hotmail.com>
German - Jan Tönjes <jan.toenjes@web.de>
French - Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Italian - David Vignoni <dvgn@libero.it>
Korean - Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal - Øyvind Sæther <oyvind@sather.tk>
Simplified Chinese - Lin Haoxiang <linhaoxiang@hotmail.com>
Spanish - Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Thai - Rachan Hongpairote <rachanh@yahoo.com>
Turkish - Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
Arabic - Mohamed Aser <mohasr@link.net>
Youssef Chahibi <chahibi@gmail.com>
Brazilian Portuguese - Mauricio Rother <mauricio@digicomm.com.br>
Catalan - Jaume Cornadó <jaumec@lleida.net>
Chinese (Simplified) - Lin Haoxiang <linhaoxiang@hotmail.com>
Liu Sizhuang <chinatslsz@hotmail.com>
Chinese (Traditional) - Yen-chou Chen <yenchou.mse90@nctu.edu.tw>
Danish - Lars Sommer <admin@lasg.dk>
Pascal d'Hermilly <pascal@tipisoft.dk>
Dutch - Arend van Beelen Jr. <arend@auton.nl>
Diederik van der Boor <vdboor@codingdomain.com>
Jaap Woldringh <jjh.woldringh@planet.nl>
Estonian - Jyri Toomessoo <nuubik@hotmail.com>
Finnish - Markus Vuori <markus@vuoret.net>
Joonas Niilola <juippis@roskakori.org>
Jussi Timperi <jussi.timperi@gmail.com>
French - Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Andrea Blankenstijn <darkan9el@gmail.com>
German - Jan Tönjes <jan.toenjes@web.de>
Hungarian - Páder Rezsõ <rezso@rezso.net>
Italian - David Vignoni <dvgn@libero.it>
Valerio Pilo <amroth@coldshock.net>
Vincenzo Reale <smart2128@baslug.org>
Korean - Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal - Øyvind Sæther <oyvind@sather.tk>
Slovenian - Matjaž kaše <kase@g-kabel.si>
Spanish - Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Alejandro Araiza Alvarado <mebrelith@gmail.com>
Jaume Corbí <jaume4@gmail.com>
Christian Kaiser <k39@users.sourceforge.net>
Swedish - Christian Lundgren <zeflunk@gmail.com>
Thai - Rachan Hongpairote <rachanh@yahoo.com>
Turkish - Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
Uğur Çetin <ugur.jnmbk@gmail.com>
Also tranks to:
Jan Tönjes <jan.toenjes@web.de>
@@ -32,13 +52,13 @@ Also tranks to:
Dane Harnett <dynamitedane@hotmail.com>
- web design
David Vignoni <dvgn@libero.it>
- the main yellow/blue/violet emoticon sets
Laurence Anderson <l.d.anderson@warwick.ac.uk>
- original file receive code
Scott Morgan <blumf@blumf.freeserve.co.uk>
- Xinerama fixes
@@ -50,12 +70,12 @@ Also tranks to:
Choe Hwanjin <hjchoe@hancom.com>
- Various internationalization fixes.
Vincent Fretin <fretinvincent@hotmail.com>
- MSN6 emoticon definitions
Lin Haoxiang <linhaoxiang@hotmail.com>
- Send file bugfix
- Send file bugfix, proxy code
Tobias Tönjes
- Guy with a bag over his head
@@ -67,8 +87,12 @@ Also tranks to:
- Inspiration and assorted code
Kopete <http://kopete.kde.org/>
- Popup Balloon code, initial p2p code
- Old Popup Balloon code
- Initial p2p code
- MSN Challenge handler
KScreensaver
- Idle timer code
Liu Sizhuang <chinatslsz@hotmail.com>
- P4-Context field support
+95
View File
@@ -0,0 +1,95 @@
PROJECT( kmess )
#### System checks ####
# To add checks, see
# /usr/share/cmake/Modules
# /usr/share/kde4/apps/cmake/modules
# Check for cmake, same as minimum for KDE 4.0.0
CMAKE_MINIMUM_REQUIRED( VERSION 2.4.5 )
# Check for KDE 4
FIND_PACKAGE( KDE4 REQUIRED )
# Check for libxml2
FIND_PACKAGE( LibXml2 REQUIRED )
MACRO_OPTIONAL_FIND_PACKAGE( LibXml2 )
MACRO_LOG_FEATURE( LIBXML2_FOUND "LibXML2" "Libraries used to develop XML applications" "http://xmlsoft.org" FALSE "" "Required for the chat styles system." )
# Check for libxslt
FIND_PACKAGE( LibXslt REQUIRED )
MACRO_OPTIONAL_FIND_PACKAGE( LibXslt )
MACRO_LOG_FEATURE( LIBXSLT_FOUND "LibXSLT" "A library to transform XML files into other XML files" "http://xmlsoft.org/XSLT" FALSE "" "Required for the chat styles system." )
# Check for XScreenSaver extension
MACRO_BOOL_TO_01( X11_Xscreensaver_FOUND HAVE_XSCREENSAVER )
MACRO_LOG_FEATURE( X11_Xscreensaver_FOUND "XScreenSaver" "X11 extension used to check idle state" "" FALSE "" "Required for the auto-away feature." )
#### Configure build ####
INCLUDE( MacroLibrary )
INCLUDE( KDE4Defaults )
ADD_DEFINITIONS( ${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${LIBXML2_INCLUDE_DIR} )
#### Define the app version number ####
# Switch between the following two commands to force using a predefined version number
# EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get-svn-version.sh OUTPUT_VARIABLE KMESS_VERSION )
SET( KMESS_VERSION "2.0alpha" )
#### Define compiler flags ####
# Tune the debug build with even more flags
# also see FindKDE4Internal.cmake for more defaults
IF( CMAKE_COMPILER_IS_GNUCXX )
# skipped: -ansi -pendantic -Wfatal-errors -Wold-style-cast
SET( CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall" )
SET( CMAKE_CXX_FLAGS_DEBUGFULL "-O0 -g3 -fno-inline -Wall -Woverloaded-virtual -Wsign-compare -Wundef -Wconversion" )
ENDIF( CMAKE_COMPILER_IS_GNUCXX )
# Define the default build type
# Possible values:
# - none
# - release
# - debug
# - debugfull (even fewer optimisations)
# - relwithdebinfo (release with debug info)
# - minsizerel (minsize release)
# Uncomment the next line to always force building in full debug mode
SET( CMAKE_BUILD_TYPE debugfull )
# Enable the KMess debug output when compiling a debug build
IF( CMAKE_BUILD_TYPE STREQUAL debugfull OR DEFINED KMESS_DEBUG_OUTPUT )
SET( KMESS_ENABLE_DEBUG_OUTPUT "1" )
ELSE( CMAKE_BUILD_TYPE STREQUAL debugfull OR DEFINED KMESS_DEBUG_OUTPUT )
SET( KMESS_ENABLE_DEBUG_OUTPUT "0" )
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull OR DEFINED KMESS_DEBUG_OUTPUT )
# Set a default installation path
IF( NOT CMAKE_INSTALL_PREFIX )
SET( CMAKE_INSTALL_PREFIX "/usr" )
ENDIF( NOT CMAKE_INSTALL_PREFIX )
#### Other settings ####
# Generate config-kmess.h
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/config-kmess.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kmess.h )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
# continue in directories
ADD_SUBDIRECTORY( src )
ADD_SUBDIRECTORY( po )
ADD_SUBDIRECTORY( data )
ADD_SUBDIRECTORY( doc )
+1842 -10
View File
File diff suppressed because it is too large Load Diff
+230
View File
@@ -0,0 +1,230 @@
# Doxyfile 1.4.1-KDevelop
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = KMess
PROJECT_NUMBER = 2.0alpha
OUTPUT_DIRECTORY = ./apidocs
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 2
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = NO
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./kmess
FILE_PATTERNS = *.cpp *.h *.dox
RECURSIVE = YES
EXCLUDE = *.moc *.moc.cpp *.moc.h
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */build-*/*
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 4
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doc/apidocs_header.html
HTML_FOOTER = doc/apidocs_footer.html
HTML_STYLESHEET = doc/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = KMESSTEST KMESS_NETWORK_WINDOW
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = kmess.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
+32 -1
View File
@@ -1,6 +1,37 @@
KMess Feature list
========================
- 1.4pre1 -
- 2.0 -
Support to receive Ink (hand-written) messages.
Options to copy a contact's email, name, message and links present in the name/message
List of contact events, such as logins and logouts.
Chat Windows can be used again when reconnecting.
Quick retype of previous sent messages, using Ctrl+Up/Ctrl+Down.
- 1.5.1 -
Contact's MSN client detection.
Option to view contacts' Display Pictures in the contact list.
Option to enable spell checking in the chat windows.
Disable notification popups when there's a screen saver or a full screen application.
Added option to manually set your own MSN status to Idle.
When closing KMess to tray for the first time, a little screenshot of the notification area will help finding KMess' tray icon.
- 1.5 -
Support to exchange (send and receive) custom emoticons and nudges.
Receive-only support for winks and offline-im messages.
Fast file transfers, supporting MSN6+ direct connections.
MSN7 personal status messages are supported.
The appearance of chat message and emoticons can be changed on the fly.
Users with a temporary "guest" account can upgrade to a regular "stored" account.
Messages from the same contact can be grouped.
New default chat style, 'Fresh', making chats more colorful and friendly.
Now listening information can be exchanged.
New KDE style balloon notification popups.
Right-click options for links in the chat window.
Improved and more compact visual style for the chat windows.
Automatically download the display pictures of your contacts.
Option to select an image to use as display picture and to then crop unneeded parts away.
- 1.4 -
MSN6 display picture transfers are supported
MSN6 file transfer is supported (receiving only)
Taskbar flashes with new messages
+38 -5
View File
@@ -2,12 +2,22 @@
Installation Tip:
=================
In order for KMess to work properly, it must be configured first.
Run the configure script like this:
NOTE: This package is used to build KMess from source code.
If you're looking for a simple way to install KMess,
take a look at http://www.kmess.org/download/.
./configure
To install KMess from this source package you need to create a separate
build directory first. It must be created outside the source folder.
If the ./configure script completed with success, then type
mkdir kmess2-build
Then configure your build using cmake,
and point to the source folder:
cd kmess2-build
cmake ../kmess2
If the cmake scripts did not display any errors, you can run:
make
@@ -15,7 +25,30 @@ and then, as root, type
make install
That's it.
That's it!
Useful cmake parameters:
========================
Try the following switches the change the build.
-D CMAKE_INSTALL_PREFIX=/usr
Install in the /usr directory instead.
-D CMAKE_BUILD_TYPE=[none,debug,debugfull,release,relwithdebuginfo,minsizerel]
Set the preferred build type, which sets recommended compiler flags automatically.
Also consider running "ccmake" for an curses-interface to cmake.
That only works after the build directory is configured with cmake before.
* * * * * * The parts below do not apply to KMess 2 yet! * * * * * *
-24
View File
@@ -1,24 +0,0 @@
####### kdevelop will overwrite this part!!! (begin)##########
SUBDIRS = kmess po doc
EXTRA_DIST = kmess.kdevelop admin AUTHORS COPYING ChangeLog INSTALL README TODO kmess.lsm FEATURES
$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
$(top_srcdir)/subdirs:
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
package-messages:
$(MAKE) -f admin/Makefile.common package-messages
$(MAKE) -C po merge
dist-hook:
cd $(top_distdir) && perl admin/am_edit -padmin
cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
-14
View File
@@ -1,14 +0,0 @@
all:
@echo "This Makefile is only for the CVS repository"
@echo "This will be deleted before making the distribution"
@echo ""
@if test ! -d admin; then \
echo "Please recheckout this module!" ;\
echo "for cvs: use checkout once and after that update again" ;\
echo "for cvsup: checkout kde-common from cvsup and" ;\
echo " link kde-common/admin to ./admin" ;\
exit 1 ;\
fi
$(MAKE) -f admin/Makefile.common cvs
.SILENT:
+372
View File
@@ -1,5 +1,377 @@
Changes between KMess 2.0-alpha and 1.5.1:
--------------------------------------
- ported to KDE 4.
- added support to receive ink messages.
- added ability to re-use previously opened chat windows after reconnecting.
- added a log for contact logins and logouts at the bottom of the contact list
- added copy options for name, email, personal message, and links to right-click menu of contacts.
- added fast-retype of previous sentences using Ctrl+Up.
- added group selection box to the "add contact" dialog.
- improved overall user interface.
- improved client name detection of contacts.
- fixed font color chooser in the chat window, settings could be lost.
- fixed contact re-invites (chat resumes) to the chat when the first attempt failed.
Changes between KMess 1.5.1 and 1.5:
--------------------------------------
- added checking if a screensaver or fullscreen app is running, and disable notification popups.
- added option to show contact display pictures in the contact list.
- added spell checker to the chat window, its option is in the Settings menu.
- added a contact list popup text showing which MSN client your contacts use.
- added a little screenshot of the tray icon area when closing KMess to tray for the first time, to help finding where it is.
- added ability to manually select the Idle MSN status.
- added a warning message for broken SOCKS implementations which could cause KMess to freeze.
- fixed selecting a picture in the Autopackage version, and KDE 3.2 / KDE 3.3 installations.
- fixed a possible freeze, could only happen in developer builds (--enable-debug-output).
- fixed focus of typing area when reactivating the chat window.
- fixed the chat window title, which could continue blinking after its window had been given focus.
- updated Danish translation by Pascal d'Hermilly
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 1.5 and 1.5pre2:
--------------------------------------
- added support to send custom emoticons.
- added support for P4-Context field, used for by plugins of the official client for contact aliases (i.e. Xiaoi's Qun). Patch by LiuSizhuang.
- added initial status chooser at login, and in the account settings.
- added drag&drop for files in the chat window to send files.
- added internationalization support to the service status URL.
- added automatic download of new display pictures in the background.
- added option to crop a picture before using it as display picture.
- added zoom buttons to scale the chat window text.
- added context menu to open and copy links in chat window.
- added "remove and block" option in the contact remove dialog.
- added dialog to confirm overwrite when saving a chat to file.
- added dialog to confirm overwrite when renaming custom emoticons.
- added auto clean up of the configuration files for outdated info.
- added keepalive support to see when a contact really closed the chat window, or the chat went idle.
- added a tooltip to the system tray, showing current name and status.
- added warning message when chatlogs can't be saved (e.g. wrong permissions).
- added status message upon server shutdown for maintenance notification.
- added notification balloons for contact typing and contact status changes.
- added a workaround for NAT timeouts when behind a "black hole" router.
- changed default chat style to "Fresh", old style is renamed to "Classic".
- improved notification balloons, completely new implementation using more standard KDE functionality.
- improved notifications with correct balloons when transferring files and receiving winks and nudges.
- improved taskbar notification of new messages, added asterisk in front.
- improved "Remember this profile" checkbox, it's consistent with the selected account.
- improved error messages for adding invalid MSN accounts.
- improved memory usage by reducing dependencies on QWidget.
- improved memory usage when a chat is started to download a display picture in the background.
- improved tests for invalid e-mail addresses when adding a new contacts.
- improved account settings dialog behavior when adding invalid email addresses.
- improved chat window appearance, with a new right-click menu for the listed contacts, and a resizable message box.
- improved file transfer speed over high speed links.
- improved saving of settings; save directly, not only when KMess quits.
- improved login handling to Passport 3.0 webservices.
- improved the user manual, reorganized completely.
- improved developer API documentation, especially the networking classes.
- improved transfer window's reliability.
- prepared preliminary support for tabbed chats.
- fixed multiple problems with broken file/picture transfers, especially over slow links or slow systems.
- fixed replacing of custom emoticon placeholders which contain <, > or & characters, or quotes.
- fixed support for default messages from MSN Plus!.
- fixed keyboard shortcut to insert new lines in the chat messages.
- fixed keyboard shortcut to copy text in the chat window.
- fixed background rendering in the contact list.
- fixed now playing icon, previous one was SUSE-specific.
- fixed Hotmail folders opening in wrong browser.
- fixed login selectbox, display last selected account at logout.
- fixed opening the main window when KMess is started with KDE.
- fixed missing emoticon example pictures next to the emoticons checkbox.
- fixed settings dialog height, was too big for 800x600 displays.
- fixed settings of notification balloons, balloons can be disabled again.
- fixed emoticon theme settings previews, some themes lacked a preview image.
- fixed links to account registration and verification in the settings dialog.
- fixed maximum length of displayed messages in the message balloons.
- fixed notification balloons text with special messages, like nudges or file transfers.
- fixed resuming chats when there was no connection to switchboard (gray display pictures in the chat).
- fixed raising existing chats when trying to open one from the contact list.
- fixed duplicate chat windows when clicking repeatedly on a contact in the list.
- fixed reuse of chat windows to use expected behavour.
- fixed subtle GUI flashing in the chat window for the contact picture.
- fixed changing an accounts email, it did not get reflected in the initial login UI and the menu's.
- fixed personal message being sent when the main window lost focus, not only when we confirm its change.
- fixed non working 'open inbox/send mail' links for non-Hotmail accounts, which now open the mail account specified in the settings.
- fixed broken contact images which don't get updated; added data hash check.
- fixed connection timeout error with downloading offline-im messages.
- fixed connection timeout issues during login for slow connections.
- fixed incorrect "transfer failed" message when sending files to Mercury Messenger.
- fixed internal protocol message to withdraw a started file transfer (not visible with WLM).
- fixed internal protocol encoding with commands which update groups in the contact list.
- fixed internal protocol handling to allow MSNSLP ACK messages.
- fixed invalid image when contacts don't have a display picture or it's not valid anymore.
- fixed unwanted destroying of the direct connection if a switchboard connection restarts.
- fixed handling of direct connection write errors, revering to the switchboard.
- fixed unwanted "session is cancelled" messages after completing a file transfer.
- fixed issues with aborting invitations when a chat window closes.
- fixed blocking KMess user interface with account settings dialog.
- fixed blocking user interface when the network is down or slow during the login.
- fixed 'eventsrc' file not being found by KMess.
- fixed 'eventsrc' warning, path should be 'kmess/eventsrc'.
- fixed compiling in Mac OS X (fink environment with KDE3/X11).
- fixed a series of potential crashes with closing the chat window.
- fixed a crash when closing the application.
- fixed a crash when downloading offline-im messages.
- fixed a crash when the contact was removed with it's chat window open.
- fixed a crash when the contact cancels a file transfer and the user is still choosing a destination folder.
- fixed a crash when the direct connection could not be initialized correctly.
- fixed a crash when a contact changes status but its chatwindow is not yet loaded.
- fixed a freeze when receiving custom emoticons from Kopete.
- fixed a freeze when starting/resuming multiple chats at the same time.
- fixed a freeze when there are too many unacked P2P messages in a chat.
- fixed a freeze when starting a file transfer with direct connections.
- fixed a possible freeze when inserting emoticons into the messages.
- fixed memory leaks in the chat window using Valgrind.
- fixed many compiler warnings.
- fixed word puzzles in translations with notification balloons.
- fixed translations for the Transfer Window messages.
- removed custom proxy support in favor of the global KDE settings.
- reduced the time KMess waits before detecting a connection error.
- updated Arabic translation by Youssef Chahibi.
- updated Danish translation by Pascal d'Hermilly.
- updated Dutch translation by Jaap Woldringh.
- updated Finnish translation by Jussi Timperi.
- updated French translation by Andrea Blankenstijn and Choplair.
- updated German translation.
- updated Hungarian translation by Páder Rezsõ.
- updated Italian translation by Vincento Reale.
- updated Spanish translation by Christian Kaiser.
- updated Swedish translation by Christian Lundgren.
- updated Thai translation by Rachan Hongpairote.
- updated Turkish translation by Uğur Çetin.
- updated Simplified Chinese translation by Liu Sizhuang.
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 1.5pre2 and 1.5pre1:
--------------------------------------
- added "now playing" support, both sending and receiving.
- added file transfer preview support, both sending and receiving.
- added x-clientcaps message for third party client exchange.
- added option to disable the nudge shaking effect, completing the nudge support.
- added proper error message for webcam invitations, which are currently not supported yet.
- added support for an second incoming file transfer invitation to become client instead of server.
- added translation support for chat styles, fixed untranslated "says:" message in the chat window.
- added emoticon image conversion to the the personal status message.
- added warning message when KMess is installed in a folder where it can't find it's resources.
- added warning dialog when KMess can't find it's eventsrc file to handle notifications.
- improved visual *bold*, /italic/ and _underline_ effects, they don't hide the ASCII codes anymore.
- improved account menu's, display account handle instead of long friendly name.
- improved compatibility with Windows Live Messenger's protocol for client-to-client invitations.
- restored context menu in the chat window.
- fixed file transfers, a timer was not stopped to detect a direct connection timeout.
- fixed crash when a timeout occurs during a direct file transfer.
- fixed login problems with "restricted passport accounts".
- fixed image width/height of received custom emoticons.
- fixed link parsing, adding http:// before www. URL's, and fixed geek-style links (links without www. or http://).
- fixed unwanted resizing of the chat window when the statusbar text didn't fit.
- fixed unwanted resizing of the chat window sidebar.
- fixed contact window alignment, right-to-left names aligned randomly.
- fixed contact window updating when a group was succesfuly renamed.
- fixed lost personal status message when moving contacts.
- fixed own personal status message, it could literally become "<Enter your personal message here>".
- fixed missing right-to-left flag in sent chat messages.
- fixed message "<handle> has left the chat", displays contact name now.
- fixed missing contact name when adding new contacts.
- fixed missing "overwrite file" question when saving sent files.
- fixed tab order of the 'chatting' options panel.
- fixed revoking of sent invitations when a timeout occurred.
- fixed typing notification, these were not sent instantly when the user continues to type after sending a message.
- fixed emoticons support for KDE 3.3 and below.
- fixed emoticons installation with the installer.
- fixed compiling with automake 2.10.
- fixed compiling of the RPM with patch level KDE versions (e.g. 3.1-10).
- fixed character encoding problem in the desktop file.
- fixed filename of Estonian translation.
- updated website address, moved to www.kmess.org.
- updated Dutch translation by Jaap Woldringh.
- updated Danish translation by Pascal d'Hermilly.
- updated German translation.
- updated Finnish translation by Joonas Niilola.
- updated Hungarian translation by Páder Rezsõ.
- updated Italian translation by Valerio Pilo.
- updated Spanish translation by Jaume Corbí.
- updated Turkish translation by Uğur Çetin.
- updated Traditional Chinese translation, by Yen-chou Chen.
- added Hungarian translation by Páder Rezsõ.
- Removed ASL and unhappy icon because these are no longer used in Windows Live Messenger.
Changes between KMess 1.5pre1 and 1.4.3:
----------------------------------------
- added direct connection support, faster file transfers.
- added chat message styles. Styles can use all CSS2 features supported by KHTML.
- added emoticon themes to the chat window. They can be switched on-the-fly.
- added offline-im support (receiving only).
- added custom emoticon support (receiving only).
- added winks support (receiving only).
- added nudge support.
- added personal status message support.
- added grouping of chat messages from the same contact.
- added alt tags to all emoticons, for easy copy-pasting.
- added a link to "register.passport.net" for creating a new account.
- added support for file transfers between hosts of the same LAN.
- added support for parallel transfers over the same direct connection.
- added support for relaying invitations to another swichboard connection.
- added option to upgrade a temporary/guest account permanently (when "Remember this profile" was left unchecked).
- added detection of unverified passport e-mail adresses.
- added translation for Finnish.
- added Doxygen configuration to generate API docs.
- upgraded client-server protocol to MSNP12 (MSN Messenger 7.5).
- upgraded client-to-client protocol to MSNC5 (MSN Messenger 7.5).
- improved login dialog, replacing the confusing profile box.
- improved main window interface, added contact picture to main window.
- improved chat window interface, added sidebar for contacts and emoticons.
- improved settings dialog, added widgets of the "display pic" tab to the "accounts" tab.
- improved detection of login errors for problems with the MSN servers.
- improved chat message link detection with support for e-mail addresses and sftp:// links
and "geek-style" urls (urls without a http:// or www prefix, like "slashdot.org").
- improved performance for accounts with large contact lists.
- improved "connection timeout" message, with suggestions to "check the Internet connection and MSN service status".
- improved support for temporary/guest accounts (e.g. for internet cafe usage or friends visiting).
- improved right-to-left language support, chat messages are reversed in the same way 'kmess --reverse' changes the GUI.
- changed chat window title, displaying the contact name before the "KMess" part.
- changed emoticon size, emoticons are displayed at their real size instead of being scaled.
- fixed annoying error messages with picture transfers, only displayed in the console now.
- fixed repeatedly displaying "this contact is offline" warnings while typing a message.
- fixed unwanted saving of the contact list for "guest accounts", this was overlooked by a bugfix of 1.4.
- fixed minor issues that occurred when the chat connection is established but the invited contacts have not entered the chat yet.
- fixed handling of unexpected disconnections by the server, contactlist was not saved and reset, invitations were not aborted.
- fixed unwanted "Connection timed out" message when it took more then one minute to authenticate and download the contact list.
- fixed handling of connection errors, no error message was displayed except for connection timeouts.
- fixed closing the connection when 3 pings are missed.
- fixed detection of cancelled file transfers.
- fixed cancelling of file transfer invitations before the contact accepted.
- fixed cancelling of file transfer sessions by the one who didn't start the transfer.
- fixed display problems with dark color schemes.
- fixed parsing of chat messages containing both emoticons and hyperlinks.
- fixed login from main window, no longer creates a new account by default.
- fixed hanging user interface during file transfers invitations.
- fixed small memory leak, chat invitation was not removed.
- fixed title of the "save" menu item in the chat window.
- fixed error message for third-party "text/x-keepalive" message.
- fixed "&Verdana" font setting in chat messages. This was addressed in KMess 1.4,
but it could still appear if you never changed font settings.
- fixed font size of font selection buttons, as the font size is not used by the msn protocol.
- fixed race condition that could make KMess crash when a chat window was closed while a contact was leaving or typing.
- fixed overwriting chat logs when the conversation is restarted within the same minute.
- fixed saving settings of the main window menu when disconnecting/switching accounts.
- fixed e-mail notification settings, gray out options if user is not logged in with a Hotmail account.
- fixed file chooser path for display pictures, in SUSE it opened /etc/opt/kde instead of /opt/kde3
- fixed translation of Danish, renamed from "dk.po" to "da.po".
- fixed right-to-left support for translated notification/event/error messages in the chat window.
- updated Turkish translation, by Uğur Çetin.
- removed support for Qt 3.1 due the use of the QToolbox widget in the chat windows.
Changes between KMess 1.4.3 and 1.4.2:
--------------------------------------
- fixed a crash occuring when resuming a chat.
- fixed a crash at quit, caused in ContactAction disconnect code.
- fixed compilation error for KDE 3.5.1 (KURLLabel::setSizePolicy() API changed).
- fixed receiving files from Mercury Messenger, KMess responsed with an incorrect Content-Type field.
- fixed .Net messenger service status URL (was changed again).
- fixed two issues with certain unexpected MSNP2P packets:
- Bot2K3 4.1 sends the first ACK without flags.
- Encarta Instant Answers sends the data preparation message with the data flag set.
- fixed missing MSNP2P ack packets, accidently emulated a bug of MSN 7.0.
- fixed chat messages with links and emoticons (this is only a temporary fix)
- This fix disables emoticons in a chat message when there are links in the message too.
- As of 1.5 we can include a better the message parser/formatter which handles emoticons+links the right way.
- removed /debian folder as requested by Debian packagers (KMess is in Debian unstable now).
- removed --enable-phone, option is still not fully operational (needs to be replaced with libkcall).
- changed chat window statusbar to show by default, so it's more obvious why the contact picture lights up.
- added detection of https:// links
- added the (0) symbol for the clock emoticon.
- added contact status and picture to contact list tooltip.
Changes between KMess 1.4.2 and 1.4.1:
--------------------------------------
- correctly merged the patches of KMess 1.4.1 this time (sorry!)
- fixed the font selection buttons in the settings panel.
- fixed a problem with new contacts adding you while you're online.
- fixed a problem with rpm building as root in SuSE (KDE not in $PATH).
- fixed a problem and crash with display pictures when the contact has none.
- fixed a crash during KMess quit, contacts were unloaded incorrectly.
- fixed a crash after disabling the display picture.
- fixed a crash after closing the chat session with active invitations.
- added translation for Slovenian.
Changes between KMess 1.4.1 and 1.4:
------------------------------------
- fixed a crash during chat with MSN Messenger 7.5 (also fixes picture transfer).
- fixed a crash during chat with contacts that are not on your list.
Changes between KMess 1.4 and 1.4pre1:
--------------------------------------
- added translations for: German, Spanish, Swedish and Chinese Traditional.
- added a file icon to the file transfer dialog.
- added automatic downloading of updated contact pictures during chat sessions.
- added autopackage binreloc support, images can be loaded whatever the --prefix was.
- added 22x22 icons for KMess.
- added initial support for MSN Games/Activities (only displays name in chat window so far).
- added initial support for autopackage, it can still have problems because of C++ ABI changes.
- added support for dpkg-buildpackage to build Debian/Ubuntu packages.
- restored all languages, it appears fuzzy strings aren't displayed after all.
- improved the rpmbuild spec file:
- added a final status message with the produced package filename.
- added verbose colorful output.
- added more distro detections.
- added automatic rpm->tgz, rpm->deb conversion.
- added support for apg++, it will be used automatically used if it's installed.
- improved console output messages for msnp2p errors.
- optimized some network handling code.
- optimized the loading and locating of images.
- fixed compilation errors for KDE 3.1.
- fixed compilation errors for a few distro's (added stdlib.h).
- fixed the resuming of chat sessions, all pending messages are sent and re-connects are supported from both-sides.
- fixed the hidden chat windows, they stayed active in the background.
- fixed the closing of chat windows, closing a chat window really destroys it now.
- fixed the erratic crashes when quitting KMess.
- fixed the e-mail status bar display, it hides automatically again for non-hotmail accounts.
- fixed the e-mail status bar link, clicking the e-mail link opens the e-mail client again.
- fixed the e-mail client configuration, it's possible to include command arguments again.
- fixed the sidebar picture for contact picture that can't be loaded.
- fixed the URL for the MSN .Net server status.
- fixed the open link for file transfers.
- fixed the accept link, it can't be accepted twice now.
- fixed the file transfer toolbar icon in the chat window.
- fixed the layout issues of the file transfer dialog items.
- fixed the unwanted resizing of file transfer dialog items when the transfer finished or failed.
- fixed the rejection of unsupported invitation types (both mime and msnp2p).
- fixed the KMess-to-KMess msnp2p transfers (e.g. picture transfers).
- fixed the sending of files.
- fixed the canceling of active file transfers.
- fixed the canceling of invitations when the chat window closes.
- fixed the error messages for canceled invitations (they are more accurate now).
- fixed the msnp2p support (picture transfer, et. al) for chats with more then one contact.
- fixed the configure check for the auto-away feature.
- fixed the automatic saving of chat logs:
- chat logs were saved in the parent folder.
- chat logs were not saved when the contact left early.
- chat logs are no longer saved if the message area is empty.
- changed the chat log timestamp from closing date to starting date.
- fixed the another lost chat messages problem when being idle behind a NAT router.
- fixed the problems with KMess blocking KDE logout when the main window was still open.
- fixed the saving of settings at KDE logout.
- restored the shortcut key for the "New Line" button.
- removed the IP dialog for sending files, it always uses the external IP address now.
- removed the remote desktop invitation support, since it's not compatible with the official client.
Changes between KMess 1.4pre1 and 1.3:
--------------------------------------
- added msn6 picture transfer support
- added msn6 file transfer support (receiving only)
- added new file transfer dialog
+133 -30
View File
@@ -1,13 +1,64 @@
About KMess:
============
KMess is a MSN Messenger clone for Linux. It enables Linux users
to chat with friends online who are using MSN Messenger in
Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger
specific features and an easy-to-use interface.
Like many Linux and KDE applications, KMess is free software.
The licensing terms are the GNU General Public License.
Installation Tip:
=================
In order for KMess to work properly, it must be configured first.
Run the configure script like this:
NOTE: This package is used to build KMess from source code.
If you're looking for a simple way to install KMess,
take a look at http://www.kmess.org/download/.
./configure
First configure your build using the configure script:
If the ./configure script completed with success, then type
./configure --prefix=/usr
If everything went well, you can run:
cd build
make
and then, as root, type
make install
That's it!
Compiling with cmake:
=====================
KMess 2 is KDE 4 software, which uses 'cmake' to build the software.
To make it a bit more familiar for you, we have created a 'configure'
script which does all the cmake magic behind the scenes.
It's also possible to use 'cmake' directly.
The build commands become a little bit different.
First, you need to create a separate build directory:
mkdir build
Then configure your build using cmake,
and point to the source folder:
cd build
cmake ../
You can provide extra parameters with the '-D' option, see below.
If the cmake scripts did not display any errors, you can run:
make
@@ -15,7 +66,38 @@ and then, as root, type
make install
That's it.
Useful cmake parameters:
========================
Try the following switches to change the build.
-D CMAKE_INSTALL_PREFIX=/usr
Install in the /usr directory instead (default is /usr/local).
-D CMAKE_BUILD_TYPE=[none,debug,debugfull,release,relwithdebuginfo,minsizerel]
Set the preferred build type, which sets recommended compiler flags automatically.
-D KMESS_DEBUG_OUTPUT=[1,0]
Activates/deactivates KMess debugging output to console, even on release builds.
This flag is automatically enabled when the build type is "debugfull".
If you find this too difficult, consider using our "./configure" script
instead. This is a wrapper these 'cmake' arguments to make it easier,
and more familiar, to compile software.
Also consider running "ccmake" for an curses-interface to cmake.
That only works after the build directory is configured with cmake before.
* * * * * * The parts below do not apply to KMess 2 yet! * * * * * *
@@ -59,6 +141,7 @@ be installed automatically. Some worth mentioning are:
- libjpeg-devel
- libpng-devel
- zlib-devel
- libart_lgpl-devel
If configure tells you you're missing something that you think you
@@ -98,7 +181,7 @@ you need to install the "libjpeg-devel" package.
If you get this error:
''checking for Qt... configure: error:
Qt (>= Qt 3.1 (20021021)) (headers and libraries) not found.
Please check your installation!''
Please check your installation!''
you need to install the "qt-devel" (or "qt3-devel") package.
@@ -112,28 +195,26 @@ you need to make sure "kdelibs-devel" (or "kdelibs3-devel") is installed!
Installing from CVS:
Installing from SVN:
====================
If there is any need to install the CVS version, read on.
If there is any need to install the SVN version, read on.
The KMess CVS contains the latest changes made to KMess.
Each new feature or bugfix will be stored into CVS by developers.
The code in CVS will eventually become the new KMess release.
The KMess SVN repository contains the latest changes made to KMess.
Each new feature or bugfix will be stored into SVN by developers.
The code in SVN will eventually become the new KMess release.
Note that the CVS version is the equivalent
of an "alpha" or "beta" release!
NOTE: The SVN version is the equivalent
of an "alpha" or "beta" release; there also is
a little possibility that it won't even compile!
The changes made to CVS could take a few days to reach
the public servers. To install KMess from CVS you need to
have the packages "autoconf" and "automake" installed.
To install KMess from SVN you need to have the packages "autoconf"
and "automake" installed.
To download the CVS version, run these commands:
To download the SVN version, run these commands:
cvs -d :pserver:anonymous@cvs.sf.net/cvsroot/kmess login
(hit enter when prompted for a password)
cvs -d :pserver:anonymous@cvs.sf.net/cvsroot/kmess -z3 checkout kmess
svn checkout http://kmess.svn.sourceforge.net/svnroot/kmess/trunk/kmess/
If the download succeeds, run this command:
@@ -143,9 +224,9 @@ This will generate the ./configure script and Makefile templates.
Then you can proceed with the normal installation.
Each time the CVS version is updated, you can run
Each time the SVN version is updated, you can run
cvs update
svn update
make -f Makefile.dist
./configure
make
@@ -153,6 +234,9 @@ Each time the CVS version is updated, you can run
and you'll have the latest KMess version installed.
For more information about accessing the KMess SVN repository,
visit the KMess site at http://kmess.org/svn/ .
Updating the translations
@@ -167,15 +251,34 @@ This is what you need to do:
to a new file named "<your language>.po".
- Open the language "po" file, and start translating!
Also watch for translations marked as "fuzzy",
they often need updating.
- Add your "po" file to "kmess/po/Makefile.am"
- Install KMess from source again using:
make -f Makefile.dist (this requires "autoconf" and "automake")
./configure
they often need updating.
- The the following commands in the "po" folder:
make
make install
- Test the new translation
- E-mail it to the KMess developers
(if this doesn't work, run configure first)
- Test the new translation.
(to test other languages, run 'KDE_LANG=<code> kmess')
- Contact the KMess developers.
A more detailed tutorial can be found online
at http://www.kmess.org/translating/
Building RPM Packages
=====================
To build a RPM package for your distribution, run:
rpmbuild -tb kmess-<version>.tar.gz
Building Slackware Packages
===========================
To build a TGZ package for Slackware, also run:
rpmbuild -tb kmess-1.4.tar.gz
@@ -183,5 +286,5 @@ More Information
================
For more information about KMess, help forums, and the latest
releases, check out the homepage at http://kmess.sourceforge.net/
releases, visit the homepage at http://www.kmess.org/
+174 -53
View File
@@ -1,84 +1,205 @@
Before release:
===============
___ Comment out KMESSDEBUG
___ Change project optimization level
___ Set <UI version="3.1" ..> in *.ui files
___ Tag version in CVS
Please note this file is replaced by an online Trac installation.
Our trac installation can be found at: http://trac.kmess.org/
If you're looking for junior jobs, you may also contact us
at the KMess help forums.
Thanks
To do:
======
_Y_ Fix lost switchboard connection (contact types but KMess doesn't receive it..!)
_Y_ Fix contact moving to other groups (MSN6 incompatiblity?)
_Y_ New contacts are not visible in contact list (added from "x has added you to his contact list.."-dialog)
_Y_ Get MSN6 file transers operation again.
_Y_ KMess does not yet convert your MSN picture to a 96x96 PNG.
___ MSN6 pictures not updated yet if the contact changes it's picture.
_Y_ MSN6 doesn't download your picture again if you changed it.
___ Contactlist changes (custom name) are not saved if kmess closes during kde-logout.
___ The classic File transfer receiving blocks gui-events until a connection is made or fails.
_Y_ Login fails if you never signed on with the official MSN6 client.
___ Login blocks all gui-events.
___ Fix contact picture if file can't be found.
___ Fix the auto-away feature. (configure check and xautolock code)
___ Fix contactlist background picture scrolling
___ Fix problem when cancelling a connection during a connection attempt.
___ Fix a crash in ~ChatMaster at quit (connect to an idle contact, type something, close window, quit kmess).
Unfinished new features:
___ Invite contacts for a new chat session when the current chat is used for file transfers.
___ Invite contacts for a new chat session when the current chat has multiple participants (display dialog to choose the contact).
___ Change mouse cursor when hovering over the "personal status message" widget, make non-active background color less dark.
___ Lookup all "TODO" items in the code.
Unfinished protocol features:
___ Integrate UPnP support with file transfer invitation code.
___ Make sure KMess can send two files at once with the classic file transfer method (test this).
___ Support a SLP Decline/error message for a sent P2P/SLP transfer invitation, and continue to transfer over the switchboard.
___ Support a second invitation for file transfers, detect when remote client only returns it's internal IP or does not listen.
___ Detect network settings, make the other client server for file transfer (sending a second transfer-invite).
___ Update the classic FileTransfer application to use the new async-cnnect, DirectConnectionPool and showTransfer*() API.
Critical bugs:
___ Restore the documentation
___ Restore the translations
___ Balloon size fix (2 contacts on baloon).
___ Add 22x22 icons
___ Strange effect in contactlist toolbar? (a fault of KDE 3? I don't see how it can be fixed)
_X_ Contact logs being saved in the wrong place... (odd configuration problem where trailing slash for directory wasn't present)
_X_ Do you want to delete this *account*? Needs to be fixed. (Nope. Using "Account" now)
Junior jobs:
___ Improve wink playing, include preview, offer "play" button (also see other showWink() issues). Also fixes issues when chat is started with a wink.
___ Implement phone settings (PRP and BPR fields).
___ Implement privacy settings (GTC and BLP fields, messages like "can't chat with invited contact" because not in the AL).
___ Add the ability to select another browser for opened links, instead of the kde's default browser.
... And if you're up for a challenge, you could try one of the "Low priority protocol features" below too.
... Or try to implement a new MSN feature (see "Future ideas" section).
___ Add a link to "register.passport.net" somewhere
___ Include a tooltip in the contact sidebar.
___ Include a contact menu in the contact sidebar (see https://www.lab.fi.uva.es/~albgonz/kmesss.jpg)
___ Improve the contact list tooltip
___ Improve the contact list contact menu
___ Include the display icon above the contact list (too bad msn7 already implemented the same idea, makes it look like copying)
___ Compact sidebar list as described in http://kmess.sourceforge.net/board/viewtopic.php?t=460
Annoying bugs:
___ Fix repeated picture transfer invitations when contact declines or aborts the invitation (preferably disable only for a few minutes).
___ Automatically clean up the displaypics folder, and msnpicture-alias-##.png images that are older then 1 month.
___ Add detection for NAK responses to file transfer invitations
___ Improve performance of restyling the chat window: combine xml to one string.
___ Contact list items flicker, specially when there are a lot of contacts.
Low-priority features:
___ Improve wink processing messages of `cabextract` output in ChatWindow::showWink().
___ When chat window closes, inform user the file transfers will also abort.
___ See what happens when there is a picture transfer in a multi-chat, and one of the chats becomes buzy.
___ Improve the parsing of *bold* /italics/ and _underline_, so http:/website/ does not become italic and avoid mangling <a href="http://website/"> to <a href="http:/<i>/website/</i>">.
___ Disable cut/copy for the password line (InitialViewInterface, not using KPasswordEdit because it disables too much).
___ When opening chat windows, shift their position to make them cascade.
Low-priority code changes:
___ Add Application::get..TransferAbortMessage().
___ Only allow plugins/non-local files temporary when displaying winks?
___ Implement Application::attachToChat(..) feature to improve aborting?
___ Create a WinkArchive class for the code in ChatWindow::showWink().
___ Include contact meta-data in receivedMessage() call of ChatWindow::showWink().
___ Use kdWarning() instead of kdDebug() << "WARNING", for warning messages.
___ Use if(KMESS_NULL(..)) checks instead of current if(.. != 0) { .. }
___ Move utility classes to a separate folder.
___ Put TcpConnectionBase under MsnConnection.
___ Remove all #includes for <kdebug.h> and replace it with "kmessdebug.h" (watch for inclusions from subdirs)
Low-priority protocol features:
___ Support adding contacts to multiple groups.
___ Detect multiple external IP addresses to advertise in file transfer invite message.
___ Support sending the data-preparation ACK later with Windows Live Messenger picture transfers.
___ Support direct connection setups when requesting contact pictures.
___ Support aborting the data-preparation, also detect when contact does this.
___ Support the datacast emulation over MSNP2P for MSNC1-compatible clients (for winks).
___ Test whether applications need to be aborted when the switchboard reconnects.
___ Check P2P incomingMessages_ / outgoingMessages_ cache for timeouts.
___ Leave a P2PApplication half-open to receive a final error message.
___ Use "URL PERSON/PROFILE" settings.
Wishes by users for 1.5:
___ Compact sidebar list as described in http://www.kmess.org/board/viewtopic.php?t=460
(make it optional, let the user choose between "no", "compact", "full")
___ Maybe: improve chat window layout like http://kde-apps.org/content/show.php?content=24461
(looks more clean, though it's a bit kmerlin like though, and the current pictures list is not that bad for multi-chat) - Being worked on
___ Group off-line contacts in one single group.
___ Group chats: use more compact contact frame.
___ Account menu's: only show submenu when there are multiple accounts.
___ XMMS2 now listening: http://www.kmess.org/board/viewtopic.php?t=1569 (use relaytool from autopackage.org for that).
Wishes by users for 1.6:
___ Tabbed chats.
Open for discussion:
___ Order of the title in the main window, account before or after. Should distinguish from the chat windows though.
Implemented for 1.5:
_Y_ Implement text/x-clientcaps message and MsnObject name to advertise KMess to other third-party messengers.
_Y_ Add a checkbox to the settingspanel to disable the shaking window effect.
_Y_ Support emoticons folder with KDE 3.3
_Y_ Support "now playing" by other contacts, use dcop for our status.
_Y_ Handle closed direct connection, KMess keeps using the direct connection.
_Y_ Implement i18n() for chat styles, e.g. use libxml to replace all text nodes, create an XSLT to extract all text nodes.
_Y_ Fix the memory-leak of sentMessages_ for chat messages, these are only cleared at a NAK currently.
_Y_ Send previews of images in msn file transfers.
_Y_ Fix detection of context field splitter in FileTransferP2P::contactStarted1..(), also needed to show image previews.
_Y_ Contact sidebar width is not saved/restord anymore.
_Y_ Contact sidebar width is changed when the chat window resizes.
_Y_ Check if our eventsrc file is found in the KDE-dirs, otherwise warn KMess can't notify or flash the taskbar or play sounds (see: http://www.kmess.org/board/viewtopic.php?t=1619)
_N_ (caused by Beryl bug) "Focus stealing prevention", open the new chat windows in the background by default.
_Y_ Add save log button to network window.
_Y_ Improve removing contacts, offer dialog to block the contact as well (currently always kept in allowed list).
_Y_ Display a message box if the chat logs can't be saved because the folder no longer exists.
_Y_ Automatically save settings when pressing OK, not when closing KMess.
_Y_ Fix settings for balloon notifications, see http://www.kmess.org/board/viewtopic.php?t=559
_Y_ Now listening icon is SUSE specific
_Y_ Fix MsnConnection::addPercents(), replace with KURL::encode_string(), but test for compatibility.
_Y_ Replace warning message "you can't change your friendly name" with something less unobtrusive.
_Y_ Emoticons are no longer displayed in the chat settings tab.
_Y_ Improve settingsdialog height, for 800x600 displays.
_Y_ Hide the register link when editing an account.
_Y_ Remove the dependency on QWidget for data-classes.
_Y_ Add a balloon if the contact start the chat with an filetransfer/nudge/wink.
_Y_ Implement KDE passive popups so the balloon code can be removed later.
_Y_ Balloon size fix (2 contacts on balloon), might become obsolute when passive popups are used instead.
_Y_ Get rid of the balloons
_Y_ Drag and drop of files in the chat window.
_Y_ Fix newline shortkey Ctrl+Enter / Shift+Enter in GNOME. In fact it didn't work at all, not only in GNOME. :P
_Y_ Delete contact settings when contact no longer exists in the contact list.
_Y_ Implement cleaning up of the kmessrc file, remove old Contact entries that are no longer used.
_Y_ Make moving of contacts smoother, see MsnNotificationConnection::getAdc().
_Y_ Fix error messages with 'actions -> new contact' on a 'non-existing contact', 'existing contact' and 'contact without @'.
_N_ Move network/extra/httpsoapconnection to the network root folder.
_Y_ Move chat/invitedcontact.h to the contact folder.
_Y_ Implement text/x-keepalive message so be sure when a contact really left a chat.
_Y_ Update binreloc support to version 2.0.
_Y_ Crash with downloading offline-im messages: http://www.kmess.org/board/viewtopic.php?t=1490
_Y_ Login blocks all gui-events: make all connection attempts async
_Y_ Allow users to scale fonts in the chat window (zoom icons).
_Y_ Fix problems with clicking on contacts rapidly, see http://www.kmess.org/board/viewtopic.php?t=533
_Y_ Decouple the MsnSwitchboardConnection from the ChatWindow class, for picture transfers in the background.
_Y_ Highlight the text of the contact list item when it's active.
_Y_ Fix contact list background picture scrolling
_Y_ Implement setEnabled() checks for the contact group context menu in KMessView::slotContextMenu().
_Y_ Optionally download contact pictures when the picture changed but they're not in a chat yet.
_Y_ Test whether a display picture is fully received, and remove the image from the cache otherwise.
_Y_ Limit the maximum number of MSN Object simultaneous downloads, to avoid server flooding. See ChatMaster::slotContactChangedMsnObject().
_Y_ Fix e-mail support for non-Hotmail accounts, don't attempt to use Hotmail. Use chosen app or default KDE mail app instead).
_Y_ Update the accounts listed in the initial list When one of the registered accounts is deleted.
_Y_ Improve the contact list contact menu
_N_ Check if the mutex lock in MsnConnection is really needed anymore.
_Y_ Restore the context menu in the chat window.
_Y_ Disallow logging in without having entered a password.
_Y_ When the switchboard is disconnected (gray contact pictures), the command to invite new contacts will get ignored when a new switchboard gets ready.
_Y_ In the emoticon settings panel, don't assume "smile.png" will always be available (parse theme, preferably with an EmoticonTheme class).
_Y_ Include a tooltip in the contact sidebar.
_Y_ Include a contact menu in the contact sidebar (see https://www.lab.fi.uva.es/~albgonz/kmesss.jpg)
_Y_ When the contact disables it's picture, should we leave the current one active, or revert the the "unknown" picture?
_Y__ Group chats: remove contact frame when a user leaves the chat.
_Y_ Support removing a contact from just one group.
_Y_ Group chats: fix status bar when multiple users are typing a message.
_Y_ Implement UPnP support
_Y_ Add winks support
_Y_ Add emoticon transfer support
_N_ "Who has me in his/hers contact list?" dialog (allowed/removed groups already reveal this)
_N_ Include the network-window as "--with-network-window" if the network-window-code displays traffic nicer.
Future ideas:
=============
* MSN Protocol support:
MSN Protocol support:
___ Improve old file transfer code, multiple connections like MSN5 does.
___ Implement UPnP support
___ Implement a settings category ("File transfers") where the user can at least choose:
- "[x] Allow KMess to control my internet router programmatically [learn more]"
- "Use the following port to receive UPnP broadcast responses: [default 1900]"
___ Implement STUN support, also for Connection-Type field, see http://en.wikipedia.org/wiki/STUN and http://en.wikipedia.org/wiki/UDP_hole_punching.
___ Add voice (SIP) support
___ Add Voice clips support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=11505&t=11437
___ Add webcam (RTP) support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=9837&t=9837
___ Add nudge support (easy, and make the kmess-version less annoying, highlight of contact picture for example)
___ Add winks support
___ Add emoticon transfer support
___ Add Ink support?
___ Previews in msn6 image transfers
___ Implement MSN6 direct connection filetransfers
___ Fix msn remote desktop invitation support (context field with user/pass)
___ Upgrade to MSNP10 support (new LST commands for contact list, etc..)
___ Add HTTP connection method.
___ Implement MSN Spaces integration
___ Implement MSN Games support (ActicitiesCollection : public QPtrList<Activity>)
___ Implement shared folders.
___ Upgrade to MSNP14, but not until the protocol is fully understood! (it has some radical changes).
* Invitation support:
Invitation support:
___ Check whether gnomemeeting, krdc exists before starting/acceping a session
___ Support Konference for netmeeting invitations as well.
___ Detect whether gnomemeeting or konference exists before starting a netmeeting session.
* Interface features:
___ Drag and drop of files in the chat window.
___ Update contact edit dialog, icon button for contact icon.
Interface features:
___ Update contact properties edit dialog, icon button for contact icon.
___ Browse/view the contact picture cache (include meta data, like contact handle and date/time)
_Y_ Fix contact list selection bar (look how Kopete does it?)
___ Show an icon overlay for contact connected with webmessenger.msn.com / MSN Mobile
___ Add contact icon (purple?) for unknown contacts added by others in a multi-chat session.
___ Emoticon themes (instead of overwriting existing emoticons)
___ Chat style themes (XSL files)
_X_ "Who has me in his/hers contact list?" dialog (allowed/removed groups already reveal this)
___ Include the network-window as "--with-network-window" if the network-window-code displays traffic nicer.
* KDE Integration:
KDE Integration:
___ KDE-IM bridge (http://developer.kde.org/documentation/library/cvs-api/interfaces/html/classKIMIface.html)
___ GetHotNewStuff (as of KDE 3.4, either support it through a KPart, or wait for KDE 4 conversion)
___ KWallet integration
-179
View File
@@ -1,179 +0,0 @@
## generate API documentation with doxygen
apidox-am-yes:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\
if test ! -x $(top_builddir)/apidocs/common; then \
if test -d $(top_srcdir)/doc/common; then \
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
else \
common_dir=$(kde_libs_htmldir)/en/common ;\
fi ;\
$(LN_S) $$common_dir $(top_builddir)/apidocs/common; \
fi ;\
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
echo "PROJECT_NAME = \"$(subdir) Library\"" >> Doxyfile; \
echo "PROJECT_NUMBER = \"Version $(VERSION)\"" >> Doxyfile; \
echo "INPUT = $(srcdir)" >> Doxyfile; \
echo "IMAGE_PATH = $(top_srcdir)/doc/api" >> Doxyfile ;\
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile; \
echo "HTML_OUTPUT = $(subdir)/html" >> Doxyfile; \
echo "HTML_HEADER = $(top_builddir)/apidocs/common/header.html" >> Doxyfile;\
echo "HTML_FOOTER = $(top_builddir)/apidocs/common/footer.html" >> Doxyfile;\
echo "HTML_STYLESHEET = $(top_builddir)/apidocs/common/doxygen.css" >> Doxyfile;\
echo "LATEX_OUTPUT = $(subdir)/latex" >> Doxyfile; \
echo "RTF_OUTPUT = $(subdir)/rtf" >> Doxyfile; \
echo "MAN_OUTPUT = $(subdir)/man" >> Doxyfile; \
echo "GENERATE_HTML = $(GENERATE_FLAG)" >> Doxyfile ;\
echo "GENERATE_MAN = $(GENERATE_FLAG)" >> Doxyfile ;\
echo "GENERATE_LATEX = $(GENERATE_FLAG)" >> Doxyfile ;\
if test -n "$(DOXYGEN_EXCLUDE)"; then \
patterns= ;\
dirs= ;\
for item in `echo "$(DOXYGEN_EXCLUDE)"`; do \
if test -d "$(srcdir)/$$item"; then \
dirs="$$dirs $(srcdir)/$$item/" ;\
else \
patterns="$$patterns $$item" ;\
fi ;\
done ;\
echo "EXCLUDE_PATTERNS += $$patterns" >> Doxyfile; \
echo "EXCLUDE += $$dirs" >> Doxyfile ;\
fi ;\
echo "TAGFILES = \\" >> Doxyfile; \
tags='$(DOXYGEN_REFERENCES) qt'; for tag in $$tags; do \
tagpath= ;\
path="../../$$tag" ;\
if test -f $(top_builddir)/apidocs/$$tag/$$tag.tag; then \
tagpath="$(top_builddir)/apidocs/$$tag/$$tag.tag" ;\
else \
tagpath=`ls -1 $(kde_htmldir)/en/*-apidocs/$$tag/$$tag.tag 2> /dev/null` ;\
if test -n "$$tagpath"; then \
path=`echo $$tagpath | sed -e "s,.*/\([^/]*-apidocs\)/$$tag/$$tag.tag,../../../\1/$$tag,"` ;\
fi ;\
fi ;\
if test "$$tag" = qt; then \
echo $$tagpath=$(QTDOCDIR) >> Doxyfile ;\
else if test -n "$$tagpath"; then \
echo "$$tagpath=$$path/html \\" >> Doxyfile ;\
fi ;\
fi ;\
done ;\
echo "GENERATE_TAGFILE = $(top_builddir)/apidocs/$(subdir)/`basename $(subdir)`.tag" >> Doxyfile ;\
echo "IGNORE_PREFIX = K" >> Doxyfile ;\
echo "HAVE_DOT = $(KDE_HAVE_DOT)" >> Doxyfile ;\
$(DOXYGEN) Doxyfile ;\
fi
apidox-am-no:
install-data-local: install-apidox
## install API documentation
install-apidox:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi; \
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
for file in $$list; do \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
done; \
fi; \
rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
$(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
else\
if test -d $(top_builddir)/apidocs; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
list=`cd $(top_builddir)/apidocs && ls -1`; \
echo "installing $(top_builddir)/apidocs/$$file" ;\
for file in $$list; do \
if test -f $(top_builddir)/apidocs/$$file; then \
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi; \
done ; fi; \
fi
uninstall-local: uninstall-apidox
## uninstall API documentation
uninstall-apidox:
@if test "$(subdir)" != "."; then \
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi\
else\
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi\
fi
apidox:
@if test "$(subdir)" != "."; then \
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
else \
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
fi
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
list='$(SUBDIRS)'; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
echo "Making apidox in $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \
fi ; fi ;\
done; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
echo "Making apidox in $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \
fi ; fi ;\
done; \
fi
apidox-am-toplevel-no:
apidox-am-toplevel-yes:
@echo "*** Creating API documentation main page"; \
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
echo "PROJECT_NAME = \"$(DOXYGEN_PROJECT_NAME)\"" >> Doxyfile ; \
echo "PROJECT_NUMBER = \"$(DOXYGEN_PROJECT_NUMBER)\"" >> Doxyfile ; \
echo "INPUT = $(top_srcdir)" >> Doxyfile ; \
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile ; \
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
echo "RECURSIVE = NO" >> Doxyfile ; \
echo "SOURCE_BROWSER = NO" >> Doxyfile ; \
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
echo "HTML_OUTPUT = ." >> Doxyfile ; \
echo "HTML_HEADER = apidocs/common/mainheader.html" >> Doxyfile ; \
echo "HTML_FOOTER = apidocs/common/mainfooter.html" >> Doxyfile ; \
echo "HTML_STYLESHEET = apidocs/common/doxygen.css" >> Doxyfile ; \
echo "GENERATE_LATEX = NO" >> Doxyfile ; \
echo "GENERATE_RTF = NO" >> Doxyfile ; \
echo "GENERATE_MAN = NO" >> Doxyfile ; \
echo "GENERATE_XML = NO" >> Doxyfile ; \
echo "GENERATE_AUTOGEN_DEF = NO" >> Doxyfile ; \
echo "ENABLE_PREPROCESSING = NO" >> Doxyfile ; \
echo "CLASS_DIAGRAMS = NO" >> Doxyfile ; \
echo "HAVE_DOT = NO" >> Doxyfile ; \
echo "GENERATE_HTML = YES" >> Doxyfile ;\
$(mkinstalldirs) $(top_builddir)/apidocs ; \
rm -f $(top_builddir)/apidocs/common ; \
if test -d $(top_srcdir)/doc/common; then \
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
else \
common_dir=$(kde_libs_htmldir)/en/common ;\
fi ;\
$(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\
doxygen Doxyfile; \
rm -f Doxyfile
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
# Local Variables:
# mode: makefile
# End:
File diff suppressed because it is too large Load Diff
-35
View File
@@ -1,35 +0,0 @@
### Makefile.common
###
### Copyright (C) 2002 by the KDE developers
### All the real work is done by the shellscript cvs.sh
SHELL=/bin/sh
cvs dist cvs-clean configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4:
@admindir=$(admindir); \
if test "x$$admindir" = x; then \
admindir=.; until test -f $$admindir/admin/cvs.sh; do \
admindir=$$admindir/..; \
if test `cd $$admindir && pwd` = / ; then break; fi; \
done; \
admindir=$$admindir/admin; \
if test -f $$admindir/cvs.sh; then :; else \
echo "Can't find the admin/ directory in any parent of the"; \
echo "current directory. Please set it with admindir=..."; \
exit 1; \
fi; \
fi; \
if test "$@" = "package-merge"; then \
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
$(SHELL) $$admindir/cvs.sh package-merge ;\
else \
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
fi
configure.in: configure.files subdirs
configure.files: subdirs
.SILENT:
.PHONY: cvs dist cvs-clean package-merge package-messages
File diff suppressed because it is too large Load Diff
-2442
View File
File diff suppressed because it is too large Load Diff
-156
View File
@@ -1,156 +0,0 @@
#!/usr/bin/perl -w
use DB_File;
use Fcntl ':flock';
if (!defined($ARGV[0])) {
print "usage: requires .class dump as parameter!\n";
exit;
}
sub bailout
{
untie %bcheckdb if(defined(%bcheckdb));
if(defined(MYLOCK)) {
flock MYLOCK, LOCK_UN;
close(MYLOCK);
}
print @_;
exit 5;
}
sub ask_user
{
my ($dbkey, $dbchunk) = @_;
if (defined($ENV{"BCHECK_UPDATE"})) {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
&bailout("BC problem detected") if (! -t STDIN);
print "(I)gnore / (Q)uit / (U)pdate: ";
my $key;
while(defined(read STDIN, $key, 1)) {
$key = lc($key);
print "got: >$key<\n";
return if ($key eq 'i');
&bailout("BC problem. aborted") if ($key eq 'q');
if ($key eq 'u') {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
print "\n(I)gnore / (Q)uit / (U)pdate: ";
}
}
sub diff_chunk($$)
{
my ($oldl, $newl) = @_;
my @old = split /^/m, $oldl;
my @new = split /^/m, $newl;
my $haschanges = 0;
my $max = $#old > $#new ? $#old : $#new;
die "whoops. key different" if ($old[0] ne $new[0]);
if ($#old != $#new) {
warn ("Structural difference.\n");
print @old;
print "-----------------------------------------------\n";
print @new;
$haschanges = 1;
return $haschanges;
}
print $old[0];
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
my $c = 1;
while ($c < $max) {
my ($o, $n) = ($old[$c], $new[$c]);
chomp $o;
chomp $n;
$c++;
next if ($o eq $n);
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
next if ($n eq "$1$class$2");
}
$haschanges = 1;
print "-$o\n+$n\n\n";
}
return $haschanges;
}
local $dblock = $ENV{"HOME"} . "/bcheck.lock";
my $dbfile = $ENV{"HOME"} . "/bcheck.db";
my $cdump = $ARGV[0];
die "file $cdump is not readable: $!" if (! -f $cdump);
# make sure the advisory lock exists
open(MYLOCK, ">$dblock");
print MYLOCK "";
flock MYLOCK, LOCK_EX;
tie %bcheckdb, 'DB_File', $dbfile;
my $chunk = "";
open (IN, "<$cdump") or die "cannot open $cdump: $!";
while (<IN>) {
chop;
s/0x[0-9a-fA-F]+/0x......../g;
s/base size=/size=/g;
s/base align=/align=/g;
$chunk .= $_ . "\n";
if(/^\s*$/) {
my @lines = split /^/m, $chunk;
my $key = $lines[0];
chomp $key;
if($key !~ /<anonymous struct>/ &&
$key !~ /<anonymous union>/) {
if(defined($bcheckdb{$key})) {
my $dbversion = $bcheckdb{$key};
if($dbversion ne $chunk) {
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
}
}
else {
$bcheckdb{$key} = $chunk;
print "NEW: $key\n";
}
}
$chunk = "";
next;
}
}
close(IN);
untie %bcheckdb;
flock MYLOCK, LOCK_UN;
close(MYLOCK);
exit 0;
-99
View File
@@ -1,99 +0,0 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Copyright 1999, 2000 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Usage:
# compile PROGRAM [ARGS]...
# `-o FOO.o' is removed from the args passed to the actual compile.
prog=$1
shift
ofile=
cfile=
args=
while test $# -gt 0; do
case "$1" in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we do something ugly here.
ofile=$2
shift
case "$ofile" in
*.o | *.obj)
;;
*)
args="$args -o $ofile"
ofile=
;;
esac
;;
*.c)
cfile=$1
args="$args $1"
;;
*)
args="$args $1"
;;
esac
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$prog" $args
fi
# Name of file we expect compiler to create.
cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
while true; do
if mkdir $lockdir > /dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir $lockdir; exit 1" 1 2 15
# Run the compile.
"$prog" $args
status=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
fi
rmdir $lockdir
exit $status
-191
View File
@@ -1,191 +0,0 @@
#!/usr/bin/env perl
# this script patches a config.status file, to use our own perl script
# in the main loop
# we do it this way to circumvent hacking (and thereby including)
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
#
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# we have to change two places
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
# later autoconf's
# 2. the big main loop which patches all Makefile.in's
use strict;
use File::Basename;
my $ac_aux_dir = dirname($0);
my ($flag);
my $ac_version = 0;
my $vpath_seen = 0;
$flag = 0;
while (<>) {
# usage of $flag: 0 -- we have seen nothing yet
# 1 -- we are in (1)
# 2 -- we have ended (1)
# 3 -- we are in (2)
# 4 -- we ended (2)
if ($flag == 4) {
print;
} elsif ($flag == 0) {
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
# ends with (excluding) "CONFIG_FILE=..."
# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
# but instead the (2) directly follow (1)
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
$flag = 1;
if ($1 eq 'lines') {
# lets hope its different with 2141,
# wasn't able to verify that
if ($2 eq '48') {
$ac_version = 250;
}
else {
$ac_version = 2141;
}
} elsif ($1 eq 'cmds') {
$ac_version = 213;
}
# hmm, we don't know the autoconf version, but we try anyway
} else {
print;
}
} elsif ($flag == 1) {
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
print;
$flag = 2;
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
}
} elsif ($flag == 2) {
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
# end with: "rm -f conftest.s\*"
# on autoconf 250, it ends with '# CONFIG_HEADER section'
#
# gg: if a post-processing commands section is found first,
# stop there and insert a new loop to honour the case/esac.
# (pattern: /^\s+#\sRun the commands associated with the file./)
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
} else {
print;
}
} elsif ($flag == 3) {
if (/^\s*rm\s+-f\s+conftest/ ) {
$flag = 4;
&insert_main_loop();
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
$flag = 4;
&insert_main_loop();
#die "hhhhhhh";
if ($ac_version != 2141) {
print STDERR "hmm, don't know autoconf version\n";
}
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
$flag = 4;
my $commands = defined $2;
&insert_main_loop();
$commands && insert_command_loop();
if($ac_version != 250) {
print STDERR "hmm, something went wrong :-(\n";
}
} elsif (/VPATH/ ) {
$vpath_seen = 1;
}
}
}
die "wrong input (flag != 4)" unless $flag == 4;
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
sub insert_main_loop {
if ($ac_version == 250) {
&insert_main_loop_250();
}
else {
&insert_main_loop_213();
}
}
sub insert_main_loop_250 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
EOF
}
print <<EOF;
rm -f \$tmp/subs.files
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$tmp/subs.files
fi
done
if test -f \$tmp/subs.files ; then
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
fi
rm -f \$tmp/subs.files
fi
EOF
return;
}
sub insert_main_loop_213 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
if test "x\$ac_cs_root" = "x" ; then
ac_cs_root=conftest
fi
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
EOF
}
print <<EOF;
rm -f \$ac_cs_root.sacfiles
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$ac_cs_root.sacfiles
fi
done
if test -f \$ac_cs_root.sacfiles ; then
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
fi
rm -f \$ac_cs_root.s*
EOF
return;
}
sub insert_command_loop {
print <<EOF;
for ac_file in .. \$CONFIG_FILES ; do
EOF
}
-1449
View File
File diff suppressed because it is too large Load Diff
-236
View File
@@ -1,236 +0,0 @@
#!/usr/bin/env perl
# a script for use by autoconf to make the Makefiles
# from the Makefile.in's
#
# the original autoconf mechanism first splits all substitutions into groups
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
# (so around 2-3 times per Makefile.in). So this takes forever, as sed
# has to recompile the regexps every time.
#
# this script does better. It changes all Makefile.ins in one process.
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
#
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
use strict;
use File::Path;
my $ac_subs=$ARGV[0];
my $ac_sacfiles = $ARGV[1];
my $ac_given_srcdir=$ARGV[2];
my $ac_given_INSTALL=$ARGV[3];
my @comp_match;
my @comp_subs;
#print "ac_subs=$ac_subs\n";
#print "ac_sacfiles=$ac_sacfiles\n";
#print "ac_given_srcdir=$ac_given_srcdir\n";
#print "ac_given_INSTALL=$ac_given_INSTALL\n";
my $configure_input;
my ($srcdir, $top_srcdir);
my $INSTALL;
my $bad_perl = ($] < 5.005);
my $created_file_count = 0;
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
my @subs = <CF>;
close(CF);
chomp @subs;
@comp_match=();
@comp_subs=();
if ($bad_perl) {
print "Using perl older than version 5.005\n";
foreach my $pat (@subs) {
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
|| ($pat =~ m/s,([^,]*),(.*),;t/)
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% )
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
$repl =~ s/\\(.)/$1/g;
push @comp_subs, make_closure($srch, $repl);
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_subs, make_closure($1, "");
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
} else {
foreach my $pat (@subs) {
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
($pat =~ /s,([^,]*),(.*),;t/) ) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
$repl =~ s/\\(.)/$1/g;
push @comp_subs, $repl;
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_match, eval "qr/\Q$1\E/";
push @comp_subs, "";
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
}
undef @subs;
# read the list of files to be patched, form:
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
my @ac_files = <CF>;
close(CF);
chomp @ac_files;
my $ac_file;
foreach $ac_file (@ac_files) {
next if $ac_file =~ /\.\./;
next if $ac_file =~ /^\s*$/;
my $ac_file_in;
my ($ac_dir, $ac_dots, $ac_dir_suffix);
if ($ac_file =~ /.*:.*/ ) {
($ac_file_in = $ac_file) =~ s%[^:]*:%%;
$ac_file =~ s%:.*%%;
} else {
$ac_file_in = $ac_file.".in";
}
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
# The file is in a subdirectory.
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
($ac_dir_suffix = $ac_dir) =~ s%^./%%;
$ac_dir_suffix="/".$ac_dir_suffix;
# A "../" for each directory in $ac_dir_suffix.
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
} else {
$ac_dir_suffix="";
$ac_dots="";
}
if ($ac_given_srcdir eq ".") {
$srcdir=".";
if ($ac_dots) {
( $top_srcdir = $ac_dots) =~ s%/$%%;
} else { $top_srcdir="."; }
} elsif ($ac_given_srcdir =~ m%^/%) {
$srcdir=$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_given_srcdir;
} else {
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_dots.$ac_given_srcdir;
}
if ($ac_given_INSTALL) {
if ($ac_given_INSTALL =~ m%^/% ) {
$INSTALL = $ac_given_INSTALL;
} else {
$INSTALL = $ac_dots.$ac_given_INSTALL;
}
}
print "fast creating $ac_file\n";
unlink $ac_file;
my $ac_comsub="";
my $fname=$ac_file_in;
$fname =~ s%.*/%%;
$configure_input="$ac_file. Generated from $fname by config.pl.";
my $ac_file_inputs;
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
patch_file($ac_file, $ac_file_inputs);
++$created_file_count;
}
print "config.pl: fast created $created_file_count file(s).\n";
sub patch_file {
my ($outf, $infiles) = @_;
my $filedata;
my @infiles=split(' ', $infiles);
my $i=0;
foreach my $name (@infiles) {
if (open(CF, "< $name")) {
while (<CF>) {
$filedata .= $_;
}
close(CF);
} else {
print STDERR "can't open $name: $!"."\n";
}
}
$filedata =~ s%\@configure_input\@%$configure_input%g;
$filedata =~ s%\@srcdir\@%$srcdir%g;
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
$filedata =~ s%\@INSTALL\@%$INSTALL%g;
if ($bad_perl) {
while ($i <= $#comp_subs) {
my $ref = $comp_subs[$i];
&$ref(\$filedata);
$i++;
}
} else {
while ($i <= $#comp_match) {
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
$i++;
}
}
open(CF, "> $outf") || die "can't create $outf: $!";
print CF $filedata;
close(CF);
}
sub make_closure {
my ($pat, $sub) = @_;
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
if ($@) {
print "can't create CODE: $@\n";
}
return $ret;
}
-1552
View File
File diff suppressed because it is too large Load Diff
-30
View File
@@ -1,30 +0,0 @@
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
# And if so, warn when they don't match
if test "$kde_libs_prefix" != "$given_prefix"; then
# And if kde doesn't know about the prefix yet
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
if test $? -ne 0; then
echo ""
echo "Warning: you chose to install this package in $given_prefix,"
echo "but KDE was found in $kde_libs_prefix."
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
echo "Then restart KDE."
echo ""
fi
fi
fi
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi
-57
View File
@@ -1,57 +0,0 @@
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
dnl KDE_USE_QT
AC_PATH_KDE
-87
View File
@@ -1,87 +0,0 @@
#! /usr/bin/perl
#
# This script recursively (beginning with the current directory)
# wipes out everything not registered in CVS.
#
# written by Oswald Buddenhagen <ossi@kde.org>
# inspired by the "old" cvs-clean target from Makefile.common
#
# This file is free software in terms of the BSD license. That means
# that you can do anything with it except removing this license or
# the above copyright notice. There is NO WARRANTY of any kind.
#
sub rmrf()
{
my $fn = shift;
lstat ($fn);
if (-d _) {
if (opendir (DIR, $fn)) {
for my $efn (grep (!/^\.\.?$/, readdir (DIR))) {
&rmrf ($fn."/".$efn);
}
closedir (DIR);
rmdir ($fn);
}
} else {
unlink ($fn);
}
}
sub newfiles()
{
my ($indir, $incvs) = @_;
for my $n (keys (%$incvs)) { delete $$indir{$n} }
return sort (keys (%$indir));
}
sub cvsclean()
{
my $dir = shift;
my (%dirsdir, %filesdir, %dirscvs, %filescvs);
my $dnam = $dir ? $dir : ".";
if (!opendir (DIR, $dnam)) {
print STDERR "Cannot enter \"".$dnam."\".\n";
return;
}
for my $fn (grep (!/^\.\.?$/, readdir (DIR))) {
if (-d $dir.$fn) {
$fn eq "CVS" or $dirsdir{$fn} = 1;
} else {
$filesdir{$fn} = 1;
}
}
closedir (DIR);
if (!open (FILE, "<".$dir."CVS/Entries")) {
print STDERR "No CVS information in \"".$dnam."\".\n";
return;
}
while (<FILE>) {
m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1;
m%^/([^/]+)/.*$% and $filescvs{$1} = 1;
}
close (FILE);
if (open (FILE, "<".$dir."CVS/Entries.Log")) {
while (<FILE>) {
m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1;
m%^A /([^/]+)/.*$% and $filescvs{$1} = 1;
m%^R D/([^/]+)/.*$% and delete $dirscvs{$1};
m%^R /([^/]+)/.*$% and delete $filescvs{$1};
}
close (FILE);
}
for my $fn (&newfiles (\%filesdir, \%filescvs)) {
print ("F ".$dir.$fn."\n");
&rmrf ($dir.$fn);
}
for my $fn (&newfiles (\%dirsdir, \%dirscvs)) {
print ("D ".$dir.$fn."\n");
&rmrf ($dir.$fn);
}
for my $fn (sort (keys (%dirscvs))) {
&cvsclean ($dir.$fn."/");
}
}
&cvsclean ("");
-669
View File
@@ -1,669 +0,0 @@
#! /bin/sh
#
# cvs.sh
#
# This file contains support code from Makefile.common
# It defines a shell function for each known target
# and then does a case to call the correct function.
call_and_fix_autoconf()
{
$AUTOCONF || exit 1
if test -r configure.in.in ; then
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
fi
}
strip_makefile()
{
if test ! -f $makefile_wo; then
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
fi
}
check_autotool_versions()
{
required_autoconf_version="2.53 or newer"
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
case $AUTOCONF_VERSION in
Autoconf*2.5* | autoconf*2.5* ) : ;;
"" )
echo "*** AUTOCONF NOT FOUND!."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOCONF_VERSION."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
esac
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
case $AUTOHEADER_VERSION in
Autoconf*2.5* | autoheader*2.5* ) : ;;
"" )
echo "*** AUTOHEADER NOT FOUND!."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOHEADER_VERSION."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
esac
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
required_automake_version="1.6.1 or newer"
case $AUTOMAKE_STRING in
automake*1.5d* | automake*1.5* | automake*1.5-* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9*) : ;;
"" )
echo "*** AUTOMAKE NOT FOUND!."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
unsermake* ) :
echo "*** YOU'RE USING UNSERMAKE."
echo "*** GOOD LUCK!! :)"
;;
* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
esac
unset required_automake_version
}
cvs()
{
check_autotool_versions
acinclude_m4
### Make new subdirs and configure.in.
### The make calls could be optimized away here,
### with a little thought.
if test -r configure.in.in; then
rm -f configure.in
echo "*** Creating list of subdirectories"
create_subdirs
if test -r Makefile.am.in; then
echo "*** Creating Makefile.am"
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
echo "*** Creating configure.in"
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
echo "*** Creating aclocal.m4"
$ACLOCAL $ACLOCALFLAGS || exit 1
echo "*** Creating configure"
call_and_fix_autoconf
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
fi
echo "*** Creating Makefile templates"
$AUTOMAKE || exit 1
if test -z "$UNSERMAKE"; then
echo "*** Postprocessing Makefile templates"
perl -w admin/am_edit || exit 1
fi
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
fi
echo "*** Creating date/time stamp"
touch stamp-h.in
echo "*** Finished"
echo " Don't forget to run ./configure"
echo " If you haven't done so in a while, run ./configure --help"
}
dist()
{
check_autotool_versions
###
### First build all of the files necessary to do just "make"
###
acinclude_m4
if test -r configure.in.in; then
rm -f configure.in
create_subdirs
if test -r Makefile.am.in; then
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
$ACLOCAL $ACLOCALFLAGS
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
fi
$AUTOMAKE --foreign
perl -w admin/am_edit
call_and_fix_autoconf
touch stamp-h.in
if grep "^cvs-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=.
fi
###
### Then make messages
###
if test -d po; then
LIST=`find ./po -name "*.po"`
for i in $LIST; do
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
msgfmt -o $file2 $i || touch $file2
done
fi
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
fi
}
subdir_dist()
{
$ACLOCAL $ACLOCALFLAGS
$AUTOHEADER
$AUTOMAKE
perl -w ../admin/am_edit --path=../admin
call_and_fix_autoconf
touch stamp-h.in
}
configure_in()
{
rm -f configure.in configure.in.new
kde_use_qt_param=
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
: > configure.in.new
for file in $list; do
echo "dnl =======================================================" >> configure.in.new
echo "dnl FILE: $file" >> configure.in.new
echo "dnl =======================================================" >> configure.in.new
echo "" >> configure.in.new
cat $file >> configure.in.new
done
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
if test -f Makefile.am.in; then
subdirs=`cat subdirs`
for dir in $subdirs; do
vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
if test -f "$dir/configure.in"; then
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
echo "fi" >> configure.in.new
fi
done
fi
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
if test -n "$UNSERMAKE"; then
echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new
echo "AC_CONFIG_FILES([ Makefile.calls ])" >> configure.in.new
fi
if test -f inst-apps; then
topleveldirs=`cat inst-apps`
else
topleveldirs=
for dir in `ls -1d * | sort`; do
if test "$dir" != "debian" && test -d $dir; then
topleveldirs="$topleveldirs $dir"
fi
done
fi
for topleveldir in $topleveldirs; do
if test -f $topleveldir/configure.in; then
continue
fi
if test -f $topleveldir/Makefile.am; then :; else
continue
fi
mfs=`find $topleveldir -name Makefile.am -print | fgrep -v "/." | \
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
for i in $mfs; do
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
if test -n "$UNSERMAKE"; then
echo "AC_CONFIG_FILES([ $i.rules ])" >> configure.in.new
echo "AC_CONFIG_FILES([ $i.calls ])" >> configure.in.new
fi
done
done
files=`cat configure.files`
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
for file in $list; do
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
done
if test -n "$UNSERMAKE"; then
echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new
fi
midfiles=`cat configure.files | fgrep "configure.in.mid"`
test -n "$midfiles" && cat $midfiles >> configure.in.new
echo "AC_OUTPUT" >> configure.in.new
modulename=
if test -f configure.in.in; then
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
fi
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
if test -n "$line"; then
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
fi
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
fi
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
VERSION="\"3.3.0\""
fi
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
modulename=`pwd`;
modulename=`basename $modulename`
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
fi
if test -n "$kde_use_qt_param"; then
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
sed -e "s#@VERSION@#$VERSION#" > configure.in
botfiles=`cat configure.files | egrep "configure.in.bot"`
test -n "$botfiles" && cat $botfiles >> configure.in
cat $admindir/configure.in.bot.end >> configure.in
rm -f configure.in.new
}
configure_files()
{
echo "*** Creating configure.files"
admindir=NO
for i in . .. ../.. ../../..; do
if test -x $i/admin; then admindir=$i/admin; break; fi
done
rm -f configure.files
touch configure.files
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
echo $admindir/configure.in.min >> configure.files
fi
test -f configure.in.in && echo configure.in.in >> configure.files
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
if test -f inst-apps; then
inst=`cat inst-apps`
list=""
for i in $inst; do
list="$list `find $i/ -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
done
else
list=`find . -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
fi
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
echo $i >> configure.files
fi; done
test -f configure.in.mid && echo configure.in.mid >> configure.files
test -f configure.in.bot && echo configure.in.bot >> configure.files
if test ! -s configure.files; then
echo "There are no files to build a configure. Please check your checkout."
exit 1
fi
}
create_subdirs()
{
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
# as many modules contain rules to create subdirs without any
# dependencies make won't create it unless there is no file.
# so we check if that's a dummy rule or one that works
rm -f subdirs.cvs.sh.$$
if test -f subdirs; then
mv subdirs subdirs.cvs.sh.$$
fi
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
if test -f subdirs.cvs.sh.$$; then
if test -s subdirs; then
rm subdirs.cvs.sh.$$
else
mv subdirs.cvs.sh.$$ subdirs
fi
fi
else
subdirs
fi
}
subdirs()
{
dirs=
idirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`ls -1 | sort`
fi
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
for i in $idirs; do
if test -f $i/Makefile.am; then
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
fi
done
: > ./_SUBDIRS
for d in $compilefirst; do
echo $d >> ./_SUBDIRS
done
(for d in $dirs; do
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $s $d
done
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $d $s
done
echo $d $d
done ) | tsort >> ./_SUBDIRS
for d in $compilelast; do
echo $d >> ./_SUBDIRS
done
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
rm -f _SUBDIRS
fi
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
}
Makefile_am()
{
if test -f Makefile.am.in; then
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
idirs=
dirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`cat subdirs`
fi
for i in $idirs; do
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
done
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
if echo "$adds" | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
str='$(top_srcdir)/acinclude.m4:'
for add in $adds; do
str="$str \$(top_srcdir)/$add"
done
echo $str >> Makefile.am.in.adds
else
cat Makefile.am.in > Makefile.am.in.adds
fi
if test -n "$UNSERMAKE"; then
cat Makefile.am.in.adds > Makefile.am
topsubdirs=
for i in $compilefirst $dirs $compilelast; do
vari=`echo $i | sed -e "s,[-+],_,g"`
echo "if $vari""_SUBDIR_included" >> Makefile.am
echo "$vari""_SUBDIR=$i" >> Makefile.am
echo "endif" >> Makefile.am
topsubdirs="$topsubdirs \$($vari""_SUBDIR)"
done
echo "SUBDIRS=$topsubdirs" >> Makefile.am
else
cat Makefile.am.in.adds | \
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
fi
rm Makefile.am.in.adds
fi
}
acinclude_m4()
{
echo "*** Creating acinclude.m4"
adds=
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
strip_makefile
rm -f acinclude.m4
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
if echo $adds | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
else
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
fi
else
rm -f acinclude.m4
fi
# if it wasn't created up to now, then we do it better
if test ! -f acinclude.m4; then
cat admin/acinclude.m4.in admin/libtool.m4.in $adds > acinclude.m4
fi
}
cvs_clean()
{
if test -d CVS; then :; else
echo "You don't have a toplevel CVS directory."
echo "You most certainly didn't use cvs to get these sources."
echo "But this function depends on cvs's information."
exit 1
fi
perl $admindir/cvs-clean.pl
}
package_merge()
{
catalogs=$POFILES
for cat in $catalogs; do
msgmerge -o $cat.new $cat $PACKAGE.pot
if test -s $cat.new; then
grep -v "\"POT-Creation" $cat.new > $cat.new.2
grep -v "\"POT-Creation" $cat >> $cat.new.1
if diff $cat.new.1 $cat.new.2; then
rm $cat.new
else
mv $cat.new $cat
fi
rm -f $cat.new.1 $cat.new.2
fi
done
}
package_messages()
{
rm -rf po.backup
mkdir po.backup
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
cat po/$i > po.backup/backup_$i
touch -r po/$i po.backup/backup_$i
rm po/$i
done
podir=${podir:-$PWD/po}
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
dirs=`for i in $files; do echo \`dirname $i\`; done`
tmpname="$PWD/messages.log"
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
export EXTRACTRC PREPARETIPS
for subdir in $dirs; do
test -z "$VERBOSE" || echo "Making messages in $subdir"
(cd $subdir
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
else
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
if test -n "$candidates"; then
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
fi
fi
if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
else echo " " > _translatorinfo.cpp
fi
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
kdepotpath=${includedir:-${KDEDIR:-`kde-config --prefix`}/include}/kde.pot
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \
XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -kaliasLocale -x $kdepotpath" messages
exit_code=$?
if test "$exit_code" != 0; then
echo "make exit code: $exit_code"
fi
) 2>&1 | grep -v '^make\[1\]' > $tmpname
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
rm -f $subdir/_translatorinfo.cpp
rm -f $subdir/_transMakefile
done
rm -f $tmpname
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
test -f po/$i || echo "disappeared: $i"
done
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
msgmerge -q -o po/$i po/$i po/$i
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then
echo "will update $i"
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po.backup/$backup_$i > po/$i.new && mv po/$i.new po.backup/backup_$i
msgmerge -q po.backup/backup_$i po/$i > temp.pot
mv temp.pot po/$i
else
if test -f po.backup/backup_$i; then
test -z "$VERBOSE" || echo "I'm restoring $i"
mv po.backup/backup_$i po/$i
rm po.backup/$i
else
echo "will add $i"
fi
fi
done
rm -f temp.pot
rm -rf po.backup
}
unset LC_ALL || :
unset LANG || :
unset LC_CTYPE || :
unset LANGUAGE || :
unset CDPATH || :
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
test "x$admindir" = "x$0" && admindir=.
test "x$MAKE" = x && MAKE=make
makefile_am=Makefile.am
makefile_wo=Makefile.am.wo
if test -f Makefile.am.in; then
makefile_am=Makefile.am.in
makefile_wo=Makefile.am.in.wo
rm -f $makefile_wo
fi
# Suck in the AUTOCONF detection code
. $admindir/detect-autoconf.sh
###
### Main
###
arg=`echo $1 | tr '\-.' __`
case $arg in
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 ) $arg ;;
configure ) call_and_fix_autoconf ;;
* ) echo "Usage: cvs.sh <target>"
echo "Target can be one of:"
echo " cvs cvs-clean dist"
echo " configure.in configure.files"
echo " package-merge package-messages"
echo ""
echo "Usage: anything but $1"
exit 1 ;;
esac
if test -f $makefile_wo; then
rm $makefile_wo
fi
exit 0
-43
View File
@@ -1,43 +0,0 @@
#!/usr/bin/perl -w
use Shell qw(mv cp mkdir rm) ;
use File::Find;
use Cwd;
$origPwd = `pwd`;
chomp $origPwd;
$kde_prefix = "/usr";
$sysconfdir = "/etc";
$kde_includedir = "$kde_prefix/include/kde";
$infodir = "$kde_prefix/share/info";
$mandir = "$kde_prefix/share/man";
$qtdir = "/usr/share/qt3";
$kde_cgidir = "$kde_prefix/lib/cgi-bin";
$kde_confdir = "$sysconfdir/kde3";
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
if (defined $ENV{DEB_BUILD_OPTIONS} &&
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
$enable_debug="--enable-debug=full";
} else {
$enable_debug="--disable-debug";
}
if (@ARGV && $ARGV[0] eq 'echodirs') {
print STDOUT "export kde_prefix=$kde_prefix\n";
print STDOUT "export sysconfdir=$sysconfdir\n";
print STDOUT "export kde_includedir=$kde_includedir\n";
print STDOUT "export infodir=$infodir\n";
print STDOUT "export mandir=$mandir\n";
print STDOUT "export qtdir=$qtdir\n";
print STDOUT "export kde_cgidir=$kde_cgidir\n";
print STDOUT "export kde_confdir=$kde_confdir\n";
print STDOUT "export kde_htmldir=$kde_htmldir\n";
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
exit
}
-441
View File
@@ -1,441 +0,0 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
# Copyright 1999, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# `libtool' can also be set to `yes' or `no'.
depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Must come before tru64.
# Intel's C compiler understands `-MD -MF file'. However
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 AIX compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
tmpdepfile1="$object.d"
tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
if test "$libtool" = yes; then
"$@" -Wc,-MD
else
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
if test -f "$tmpdepfile1"; then
tmpdepfile="$tmpdepfile1"
else
tmpdepfile="$tmpdepfile2"
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
test -z "$dashmflag" && dashmflag=-M
( IFS=" "
case " $* " in
*" --mode=compile "*) # this is libtool, let us make it quiet
for arg
do # cycle over the arguments
case "$arg" in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
# X makedepend
(
shift
cleared=no
for arg in "$@"; do
case $cleared in no)
set ""; shift
cleared=yes
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift;;
-*)
;;
*)
set fnord "$@" "$arg"; shift;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tail +3 "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
( IFS=" "
case " $* " in
*" --mode=compile "*)
for arg
do # cycle over the arguments
case $arg in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" -E |
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
( IFS=" "
case " $* " in
*" --mode=compile "*)
for arg
do # cycle over the arguments
case $arg in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
-19
View File
@@ -1,19 +0,0 @@
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
# defining default rules for files that may not be present
$(top_srcdir)/Makefile.am.in:
$(CONF_FILES):
-59
View File
@@ -1,59 +0,0 @@
#! /bin/sh
# Global variables...
AUTOCONF="autoconf"
AUTOHEADER="autoheader"
AUTOM4TE="autom4te"
AUTOMAKE="automake"
ACLOCAL="aclocal"
# Please add higher versions first. The last version number is the minimum
# needed to compile KDE. Do not forget to include the name/version #
# separator if one is present, e.g. -1.2 where - is the separator.
KDE_AUTOCONF_VERS="-2.58 -2.57 257 -2.54 -2.53a -2.53 -2.52 -2.5x"
KDE_AUTOMAKE_VERS="-1.7 17 -1.6"
# We don't use variable here for remembering the type ... strings. Local
# variables are not that portable, but we fear namespace issues with our
# includer.
checkAutoconf()
{
for kde_autoconf_version in $KDE_AUTOCONF_VERS; do
if test -x "`$WHICH $AUTOCONF$kde_autoconf_version 2>/dev/null`"; then
AUTOCONF="`$WHICH $AUTOCONF$kde_autoconf_version`"
AUTOHEADER="`$WHICH $AUTOHEADER$kde_autoconf_version`"
AUTOM4TE="`$WHICH $AUTOM4TE$kde_autoconf_version`"
break
fi
done
}
checkAutomake ()
{
for kde_automake_version in $KDE_AUTOMAKE_VERS; do
if test -x "`$WHICH $AUTOMAKE$kde_automake_version 2>/dev/null`"; then
AUTOMAKE="`$WHICH $AUTOMAKE$kde_automake_version`"
ACLOCAL="`$WHICH $ACLOCAL$kde_automake_version`"
break
fi
done
if test -n "$UNSERMAKE"; then
AUTOMAKE="$UNSERMAKE"
fi
}
checkWhich ()
{
WHICH=""
for i in "type -p" "which" "type" ; do
T=`$i sh 2> /dev/null`
test -x "$T" && WHICH="$i" && break
done
}
checkWhich
checkAutoconf
checkAutomake
export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL
-276
View File
@@ -1,276 +0,0 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "$0: no input file specified" >&2
exit 1
else
:
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f "$src" ] || [ -d "$src" ]
then
:
else
echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "$0: no destination specified" >&2
exit 1
else
:
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d "$dst" ]
then
dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp=$pathcomp$1
shift
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "$pathcomp"
else
:
fi
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd "$dst" &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename "$dst"`
else
:
fi
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
rmtmp=$dstdir/#rm.$$#
# Trap to clean up temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
# Now remove or move aside any old file at destination location. We try this
# two ways since rm can't unlink itself on some systems and the destination
# file might be busy for other reasons. In this case, the final cleanup
# might fail but the new file should still install successfully.
{
if [ -f "$dstdir/$dstfile" ]
then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
{
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}
-5858
View File
File diff suppressed because it is too large Load Diff
-6350
View File
File diff suppressed because it is too large Load Diff
-336
View File
@@ -1,336 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing 0.4 - GNU automake"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them.
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
-111
View File
@@ -1,111 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage" 1>&2
exit 0
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
case $dirmode in
'')
if mkdir -p -- . 2>/dev/null; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
fi
;;
*)
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
fi
;;
esac
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# End:
# mkinstalldirs ends here
-371
View File
@@ -1,371 +0,0 @@
#!/usr/bin/perl -w
# Check namespace cleanness of a library.
# Allowed symbols are passed as arguments.
# They may have trailing * = wildcard.
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
# Symbols are listed as full function unmangled names without arguments,
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
# and all symbols in namespace/class nspace.
# If an argument has comma in it, it's a filename of a file containing
# allowed symbols, one per line.
$thisProg = "$0"; # This programs name
$library = "";
$allowed_symbols = "";
$debug = 0;
$allowed_weak = "";
$weak_specified = 0;
while( defined( $ARGV[ 0 ] ))
{
$_ = shift;
if( /^--verbose$|^-v$/ )
{
$debug = 1;
}
elsif( /^--help$|^-h$/ )
{
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
"\n",
"Check if the given library has only allowed public symbols.\n",
"\n",
" --allowweak=[symbol] allow only these weak symbols\n",
" -v, --verbose verbosely list files processed\n",
" -h, --help print this help, then exit\n";
exit 0;
}
elsif( /^--allowweak=(.*)$/ )
{
$allowed_weak .= " " . $1;
$weak_specified = 1;
}
elsif( /^--allowweak$/ ) # simply list all weak
{
$allowed_weak .= " ";
$weak_specified = 1;
}
elsif( /^--*/ )
{
die "Invalid argument!\n";
}
else
{
if( ! $library )
{
$library = $_;
}
else
{
$allowed_symbols .= " " . $_;
}
}
}
if( ! $weak_specified )
{
$allowed_weak = "*";
# allow all weak symbols by default
# instances of templates and similar stuff - unfortunately includes also things from other libraries,
# so it cannot be on by default
}
print STDERR "library:" . $library . "\n" if $debug;
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
$default_symbols = "_fini _init"; # system symbols
# on my system, every .so has :
# A _DYNAMIC
# A _GLOBAL_OFFSET_TABLE_
# A __bss_start
# A _edata
# A _end
# T _fini
# T _init
# no need to list A symbols in $default_symbols
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
print STDOUT "Namespace cleanness check for " . $library . " :\n";
$lib_file = "";
if( $library =~ /\.la$/ )
{
# get the real library file from .la
open( FILEIN, $library ) || die "Couldn't open $! !\n";
while( $line = <FILEIN> )
{
if( $line =~ /library_names=\'([^ ]*).*/o )
{
$lib_file = $1;
}
}
close( FILEIN );
if( ! $lib_file )
{
print STDERR "Library file not found in .la file!\n";
exit 1;
}
my $libpath = $library;
$libpath =~ s%[^/]*$%%;
if( -e $libpath . ".libs/" . $lib_file )
{
$lib_file = $libpath . ".libs/" . $lib_file;
}
else
{
$lib_file = $libpath . $lib_file;
}
}
else
{
$lib_file = $library;
}
print STDERR "libfile: ". $lib_file . "\n" if $debug;
$allowed_symbols .= " " . $default_symbols;
sub process_symbols($\@\%\@);
@wildcards = ();
%exacts = ();
@regwildcards = ();
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
@weak_wildcards = ();
%weak_exacts = ();
@weak_regwildcards = ();
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
# grep is for stripping not exported symbols, which don't have address (=first column)
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
# TODO how portable is this nmcheck stuff?
print STDERR "nm command:" . $nm_command . "\n" if $debug;
open( FILEIN, $nm_command ) || die "nm command failed\n";
my $exit_code = 0;
while( $line = <FILEIN> )
{
my $type;
my $symbol;
if( $line =~ /^[^ ]* (.) (.*)$/o )
{
$type = $1;
$symbol = $2;
}
else
{
die "Invalid line: " . $line . "\n";
}
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
if( $type eq "A" )
{ # these should be system symbols, so ignore them
next;
}
my $orig_symbol = $symbol;
if( $symbol =~ /\(anonymous namespace\)/o )
{ # TODO tell to prefer named namespaces? (shorter symbols)
next;
}
# strip prefixes
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
$symbol =~ s/^typeinfo for (.*)$/$1::/o;
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
$symbol =~ s/^typeinfo name for (.*)$/$1::/o;
$symbol =~ s/^vtable for (.*)$/$1::/o;
$symbol =~ s/^guard variable for (.*)$/$1::/o;
$symbol =~ s/^reference temporary for (.*)$/$1::/o;
$symbol =~ s/^VTT for (.*)$/$1::/o;
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
# templates seem to have also return types mangled in their name, and nm prints it too
# they have also template arguments in the symbol
# get rid of both of those
while( $symbol =~ /<.*>/o )
{
$symbol =~ s/<[^<>]*>//o; # strip innermost <>
}
if( $symbol !~ /operator\(\)/o )
{
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
}
else
{
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
}
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
if( $symbol =~ /(^|:| )operator /o )
{
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
}
else
{
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
}
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
my $found = 0;
if( $exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
{
if( $weak_exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @weak_wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @weak_regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
}
if( ! $found )
{
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
$exit_code = 1;
}
}
close( FILEIN );
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
exit $exit_code;
sub process_symbols($\@\%\@)
{
my $allowed_symbols = $_[ 0 ];
my $wildcards_ref = $_[ 1 ];
my $exacts_ref = $_[ 2 ];
my $regwildcards_ref = $_[ 3 ];
$allowed_symbols =~ s/^ *//o; # strip whitespace
$allowed_symbols =~ s/ *$//o;
if( $allowed_symbols eq "NONE" )
{
$allowed_symbols = "";
}
my @symbols1 = split( ' ', $allowed_symbols );
my $i = 0;
my @symbols2 = ();
while( defined( $symbols1[ $i ] ))
{
my $symbol = $symbols1[ $i ];
if( $symbol =~ /\./ ) # dot in name -> file
{
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
while( $line = <SYMIN> )
{
$line =~ s/^\s*//o; # strip whitespace
$line =~ s/\s*$//o;
if( $line !~ /^$/o # empty line
&& $line !~ /^\s*#/ ) # comment line starting with #
{
$symbols2[ $#symbols2 + 1 ] = $line;
}
}
close( SYMIN );
}
else
{
$symbols2[ $#symbols2 + 1 ] = $symbol;
}
$i++;
}
$i = 0;
while( defined( $symbols2[ $i ] ))
{
my $symbol = $symbols2[ $i ];
if( $symbol =~ /__/
|| $symbol =~ /^_[A-Z]/ )
{ # ISO C++ 2.10.2
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
}
elsif( $symbol eq "main"
|| $symbol eq "main*" )
{
die "Symbol main is not allowed!\n";
}
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
&& $symbol !~ /operator\*$/o )
{
print STDERR "wildcard:" . $symbol . "\n" if $debug;
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
}
elsif( $symbol =~ /\*$/o
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
&& $symbol !~ /^\*/o
&& $symbol !~ /operator\*$/o )
{
print STDERR "regwildcard:" . $symbol . "\n" if $debug;
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
}
else
{
print STDERR "exact:" . $symbol . "\n" if $debug;
$exacts_ref->{ $symbol } = 1;
}
$i++;
}
}
-192
View File
@@ -1,192 +0,0 @@
### -*- autoconf -*-
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
AC_DEFUN([KDE_CHECK_MICO],
[
AC_REQUIRE([KDE_CHECK_LIBDL])
AC_REQUIRE([KDE_MISC_TESTS])
AC_MSG_CHECKING(for MICO)
if test -z "$MICODIR"; then
kde_micodir=/usr/local
else
kde_micodir="$MICODIR"
fi
AC_ARG_WITH(micodir,
[ --with-micodir=micodir where mico is installed ],
kde_micodir=$withval,
kde_micodir=$kde_micodir
)
AC_CACHE_VAL(kde_cv_mico_incdir,
[
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
])
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
if test ! -r $kde_micodir/include/CORBA.h; then
AC_MSG_ERROR([No CORBA.h found, specify another micodir])
fi
AC_MSG_RESULT($kde_micodir)
MICO_INCLUDES=-I$kde_micodir/include
AC_SUBST(MICO_INCLUDES)
MICO_LDFLAGS=-L$kde_micodir/lib
AC_SUBST(MICO_LDFLAGS)
micodir=$kde_micodir
AC_SUBST(micodir)
AC_MSG_CHECKING([for MICO version])
AC_CACHE_VAL(kde_cv_mico_version,
[
AC_LANG_C
cat >conftest.$ac_ext <<EOF
#include <stdio.h>
#include <mico/version.h>
int main() {
printf("MICO_VERSION=%s\n",MICO_VERSION);
return (0);
}
EOF
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
if AC_TRY_EVAL(ac_compile); then
if eval `./conftest 2>&5`; then
kde_cv_mico_version=$MICO_VERSION
else
AC_MSG_ERROR([your system is not able to execute a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
else
AC_MSG_ERROR([your system is not able to compile a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
])
dnl installed MICO version
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "x$1" = "x"; then
req_version="2.3.0"
else
req_version=$1
fi
dnl required MICO version
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "$mico_v_maj" -lt "$req_v_maj" || \
( test "$mico_v_maj" -eq "$req_v_maj" && \
test "$mico_v_mid" -lt "$req_v_mid" ) || \
( test "$mico_v_mid" -eq "$req_v_mid" && \
test "$mico_v_min" -lt "$req_v_min" )
then
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
at least is required. You should upgrade MICO.])
else
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
fi
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
AC_SUBST(LIBMICO)
if test -z "$IDL"; then
IDL='$(kde_bindir)/cuteidl'
fi
AC_SUBST(IDL)
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
AC_SUBST(IDL_DEPENDENCIES)
idldir="\$(includedir)/idl"
AC_SUBST(idldir)
])
AC_DEFUN([KDE_CHECK_MINI_STL],
[
AC_REQUIRE([KDE_CHECK_MICO])
AC_MSG_CHECKING(if we use mico's mini-STL)
AC_CACHE_VAL(kde_cv_have_mini_stl,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
kde_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
AC_TRY_COMPILE(
[
#include <mico/config.h>
],
[
#ifdef HAVE_MINI_STL
#error "nothing"
#endif
],
kde_cv_have_mini_stl=no,
kde_cv_have_mini_stl=yes)
CXXFLAGS="$kde_save_cxxflags"
AC_LANG_RESTORE
])
if test "x$kde_cv_have_mini_stl" = "xyes"; then
AC_MSG_RESULT(yes)
$1
else
AC_MSG_RESULT(no)
$2
fi
])
])
AC_DEFUN([KDE_CHECK_ANSI],
[
])
AC_DEFUN([KDE_CHECK_INSURE],
[
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
[
if test $enableval = "no"; dnl
then ac_use_insure="no"
else ac_use_insure="yes"
fi
], [ac_use_insure="no"])
AC_MSG_CHECKING(if we will use Insure++ to debug)
AC_MSG_RESULT($ac_use_insure)
if test "$ac_use_insure" = "yes"; dnl
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
fi
])
AC_DEFUN([KDE_CHECK_NEWLIBS],
[
])
-143
View File
@@ -1,143 +0,0 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
# Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Usage:
# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
# * INPUT is the input file
# * OUTPUT is file PROG generates
# * DESIRED is file we actually want
# * PROGRAM is program to run
# * ARGS are passed to PROG
# Any number of OUTPUT,DESIRED pairs may be used.
# The input.
input="$1"
shift
case "$input" in
[\\/]* | ?:[\\/]*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute.
input="`pwd`/$input"
;;
esac
# The directory holding the input.
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
# Quote $INPUT_DIR so we can use it in a regexp.
# FIXME: really we should care about more than `.' and `\'.
input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'`
echo "got $input_rx"
pairlist=
while test "$#" -ne 0; do
if test "$1" = "--"; then
shift
break
fi
pairlist="$pairlist $1"
shift
done
# The program to run.
prog="$1"
shift
# Make any relative path in $prog absolute.
case "$prog" in
[\\/]* | ?:[\\/]*) ;;
*[\\/]*) prog="`pwd`/$prog" ;;
esac
# FIXME: add hostname here for parallel makes that run commands on
# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
mkdir $dirname || exit 1
cd $dirname
$prog ${1+"$@"} "$input"
status=$?
if test $status -eq 0; then
set X $pairlist
shift
first=yes
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot="no"
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot="yes"
fi
while test "$#" -ne 0; do
from="$1"
# Handle y_tab.c and y_tab.h output by DOS
if test $y_tab_nodot = "yes"; then
if test $from = "y.tab.c"; then
from="y_tab.c"
else
if test $from = "y.tab.h"; then
from="y_tab.h"
fi
fi
fi
if test -f "$from"; then
# If $2 is an absolute path name, then just use that,
# otherwise prepend `../'.
case "$2" in
[\\/]* | ?:[\\/]*) target="$2";;
*) target="../$2";;
esac
# Edit out `#line' or `#' directives. We don't want the
# resulting debug information to point at an absolute srcdir;
# it is better for it to just mention the .y file with no
# path.
sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$?
else
# A missing file is only an error for the first file. This
# is a blatant hack to let us support using "yacc -d". If -d
# is not specified, we don't want an error when the header
# file is "missing".
if test $first = yes; then
status=1
fi
fi
shift
shift
first=no
done
else
status=$?
fi
# Remove the directory.
cd ..
rm -rf $dirname
exit $status
+106
View File
@@ -0,0 +1,106 @@
# -*-shell-script-*-
[Meta]
RootName: @kmess.sourceforge.net/kmess:$SOFTWAREVERSION
DisplayName: KMess
ShortName: kmess
SoftwareVersion: 1.5
Maintainer: The KMess Developers
Packager: Diederik van der Boor
Summary: MSN Messenger client for KDE
URL: http://www.kmess.org/
License: GNU General Public License, Version 2
AutopackageTarget: 1.0
[Description]
A MSN Messenger Client for KDE
KMess is a MSN Messenger client for Linux. It enables Linux
users to chat with friends online who are using MSN Messenger
in Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger specific
features and an easy-to-use interface.
[BuildPrepare]
# The bogus deps solve our warnings about older distro incompatiblity
export APBUILD_BOGUS_DEPS='art_lgpl art_lgpl_2 dl expat fontconfig freetype GL ICE idn kdefx kdesu kwalletclient m nsl png pthread resolv SM util X11 Xcursor Xft Xi Xinerama Xmu Xrandr Xrender'
# Xrender is suggested by makeinstaller,
# the XScreenSaver stuff can be either in libXss or libXext
export APBUILD_STATIC='Xrender Xext Xss'
prepareBuild
[BuildUnprepare]
unprepareBuild
[Imports]
# tells autopackage to include all files created by "make install"
# make sure the symlink does not get installed. recreate it during Install
find . -name common -type d -o -type l -exec rm -Rf {} \;
echo "*" | import
[Prepare]
# KDE 3.2 is the minimum requirement,
# KDE 3.1 support was dropped with 1.5-pre1
require @kde.org/kdelibs 3.2
# flash and cabextract are used for winks.
playWinks="1"
# test for cabextract
outputTest "cabextract"
if locateCommand -r "cabextract" "-v"; then
outputTestPass
else
outputTestFail
playWinks="0"
fi
# test for flash
# paths taken from Konqueror.
outputTest "flash player"
hasFlash="0"
for i in /usr/lib/browser-plugins $HOME/.netscape/plugins /usr/lib64/browser-plugins /usr/local/netscape/plugins /opt/mozilla/plugins /opt/mozilla/lib/plugins /opt/netscape/plugins /opt/netscape/communicator/plugins /usr/lib/netscape/plugins /usr/lib/netscape/plugins-libc5 /usr/lib/netscape/plugins-libc6 /usr/lib/mozilla/plugins /usr/lib64/netscape/plugins /usr/lib64/mozilla/plugins $MOZILLA_HOME/plugins
do
if [ -e "$i/libflashplayer.so" ]
then
hasFlash="1"
fi
done
if [ "$hasFlash" -eq "1" ];
then
outputTestPass
else
outputTestFail
playWinks="0"
fi
# notify user
if [ "$playWinks" -eq "0" ];
then
outputStatus "You need to have cabextract and a flash player installed to play winks"
# don't abort, KMess can operate without these deps.
fi
[Install]
# # force to use the KDE path, workarround for broken distro's
# # which don't support XDG/KDE stuff in /usr or /usr/local
# test "`id -u`" -eq 0 && export PREFIX="`getKdePrefix`" || true
outputStatus "Installing application..."
installExe bin/*
installData share/apps/ share/doc/ share/emoticons/ share/sounds/
linkFile --silent "`getKdePrefix`/share/doc/HTML/en/common" "$PREFIX/share/doc/HTML/en/kmess/common"
installIcon share/icons/hicolor/ share/icons/locolor/
installDesktop "Internet" share/applications/kde/kmess.desktop
installLocale share/locale/
[Uninstall]
uninstallFromLog
+20
View File
@@ -0,0 +1,20 @@
/**
* KMess configuration file
*
* The value for these defines is controlled by CMake at configuration time.
*/
/* Define the application version */
#define KMESS_VERSION "${KMESS_VERSION}"
/* Define if debug output should be enabled */
#define KMESS_DEBUG ${KMESS_ENABLE_DEBUG_OUTPUT}
/* Define the fallback prefix */
#define KMESS_PREFIX "${CMAKE_INSTALL_PREFIX}"
/* Define if you have the XScreenSaver extension */
#cmakedefine HAVE_XSCREENSAVER ${HAVE_XSCREENSAVER}
/* Define if you have KPhone installed (for SIP voice chat) */
// #define HAS_KPHONE 1
+30
View File
@@ -0,0 +1,30 @@
#!/bin/sh
cd `dirname $0`/..
appver="`cat kmess.lsm | grep Version: | sed -re 's/[^0-9]+//'`"
date="`date +%Y%m%d`"
# Make sure we have the right repository
if [ ! -f kmess.kdevelop ]; then
echo -n "svn (unknown)"
exit
fi
# Display normal version if subversion is not installed
if [ ! -x `which svnversion 2>/dev/null` ]; then
echo -n "$appver"
exit
fi
# Display subversion version if this is a working copy
svnver=`LANG=C svnversion`
# see if this is not a repository.
if [ "$svnver" = "exported" ]; then
echo -n "$appver";
exit;
fi
# display subversion version and date
echo -n "$appver-svn (`svnversion` >= $date)"
Vendored Executable
+195
View File
@@ -0,0 +1,195 @@
#!/bin/bash
#
# configure - description
# -------------------
# begin : Wed Apr 9 2008
# copyright : (C) 2008 by Diederik van der Boor
# email : "vdboor" --at-- "codingdomain.com"
#
#
# Emulation script of GNU ./configure to make compiling of KDE 4 software more standard.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# ------------------------------
#
# Variables
#
# To configure
PREFIX="/usr/local"
BUILD_TYPE="relwithdebinfo"
BUILD_DIR="build"
DEBUG=0
# Globals
cd `dirname $0`
SRCDIR="$PWD"
KMESS_VER="`./cmake/get-svn-version.sh`"
# ------------------------------
#
# Print the help page
#
function print_help
{
echo "configure script for package: KMess $KMESS_VER
Usage: ./configure [arguments]
This is an emulation script of GNU ./configure to give compiling of KDE 4
software a more familiar usage. To use the full potential of the KDE 4
build system, run 'cmake <path to this directory>' from an empty directory.
Configuration:
-h, --help display this help and exit
Installation directories:
--prefix=PREFIX install files in PREFIX. default: /usr/local
Optional Features:
--enable-debug-output enable debugging output. default=no
--build-dir=PATH path to store the build files. default: ./build
--build-type=TYPE define the build configuration to use, values:
release - standard release
relwithdebinfo - release with debug info
minsizerel - minimum size release
debug - debug build
debugfull - full debug build
To have more influence over the build configuration, run 'cmake' directly.
See the README file for more information.
"
}
# ------------------------------
#
# Run cmake
#
function run_cmake
{
# Check prefix
if [ ! -e "$PREFIX" ]; then
echo "$0: installation directory not found: $PREFIX" >&2
exit 1
fi
# Check build type
case "$BUILD_TYPE" in
release|relwithdebinfo|minsizerel|debug|debugfull) ;;
*)
echo "$0: invalid build type: $BUILD_TYPE" >&2
exit 1
;;
esac
# Make the directory
test -e "$BUILD_DIR" || mkdir "$BUILD_DIR" || exit 1
# Start cmake
cd $BUILD_DIR
echo "configuring KMess $KMESS_VER"
echo "checking build directory"
echo "running cmake from `pwd`"
echo "command: cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \ "
echo " -D CMAKE_BUILD_TYPE=$BUILD_TYPE \ "
echo " -D KMESS_DEBUG_OUTPUT=$DEBUG \ "
echo " "$SRCDIR" "
echo ""
cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE \
-D KMESS_DEBUG_OUTPUT=$DEBUG \
"$SRCDIR" \
&& cmake_ok || cmake_error
}
function cmake_ok
{
local HAS_XSS="no (extension not detected)"
local HAS_DEBUG="no (good!)"
if [ $DEBUG = "1" ]; then
HAS_DEBUG="yes (KMess will be slow!)"
fi
if grep -q '^#define HAVE_XSCREENSAVER 1$' "config-kmess.h"; then
HAS_XSS="yes"
fi
echo "-- cmake completed
Install prefix: $PREFIX
Auto-away feature: $HAS_XSS
Debugging messages: $HAS_DEBUG
Binary relocatable: .. (todo)
Enter the following commands to continue:
cd $BUILD_DIR
make
"
}
function cmake_error
{
echo "-- cmake failed
Please fix the problems mentioned above, and run ./configure again.
For example, make sure you have the KDE 4 devel packages installed.
"
}
# ------------------------------
#
# Main
#
# Parse the arguments
TEMP=`getopt --name=configure \
--options h \
--longoptions help,prefix:,enable-debug-output,build-type:,build-dir:,build-folder: -- "$@"`
case "$?" in
0) ;;
*) exit 1 ;;
esac
# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"
while true ; do
case "$1" in
-h|--help) print_help; exit 0 ;;
--prefix) PREFIX=$2; shift 2 ;;
--enable-debug-output) DEBUG=1; shift ;;
--build-type) BUILD_TYPE="$2"; shift 2 ;;
--build-dir|--build-folder) BUILD_DIR="$2"; shift 2 ;;
--) shift ; break ;;
*) echo "Internal error!" ; exit 1 ;;
esac
done
if [ -n "$1" ]; then
echo "$0: invalid arguments: $@"
exit 1
fi
# Start cmake
run_cmake
-48
View File
@@ -1,48 +0,0 @@
if test -z "$LIBJPEG"; then
echo ""
echo "You're missing libJPEG, or the libJPEG devel package."
all_tests=bad
fi
if test -z "$LIBPNG"; then
echo ""
echo "You're missing libPNG, or the libPNG devel package."
all_tests=bad
fi
if test -z "$LIBZ"; then
echo ""
echo "You're missing zlib, or the zlib devel package."
all_tests=bad
fi
if test "x$all_tests" = "xbad"; then
echo ""
echo "Fix the problems, and try to run ./configure again."
echo ""
else
echo ""
echo ""
echo "Configure report:"
echo ""
echo " Install prefix: $prefix"
echo -n " Auto-away feature: "
if test -z "$HAVE_XSCREENSAVER"; then
echo "no (extension not detected)"
else
echo "yes"
fi
echo -n " Debugging messages: "
if test "x$enable_debug_output" = "xyes"; then
echo "yes (KMess will be slow!)"
else
echo "no (good!)"
fi
echo ""
fi
-25
View File
@@ -1,25 +0,0 @@
#MIN_CONFIG(3)
AM_INIT_AUTOMAKE(kmess,1.4pre1)
dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
dnl KDE_NEED_FLEX dnl __kdevelop__
dnl AC_PROG_YACC dnl __kdevelop__
dnl ---- Additional KMess options ----
AC_ARG_ENABLE(debug-output, [ --enable-debug-output enable debugging output. [default=no]],enable_debug_output=$enableval,enable_debug_output=no)
# -- Check for Debug build messages ---------------------------------
if test "x$enable_debug_output" = "xyes" ; then
AC_WARN(Creating debug build. This has serious implications in the performance of KMess)
AC_DEFINE_UNQUOTED(KMESS_DEBUG, 1, [output debug?])
else
AC_DEFINE_UNQUOTED(KMESS_DEBUG, 0, [output debug?])
fi
+9
View File
@@ -0,0 +1,9 @@
ADD_SUBDIRECTORY( pics )
ADD_SUBDIRECTORY( icons )
ADD_SUBDIRECTORY( sounds )
ADD_SUBDIRECTORY( emoticons )
ADD_SUBDIRECTORY( chatstyles )
INSTALL( FILES kmess.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kmess )
INSTALL( FILES kmess.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+16
View File
@@ -0,0 +1,16 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
add_subdirectory( Colourful-Enclosed )
add_subdirectory( Classic )
add_subdirectory( Classic-compact )
add_subdirectory( Dim )
add_subdirectory( Efficient )
add_subdirectory( Fresh )
add_subdirectory( Pure )
########### install files ###############
install( FILES examplemessage.xml DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/ )
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Classic-compact.xsl Classic-compact.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic-compact/ )
@@ -0,0 +1,62 @@
/*
KMess Classic-compact chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/**
* Define colors for filenames.
*/
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Remaining markup is done inline in the .xsl file.
*/
@@ -0,0 +1,177 @@
<?xml version='1.0'?>
<!--
KMess Classic-compact chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
indent="no"
omit-xml-declaration="yes"
encoding="utf-8" />
<!--
Normal chat message.
This is used to process individual chat messages.
-->
<xsl:template match="message">
<xsl:choose>
<!-- incoming and outgoing chat messages -->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div dir="{body/@dir}">
<!-- contact name part -->
<span dir="{from/contact/displayName/@dir}">
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="from/contact/displayName/@dir='ltr'">float:left; clear:both; padding-right: 0.3em;</xsl:when>
<xsl:otherwise>float:right; clear:both; padding-left: 0.3em;</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="@type='incoming' or @type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text> says: </xsl:text>
</font>
</span>
<!-- show message -->
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</xsl:when>
<!-- application message (e.g. invite for file transfer) -->
<xsl:when test="@type='application'">
<div dir="{body/@dir}">
<font color="blue">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- notification message (e.g. file received) -->
<xsl:when test="@type='notification'">
<div dir="{body/@dir}">
<font color="purple">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- system message (error messages, e.g. invitations KMess does not support) -->
<xsl:when test="@type='system'">
<div dir="{body/@dir}">
<hr size="2" color="red"/>
<font color="red"><xsl:value-of disable-output-escaping="yes" select="body"/></font>
<hr size="2" color="red"/>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<!-- contact name part -->
<span dir="{message[1]/from/contact/displayName/@dir}">
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="message[1]/from/contact/displayName/@dir='ltr'">float:left; clear:both; padding-right: 0.3em;</xsl:when>
<xsl:otherwise>float:right; clear:both; padding-left: 0.3em;</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="message[1]/@type='incoming' or message[1]/@type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="message[1]/@time">
<xsl:value-of select="message[1]/@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text> says: </xsl:text>
</font>
</span>
<!-- show message -->
<xsl:for-each select="message">
<!-- show time for each followup message? -->
<!--
<xsl:if test="position() != 1 and @time">
<font>
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="@type='incoming' or @type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="@time"/>
<xsl:text>: </xsl:text>
</font>
</xsl:if>
-->
<!-- show message -->
<div dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</xsl:for-each>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Classic.xsl Classic.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic/ )
+62
View File
@@ -0,0 +1,62 @@
/*
KMess Classic chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/**
* Define colors for filenames.
*/
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Remaining markup is done inline in the .xsl file.
*/
+154
View File
@@ -0,0 +1,154 @@
<?xml version='1.0'?>
<!--
KMess Classic chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes" />
<!--
Normal chat message.
This is used to process individual chat messages.
-->
<xsl:template match="message">
<xsl:choose>
<!-- incoming and outgoing chat messages -->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div style="margin-bottom: 16px">
<div dir="{from/contact/displayName/@dir}">
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="@type='incoming' or @type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text kmess:translate="true"> says: </xsl:text>
<br/>
</font>
</div>
<div dir="{body/@dir}">
<!-- show message -->
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</div>
</xsl:when>
<!-- application message (e.g. invite for file transfer) -->
<xsl:when test="@type='application'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<font color="blue">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- notification message (e.g. file received) -->
<xsl:when test="@type='notification'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<font color="purple">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- system message (error messages, e.g. invitations KMess does not support) -->
<xsl:when test="@type='system'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<hr size="2" color="red"/>
<font color="red"><xsl:value-of disable-output-escaping="yes" select="body"/></font>
<hr size="2" color="red"/>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup" style="margin-bottom: 16px">
<div dir="{message[1]/from/contact/displayName/@dir}">
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="message[1]/@type='incoming' or message[1]/@type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="message[1]/@time">
<xsl:value-of select="message[1]/@time"/> <!-- - <xsl:value-of select="message[last()]/@time"/> -->
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text kmess:translate="true"> says: </xsl:text>
<br/>
</font>
</div>
<!-- show message -->
<xsl:for-each select="message">
<div dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</xsl:for-each>
</div>
</xsl:template>
</xsl:stylesheet>
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Colourful-Enclosed.xsl Colourful-Enclosed.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Colourful-Enclosed/ )
@@ -0,0 +1,197 @@
/*
'Colourful-Enclosed' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Jess Hall
Design based on 'Colourful enclosed' by Jess Hall
http://www.kde-look.org/content/show.php?content=19968
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl, dt, dd
{
margin: 0;
padding: 0;
}
/**
* Border effect.
*/
dl
{
border: 1px solid grey;
margin: 0 0 12px 0; /* margin bottom is 12px */
background-color: #fff; /* for dark color schemes */
}
/*
* message title colors.
*/
dt
{
padding: 0 2px; /* left padding, right padding */
}
.incoming dt
{
color: #00008B;
font-weight: bold;
background-color: #d8e0ff;
}
.outgoing dt
{
color: teal;
font-weight: bold;
background-color: #c8ffd8;
}
.offlineIncoming dt
{
color: #6B10C6;
font-weight: bold;
background-color: #EBE5FF;
}
/*
* name in message title.
*/
dt span.name
{
margin-right: 100px; /* avoid overlapping the time */
}
dt.rtl span.name
{
margin-right: 0;
margin-left: 100px;
}
/*
* time in message title.
*/
dt span.time
{
float: right;
display: inline; /* typically for MSIE bugs */
margin-left: 10px;
}
dt.rtl span.time
{
float: left;
margin-left: 0;
margin-right: 10px;
}
/*
* message body.
* add some spacing, color and the bottom line.
*/
dd
{
padding: 0 15px; /* left and right 15px */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application,
div.notification,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
}
div.application
{
color: blue;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
padding: 3px 0;
border-top: 1px solid red;
border-bottom: 1px solid red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
@@ -0,0 +1,189 @@
<?xml version='1.0'?>
<!--
'Colourful-Enclosed' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Jess Hall
Design based on 'Colourful enclosed' by Jess Hall
http://www.kde-look.org/content/show.php?content=19968
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Colourful-Enclosed.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}" class="{from/contact/displayName/@dir}">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show time? -->
<xsl:if test="message[1]/@time">
<span class="time"><xsl:value-of select="message[1]/@time"/> - <xsl:value-of select="message[last()]/@time"/></span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Dim.xsl Dim.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Dim/ )
+185
View File
@@ -0,0 +1,185 @@
/*
'Dim' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2004, Iori Yagami
Design based on 'Yagami' by Iori Yagami
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl
{
/* message group */
margin: 0 0 5px 0; /* set margin bottom */
padding: 0;
}
dt
{
/* message title */
margin: 0;
padding: 0;
}
dd
{
/* message body */
margin: 0 0 0 16px; /* set left margin */
padding: 0;
}
.rtl dd
{
margin-left: 0;
margin-right: 16px;
}
/*
* message title colors.
*/
.incoming dt
{
color: #344A93;
font-style: italic;
}
.outgoing dt
{
color: #549A5C;
}
.offlineIncoming dt
{
color: #344A93;
font-style: italic;
}
/*
* name in message title.
*/
dt span.name
{
margin-right: 100px; /* avoid overlapping the time */
}
.rtl dt span.name
{
margin-right: 0;
margin-left: 100px;
}
/*
* time in message title.
*/
dt span.time
{
float: right;
display: inline; /* typically for MSIE bugs */
margin-left: 10px;
}
.rtl dt span.time
{
float: left;
margin-left: 0;
margin-right: 10px;
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application,
div.notification,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
}
div.application
{
color: #6172b2;
}
div.notification
{
color: #c034c9;
}
div.system
{
color: #d11313;
padding: 3px 0;
border-top: 1px solid #d11313;
border-bottom: 1px solid #d11313;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
+188
View File
@@ -0,0 +1,188 @@
<?xml version='1.0'?>
<!--
'Dim' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2004, Iori Yagami
Design based on 'Yagami' by Iori Yagami
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Dim.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt>
<!-- show time? -->
<xsl:if test="message[1]/@time">
<span class="time"><xsl:value-of select="message[1]/@time"/> - <xsl:value-of select="message[last()]/@time"/></span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Efficient.xsl Efficient.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Efficient/ )
+253
View File
@@ -0,0 +1,253 @@
/*
'Efficient' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Cies Breijs
Design based on 'Efficient' by Cies Breijs
http://www.kde-look.org/content/show.php?content=26318
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins
*/
dl
{
margin: 0 0 2px 0; /* set margin bottom */
}
dt, dd
{
margin: 0;
padding: 0;
}
/*
* message colors.
*/
.incoming dl
{
background-color: #F7F3F3;
}
.outgoing dl
{
background-color: #F4F4FB;
}
.offlineIncoming dl
{
background-color: #FFFBFB;
}
/*
* message title colors
*/
.incoming dt
{
color: #A82F2F;
font-weight: bold;
}
.outgoing dt
{
color: #16569E;
font-weight: bold;
}
.offlineIncoming dt
{
color: #C83838;
font-weight: bold;
}
/*
* column effect
*/
.incoming dt,
.outgoing dt,
.offlineIncoming dt
{
float: left;
min-width: 7em;
/* to enforce a fixed width:
width: 7em;
white-space: nowrap;
overflow: hidden;
*/
}
.rtl .incoming dt,
.rtl .outgoing dt,
.rtl .offlineIncoming dt
{
/* reverse for right-to-left */
float: right;
}
.incoming dd,
.outgoing dd,
.offlineIncoming dd
{
/* for alignment of lines under the float
using padding instead of margin to the messagegroup border also appears below the name */
padding-left: 7em;
}
.rtl .incoming dd,
.rtl .outgoing dd,
.rtl .offlineIncoming dd
{
padding-left: 0;
padding-right: 7em;
}
dl
{
position: relative;
/* new messages should appear below the float */
clear: both;
}
div.application,
div.notification,
div.system
{
margin-left: 7em;
}
/*
* name in message title.
*/
dt span.name
{
display: block;
text-align: right;
padding-left: 3px;
padding-right: 3px;
}
/*
* time in message title and other messages.
*/
span.time
{
float: right;
display: inline; /* typically for MSIE bugs */
color: #AAAAAA;
font-size: 6pt;
/* some margins to fix most ugly stuff when resizing */
margin-left: 5px;
margin-bottom: 1ex;
}
.rtl span.time
{
float: left;
margin-left: 0;
margin-right: 5px;
}
/*
* grouped messages splitter effect
*/
.messagegroup dd.first-child,
.messagegroup dd.middle-child
{
border-bottom: 2px dotted white;
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application
{
color: blue;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
+193
View File
@@ -0,0 +1,193 @@
<?xml version='1.0'?>
<!--
'Efficient' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Cies Breijs
Design based on 'Efficient' by Cies Breijs
http://www.kde-look.org/content/show.php?content=26318
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Efficient.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}">
<!-- this style also displays the time for other messages -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Fresh.xsl Fresh.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh/ )
+282
View File
@@ -0,0 +1,282 @@
/*
'Fresh' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl, dt, dd
{
margin: 0;
padding: 0;
}
/*
* make sure position: absolute stays in the message (for time).
*/
.incoming,
.outgoing,
.offlineIncoming
{
position: relative;
}
/*
* general message layout and colors.
*/
.outgoing
{
background-color: #edf2ff;
border-top: 1px solid #dce6ff;
border-bottom: 1px solid #dce6ff;
}
.avatar
{
background-image: url("bg_gravatar.gif");
background-repeat: no-repeat;
float: left;
margin: 10px;
width: 93px;
height: 70px;
overflow: hidden;
/* instead of padding, use margin on img to align it.
makes the computation of width and height easier */
}
.rtl .avatar
{
float: right;
background-image: url("bg_gravatar_rtl.gif");
}
.avatar img
{
margin-left: 11px;
margin-top: 11px;
height: 48px;
width: 48px;
/* omitting the width auto scales, but it becomes ugly */
}
.rtl .avatar img
{
margin-left: 34px;
}
.incoming,
.outgoing,
.offlineIncoming
{
margin-top: 4px;
margin-bottom: 4px;
/* new messages should appear below the float */
clear: both;
}
.incoming dl,
.outgoing dl,
.offlineIncoming dl
{
/* for alignment of lines under the float */
margin-left: 113px; /* avatar width + margin */
margin-top: 11px;
padding-bottom: 0.7em;
}
div.application,
div.notification,
div.system
{
margin-left: 11px;
margin-top: 0.7em;
margin-bottom: 0.7em; /* no padding, so time also gets margin */
position: relative; /* for time */
}
/*
* name in message title.
*/
dt span.name
{
display: block;
color: #030612;
font-weight: bold;
margin-bottom: 0.3em;
margin-right: 2px;
}
.offlineIncoming dt span.name
{
color: #485770;
}
/*
* time in message title and other messages.
*/
span.time
{
position: absolute;
right: 5px;
bottom: 0;
color: #2f63b3;
font-size: 8pt;
/* some margins to fix most ugly stuff when resizing */
margin-left: 5px;
margin-bottom: 0;
}
.rtl span.time
{
/* reverse for right-to-left */
position: absolute;
left: 5px;
right: auto;
margin-left: 0;
margin-right: 5px;
}
/*
* message body.
* reset spacing and default indent of dd element.
*/
dd
{
margin: 0;
padding: 0;
}
dd div.messageContent
{
/* avoid overlapping the time field */
padding-right: 5em;
}
/*
* grouped messages splitter effect
*/
.messagegroup dd.middle-child,
.messagegroup dd.last-child
{
margin-top: 0.4em;
padding-top: 0.4em;
border-top: 1px solid #dce6ff;
}
.messagegroup dd.last-child
{
padding-bottom: 5px;
}
.messagegroup dd
{
position: relative; /* startpoint for absolute positions */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application
{
color: blue;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Set the standard body margins.
* The extra #ChatMessageView prefix is needed to overrule
* the inline rule added by the chat window.
*/
#ChatMessageView body
{
padding: 0;
}
+233
View File
@@ -0,0 +1,233 @@
<?xml version='1.0'?>
<!--
'Fresh' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Fresh.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<xsl:choose>
<xsl:when test="from/contact/displayPicture/@url">
<img src="{from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<!-- show time? -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<!-- this style also displays the time for other messages -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<!-- use the last message, so the icon updates when the buddy changes their icon
with the commonly used "look at my icon now" message -->
<xsl:choose>
<xsl:when test="message[last()]/from/contact/displayPicture/@url">
<img src="{message[last()]/from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</xsl:for-each>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+24
View File
@@ -0,0 +1,24 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
set(kmess_pure_FILES
Pure.css
Pure.xsl
arrow0.png
arrow1.png
clock.png
contact.png
corner-bl.png
corner-br.png
corner-tl.png
corner-tr.png
important.png
myself.png
system.png
)
install( FILES ${kmess_pure_FILES} DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Pure/ )
+321
View File
@@ -0,0 +1,321 @@
/*
'Pure' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2004, Francois Chazal
Design based on 'Pure' by Francois Chazal
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
dl
{
margin: 0 0 16px 0; /* margin bottom is 16px */
}
/*
* message title. each child element of the title
* add a different part of the background and images.
* span.time is also given a background-color so
* it can overlap long names without having ugly text.
*/
dt
{
margin: 0;
padding: 0;
background-image: url(corner-tl.png); /* left corner part */
background-position: top left;
background-repeat: no-repeat;
}
.incoming dt,
.incoming dt span.time
{
background-color: #c9d9f0;
color: #567199;
}
.outgoing dt,
.outgoing dt span.time
{
background-color: #e1e1e1;
color: #707070;
}
.offlineIncoming dt,
.offlineIncoming dt span.time
{
background-color: #CFE0F7;
color: #6787B7;
}
dt span.wrapper
{
display: block;
height: 20px;
padding: 2px;
font-weight: bold;
font-size: 10px;
background-image: url(corner-tr.png); /* right corner part */
background-position: top right;
background-repeat: no-repeat;
position: relative; /* starting-point for absolute position below */
}
/*
* name in the message title.
* adds a small icon to the left.
*/
dt span.name
{
padding: 0 20px 0 20px; /* right and left padding */
line-height: 20px;
background-position: center left;
background-repeat: no-repeat;
white-space: nowrap; /* avoid overlapping message text */
vertical-align: top; /* makes it better in mozilla */
z-index: 1;
}
.incoming dt span.name,
.offlineIncoming dt span.name
{
background-image: url(contact.png);
}
.outgoing dt span.name
{
background-image: url(myself.png);
}
dt.rtl span.name
{
/* reverse for right-to-left names */
background-position: center right;
}
/*
* time in message title.
* adds a time icon to the right.
*/
dt span.time
{
/* align right, no float to avoid elements falling below. */
position: absolute;
right: 2px;
/* set background, give padding so text does not overlap it */
line-height: 20px;
padding-left: 5px;
padding-right: 20px;
background-image: url(clock.png);
background-position: right center;
background-repeat: no-repeat;
}
dt.rtl span.time
{
/* reverse for right-to-left names */
position: absolute;
left: 2px;
right: auto;
padding-left: 20px;
padding-right: 5px;
background-position: left center;
}
/*
* message body.
* add some spacing, color and the bottom line.
*/
dd
{
margin: 0;
padding: 5px;
}
.incoming dd
{
background-color: #f5f6fa;
border-bottom: 2px solid #c9d9f0;
}
.outgoing dd
{
background-color: #f9f9f9;
border-bottom: 2px solid #e1e1e1;
}
.offlineIncoming dd
{
background-color: #F7F8FC;
border-bottom: 2px solid #c9d9f0;
}
/*
* message footer.
* the bottom part is added to the main dl object.
*/
.incoming dl,
.offlineIncoming dl
{
background-image: url(corner-br.png);
background-repeat: no-repeat;
background-position: bottom right;
padding-bottom: 7px;
}
.outgoing dl
{
background-image: url(corner-bl.png);
background-repeat: no-repeat;
background-position: bottom left;
padding-bottom: 7px;
}
/*
* grouped messages
*/
.messagegroup .incoming dd,
.messagegroup .offlineIncoming dd
{
padding-left: 10px;
background-image: url(arrow0.png);
background-position: 0 0.9em;
background-repeat: no-repeat;
/*
display: list-item;
list-style-image: url(arrow0.png);
list-style-position: inside;
marker-offset: 0;
*/
}
.messagegroup .outgoing dd
{
padding-left: 10px;
background-image: url(arrow1.png);
background-position: 0 0.9em;
background-repeat: no-repeat;
}
.messagegroup dd.first-child,
.messagegroup dd.middle-child
{
border: 0; /* no repeated border for first and middle items */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application,
div.notification,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
}
div.application
{
color: blue;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
padding: 3px 0;
border-top: 1px solid red;
border-bottom: 1px solid red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Set the standard body margins.
* The extra #ChatMessageView prefix is needed to overrule
* the inline rule added by the chat window.
*/
#ChatMessageView body
{
padding: 10px;
}
+193
View File
@@ -0,0 +1,193 @@
<?xml version='1.0'?>
<!--
'Pure' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Francois Chazal
Design based on 'Pure' by Francois Chazal
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Pure.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}" class="{from/contact/displayName/@dir}">
<span class="wrapper">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
</span>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}" class="{message[1]/from/contact/displayName/@dir}">
<span class="wrapper">
<!-- show time? -->
<xsl:if test="message[1]/@time">
<span class="time"><xsl:value-of select="message[1]/@time"/> - <xsl:value-of select="message[last()]/@time"/></span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
</span>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1017 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

+295
View File
@@ -0,0 +1,295 @@
<?xml version='1.0'?>
<!--
This is an example chat conversation.
It contains the common message types and variations.
To view the HTML result of a chat style, use:
xsltproc Themedir/theme.xsl examplemessage.xml > Themedir/test.html
To view all chat styles, use:
for i in */*.xsl; do name=`dirname $i`; xsltproc $i examplemessage.xml > $name/test.html; done
konqueror */test.html &
To cleanup everything, use:
rm */test.html
-->
<messageRoot>
<!--
Incoming message from another contact
When the "Show time in messages" option in unchecked,
the 'time' attribute won't be added to messages.
-->
<message type='incoming'><!-- time may be omitted -->
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Aren't you going to open your gift? &lt;img src="/opt/kde3/share/apps/kmess/emoticons/regular.png" height="29" width="29" alt=":)" title="" valign="top" class="standardEmoticon"&gt;&lt;br&gt;&lt;br&gt;This is an example chat message.&lt;br&gt;Use &lt;code&gt;xsltproc &lt;var&gt;theme&lt;/var&gt;.xsl examplemessage.xml &amp;gt; test.html&lt;/code&gt; to see the HTML result.</body>
</message>
<!--
More incoming messages, this time with
longer names to test the layout.
-->
<message type='incoming' time='10:30:23'>
<from>
<contact contactId='carol@kmess.org'>
<displayPicture url='' />
<displayName text='Carol with longer name' dir='ltr' />
</contact>
</from>
<body color='#0099cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0099cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Hello there!</body>
</message>
<message type='incoming' time='10:30:59'>
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Welcome to the chat Carol</body>
</message>
<!--
Outgoing message to another contact.
The "Group follow-up messages from the same contact" is checked,
the messages will be grouped in a <messagegroup> node.
Each time a new message is appended, the whole group is regenerated.
-->
<messagegroup>
<message type='outgoing' time='10:24:30'>
<from>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
<body color='#cc3300'
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Verdana" color="#cc3300"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>I'm not sure yet</body>
</message>
<message type='outgoing' time='10:24:40'>
<from>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
<body color='#cc3300'
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Verdana" color="#cc3300"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>no really</body>
</message>
</messagegroup>
<!--
This is testing the right-to-left support of your chat theme.
The 'dir' attribute indicates whether it's left-to-right (ltr) or right-to-left (rtl).
The name can be right-to-left, or the message, or both.
-->
<message type='incoming' time='10:31:30'>
<from>
<contact contactId='rtl@kmess.org'>
<displayPicture url='' />
<displayName text='right to left name' dir='rtl' />
</contact>
</from>
<body color='#0099cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0099cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>This name is written right-to-left. Next message should be entirely right-to-left.</body>
</message>
<message type='incoming' time='10:31:59'>
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='הודעות טקסט' dir='rtl' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='rtl'
>הודעות טקסט</body>
</message>
<!--
Testing notification messages.
These are used for events (you got a wink, nudge) and invitations.
-->
<message type='notification' date='2006-10-08' time='15:13:12'>
<from>
<contact contactId='alice@kmess.org'>
</contact>
</from>
<body color=''
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore=''
fontAfter=''
dir='ltr'
>&lt;span class="acceptMessage"&gt;Do you want to accept the file: &lt;span class="filename invitedFilename"&gt;desktop.ini&lt;/span&gt; (79 bytes) Do you want to &lt;a href="kmess://accept/alice@kmess.org?976544"&gt;accept&lt;/a&gt; or &lt;a href="kmess://reject/alice@kmess.org?976544"&gt;cancel&lt;/a&gt;?&lt;/span&gt;</body>
</message>
<!--
Testing application messages.
These are informative messages, like "file transfer complete".
-->
<message type='application' date='2006-10-08' time='15:13:25'>
<from>
<contact contactId='alice@kmess.org'>
</contact>
</from>
<body color=''
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore=''
fontAfter=''
dir='ltr'
>Successfully transferred file: &lt;span class="filename completedFilename"&gt;&lt;a href="file:/home/diederik/Desktop/desktop.ini"&gt;desktop.ini&lt;/a&gt;&lt;/span&gt;</body>
</message>
<!--
Just a message in between so it looks more like a chat.
The contact uses a different font here.
-->
<message type='outgoing' date='2006-10-08' time='15:14:00'>
<from>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
<body color='#66aa00'
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Verdana" color="#66aa00"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Thanks for the file</body>
</message>
<!--
Testing system error messages.
These are used for unsupported things and errors
like "invitation not supported", "contact is offline"
-->
<message type='system' date='2006-10-08' time='15:26:52'>
<from>
<contact contactId='alice@kmess.org'>
</contact>
</from>
<body color=''
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore=''
fontAfter=''
dir='ltr'
>The contact is inviting you for 'Bejeweled', but this is not implemented yet.</body>
</message>
<!--
Offline-IM messages.
These are received when the user gets online.
This is the main reason why each message also has a 'date' attribute.
-->
<message type='offlineIncoming' date='2006-10-08' time='15:26:52'>
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>This is an offline-IM message.</body>
</message>
</messageRoot>
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
# Run 'xsltproc' for every .xsl file
# It extracts the <xsl:text kmess:translate="true">..</xsl:text> nodes
# and generates output compatible for xgettext.
# The white space is simplified to avoid easily broken translations.
find . -mindepth 2 -name '*.xsl' \
| sort \
| while read xslFile
do
xsltproc --stringparam "filename" "$xslFile" \
--nonet \
--nomkdir \
"$0.xsl" "$xslFile"
done
+66
View File
@@ -0,0 +1,66 @@
<?xml version='1.0'?>
<!--
KMess transformation sheet to extract messages.
Copyright (C) 2006, Diederik van der Boor
Generates output for xgettext.
This program is started with xsltproc
by the 'extract-xsl-messages' shell script.
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="text"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes" />
<!--
parameter with file name
-->
<xsl:param name="filename" select="'kmess/styles/unknown-xsl'" />
<!--
Trick to get \n character
-->
<xsl:variable name="crlf"><xsl:text>
</xsl:text></xsl:variable>
<!--
Process root node, search for <xsl:text> nodes.
-->
<xsl:template match="/xsl:stylesheet">
<xsl:apply-templates select="//xsl:text" />
</xsl:template>
<!--
Process <xsl:text> nodes.
-->
<xsl:template match="xsl:text">
<!-- trip the node text leafs and simplyfy space -->
<xsl:variable name="trimmed" select=" normalize-space( text() ) " />
<!-- ignore <xsl:text> </xsl:text> nodes, output others for xgettext format -->
<xsl:if test=" $trimmed != '' and @kmess:translate = 'true' ">
<!-- line 1 -->
<xsl:text>//i18n: file </xsl:text>
<xsl:value-of select="$filename" />
<xsl:text> line 0</xsl:text>
<xsl:value-of select="$crlf" />
<!-- line 2 -->
<xsl:text>// xgettext: no-c-format</xsl:text>
<xsl:value-of select="$crlf" />
<!-- line 3 -->
<xsl:text>i18n("</xsl:text>
<xsl:value-of select=" $trimmed " />
<xsl:text>");</xsl:text>
<xsl:value-of select="$crlf" />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
+2
View File
@@ -0,0 +1,2 @@
ADD_SUBDIRECTORY( KMess2-new )
+89
View File
@@ -0,0 +1,89 @@
SET( kmess_emoticon_FILES
emoticons.xml
smile.png
airplane.png
angel.png
angry.png
arrogant.png
asl.png
automobile.png
baringteeth.png
bat.png
beer.png
bowl.png
boy.png
brb.png
cake.png
camera.png
cat.png
cigarette.png
clock.png
cocktail.png
computer.png
confused.png
cry.png
cup.png
devil.png
dog.png
dude_hug.png
embarrassed.png
envelope.png
eyeroll.png
film.png
fingerscrossed.png
gameconsole.png
girl_hug.png
girl.png
handcuffs.png
highfive.png
huh.png
island.png
kiss.png
lightbulb.png
lightning.png
love.png
megasmile.png
messenger.png
mobilephone.png
money.png
moon.png
nerd.png
note.png
omg.png
party.png
phone.png
pizza.png
plate.png
present.png
rainbow.png
regular.png
rose.png
sad.png
sarcastic.png
secret.png
shade.png
sheep.png
sick.png
sleepy.png
snail.png
soccer.png
sshh.png
star.png
storm.png
sun.png
teeth.png
thinking.png
thumbs_down.png
thumbs_up.png
tongue.png
turtle.png
ugly.png
umbrella.png
unhappy.png
unlove.png
wilted_rose.png
wink.png
)
INSTALL( FILES ${kmess_emoticon_FILES} DESTINATION ${SHARE_INSTALL_PREFIX}/emoticons/KMess-new )

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 811 B

After

Width:  |  Height:  |  Size: 811 B

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Some files were not shown because too many files have changed in this diff Show More