Browse Source

Added KDE3 version of kvirc


git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kvirc@1095341 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
tags/v3.5.13
tpearson 9 years ago
commit
a6d58bb605
100 changed files with 28411 additions and 0 deletions
  1. 2280
    0
      ChangeLog
  2. 712
    0
      FAQ
  3. 753
    0
      INSTALL
  4. 95
    0
      Makefile.am
  5. 387
    0
      README
  6. 50
    0
      TODO
  7. 8761
    0
      acinclude.m4
  8. 910
    0
      aclocal.m4
  9. 164
    0
      autogen.sh
  10. 270
    0
      configure.in
  11. 6
    0
      data/Makefile.am
  12. 5
    0
      data/applnk/Makefile.am
  13. 18
    0
      data/applnk/kvirc.desktop
  14. 5
    0
      data/config/Makefile.am
  15. 1611
    0
      data/config/serverdb.kvc
  16. 39
    0
      data/config/texticons.kvc
  17. 11
    0
      data/defscript/Makefile.am
  18. 706
    0
      data/defscript/aliases.kvs
  19. 37
    0
      data/defscript/default.kvs
  20. 105
    0
      data/defscript/events.kvs
  21. 169
    0
      data/defscript/installer.kvs
  22. 1381
    0
      data/defscript/popups.kvs
  23. 30
    0
      data/defscript/theme-install.kvs
  24. 43
    0
      data/defscript/toolbars.kvs
  25. 2
    0
      data/deftheme/Makefile.am
  26. 5
    0
      data/deftheme/silverirc/Makefile.am
  27. BIN
      data/deftheme/silverirc/pixmapInputBackground.png
  28. BIN
      data/deftheme/silverirc/pixmapIrcViewBackground.png
  29. BIN
      data/deftheme/silverirc/pixmapUserListViewBackground.png
  30. 273
    0
      data/deftheme/silverirc/themedata.kvc
  31. 10
    0
      data/deftheme/silverirc/themeinfo.kvc
  32. 1
    0
      data/doctemplates/Makefile.am
  33. 60
    0
      data/doctemplates/ircintro.template
  34. 67
    0
      data/doctemplates/kvircintro.template
  35. 3312
    0
      data/doctemplates/rfc2812.template
  36. 5
    0
      data/helppics/Makefile.am
  37. BIN
      data/helppics/helplogoleft.png
  38. BIN
      data/helppics/helplogoright.png
  39. 5
    0
      data/icons/128x128/Makefile.am
  40. BIN
      data/icons/128x128/kva.png
  41. BIN
      data/icons/128x128/kvc.png
  42. BIN
      data/icons/128x128/kvirc.png
  43. BIN
      data/icons/128x128/kvs.png
  44. BIN
      data/icons/128x128/kvt.png
  45. 5
    0
      data/icons/16x16/Makefile.am
  46. BIN
      data/icons/16x16/kva.png
  47. BIN
      data/icons/16x16/kvc.png
  48. BIN
      data/icons/16x16/kvirc.png
  49. BIN
      data/icons/16x16/kvs.png
  50. BIN
      data/icons/16x16/kvt.png
  51. 6
    0
      data/icons/32x32/Makefile.am
  52. BIN
      data/icons/32x32/kva.png
  53. BIN
      data/icons/32x32/kvc.png
  54. BIN
      data/icons/32x32/kvirc.png
  55. 295
    0
      data/icons/32x32/kvirc.xpm
  56. BIN
      data/icons/32x32/kvs.png
  57. BIN
      data/icons/32x32/kvt.png
  58. 5
    0
      data/icons/48x48/Makefile.am
  59. BIN
      data/icons/48x48/kva.png
  60. BIN
      data/icons/48x48/kvc.png
  61. BIN
      data/icons/48x48/kvirc.png
  62. 311
    0
      data/icons/48x48/kvirc.xpm
  63. BIN
      data/icons/48x48/kvs.png
  64. BIN
      data/icons/48x48/kvt.png
  65. 5
    0
      data/icons/64x64/Makefile.am
  66. BIN
      data/icons/64x64/kvirc.png
  67. BIN
      data/icons/64x64/kvs.png
  68. 5
    0
      data/icons/Makefile.am
  69. 5
    0
      data/icons/scalable/Makefile.am
  70. 24
    0
      data/icons/scalable/createpng.sh
  71. BIN
      data/icons/scalable/kva.svgz
  72. BIN
      data/icons/scalable/kvc.svgz
  73. BIN
      data/icons/scalable/kvirc.svgz
  74. BIN
      data/icons/scalable/kvs.svgz
  75. BIN
      data/icons/scalable/kvt.svgz
  76. 3
    0
      data/man/Makefile.am
  77. 133
    0
      data/man/kvirc.1
  78. 5
    0
      data/mimelnk/Makefile.am
  79. 7
    0
      data/mimelnk/x-kva.desktop
  80. 7
    0
      data/mimelnk/x-kvc.desktop
  81. 7
    0
      data/mimelnk/x-kvs.desktop
  82. 7
    0
      data/mimelnk/x-kvt.desktop
  83. 5
    0
      data/msgcolors/Makefile.am
  84. 659
    0
      data/msgcolors/all-black.msgclr
  85. 659
    0
      data/msgcolors/all-gray.msgclr
  86. 659
    0
      data/msgcolors/all-green.msgclr
  87. 659
    0
      data/msgcolors/all-white.msgclr
  88. 659
    0
      data/msgcolors/colored-2.msgclr
  89. 659
    0
      data/msgcolors/colored.msgclr
  90. 659
    0
      data/msgcolors/default.msgclr
  91. 659
    0
      data/msgcolors/heavy-colors.msgclr
  92. 8
    0
      data/pics/Makefile.am
  93. 8
    0
      data/pics/coresmall/Makefile.am
  94. BIN
      data/pics/coresmall/kcs_accept.png
  95. BIN
      data/pics/coresmall/kcs_action.png
  96. BIN
      data/pics/coresmall/kcs_addons.png
  97. BIN
      data/pics/coresmall/kcs_afraid.png
  98. BIN
      data/pics/coresmall/kcs_alert.png
  99. BIN
      data/pics/coresmall/kcs_alias.png
  100. 0
    0
      data/pics/coresmall/kcs_aliashighlighted.png

+ 2280
- 0
ChangeLog
File diff suppressed because it is too large
View File


+ 712
- 0
FAQ View File

@@ -0,0 +1,712 @@
1. PROJECT RELATED QUESTIONS

1.1 What is KVIrc ? What the "KVIrc" name stands for ?
1.2 Why KVIrc is not totally integrated in KDE ?


2. COMPILATION

2.1 I can't compile kvirc from cvs, what's wrong?
2.2 Internal Compiler Errors ?
2.3 On Mandrake 10.0 (or other) KVIrc fails to start
saying that it can't find libkvisetup.so.
2.4 I got 'amarokInterface.cpp:29:31: amarokInterface.moc: No such file or directory'. Whats going wrong?
2.5 Configure complains about a missing libdl.so but I seem to have it


3. INSTALLATION

3.1 There is a problem during package installation/creation
file /usr/share/services/irc.protocol from install
kvirc-version.package conflicts with file from package xxx


4. IRC

4.1 How do i join a channel ?
4.2 How do i autojoin channels ?
4.3 How do I enable automatic NickServ identification ?
4.4 I can't see my national characters, what's wrong ?
4.5 I can't connect to an IPV6 server, what's wrong ?
4.6 /me doesn't support the '$' character, what's wrong ?
4.7 /me doesn't support the '"' (double quote) character, what's wrong ?
4.8 /me can't contain the ';' character, what's wrong ?
4.9 I try to do a /whois on nick blah\ but i get the reply for blah (without the slash)
4.10 What is AVATAR protocol ? Is there any documentation about it ?
4.11 The log files seem to be saved randomly, when I open a log
I can see only a part of the text that actually should be there
4.12 The DCC transfers seem to be interrupted after the first few bytes:
KVIrc says that the remote end has closed the connection.


5. ADVANCED IRC FEATURES

5.1 How do I connect to an SSL-enabled IRC server ?
5.2 How do I use DCC over SSL ?
5.3 Do I need a SSL certificate ?
5.4 How do I create a SSL certificate ?
5.5 I can't get KVIrc to use my SSL certificate in a DCC, what's wrong ?
5.6 KVIrc crashes when a certificate is used under Windows, what's wrong ?
5.7 How do I enable mircryption (encryption in general) for a specific channel ?
5.8 How do I execute a process and send its output to a channel ?
5.9 How do I keep channels and queries open after a disconnect ?
5.10 I have an unreliable ISP connection but KVIrc takes a really long
time to detect a disconnection and reconnect.
5.11 I'm in a LAN and KVIrc uses a wrong IP address in dcc transfers

6. APPAREANCE

6.1 On Windows KVIrc seems to slow-down sometimes, what's wrong ?
6.2 I don't see the channel popup menus anymore, what's wrong ?
6.3 Does KVIrc support Themes?
6.4 I hate all that colors, what can I do about it ?
6.5 On Windows, how do I use firefox/opera/any_other_browser to open links instead of explorer ?


7. CRASHES

7.1 KVIrc crashes when the multiline text input is opened (obsolete)
7.2 What the heck is a gdb stack trace and how do I get it ?
7.3 KVIrc hangs up, but doesn't crash. How do i report debug informations ?
7.4 KVIrc exits by itself or simply "disappears" without any apparent reason.
7.5 KVIrc dies randomly and "Alarm Clock" is printed in the console
7.6 KVIrc dies when using alias(identify){ identify password; }

--------------------------------------------------------------------------------
1. PROJECT RELATED QUESTIONS
--------------------------------------------------------------------------------


1.1 What is KVIrc ?

KVIrc is a cross-platform Internet Relay Chat client.
The name stands for K Visual Internet Relay Chat client.
The K prefix comes from the old times, when KVIrc was bound to the
KDE project and depended on the KDE libraries to run. Actually this
is not true anymore since KVIrc depends only on the Qt library from
TrollTech and runs also on platforms where KDE can't run.


1.2 Why KVIrc is not totally integrated in KDE ?

First of all read the answer for question 1.1.
We could provide a more complete integration by the means of conditional
compilation but since it would require additional efforts to synchronize
the KVIrc sources with the KDE library changes we choose not to do it.
If you wish to contribute some code that better integrates KVIrc with
KDE you're welcome to do so: we will happily accept your patches as long
as you promise to mantain them :)


--------------------------------------------------------------------------------
2. COMPILATION
--------------------------------------------------------------------------------

2.1 I can't compile kvirc from svn, what's wrong?

Have you checked the requirements ?
*Carefully* read the INSTALL file that comes with the distribution:
it contains the informations to solve 95% of the problems that
you may encounter. You may also try digging in our mailing list
archive: many problems have been solved there.
If you still can't get it to work please either subscribe to the KVIrc
mailing list (see www.kvirc.net) and report the problem there or join #kvirc
on IRCNet and ask the channel members for a hint.


2.2 Internal Compiler Errors ?

Compile errors like this:
In file [somefile]:[someline] internal error:
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugzilla.redhat.com/bugzilla/> for instructions.

This error can have multiple reasons.
1) A compiler bug: my GCC 3.2 20020903 (default on RH 8.0) spits
out 5-6 of them daily. Usually it is solved by simply restarting the "make" command.
If it doesn't go away or if it gets really frequent and annoying you might try to upgrade the compiler.
2) A memory corruption: this is really frequent: one of your memory banks is spitting random bytes
sometimes. Usually the problems come out under heavy system load (kernel, KDE or kvirc compilation for example).
You can check for memory corruption by trying different RAM modules (or removing them one at a time to discover
the broken bank). You can also try a program called memtest and a kernel
patch that can force the broken memory banks to be ignored by the kernel (allocated permanently to a dummy kernel task).
These tools can be found by digging the web with your favorite search engine.
3) A deeper hardware problem: if upgrading the compiler and changing memory banks doesn't help then
it *might* be a deeper hardware problem: bus errors , faulty IDE (or SCSI) controller or even buggy CPU...
Well....


2.3 On Mandrake 10.0 (or other) KVIrc fails to start
saying that it can't find libkvisetup.so.

Mandrake 10.0 default libtool package is broken. Either upgrade
the libtool package or try to run ./autogen.sh --bundled-libtool
and then recompile (./configure, make, make install).
This *might* apply to other systems too.


2.4 I got 'amarokInterface.cpp:29:31: amarokInterface.moc: No such file or directory'. Whats going wrong?

You have to install qt3 devel tools which include uic and moc. If installed, be sure that uic and moc are in PATH.


2.5 Configure complains about a missing libdl.so but I seem to have it

The most common causes are two:

1) You have libdl.so.X (where X is usually a number or a set of numbers) but not libdl.so

You need to do a symbolic link from libdl.so.X to libdl.so. You do it by entering the directory
where libdl.so.X is and issuing a ln -s command, for example:

# cd /lib
# ls libdl*
# ln -s libdl.so.2 libdl.so

Then try to ./configure again

2) You don't have a c++ compiler installed

The libdl test is the first ./configure test made with a c++ compiler.
The confirmation for this error can be found in the config.log file
where you can find lines similar to the following:

configure:21637: g++ -o conftest conftest.cc -rdynamic -ldl >&5
./configure: line 1: g++: command not found
configure:21643: $? = 127
configure: failed program was:
...

Your distribution probably ships the c++ frontend to gcc in a package
separated from gcc itself. The package might be also named g++.
Look it up on your installation CD and install it, then ./configure again.

-------------------------------------------------------------------------------
3. INSTALLATION
-------------------------------------------------------------------------------

3.1 There is a problem during package installation/creation
file /usr/share/services/irc.protocol from install
kvirc-version.package conflicts with file from package xxx

This is a known issue with all types of packages that handle
file conflicts. KVIrc installs the irc protocol handler for KDE
and the same is done by ksirc and kopete (and maybe others).
There is no particular reason for KVIrc to fix it in the core
distribution (and there is also no simple way to do it).
Either the package maker must exclude the irc.protocol
file from installation or mark it as "optional" in some way or the
users must use some sort of "force" flag during the installation.


-------------------------------------------------------------------------------
4. IRC
-------------------------------------------------------------------------------

4.1 How do i join a channel ?

Type "/join #channelname"


4.2 How do i autojoin channels?

There are many ways to do it.
For example:
Select "Scripting/Events" from the KVIrc menu.
Lookup the "OnIrc" entry in the left pane of the window that pops up.
Right-click on that entry and select "Add handler".
A "default" handler will be created. In the right pane write:
join #kvirc
join #kde-users
join #somechannel
....
Now click OK and you're done: you have just created a handler for an event.
Reconnect to a server and KVIrc will autojoin the channels that you have selected.
Another option (nicer, if you use several servers) is to go to the servers options
page and click the button labeled 'Advanced' on the entry for the single server.
There is a server-specific "On connect execute..." event.


4.3 How do I enable automatic NickServ identification ?

KVIrc supports two kind of NickServ identification rules: per-network and global.
The per-network rules can be accessed from the server options page.
You need to select a network in the list view (not a server!) and then click
"Advanced...". In the dialog that appears there is a NickServ tab
on that you can add your identification rules. Adding a rule
should be straightforward (if you stop the mouse over an item you will likely get a small
tool tip with the explaination). Each rule is composed of:
- the nickname that is being identified: the rule will be applied only
when your current nickname corresponds to this one.
- a nick server user mask that must be matched by the NickServ user
in order for him to be recognized as the real NickServ asking for
identification. You will probably use something like NickServ!service@*
- a message regular expression that must be matched by the message
that the NickServ sends when requesting the identification.
You will probably use something like "If this is your nick,
identify yourself with /ns IDENTIFY password"
- an identification command that will be executed when all the rules
above match. You will probably use something like "ns IDENTIFY yourpassword"
The global rules can be created in the IRC::NickServ page of the options dialog
(accessible from the Settings/Configure KVIrc... menu). The main difference
is that each rule has a server mask that must be matched by the current
server name for the rule to be applied.
KVIrc first looks in the per-network rules and if none matches it looks
in the global rules.


4.4 I can't see my national characters, what's wrong ?

There are several ways to fix your national characters display.
General encoding:
Open the options dialog and go to the "Encoding" page.
You can set explicitly the encoding to be used for the whole application.
If you choose "Use Language Encoding" KVIrc will try to guess the
encoding from your system settings. If this doesn't work then the reasons
may be:
- Your system settings are wrong
You need to fix them
- Your server applies some specific encoding to the data
See "Server encoding"
- You're chatting with people that have different system settings
See "Channel & Query encoding"
Server encoding
Besides the general encoding you can set one encoding per server.
This is done in the server options dialog (Click Advanced...).
The encoding will be applied to all the text that comes from
and goes to the server. If you choose "Use system encoding"
then the server will inherit the "General encoding" value above.
If this doesn't work then you have either set it incorrectly or
you are chatting with people that use different encodings.
In this case see "Channel & Query encoding"
The server encoding is used also to decode nicknames and
channel names on servers that support it.
Channel & Query encoding
Besides the general and server encoding you can set also per-window
encoding in channels and queries. This encoding will be applied
ONLY to the text sent to or received from that channel or query.
This feature is useful when chatting over a non unicode aware
IRC server (nearly all at the time of writing) with people
that have settings different than your general defaults or
the server default.

Keep in mind that IRC has a MAJOR problem with character encoding
and in fact the formal definition of the protocol requires it
to be only 7bit safe. This means that on some servers you may
see your national characters eaten by the IRC network and there
is almost nothing you can do about that...

UTF-8 is the best encoding we can get on IRC. Try to convince
other people to use it :)


4.5 I can't connect to an IPV6 server, what's wrong ?

First of all make sure that your IPV6 stack is setup correctly.
Can you ping6 other IPV6 other machines ?

# ping6 www.6bone.net

Is the IPV6 support enabled in your kvirc executable ?
To find it out , try

/echo $features

in the KVIrc commandline. You should get a comma separated list of
features compiled in the executable. If the list contains "IPv6" then
the support is compiled in, otherwise you must check your compilation
stage to guess what went wrong.
To connect to an IPV6 server you can use /server -i <servername>
If you can ping other IPV6 machines, the IPv6 support is compiled in your
executable and you still can't connect to an *existing* IPv6 server then
you may have found a bug :) Report it.


4.6 /me doesn't support the '$' character, what's wrong ?

This is NOT a bug : this is a feature : kvirc supports (and substitutes!) variables in all the commands.
You can escape your $ sign by using the backslash character: /me has gained \$100 will work correctly


4.7 /me doesn't support the '"' (double quote) character, what's wrong ?

This is NOT a bug : this is a feature : a string enclosed in double quotes will have its whitespace preserved
while the other strings will have the whitespace simplified. This is valid for ANY command.
You can escape your " sign by using the backslash character: /me feels a bit \"foo\" will work correctly


4.8 /me can't contain the ';' character, what's wrong ?

This is NOT a bug : this is a feature : kvirc supports multiple commands on a single line and uses ';' as a command
separator. You can escape your ';' sign by using the backslash character: /me is hungry \;) will work correctly.


4.9 I try to do a /whois on nick blah\ but i get the reply for blah (without the slash)

In KVIrc /whois is a scripting command and the nickname is a command parameter.
In scripting commands the backslash is a special character with several "escape"
meanings. To include a literal backslash inside a parameter you MUST double it,
thus the correct command to issue is /whois blah\\


4.10 What is AVATAR protocol? Is there any documentation about it ?

AVATAR is a simple CTCP based protocol that allows associating images (avatars)
to IRC users. The protocol definition is simple:

- CTCP AVATAR QUERY:
:<source> PRIVMSG <target> :<0x01>AVATAR<0x01>
Queries the avatar of the <target>.
- CTCP AVATAR REPLY:
:<source> NOTICE <target> :<0x01>AVATAR <avatar_url><0x01>
Asserts that the <source> user's avatar is located at <avatar_url>
that usually will be something like http://server.domain.top/avatarimage.jpg.

KVIrc supports also DCC based avatars that are simply "offered" to the
remote users. In this case the <avatar_url> does not contain the http://
prefix but is a simple file name. The remote users request the avatars
by issuing a DCC GET command. This is an useful but secondary extension
and can be ignored by simple implementations. If you need more informations
about this method please write to pragma at kvirc dot net.


4.11 The log files seem to be saved randomly, when I open a log
I can see only a part of the text that actually should be there

KVIrc does not explicitly flush the log files while writing them. The OS
(or the underlying C library) does the flush operation when necessary.
This means that blocks of the log file will be added to the file on disk
only once in a while. If you really need to see the logs in real time
then you can explicitly flush the log files by scripting.
Just add a script like this to your OnKVIrcStartup event:
timer(flushlogfiles,30000)
{
foreach(%x,$window.list(all,any))
{
if($log.file(%x))
{
echo -w=%x "Flushing log file...";
log.flush -w=%x;
}
}
}
The script above will flush all the log files every 30 seconds. You may
remove the echo statement if you're annoyed by the output :)


4.12 The DCC transfers seem to be interrupted after the first few bytes:
KVIrc says that the remote end has closed the connection.

Make sure that you don't have activated the "Send ACK for byte 0"
option in "Options->DCC->File Transfer->Advanced".
This option should be used ONLY IF you have problems without.




-------------------------------------------------------------------------------
5. ADVANCED IRC FEATURES
-------------------------------------------------------------------------------


5.1 How do I connect to an SSL-enabled IRC server ?

Use /server -s <servername>
It should work also over IPV6.
If it doesn't work then your executable might have no SSL support compiled in.
To find it out type

/echo $features

in the KVIrc commandline. If "SSL" is not in the list then you must go back
to the compilation phase and see what went wrong.


5.1 How do I use DCC over SSL ?

/dcc.chat -s <nickname> should work


5.3 Do I need a SSL certificate ?

No you shouldn't need it, but you can use it if you want.


5.4 How do I create a SSL certificate ?

A test self-signed certificate can be created by using the CA.pl perl script included
in the OpenSSL distribution. It will be something like CA.pl -newcert


5.5 I can't get KVIrc to use my SSL certificate in a DCC, what's wrong ?

The SSL protocol doesn't require the "client" to send the certificate: it is
sent only if the "server side" requests it (it is not the KVIrc case).
The server side may have a certificate and you can set it in the SSL options page.
If your Private Key is stored in the certificate file pass the same filename
to both Certificate and PrivateKey option.
Remember to set the password if needed.


5.6 KVIrc crashes when a certificate is used under Windows, what's wrong ?

This is probably a bug of the SSL dll shipped with the windows version of KVIrc.
You might try with a different version of this dll.


5.7 Can I encrypt my messages?
(or: How do I enable mircryption (encryption in general) for a specific channel?)

KVIrc supports encryption for channels, queries and dcc chats by the means
of text transformation engines. You can access the list of the engines
by clicking the button with the yellow lock in the upper right corner
of the window. In the pane that will appear select "use text transformation"
and then choose one of the available engines.
The Mircryption engine is an implementation of the mircryption protocol and
supports both ECB and CBC mode. There is also a wide variety of Rijndael based encryption
engies as well as some funky other text transform tricks.
Most of the engines will need a pair of keys to encrypt and decrypt text
and in most cases you will use the same key for both encrypting and
decrypting. In the particular case of Mircryption you can enable
CBC mode by prefixing your key(s) with the "cbc:" string.
Once you have entered the keys just click on OK and start "talking" in the
window. Any encrypted text will have a "lock" overlay in his icon.
If you want to avoid encrypting a particular text line (maybe because
you want to allow everyone on a channel to read it) you can start
the line with a CTRL+P character.


5.8 How do I execute a process and send its output to a channel ?

The straight way to do this is

/exec("your command here"){ say $1; }

Since it is not too much "user friendly", you can alias it in
the following way:

alias(runandsay)
{
exec($0-){ say $1; }
}

Then you would simply run

/runandsay cat /proc/cpuinfo

in the channel window you want the output sent to.

Keep in mind that this is a "brute" approach and I'm sure that after
reading some documentation (start from /help exec) you will be able to
find more elaborate and nice ways to send a process output to a channel/query.


5.9 How do I keep channels and queries open after a disconnect ?

KVIrc can keep your channels and queries open when the connection terminates
unexpectedly. This will probably make sense only if you plan to
reconnect to the same server or at least the same network (either manually
or automatically).

An "unexpected disconnect" is a connection termination not explicitly caused by
the KVIrc user. This means that the connection is interrupted, either
by the networking stack or by the remote server, without the user
having sent a QUIT message (by the means of the /quit command or by pressing
the "disconnect" button in the toolbar).

All this because the normal behaviour of a /QUIT command is, yes, to quit
your current connection without leaving traces of it.

To keep the channels and queries open you just need to select the
relative options in the "Connection" page of the options dialog
(on unexpected disconnect: "Keep channels open" an/or "Keep queries open").
Then you might also select "Automatically reconnect", "Rejoin channels
after reconnect" and "Reopen queries after reconnect" to bring your
"dead windows" to life again :)

Finally, you can simulate an "unexpected disconnection" by using the -u switch
of the /quit command. This might be useful when you want to explicitly
quit your connection while leaving the channels and queries open... maybe
because you need to renew the connection to your ISP before reconnecting ;)


5.10 I have an unreliable ISP connection but KVIrc takes a really long
time to detect a disconnection and reconnect.

KVIrc doesn't detect itself that the connection has dropped until your
kernel explicitly times out. KVIrc measures lag, instead, that will
probably grow up a lot when the connection has dropped.
You can write a handler for the OnLagCheck event that will detect
the lag growing over a certain threshold and reconnect.
This involves opening the event editor, selecting OnLagCheck
and choosing "Add handler" from the right mouse menu.
In the handler write:

if($1 > 30000){ quit -f -u; }

30000 is just a sample threshold (it means 30000 milliseconds!), replace
it with a value of your choice.
quit -f -u will close the current connection immediately (-f = force)
and will simulate an "unexpected disconnection" condition (-u = unexpected).
If you then enable automatic reconnection (see answer for question 5.9)
in the options dialog, KVIrc will automatically reconnect and rejoin channels.


5.11 I'm in a LAN and KVIrc uses a wrong IP address in dcc transfers

KVIrc supports a couple of methods for guessing the right IP address for
DCC transfers: you only have to guide it a bit :)

The first thing to try is "Guess address from IRC when unroutable" (Options->DCC).
This will perform a lookup on your own IRC mask once you connect
to an IRC server and use the address as source in DCC transfers.
(You need to reconnect to the server to make this option work!)
This trick will fail when your hostmask is cloaked (mode +x on recent IRC servers):
KVIrc will tell you that it couldn't look up the hostname and give up.

In this case you might try to set a fixed address to be sent as source
in the DCC transfers: you just need to fill in the *IP address* of your
router in the option field. This field doesn't support hostname lookups
and it won't update automatically when you router's IP changes.
However, if you router's IP has a dns entry, you can ask KVIrc to fill
this field with a simple script to be performed at every connection.

event(OnIRCConnectionEstabilished,updatedccsource)
{
ahost(yourrouterhostname.dyndns.org)
{
option boolDCCSendFakeAddressByDefault 1
if($1)option stringDefaultDCCFakeAddress $2
else echo "Couldn't look up the router's hostname"
}
}

When transferring files to other KVIrc clients you may also try the
DCC RSEND protocol instead of DCC SEND. It will ask the remote end
to listen instead.
-------------------------------------------------------------------------------
6. APPAREANCE
-------------------------------------------------------------------------------

6.1 On Windows KVIrc seems to slow-down sometimes, what's wrong ?

This is usually caused by the heavy graphics: try removing some graphic effects like the
pseudo-transparency. I have experimented that it happens almost always on 32-bit displays.
Switching to 16 or 24 bits may also help.


6.2 I don't see the channel popup menus anymore, what's wrong ?

If something went wrong with KVIrc settings (a crash when the script settings
were saved ?) or if you have messed with the scripting options and you
want to get back the original behaviour (default script) you can choose
"Scripting/Restore default script" from the KVIrc menu.
(WARNING: It will erase any script modification you have made!)
Update: starting with the cvs of 2005.01.17, KVIrc should be able to
detect such situations and automatically suggest the re-installation of the
default script.

6.3 Does KVIrc support Themes?

Yes, KVIrc now has introduced a Theme Manager. You can find it in the Option dialog.
From there you can change the way KVIrc looks: fonts, colors, windows behaviour,
icons, taskbars, and so on.
Once you have changed the theme, you can save it, archive it (tar.bz2 or zip) and share with your friends,
or send it to the KVIrc staff to see it published on the web site.


6.4 I hate all that colors, what can I do about it ?

By fiddling with the options you can make KVIrc appear even monochromatic.
Go to Options/Theme and select the minimalist theme: it will set white text
on black background and will disable the displaying of a lot of icons.
This is a good starting point for you console addicted hackerz :D


6.5 On Windows, how do I use firefox/opera/any_other_browser to open links instead of explorer ?

Go to the "URL Handlers" options page and set

run "C:\\path\\to\\your\\browser.exe" "$0"

as url handler for the protocol you're interested in (maybe in all).

Suepahfly suggests to use

rundll32 url.dll,FileProtocolHandler "$0"

as url handler to open the url in the default windows browser.


-------------------------------------------------------------------------------
7. CRASH
-------------------------------------------------------------------------------

7.1 KVIrc crashes when the multiline text input is opened (obsolete)

If you have installed a new version of KVIrc over a previous installation
br if you have changed the Qt libraries that KVIrc is linked to then
it might be caused by a broken multiline text editor config.
Try removing $HOME/.kvircssexeditorrc and starting KVIrc again.
Update: this problem has been completely removed during late 2004 developments
by completely rewriting the multiline input.


7.2 What the heck is a gdb stack trace and how do I get it ?

A gdb stack trace is a "photography" of the state of the KVIrc internals
taken when a certain event has occured. The most common event
is a program crash (Segmentation Fault).
The stack trace helps (or even allows) the developers to locate the
crash cause in the program sources.
To obtain a gdb stack trace you must:

- Compile KVIrc with the --enable-debug ./configure option.
Without this switch the stack trace is USELESS.
- Have a working installation of gdb (the gnu debugger)
This is usually available on your distribution cd
and you may already have it installed.
- Run KVirc:
# gdb kvirc
When the gdb prompt appears write:
# (gdb) run -f
Make KVIrc crash: gdb will tell something about
a signal received by the program. Write then:
# (gdb) bt
The text you see is the stack trace you wanted :)
Copy+Paste+Send it to pragma at kvirc dot net or the mailing list.


7.3 KVIrc hangs up, but doesn't crash. How do i report debug informations ?

Use gdb to get a stack trace as in answer to question 7.2.
Since your KVIrc doesn't crash you will have to interrupt the execution
manually while it is hung up. You can do it by pressing CTRL+C in gdb.


7.4 KVIrc exits by itself or simply "disappears" without any apparent reason.

Yes. It probably crashed but you haven't noticed that.
We NEED a gdb stack trace or a working procedure to reproduce the
behaviour in order to hunt it.


7.5 KVIrc dies randomly and "Alarm Clock" is printed in the console

Try recompiling kvirc by adding the --with-ignore-sigalarm switch to
./configure. (Note: the reason of the incoming SIGALARM signals
on certain systems is acually unknown. Please send hints to pragma at kvirc dot net).


7.6 KVIrc dies when using alias(identify){ identify password; };

This is infinite recursion: a programming error.
Take a look at http://en.wikipedia.org/wiki/Infinite_loop , learn
that once for all and fix your script.


+ 753
- 0
INSTALL View File

@@ -0,0 +1,753 @@
Szymon Stefanek Mon Mar 04 2008
###############################################################################
General notes for the installation of the 3.4.0 release of KVIrc
###############################################################################

This document contains the procedures to compile and install
the version 3.4.0 of KVIrc.

###############################################################################
# 0. Table of contents
###############################################################################

1. Introduction
2. Guru-level installation
3. Hacker-level installation
4. Human (detailed) installation instructions
5. How to compile KVIrc with Qt-embedded
6. Compiling KVIrc on Mac OS X
7. A note about Windows 95/98/ME

###############################################################################
# 1. Introduction
###############################################################################

This document contains the procedures to compile and install
the version 3.4.0 of KVIrc.

If you have found this document in a binary distribution then
KVIrc has been probably already installed by your favorite package
manager and maybe something is not working as expected. In this case
this document and the accompanying FAQ can help you in guessing
what's wrong.

If you have found this document in a source distribution or you
have downloaded it by using the svn then well...
this is a standard INSTALL file :)

###############################################################################
# 2. Guru installation:
###############################################################################

# ./configure
# make install

###############################################################################
# 3. Hacker installation:
###############################################################################

If you're compiling the svn version of KVirc run ./autogen.sh
(You NEED automake >= 1.5 for autogen.sh to run).

# export QTDIR="your qtlibrary path"

eventually:

# export KDEDIR="your kde library path"

We're using GNU tools here.

# ./configure --help
# ./configure [your options]
# make
# make install

###############################################################################
# 4. Human (detailed) installation:
###############################################################################

If you're not a guru, or have problems with the installation
read these instructions carefully.

###
### Step 0 (ONLY FOR THE SVN VERSION)
###

If (*** AND ONLY IF ***) you're compiling the svn version of kvirc
you need to generate the configure script. If you're compiling
a downloaded tar.gz (or tar.bz2) package or you don't know what
svn is then jump directly to step 1!

You need a recent automake and autoconf installed on your system.
It is also reccomended to have a recent (matching) libtool installed
(libtool is not strictly necessary since KVIrc has a bundled one,
but a libtool matching your automake/autoconf versions will probably
run better on your system).

Anyway, run:
# ./autogen.sh

If it runs without any error (it will tell you "Done") then
you may skip to step 1, otherwise read on.

First of all check your auomake version.
You need automake >= 1.5: older versions will NOT WORK.
You can check the automake version with the command

# automake --version

If your automake version is lower than 1.5 upgrade it.
You can find it at http://www.gnu.org/software/automake/ (source)
or on your favorite distribution site as auto-installing package.

Automake installation tip: automake installs in /usr/local/
by default. If you have an older automake installation that
resides in /usr/ it's better to remove it or (better) overwrite it
with the new installation.
If you choose to overwrite the old installation with the new
one then just use "./configure --prefix=/usr" as the automake's
configure command.
If you choose to remove the old version then the files to be
removed are /usr/bin/automake /usr/bin/aclocal /usr/share/automake
/usr/share/aclocal. If you feel unsure about removing it, rename it.

If the script fails to run then you might try

# ./autogen.sh --bundled-libtool

to force the usage of the bundled libtool version.
If you later have unexplicable problems with the compilation tools
you might also try the bundled libtool.

###
### Step 1 : Matching the requirements
###

- You NEED a fully working C++ compiler.
Most linux distributions have it pre-installed and if you have
already compiled other programs before then you're probably ok,
so actually skip this check and go ahead. If anything fails
in the following steps then this is the very first thing to verify.
A broken compiler installation usually manifests itself
in failed ./configure tests (dlopen capabilities).
Try
# gcc -v
# g++ -v

on the commandline. If it says something about "command not found"
then you miss some gcc related package. Install it from the distro cd.


- You NEED the Qt library.

You can download the latest version from ftp://ftp.trolltech.com.
The main Qt www site is http://www.trolltech.com.
Note for the GPL maniacs: Qt IS GPL.
The minimum required version is 3.1.2 (older versions *might* work)
Download and install it by following the rules
explained in the excellent documentation that comes with the library.


- You need a decent pthread implementation.

This is usually included in your distribution and is probably
already installed. The library is called libpthread.so.
You can look for it with the "find" command:

# find / -name libpthread.so

On my system the output is:

# /usr/lib/libpthread.so

If you don't have it (the configure script will tell you)
you can download it from your favorite GNU mirror.

On Solaris you can use the native libthread.so library instead
but you will have to pass the specific option to configure (see below).
FreeBSD has a native implementation of pthreads in libc_r and
the gcc compiler has a special -pthread flag to link to it.
If you're on FreeBSD, use the --with-freebsd-pthread configure
option and make sure that you don't have other pthread wrappers
installed (that might collide with the native header files).

The configure script will also fail if the library is
hidden somewhere on your system (eg. not in /lib , /usr/lib or
/usr/local/lib): you should probably move it.


- You need the dynamic linker interface library libdl.so.

This is usually installed on your system , so don't care until
configure complatins about it. Some system have the interface
builtin in libc. The configure script can detect it.


- (Optional) If you want to compile the KDE integration support
you obviousy need KDE. The kdelibs package should suffice.


- (Optional) If you want the translations to non-english languages to work
then you need the GNU gettext package. In particular KVIrc uses
the msgfmt program.

This is usually included in your distribution and is probably
already installed. You can check it by running

# msgfmt --version

KVIrc will not complain if the command above is missing: it will
just skip the creation of the translation files.
If the command above fails then you need to install the gettext package
if you want any language other than english.


- (Optional) If you want DCC VOICE to support the gsm codec,
you need a recent copy of libgsm. This is not strictly required
at compile time since KVIrc will look for the library at run-time,
and only if the DCC VOICE with the gsm codec is requested.
You can check for libgsm using the 'find' command.

# find / -name libgsm*

The output should be sometihg like

# /usr/lib/libgsm.so

This library is included in most distributions. Some distros ship
only the static version of the library "libgsm.a": if the previous
find returned only something similar to "/usr/lib/libgsm.a" , you might
create manually the shared archive by running:

# cd /usr/lib
# ld --whole-archive -shared -o libgsm.so.1 libgsm.a
# ln -s libgsm.so.1 libgsm.so
# ldconfig

If you don't have it installed at all, you might have a look in your
distribution CD, or download it from the web.


- (Optional) If you want the /snd plugin to play various audio formats
you either need a running artsd, a running esd or a reasonably recent
audiofile library. Without these KVIrc will be only able to play *.au
files.


- (Optional) If you want to generate the on-line documentation
you also need perl: any version will do (I guess).


- (Optional) If you want the secure socket layer support to be compiled
you need the OpenSSL library and headers. (libssl.so and openssl/ssl.h)


- (Optional) If you want perl scripting support to be compiled
you need a working perl installation. Your libperl.so MUST be compiled
with the MULTIPLICITY option. (You can check it with perl -V).

###
### Step 2 : Running the configure script (mandatory)
###

First of all you must run the configure script that will guess some
info about your system and prepare the compilation.
You may try to "simply run" it and check if it works...the configure
script tries to be smart , but in some cases it will fail.

So before running the script make sure that the enviroinement
variable $QTDIR points to the right location. This will help
in finding the correct version of Qt.
You might eventually set it with the command:

# export QTDIR="your qt dir"

On my system qt is installed in /usr/local/kde/qt
so I actually execute

# export QTDIR="/usr/local/kde/qt"

If you want to compile the KDE support you might want to do the same
with KDEDIR

# export KDEDIR="your kde dir"

In my case KDE is installed in /usr/local/kde so I use

# export KDEDIR="/usr/local/kde"
The configure script has a lot of options that can be listed by using

# ./configure --help

Here's a list with explainations (the most common are at the top):

--enable-debug
This is for debugging and reporting problems.
It sets the compiler options in order to leave the debugging
informations into the kvirc executable and the libraries.
In this way you will be able to produce a gdb backtrace
in case of a crash.
YOU NEED THIS OPTION IF YOU WANT TO REPORT A PROGRAM CRASH.

--enable-pipes
Asks the compiler to use pipes instead of files for the
compilation stage. The pipes will help in reducing disk usage and
will probably shorten the compilation a bit. Use this option if
your platform supports it.

--with-qt-library-dir=<DIR>
Look for the qt library in <DIR>.
You might want to use this if the configure script has trouble
in finding the qt library.
You should have no problems if you use export QTDIR="<DIR>"
before launching the configure script, but it might help you
if you have a non standard Qt installation.
--with-qt-include-dir=<DIR>
Look for the qt headers in <DIR>.
You might want to use this if the configure script has trouble
in finding the qt headers. It may especially help if your headers
are in a place different than $QTDIR/include (and thus you have
a non standard installation)
--with-qt-moc=<PATH>
Use the qt meta-object compiler found in <PATH>
The path is usually $QTDIR/bin/moc , and the
configure script will find it if you have a standard
Qt installation and $QTDIR points to the right directory.
Thus should have no problems if you use export QTDIR="<DIR>"
before launching the configure script, but it might help you
if you have a non standard Qt installation.
This will also help if you have the moc compiler renamed
in some way: like "moc2" or sth...
<PATH> in this case is a FULL path: directory/program_name!
--disable-qt-check
This disables Qt checking at compilation time.
If this is the only way to compile and run
the kvirc executable , then there is something
wrong with the configure script.

--without-kde-support
The configure script will look for the KDE headers and libraries
and if found it will enable the KDE support. If you don't want
the KDE support even if KDE is detected, just use this switch.
--with-kde-library-dir=<DIR>
Look for the KDE libraries in <DIR>
If $KDEDIR points to the right place, you shouldn't need this.
--with-kde-include-dir=<DIR>
Look for the KDE headers in <DIR>
If $KDEDIR points to the right place, you shouldn't need this.

--with-kde-services-dir=<DIR>
Install the kde service protocol files in <DIR>
If $KDEDIR points to the right place, you shouldn't need this.
This is also non-critical for kvirc: if the configure script
can't find this directory, you will only looose the support for
irc:// urls in konqueror

--without-kde-check
Similar to --without-qt-check but for KDE.

--enable-optimisation=<NUMBER>
Enables the compiler optimisation flag -o<NUMBER>.
Possible values are 0 , 1, 2 and 3 (but if you compiler supports
more optimisation levels , you might use other numbers here).
Increases compilation time but may produce a slightly faster
executable.

--with-other-libs=<libraries>
Explicitly link to the specified libraries.
Example: --with-other-libs="-lmylib -lstrangesystemsupport"
--with-other-ldirs=<paths>
Explicitly add the specified library search paths
Example: --with-other-ldirs="-L/home/pippo/lib/ -L/my/library/"
--with-other-idirs
Explicitly add the specified include search path
Example: --with-other-idirs="-I/home/pippo/include/ -I/tmp/inc/"

--enable-objprelink
This is an experimental support for object prelinking that improves
significantly the executable startup time. In order to use it you
need to have the "objprelink" program in the PATH. The objprelink
program is included in the distribution in the admin directory.
In order to use it, you will need to:

# cd admin
# make objprelink
# cp objprelink /somewhere_on_your_path

All this AFTER running ./configure and BEFORE running make.

--with-no-pthread-check
Do not check if the pthread stuff works.
If configure fails in the pthread library check , you might want to
try this...(but then you will have really to "pray" that
the check has been broken by some "unusual" conditions and the
compilation will succeed).

--x-includes=DIR
Specifies explicitly the path to the X header files.
You might want to use this if the configure script
has trouble in finding it.
--x-libraries=DIR
Specifies explicitly the path to the X libraries.
You might want to use this if the configure script
has trouble in finding it.

--with-qt-name=<NAME>
Use <NAME> instead of "qt" as the Qt library name.
This is useful on systems where Qt has been installed with
a name different than the default "qt".
It happens often that to allow multiple copies of qt to work
the newest have the version name appended to it.
For example, on FreeBSD I have found "qt" being Qt1.* and
"qt2" being Qt 2.*. Since you need Qt 2.* for kvirc to work,
you will need to use --with-qt-name=qt2.
If you use this option, you will probably also need to remap
the moc compiler path/name with --with-qt-moc.

--disable-qt-mt
Disable checking for the multithreaded version of Qt.
By default , KVIrc will try to link to the multithreaded version
if found on the system.
NOTE: if you enable the KDE support , KVIrc MUST be linked to the
qt library that KDE is linked to.

--with-ix86-asm
KVIrc contains some ix86 assembly routines that *could*
performs some things faster (this is not always true, depends
on the compiler). You might want to try it if your kvirc seems to
be really slow...

--without-ipv6-support
The IPV6 support is compiled by default on the platforms that
support it: this option disables it.
Even if you have a plain IPV4-only connection, you might want to
keep the IPV6 support: you will be able to lookup IPV6 hostnames.

--without-system-memmove
This will disable the use of the system memmove() memcpy() and
memset() functions and enable the bundled implementations. Use
it if you have undefined references to these functions while
compiling.

--with-ignore-sigalarm
This is a hack mainly for Solaris.
Use this option if kvirc exits with no apparent reason and
the system prints a message related to an "Alarm" :)

This is a mail that suggests an explaination for the SIGALARM fault.
If you experience the problem please drop me a mail at pragma at kvirc dot net
and we'll try to look for a solution.

From: "Andre Stechert" (astechert at email dot com)
Date: 26/7/2005 09:36

Hi,
        I noticed in your readme that you were having problems with sigalarm
in your solaris port and you weren't sure why.  I quickly scanned your
source code and noticed that you use usleep and threads.  That's the problem,
if you haven't already figured it out. On Solaris, usleep is implemented with
SIGALARM. So is threading. So if you the active thread changes while
a usleep is in progress, bang, the process is dead.

--without-crypt-support
Disables the cryptographic engines and the whole
cryptography/text-transformation support. Produces a slightly
smaller executable. Anyway, if you don't know what the
ctryptography/text-transformation
support is ,I suggest you to avoid using this option.
--enable-new-kvs
Developers only!
This enables the compilation of the new KVS parser, currently
under heavy development. This will produce a bigger and possibly
unstable executable: do not use if you don't know what you're doing.

--enable-new-kvs-only
Developers only!
This hardwires the new KVS parser to be used as the main scripting
engine in KVIrc. Be aware that the new KVS engine is NOT YET 100% COMPLETE
so some scripts will simply fail.

--without-transparency
This option disables pseudo-transparency support.
The pseudo transparency support makes the KVirc windows
look like semi-transparent (this is NOT real transparency: this is
just a nice-looking hack).
If KDE support is enabled, KVirc will have an option that
makes all windows use a faded KDE desktop background image
as background. Without KDE support you will be able to choose
a fake background image and use it as background. (You can still
choose your desktop wallpaper: this will (more-or-less) work in
all the window managers).
It is cool-looking but usually eats some memory when enabled.
It also eats some executable size.
So this option allows to disable the pseudo-transparency.

--with-solaris-lthread
If you're on Solaris and don't have the pthread library (A wrapper
I guess) you might try this option: it attempts to use the native
Solaris threading support.

--with-freebsd-pthread
If you're on FreeBSD, you NEED this option. This enables the usage
of the native FreeBSD pthread implementation found in libc_r.
This requires you to use the native gcc compiler: it has a special
-pthread flag that enables the linkage to libc_r instead
of plain libc.

--with-libresolv
Link to libresolv. I guess that this is required for Solaris
--with-libsocket
Link to libsocket. I guess that this is required for Solaris
--with-libnsl
Link to libnsl. I guess that this is required for Solaris

--with-libcompat
Link to libcompat. This might be required for some systems...
but I have no idea which ones. If you find it useful: mail me.

--enable-fno-rtti
Disables compiler runtime type information generation.
This is probably needed only with qt-embedded.
DON'T use it if you don't exactly know what it does.
Actually this may even make KVIrc crash in some situations.
For example the KDE sources use __dynamic_cast...

--disable-x-support
Disables completely the X Windows support.
This is useful in environments where X is not needed to compile KVIrc
such as Qt-Mac on MacOSX, QtEmbedded or Windows.
This switch implies also --without-x-bell

--without-x-bell
Disables the usage of the XBell function (needed if you want to
compile KVIrc with qt-embedded (no X at all))
This is implied by --disable-x-support

--with-qt-embedded
You need this to compile KVIrc with qt-embedded

--without-ipc
Disables support for inter-process communication.
You will be not able to send remote commands to running
kvirc sessions: this basically means that every time you run
the kvirc executable , a new session will be started.
If you don't use this switch, a new session will be started
only if no session is running on the same display or
"new session" has been forced by a commandline switch.
If a session is already running, the commandline will be
passed to that session via IPC (X-event-based communication).
This option saves some KB of the KVIrc executable,
so if you're really short in memory , you might use it,
otherwise, IPC is a nice feature.
--without-dyn-labels
You should not need this option.
It disables compilation of code that relies on a particular
compiler feature (jumping to a dynamic label with a goto).
Not all compilers support this , but configure shoud detect
it automatically. Anyway , if you get compilation errors on
kvi_ircview.cpp, you may try this option...
This may also help if the configure script seems to hang
when checking for the "compiler dynamic label support".

--without-splash-screen
Do not compile the splash screen code.
This will remove you that nice "banner" image that pops up
while kvirc is starting up. It will maybe help in making an
executable smaller by a couple of KB and save a couple
of extra milliseconds during the startup. Use it if you're
tring to build a performance critical executable and you're
short both in memory and CPU time :)

--without-gsm
Explicitly disable the usage of the GSM library. This will
disable the DCC VOICE gsm codec but might help when the
compilation stops complaining of something related to GSM :)

--without-dcc-sound
Explicitly disable the DCC VOICE sound support. This might help
if you have problems in compilation of src/modules/dcc/voice.cpp.
It will disable the sound support
(and thus make DCC VOICE not usable).

--disable-ssl
Disables the secure socket layer support. The SSL support is
automatically enabled if OpenSSL is detected at ./configure time.
This option forces it to be left out.

--with-memory-profile
Debug stuff...enables memory allocation profiling (don't use it :)

--with-memory-checks
Enables malloc() memory checks. This will print a nice message
if your system goes out of memory...
It can't save you from buying new RAM,
but at least you will know that your system went out of memory
and it is not a proper kvirc fault. Actually you probably have
no reason in using it.

--with-big-channels
Minor hash table optimisations: higher memory usage but
faster user lookups. Use it if you often stay in channels with
a lot of users. (this is not critical anyway)

--enable-profiling
Asks the compiler/linker to include profiling informations in the
executable. This is useful only if you want to profile KVIrc by
using the gprof program. Note that this will generate a bigger
and slower executable.

--disable-perl
Forcibly disable perl support.

So finally you have to run

# ./configure <your options>

For example , my common options are:

# ./configure --enable-pipes --enable-debug

On FreeBSD I have found useful this command line:

# ./configure --with-qt-name=qt2 --with-qt-moc=/<PATH_HERE>/moc2 \
--with-freebsd-pthread

Once the configure script ran succesfully you can go to the next step.

###
### Step 3 : Compiling (mandatory)
###

This step is easy:
Cross your fingers and run

# make kvirc

If your make is not a GNU make (this happens on FreeBSD for example)
you should use "gmake" instead.
The compilation process will take from 6-7 minutes to several hours
depending on the machine capabilities and load.
If you have a slow cpu but have a couple of computers in a lan you
might consider using distcc to distribute the compilation.

Once the compilation has been succesfull, run

# make install

Same as above: use "gmake install" if your make is not GNU make.

This will install the executable in /usr/local/bin
(if you don't have specified a different --prefix option in
the configure script) , the libraries in /usr/local/lib
and the shared data in /usr/local/share/kvirc.
If you had a previous kvirc installation , the default prefix
will be referring to the directory where the old kvirc
executable was found.

Make sure that /usr/local/lib is in your /etc/ld.so.conf ,
if it isn't there , put it there and run

# ldconfig

If you have decided to use the KDE support the installation
might have placed all these files in your $KDEDIR tree
instead of /usr/local. In this case you should be OK since
KDE requires its library dir to be in /etc/ld.so.conf

###
### Step 4: Having fun
###

# kvirc &

That's all folks.


###############################################################################
# 5. Compiling KVIrc on qt-embedded
###############################################################################

Do you want KVIrc 3 on your hand computer ?
On your Nokia 9999910 ?
On your LINUX CONSOLE?

Well, for the third it's really easy, just follow carefully those steps:

1. Install qt-embedded libraries (including the development files).
This can be as easy as: apt-get install libqt-emb-dev on Debian.

2. cd to the KVIrc3 source directory

3. run configure with the following parameters:

# ./configure --with-qt-name=qte --with-fno-rtti --without-x-calls
--without-ipc --without-splash-screen --without-transparency
--with-qt-embedded --without-x-bell

then run make and make install as usual

4. Try to have a life for the next minutes while kvirc3 compiles

5. You need your kernel with framebuffer support (it's under 'Console')
so if your kernel don't have it reconfigure and recompile your kernel.

6. switch to a console

7. export QTDIR=[path] On Debian is '/usr'

8. Read http://doc.trolltech.com/3.0/envvars.html and configure your
environment vars until kvirc3-emb loads (it will give you an error
indicating what went wrong else). Pay especial attention to
QWS_MOUSE_PROTO, QWS_CARD_SLOT and QWS_DISPLAY

9. Enjoy :)

###############################################################################
# 6. Compiling KVIrc on MacOSX
###############################################################################

There is a detailed compilation and installation HOWTO for MacOSX systems
located in the doc dorectory.

###############################################################################
# 7. A note about Windows 95/98/ME
###############################################################################

On Windows versions prior to 2000 the KVIrc binary may refuse to start
because of an incompatible msvcrt.dll included in the distribution.

If this happens to you then you may try the following tricks:

- Find msvcrt.dll in your C:\Windows directory. It may also be
in C:\Windows\System or C:\Windows\System32
Copy it to the KVIrc installation folder overwriting the existing
msvcrt.dll shipped with kvirc.

- Find msvcrt.dll somewhere on the net. An url hint might be:
http://www.dll-files.com/dllindex/dll-files.shtml?msvcrt
Download the file and copy it to the KVIrc installation folder
overwriting the existing msvcrt.dll shipped with kvirc.

If none of the two steps work for you please write a mail to
pragma at kvirc dot net reporting your exact Windows version and build
and including the exact messages that the system reports when trying
to run the KVIrc executable.

Thanx to Dusan Hokuv for reporting this and suggesting the fixes.


+ 95
- 0
Makefile.am View File

@@ -0,0 +1,95 @@
###############################################################################
# KVirc IRC client Makefile - 16.12.98 Szymon Stefanek
###############################################################################

EXTRA_DIST = autogen.sh README FAQ

SUBDIRS = admin data doc po scripts src

AUTOMAKE_OPTIONS = foreign

###############################################################################
# Delete moc files all around
###############################################################################

delmoc:
rm -f $(topdir)/src/*/*/*.moc
rm -f $(topdir)/src/*/*/moc_*.cpp

###############################################################################
# Main make command
###############################################################################

kvirc-intro:
@echo "################################################################################"
@echo "### Ok..."
@echo "### The compilation process will take a while..."
@echo "### Have a cold beer in the meantime..."
@echo "################################################################################"
kvirc-outro:
@echo "################################################################################"
@echo "### Finished..."
@echo "### Now type 'make install'"
@echo "################################################################################"

kvirc: kvirc-intro all kvirc-outro

install: install-recursive docs banner

install-devel: install-recursive banner

messages:
cd $(topdir)/po/kvirc && make messages
cd $(topdir)/po/modules/about && make messages
cd $(topdir)/po/modules/dcc && make messages
cd $(topdir)/po/modules/editor && make messages
cd $(topdir)/po/modules/logview && make messages
cd $(topdir)/po/modules/mediaplayer && make messages
cd $(topdir)/po/modules/notifier && make messages
cd $(topdir)/po/modules/options && make messages
cd $(topdir)/po/modules/perl && make messages
cd $(topdir)/po/modules/perlcore && make messages
cd $(topdir)/po/modules/sharedfileswindow && make messages
cd $(topdir)/po/modules/theme && make messages

###############################################################################
# Generate documentation
###############################################################################

docs:
$(mkinstalldirs) $(DESTDIR)$(helpdir)
perl admin/gendoc.pl -v $(VERSION) $(DESTDIR)$(helpdir) \
data/doctemplates/*.template \
`find ./ -name "*.cpp" -print` \
`find ./ -name "*.h" -print`

###############################################################################
# Rule for developer documentation
###############################################################################

devdocs:
cd admin && doxygen

###############################################################################
# Finished :)
###############################################################################

banner:
@echo "################################################################################"
@echo "### INSTALLATION COMPLETE"
@echo "################################################################################"
@echo "###"
@echo "### KVIrc is now installed and ready to run."
@echo "###"
@echo "### Please send bug reports and suggestions"
@echo "### to pragma at kvirc dot net"
@echo "### You can use the mail report form on"
@echo "###"
@echo "### http://www.kvirc.net"
@echo "###"
@echo "### We hope that you will enjoy KVIrc."
@echo "###"
@echo "### Szymon Stefanek and the KVIrc Development Team"
@echo "###"
@echo "################################################################################"

+ 387
- 0
README View File

@@ -0,0 +1,387 @@
23.03.2008: Release 3.4.0 "Virgo"
###############################################################################

Here we go with another release :)

This one took a very long time but, well, finally it's here.

Notable new features of this release include:

- improved themeing support
- better desktop integration
- nicer support for many different IRC servers
- a totally revised option layout
- basic support for script "addons"
- improved help subsystem
- new nice statusbar applets
- improved scripting engine
- improved windows and macosx support
- ....

There is also a lot of small new details that you will
find out by yourself while playing around and finally
we obviously also have a huge number of bugfixes.

This will be the last stable release of the 3.* series and also the last
one using Qt3. From now on we'll be working on major version 4 and
switching completly to Qt4. This release actually contains a preliminary
Qt4 support and if you feel brave you might test it by passing
the "hidden" --enable-qt swtich to configure.

Have fun :)
Szymon Stefanek and The KVIrc Development Team






###############################################################################
General notes for the 3.4.0 release of the KVIrc IRC client
###############################################################################

- Installation

The detailed installation instructions for the unix source distribution
are in the INSTALL file.

The Windows version needs no installation: you just need to run the
installer executable and follow the proposed steps.

Other documentation can be found in the doc subdirectory.

- Reporting problems

You are encouraged to "mess" with all the KVIrc options and features,
and to report bugs and misbehaviours to the author.
Anyway , before reporting a bug , ask yourself if it can be caused
by some other part of your system: KVIrc uses many external libraries
and (as all programs) relies on a correct system behaviour.
Make sure that the libraries you use are the correct ones (!!!).

When you encounter a problem please read the FAQ that is found
in the distribution and also take a look at http://www.kvirc.net
for a more recent version. If nothing helps to solve your problem
then you might consider issuing a bug report.

The best way to report a bug is to use the bugtrack system at
http://svn.kvirc.de/kvirc/. Another way is to subscribe
to the kvirc mailing list (see http://www.kvirc.net for instructions)
and report the problem there. In both cases your bug report
should be written in english and should contain most informations
possible about the problem. If you have encountered a crash
on an unix platform you should include a gdb backtrace (stack dump).
The more gdb info you send, the biggest is the possibility for us
to find the problem and maybe a solution. There is a FAQ entry
that explains how to produce a suitable gdb backtrace.
If you can't obtain a gdb backtrace (maybe because you're on
a platform where gdb is not available) or if the problem
is not related to a program crash then you should include
a detailed procedure that leads to the manifestation of your problem.
You should always include a short description of the platform you
are running on: the operating system, the cpu (if not an x86),
the version of the Qt library and the KDE environment (if relevant).
You should also mention the relevant version of KVIrc and where
you got it from (cvs, kvirc site, other sites).


















###############################################################################
# Historic entries : just for the curious
###############################################################################


22.02.2005: Release 3.2.0 "Realia"
###############################################################################

Here we go again: 3.2.0 is out!

The long road to stability has reached an important milestone. The previous
releases of the 3.* series were the first ones after a huge codebase rewrite.
3.2.0 is a result of several months of testing, debugging and improving.
You will surely find it more stable, fast and user friendly.

The old scripting toolbars have been replaced by the new "action" based
approach. Besides the scripting flexibility of the actions we have also
gained "drag & drop" toolbar editing. Just select "Settings -> Toolbars
-> Customize" from the menu and drag your favorite actions (buttons!) to the
toolbars you wish. You can obviously create new toolbars on the fly and destroy
old ones. There is a set of builtin actions and new ones can be added
by the means of the action editor (another new feature) accessible from
the Scripting menu. Play with it :)

The UNICODE support has been improved yet more. Now you can set global,
per-network, per-server and per-window encodings! There is also a new
set of "smart" encoding engines that first try to decode the text as UTF8
and in case of failure fallback to your standard encoding.

The translators did a really good (and hard) job: we actually have KVIrc
translated in 14 languages. I'm really happy about that.

There is a new nice Instant-Messager-like notifier window that pops up when
a query message arrives and KVIrc is not the active application. Yes,
you can disable it, but I'm sure you will not. The notifier is also fully
scriptable and we're working on a simple skinning engine for it.

We also have perl support: now you can use perl from KVS and
KVS from perl. The engine is still quite essential but with some hacking
you can obtain really good results from it.

The small IRC-Context-Display has been removed from the toolbar and has been
replaced by a real status bar that is capable of displaying the same
informations in a much cleaner way. The IRC-Context-Display is still
available as an action so you can just drag it back in its place
and hide the status bar to return to the previous release configuration.
The statusbar also supports applets that can be added/dragged/removed by the
means of the mouse: just try the right click.

The scripting engine has been improved and there are several new object
classes. An interesting new feature here is the $tr() function that allows
your scripts to be translated with the standard gettext mechanism. The
widely requested DCOP communication function has been implemented too.

Out-of-the-box mircryption support has been added. The KVIrc's mircryption
engine supports the standard ECB mode and the new CBC mode

The DCC transfers have been improved and seveal related bugs have been
fixed. It is also possible to limit the bandwidth for each transfer.

There is a lot of minor new features that will make your IRC sessions funnier
and more exciting: some of them are described in the ChangeLog file and
other can be found by exploring the user interface.

The small one-man-project has grown to the level of a small community.
People from around the world have joined our development efforts and are
constantly donating their time, eyes and bandwidth in order to make KVIrc
a really good IRC client. Besides of simply giving you a free (as in freedom!)
and nice program for chatting, they are giving you the great opportunity to see
what's behind the scenes: you have the source code for the whole application.
In practical terms this means more or less 300.000 lines of tested, debugged and
commented C++ code, several perl scripts, dozens of makefiles and all the means
that you need to produce a working KVIrc executable on all the supported platforms.
There is a lot of knowledge (some people call it "technology" because it sells better)
inside, ready to be acquired by an attentive reader. Don't forget that the freedom of
building your own executable from the sources gives you the opportunity
of verifying the source itself: for example you might be interested in verifying
that KVIrc will not run any malware code on your machine nor will collect
your private data and sell it to someone while you're happily chatting with a friend.
We call it freedom, please respect it :)

Our community is contantly growing and this release was possible thanks to the
contribution of really many people. There are new mighty developers, new addicted
fans and we have seen a lot of new users. The list of the major contributors
can be found on the KVIrc site, in the about dialog and all around the sources.
If you want to meet them please join the #kvirc channel on your favorite
IRC network or subscribe to our mailing list.

Ah, I was going to forget it: you might have noticed that there is
a version bump from 3.0.1 to 3.2.0. It's a typo that we arbitrairly
decided not to fix :)

Have fun :)
Szymon Stefanek and The KVIrc Development Team




31.05.2004: Release 3.0.1 "System Virtue"
###############################################################################

Here we go again: 3.0.1 is out!

3.0.1 is mainly a bugfix release. 3.0.0 was the first public release
after long time and even if we have tested it for a very long time
some bugs didn't miss to jump out. 3.0.1 contains the fixes for these
problems and adds some minor functionality. The detailed list of
changes is in the ChangeLog file.

The bugs for this release should be reported by using the bugtrack system available
at http://bugtrack.kvirc.omnikron.net

Have fun :)
Szymon Stefanek and The KVIrc Development Team


17.04.2004: Release 3.0.0 "Awakening"
###############################################################################

After a couple of years from the last stable release, here we go again :)

Since the 2.* releases the KVIrc source code has been almost completely
rewritten. The major differences are summarized in the following list:

- Multiserver: you can have multiple IRC connections in a single window
- IPV6 support, also for DCC transfers
- SSL support (also over IPV6)
- UNICODE support for the user interface
- Better scripting language
- A basic Theme Engine

The first major goal of the rewrite was "user-friendliness": you should be
able to start an IRC session by selecting a server and clicking "Connect Now"
just after the installation.
The second major goal was "extreme-flexibility": you can customize the way KVIrc
looks and the scripting language allows you to implement complex responses
to IRC generated events.

There is a lot of minor new features that will make your IRC sessions funnier
and more exciting: some of them are described in the ChangeLog file and
other can be found by exploring the user interface.

This release was possible thanks to the contribution of many people.
The list includes but is not limited to: Triskelios, Jan Wagner (spion),
Juanjo Alvarez (Kane), Andrea Parrella (Yap), Luk De Ketelaere (Balboy),
Sara D'Alia (Sbrokka), Ted Podgurski (alch3m1st), Ciro Guariglia (d3vah),
Christoph Thielecke (Crissi), Eva Schaller (Penny), Niklas Luerßen (Tequila)
Olle Hallnas (Crocodile), Francesco Meloni (Princo), Alessandro Rossini (Aronnax),
Alex Grijalba Martinez (SuD), SuperbepS, Thilo Schulz (Thilo), Dworf,
Jorma Tuomainen (Wiza), Michele Pinassi (O-Zone), Paolo Sammicheli (XDatap1),
Ahinu, xevilstar, The Siena Linux Users Group, cyco & samweis,
The Firenze Linux Users Group, all the subscribers of the KVIrc public mailing
list and finally all the people from #kvirc on IRCNet and Freenode.

Have fun :)
Szymon Stefanek and The KVIrc Development Team

###############################################################################
General notes for the 3.0.0 release of the KVIrc IRC client
###############################################################################

- Installation

The detailed installation instructions for the unix source distribution
are in the INSTALL file.

The Windows version needs no installation: just unzip the archive in
a suitable directory (such as C:\Program Files\) and run kvirc.exe from there.

Other documentation can be found in the doc subdirectory.

- Reporting problems

In this release , the changes are so huge that it was not possible
to test them in all the possible conditions. A 'normal' irc session
should give you no problems.
You are encouraged to "mess" with all the KVIrc options and features,
and to report bugs and misbehaviours to the author.
Anyway , before reporting a bug , ask yourself if it can be caused
by some other part of your system: KVIrc uses many external libraries
and (as all programs) relies on a correct system behaviour.
Make sure that the libraries you use are the correct ones (!!!).

- Contents of a good bug report:

- A gdb backtrace in case of a segfault.
The more gdb info you send , the biggest is the possibility
for me to find the problem and maybe a solution.
- A detailed description (read : procedure) to reproduce the bug
Obviously if possible...
- All informations on your system that you think that may be
related to KVIrc and to the problem itself.

To enable the gdb debugging you must compile kvirc with
the --enable-debug configure option.



03.01.2003: Release 3.0.0 beta2
###############################################################################


Here we go again!
Yes , this is still called "beta" , but it should be stable on most machines.
We're simply still missing some features planned for the final 3.0.0.

Beta2 is being released as a source package.
Binary packages (for windows and other platforms) might be available soon
so check out the download section once in a while.

90% of the 2.* branch features have been already re-implemented and there are
many new things to play with.

There is a preliminary UNICODE port: KVIrc UI starts to "speak" foreign (non Latin1) based languages.
IRC character set mapping has been implemented (with 8 commonly used codepages for now).
You should be able to use the Euro sign (ISO-8859-15), write Cyrillic (KOI-8-R , CP-1251 , ISO-8859-5),
Greek (ISO-8859-7) and even use ideograms with the UTF-8 encoding.
Character mapping selection is window based thus you should be able to write Cyrillic on #russian,
Greek on #athens and write plain English on #kvirc in the same IRC session.

Some modules have been removed from the main distribution. This is because the source
tree has been growing too much: we are removing the non-strictly-necessary features
and we will release them as separate packages.

On the CVS you can already find the "nap" module that allows chatting (no file sharing yet)
on OpenNap networks.

The scriptcenter dialog has been splitted in smaller "pieces" and a GUI toolbar editor has been added.

Finally there are tons of bugfixes and improvements: just play with it :)

The bugs for this release should be reported by using the bugtrack system available
at http://bugtrack.kvirc.omnikron.net.

Have fun :)
Szymon Stefanek and The KVIrc Development Team

###############################################################################



25.06.2002
###############################################################################

3.0.0 beta1 (Codename: "Eve's Avatar")

This release is "floating around" since a couple of months...
Well... finally... here we go :)
This is not stable yet, but many people use it and we get a really small number of
critical reports: this means that you probably can use it for your daily chatting.

Beta1 is being released as a source package and a binary distro for the windows platform.
Binary packages for other platforms might be available soon so check out the download section once in a while.

If you had previous KVIrc installations and you experience problems (missing menus for example)
try to remove (or better just rename) the old local configuration directory (locaed
in your home dir probably) and to restart KVIrc.

80% of the 2.* branch features have been already re-implemented and there is a whole
bunch of new things to play with. One of the greates "ChangeLog" entries is the preliminary
SSL support that works for IRC and DCC CHAT (both over IPv4 and IPv6).
CTCP PAGE support has been added and there were some major changes to the variable
management in the scripting language (added "real" array support and changed the syntax for the dictionaries).
Those of you that like colors can now enable the icon-like display of emoticons
and play with icons in the text sent through the server (a new escape code).
The documentation has been reworked a little bit more, there are some new modules and
a lot of new options to try.

The windows version is not completely in sync with the linux one thus you might find
that it lacks some features (mainly advanced scripting language, sound support etc...).
We hope to have a completely synchronized versions on both platforms for the time
of 3.0.0 final.

The bugs for this release should be reported by using our new shiny bugtrack system available
at http://bugtrack.kvirc.omnikron.net.

Well..
That's all folks!

Have fun :)
Szymon Stefanek and The KVIrc Development Team

###############################################################################


+ 50
- 0
TODO View File

@@ -0,0 +1,50 @@
Update TODO file, if something is implemented, it should be removed in the TODO file.
Mantain TODO file as clear as possible

- Pragma should read this file :D
- Events, events, events. There are lots of them pending (see TODO.Events).
- Multiple identities (and identity associations for servers)
- Port the speech module!
- /timer as a module
- It would be cool if KVIrc could to delete old log files automatically
(configurable, of course), to avoid disk ocupation. For example, delete (or
move to trash) 15-days old log files automatically (configurable by user).
- html colored logs (with icons ? configurable with an option)
- Check away status from the /WHO message ? (this would involve requesting WHO often)
- Handle more uncommon channel modes in the channel mode box ?
SHould get the available modes from RPL_ISUPPORT and show them in the box
- On-line charset guessing:
KviWindow should have the possibility of setting a KVI_CHARSET_AUTO
The KviWindow::decodeText() should contain an algorithm that
would use the best "guess" charset based on the window output
history , the actually detected charset and the text to decode

/charset ISO-8859-15
- When user clicks search in the help window there should be some kind of
notification when the search starts... The way it is now you can't tell if the
search button even worked, until the search process is finished
- Channel mode-field
The channel mode field should be dynamical, it should be able to change width according to what it needs,
today it's way too long.
- Userlist
The userlist should be dynamical after how many characters the server lets you use in a nickname, today it's
way too wide, this makes it look ugly.
- Text-hints
Text hints doesn't dissapear after changing desktop under KDE, and you have to change back to the
desktop where KVIrc is to remove the hint.
- CService support
We already have nickserv support, why not CService/X support? This should be much much easier to
implement as it's only on one net (Undernet), and with a static host and command that never changes, we
only need to specify password.
- Option to save & restore sessions (session = opened irc connections, channels & queries)
- Group messages:
         * Add predefined groups
        
         As kvirc3 now supports the ability to send msg's to more than one person at
         a time, I would have liked to see
         a way of making predefined groups.  For example if I often send the same msg
         to both user1, user3, user9 and
         user31, then I would like to add these to a group called "Friends", and then
         just do a "/gquery Friends hi :) what's up?"

- Add commands for playing PCM WAV files (using the DCC voice code).

+ 8761
- 0
acinclude.m4
File diff suppressed because it is too large
View File


+ 910
- 0
aclocal.m4 View File

@@ -0,0 +1,910 @@
# generated automatically by aclocal 1.10.1 -*- Autoconf -*-

# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(AC_AUTOCONF_VERSION, [2.61],,
[m4_warning([this file was generated for autoconf 2.61.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])

# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.10'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.10.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])