aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Verbovetsky <alik@ejik.org>2019-01-24 18:08:19 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2019-01-24 18:08:19 +0700
commita428f1a4cd982b25fe2d5c0ba689065b4571f04f (patch)
tree70c6d1452805a806c8cc5184ee023718fdedd90b
parent2fac409655bbb5b1101976f0e2befb7779a5047e (diff)
network/sendxmpp: Added (send xmpp messages from the command line).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--network/sendxmpp/README5
-rw-r--r--network/sendxmpp/patches/01.patch31
-rw-r--r--network/sendxmpp/patches/02.patch277
-rw-r--r--network/sendxmpp/patches/03.patch54
-rw-r--r--network/sendxmpp/patches/04.patch26
-rw-r--r--network/sendxmpp/patches/05.patch23
-rw-r--r--network/sendxmpp/patches/06.patch92
-rw-r--r--network/sendxmpp/patches/07.patch42
-rw-r--r--network/sendxmpp/patches/08.patch12
-rw-r--r--network/sendxmpp/sendxmpp.SlackBuild81
-rw-r--r--network/sendxmpp/sendxmpp.info10
-rw-r--r--network/sendxmpp/slack-desc19
12 files changed, 672 insertions, 0 deletions
diff --git a/network/sendxmpp/README b/network/sendxmpp/README
new file mode 100644
index 0000000000000..0424290288e11
--- /dev/null
+++ b/network/sendxmpp/README
@@ -0,0 +1,5 @@
+sendxmpp is a program to send XMPP (Jabber) messages from the command
+line, not unlike mail(1). Messages can be sent both to individual
+recipients and chatrooms.
+
+XMPP is an open, non-proprietary protocol for instant messaging.
diff --git a/network/sendxmpp/patches/01.patch b/network/sendxmpp/patches/01.patch
new file mode 100644
index 0000000000000..59b85c0bb0c9e
--- /dev/null
+++ b/network/sendxmpp/patches/01.patch
@@ -0,0 +1,31 @@
+Restore the ability to send normal messages.
+By Helmut Grohne <helmut@subdivi.de>, 2013-05-29
+
+Normal messages are like headline messages except they are not discarded
+when the contact is unavailable but queued instead.
+
+See https://bugs.debian.org/710285
+
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -49,7 +49,7 @@
+ my $VERBOSE = 0;
+ my $DEBUG = 0;
+ # http://tools.ietf.org/html/rfc3921#section-2 section 2.1.1 - Types of Message
+-my @suppported_message_types = qw( chat error groupchat headline );
++my @suppported_message_types = qw( chat error groupchat headline normal);
+ my $message_type = 'chat'; # default message type
+
+ # start!
+@@ -642,9 +642,9 @@
+
+ Backward compatibility option. You should use B<--message-type=headline> instead. Send a headline type message (not stored in offline messages)
+
+-=item B<--messages-type>
++=item B<--message-type>
+
+-Set type of message. Supported types are: B<message chat headline>. Default message type is B<message>. Headline type message can be set also with B<--headline> option, see B<--headline>
++Set type of message. Supported types are: B<chat error groupchat headline normal>. Default message type is B<chat>. Headline type message can be set also with B<--headline> option, see B<--headline>
+
+ =item B<-c>,B<--chatroom>
+
diff --git a/network/sendxmpp/patches/02.patch b/network/sendxmpp/patches/02.patch
new file mode 100644
index 0000000000000..1c0dd70210594
--- /dev/null
+++ b/network/sendxmpp/patches/02.patch
@@ -0,0 +1,277 @@
+From 48f6fe83589b04b77dd4fe52b810f1415aa2835c Mon Sep 17 00:00:00 2001
+From: Lubomir Host <lubomir.host@gmail.com>
+Date: Tue, 7 Oct 2014 19:38:00 +0200
+Subject: [PATCH] Add spaces after comma.
+
+---
+ sendxmpp | 78 ++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 39 insertions(+), 39 deletions(-)
+
+diff --git a/sendxmpp b/sendxmpp
+index 91ae1ef..74d95c0 100755
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -102,7 +102,7 @@ sub main () { # {{{
+ $txt .= $_ while (<STDIN>);
+ }
+
+- xmpp_send ($cnx,$cmdline,$config,$txt);
++ xmpp_send ($cnx, $cmdline, $config, $txt);
+
+ }
+ else {
+@@ -115,7 +115,7 @@ sub main () { # {{{
+ # line by line...
+ while (<STDIN>) {
+ chomp;
+- xmpp_send ($cnx,$cmdline,$config,$_);
++ xmpp_send ($cnx, $cmdline, $config, $_);
+ }
+ }
+
+@@ -141,7 +141,7 @@ sub read_config_file ($) { # {{{
+ error_exit ("$cfg_file must not be accessible by others")
+ if ($mode & 0077);
+
+- open (CFG,"<$cfg_file")
++ open (CFG, "<$cfg_file")
+ or error_exit("cannot open $cfg_file for reading: $!");
+
+ my %config;
+@@ -193,7 +193,7 @@ sub read_config_file ($) { # {{{
+ unless (scalar(%config));
+
+ if ($DEBUG || $VERBOSE) {
+- while (my ($key,$val) = each %config) {
++ while (my ($key, $val) = each %config) {
+ debug_print ("config: '$key' => '$val'");
+ }
+ }
+@@ -309,7 +309,7 @@ sub parse_cmdline () { # {{{
+ );
+
+ if ($DEBUG || $VERBOSE) {
+- while (my ($key,$val) = each %dict) {
++ while (my ($key, $val) = each %dict) {
+ debug_print ("cmdline: '$key' => '$val'");
+ }
+ }
+@@ -319,7 +319,7 @@ sub parse_cmdline () { # {{{
+
+ #
+ # xmpp_login: login to the xmpp (jabber) server
+-# input: hostname,port,username,password,resource,tls,ssl,debug
++# input: hostname, port, username, password, resource, tls, ssl, debug
+ # output: an XMPP connection object
+ #
+ sub xmpp_login ($$$$$$$$$$$$) { # {{{
+@@ -374,7 +374,7 @@ sub xmpp_login ($$$$$$$$$$$$) { # {{{
+ error_exit ("Could not connect to server '$host': ".($cnx->GetErrorCode()||$@)) unless @res;
+ }
+
+- xmpp_check_result("Connect",\@res,$cnx);
++ xmpp_check_result("Connect", \@res, $cnx);
+
+ if ($comp) {
+ my $sid = $cnx->{SESSION}->{id};
+@@ -385,7 +385,7 @@ sub xmpp_login ($$$$$$$$$$$$) { # {{{
+ 'username' => $user,
+ 'password' => $pw,
+ 'resource' => $res);
+- xmpp_check_result('AuthSend',\@res,$cnx);
++ xmpp_check_result('AuthSend', \@res, $cnx);
+
+ return $cnx;
+ } # }}}
+@@ -426,20 +426,20 @@ sub xmpp_send ($$$$) { # {{{
+
+ #
+ # xmpp_send_raw_xml: send a raw XML packet
+-# input: connection,packet
++# input: connection, packet
+ #
+ sub xmpp_send_raw_xml ($$) { # {{{
+
+- my ($cnx,$packet) = @_;
++ my ($cnx, $packet) = @_;
+
+ # for some reason, Send does not return anything
+ $cnx->Send($packet);
+- xmpp_check_result('Send',0,$cnx);
++ xmpp_check_result('Send', 0, $cnx);
+ } # }}}
+
+ #
+ # xmpp_send_message: send a message to some xmpp user
+-# input: connection,recipient,subject,msg
++# input: connection, recipient, subject, msg
+ #
+ sub xmpp_send_message ($$$$$$) { # {{{
+
+@@ -452,16 +452,16 @@ sub xmpp_send_message ($$$$$$) { # {{{
+ 'subject' => $subject,
+ 'body' => $msg);
+
+- xmpp_check_result('MessageSend',0,$cnx);
++ xmpp_check_result('MessageSend', 0, $cnx);
+ } # }}}
+
+ #
+ # xmpp_send_chatroom_message: send a message to a chatroom
+-# input: connection,resource,subject,recipient,message
++# input: connection, resource, subject, recipient, message
+ #
+ sub xmpp_send_chatroom_message ($$$$$) { # {{{
+
+- my ($cnx,$resource,$subject,$rcpt,$msg) = @_;
++ my ($cnx, $resource, $subject, $rcpt, $msg) = @_;
+
+ # set the presence
+ my $pres = new Net::XMPP::Presence;
+@@ -476,10 +476,10 @@ sub xmpp_send_chatroom_message ($$$$$) { # {{{
+ type => 'groupchat');
+
+ $res = $cnx->Send($groupmsg);
+- xmpp_check_result ('Send',$res,$cnx);
++ xmpp_check_result ('Send', $res, $cnx);
+
+ # leave the group
+- $pres->SetPresence (Type=>'unavailable',To=>$rcpt);
++ $pres->SetPresence (Type=>'unavailable', To=>$rcpt);
+ } # }}}
+
+ #
+@@ -494,7 +494,7 @@ sub xmpp_logout($) { # {{{
+
+ my $cnx = shift;
+ $cnx->Disconnect();
+- xmpp_check_result ('Disconnect',0); # well, nothing to check, really
++ xmpp_check_result ('Disconnect', 0); # well, nothing to check, really
+ } # }}}
+
+ #
+@@ -518,7 +518,7 @@ sub xmpp_check_result { # {{{
+ }
+ else {
+ my $errmsg = $cnx->GetErrorCode() || '?';
+- error_exit ("Error '$txt': " . join (': ',@$res) . "[$errmsg]", $cnx);
++ error_exit ("Error '$txt': " . join (': ', @$res) . "[$errmsg]", $cnx);
+ }
+ } # }}}
+
+@@ -547,7 +547,7 @@ sub debug_print { # {{{
+ #
+ sub error_exit { # {{{
+
+- my ($err,$cnx) = @_;
++ my ($err, $cnx) = @_;
+ print STDERR "$err\n";
+ xmpp_logout ($cnx)
+ if ($cnx);
+@@ -594,15 +594,15 @@ unlike L<mail(1)>. Messages can be sent both to individual recipients and chatro
+
+ =over
+
+-=item B<-f>,B<--file> I<file>
++=item B<-f>, B<--file> I<file>
+
+ Use I<file> configuration file instead of F<~/.sendxmpprc>
+
+-=item B<-u>,B<--username> I<user>
++=item B<-u>, B<--username> I<user>
+
+ Use I<user> instead of the one in the configuration file
+
+-=item B<-p>,B<--password> I<password>
++=item B<-p>, B<--password> I<password>
+
+ Use I<password> instead of the one in the configuration file
+
+@@ -610,35 +610,35 @@ Use I<password> instead of the one in the configuration file
+
+ Instead of specifying username or password, attempt to use system level SSO (e.g. kerberos) if supported.
+
+-=item B<-j>,B<--jserver> I<server>
++=item B<-j>, B<--jserver> I<server>
+
+ Use jabber I<server> instead of the one in the configuration file.
+
+-=item B<-o>,B<--component> I<componentname>
++=item B<-o>, B<--component> I<componentname>
+
+ Use componentname in connect call. Seems needed for Google talk.
+
+-=item B<-r>,B<--resource> I<res>
++=item B<-r>, B<--resource> I<res>
+
+ Use resource I<res> for the sender [default: 'sendxmpp']; when sending to a chatroom, this determines the 'alias'
+
+-=item B<-t>,B<--tls>
++=item B<-t>, B<--tls>
+
+ Connect securely, using TLS
+
+-=item B<-e>,B<--ssl>
++=item B<-e>, B<--ssl>
+
+ Connect securely, using SSL
+
+-=item B<-n>,B<--no-tls-verify>
++=item B<-n>, B<--no-tls-verify>
+
+ Deactivate the verification of SSL certificates. Better way is to use parameter B<--tls-ca-path> with the needed path to CA certificates.
+
+-=item B<-a>,B<--tls-ca-path>
++=item B<-a>, B<--tls-ca-path>
+
+ Path to your custom CA certificates, so you can verificate SSL certificates during connecting.
+
+-=item B<-l>,B<--headline>
++=item B<-l>, B<--headline>
+
+ Backward compatibility option. You should use B<--message-type=headline> instead. Send a headline type message (not stored in offline messages)
+
+@@ -646,35 +646,35 @@ Backward compatibility option. You should use B<--message-type=headline> instead
+
+ Set type of message. Supported types are: B<message chat headline>. Default message type is B<message>. Headline type message can be set also with B<--headline> option, see B<--headline>
+
+-=item B<-c>,B<--chatroom>
++=item B<-c>, B<--chatroom>
+
+ Send the message to a chatroom
+
+-=item B<-s>,B<--subject> I<subject>
++=item B<-s>, B<--subject> I<subject>
+
+ Set the subject for the message to I<subject> [default: '']; when sending to a chatroom, this will set the subject for the chatroom
+
+-=item B<-m>,B<--message> I<message>
++=item B<-m>, B<--message> I<message>
+
+ Read the message from I<message> (a file) instead of stdin
+
+-=item B<-i>,B<--interactive>
++=item B<-i>, B<--interactive>
+
+ Work in interactive mode, reading lines from stdin and sending the one-at-time
+
+-=item B<-w>,B<--raw>
++=item B<-w>, B<--raw>
+
+ Send raw XML message to jabber server
+
+-=item B<-v>,B<--verbose>
++=item B<-v>, B<--verbose>
+
+ Give verbose output about what is happening
+
+-=item B<-h>,B<--help>,B<--usage>
++=item B<-h>, B<--help>, B<--usage>
+
+ Show a 'Usage' message
+
+-=item B<-d>,B<--debug>
++=item B<-d>, B<--debug>
+
+ Show debugging info while running. B<WARNING>: This will include passwords etc. so be careful with the output! Specify multiple times to increase debug level.
+
diff --git a/network/sendxmpp/patches/03.patch b/network/sendxmpp/patches/03.patch
new file mode 100644
index 0000000000000..aefabbf41db5b
--- /dev/null
+++ b/network/sendxmpp/patches/03.patch
@@ -0,0 +1,54 @@
+From 92af6b9bf4a583f6cec00a38d2fd3948654a64bc Mon Sep 17 00:00:00 2001
+From: Lubomir Host <lubomir.host@gmail.com>
+Date: Fri, 23 Jan 2015 00:22:02 +0100
+Subject: [PATCH] Enable SRV record lookup by default
+
+---
+ sendxmpp | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/sendxmpp b/sendxmpp
+index 74d95c0..0d7c4ff 100755
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -344,26 +344,27 @@ sub xmpp_login ($$$$$$$$$$$$) { # {{{
+ ssl_ca_path => $tls_ca_path,
+ ssl => $ssl,
+ connectiontype => 'tcpip',
+- componentname => $comp
++ componentname => $comp,
++ srv => 1, # enable SRV lookups
+ };
+
+ if ($sso) {
+- $user = join('@', scalar getpwuid($<), Net::Domain::hostdomain());
+- debug_print "using SSO user $user";
++ $user = join('@', scalar getpwuid($<), Net::Domain::hostdomain());
++ debug_print "using SSO user $user";
+ }
+
+ # use the xmpp domain as the host and enable SRV lookups
+- if (!$host) {
+- if ($user =~ /@(.*)/) {
+- $arghash->{hostname} = $host = $1;
+- $arghash->{srv} = 1;
+- debug_print "enabling SRV lookups";
+-
+- } else {
+- error_exit "unable to determine a host to connect to (no cmdline, no config, no SRV possible)";
+- }
++ if (!$host) {
++ if ($user =~ /@(.*)/) {
++ $arghash->{hostname} = $host = $1;
++ $arghash->{srv} = 1;
++ debug_print "enabling SRV lookups";
+
+- }
++ } else {
++ error_exit "unable to determine a host to connect to (no cmdline, no config, no SRV possible)";
++ }
++
++ }
+
+ delete $arghash->{port} unless $port;
+ if ($arghash->{port}) {
diff --git a/network/sendxmpp/patches/04.patch b/network/sendxmpp/patches/04.patch
new file mode 100644
index 0000000000000..b9802477948e9
--- /dev/null
+++ b/network/sendxmpp/patches/04.patch
@@ -0,0 +1,26 @@
+From 17fa8783527fcbfb7624889cdf5de12375517924 Mon Sep 17 00:00:00 2001
+From: Andrey Shertsinger <andrey@shertsinger.ru>
+Date: Thu, 14 May 2015 14:18:46 +0600
+Subject: [PATCH] Fix for support virtual domain user names
+
+---
+ sendxmpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/sendxmpp b/sendxmpp
+index 0d7c4ff..7045c16 100755
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -355,8 +355,10 @@ sub xmpp_login ($$$$$$$$$$$$) { # {{{
+
+ # use the xmpp domain as the host and enable SRV lookups
+ if (!$host) {
+- if ($user =~ /@(.*)/) {
+- $arghash->{hostname} = $host = $1;
++ if ($user =~ /([\.\w_#-]+)@(.*)/) {
++ $arghash->{hostname} = $host = $2;
++ $arghash->{componentname} = $2;
++ $user = $1;
+ $arghash->{srv} = 1;
+ debug_print "enabling SRV lookups";
+
diff --git a/network/sendxmpp/patches/05.patch b/network/sendxmpp/patches/05.patch
new file mode 100644
index 0000000000000..363a56017ffec
--- /dev/null
+++ b/network/sendxmpp/patches/05.patch
@@ -0,0 +1,23 @@
+From a2f9265d49dc000d5becf65da0ec42a92eac19cb Mon Sep 17 00:00:00 2001
+From: Martin Stefany <martinstefany@users.noreply.github.com>
+Date: Sun, 7 Jun 2015 15:39:12 +0200
+Subject: [PATCH] support '-' (dash) in config file
+
+support options like 'no-tls-verify', 'tls-ca-path' in config file
+---
+ sendxmpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sendxmpp b/sendxmpp
+index 0d7c4ff..8b2bebe 100755
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -155,7 +155,7 @@ sub read_config_file ($) { # {{{
+
+ #s/\#.*$//; # ignore comments in lines
+
+- if (/^([a-z]+):\s*(.*)$/) {
++ if (/^([a-z-]+):\s*(.*)$/) {
+ $config{$1} = $2;
+ }
+ # Hugo van der Kooij <hvdkooij AT vanderkooij.org> has account with '#' as username
diff --git a/network/sendxmpp/patches/06.patch b/network/sendxmpp/patches/06.patch
new file mode 100644
index 0000000000000..70325685d3741
--- /dev/null
+++ b/network/sendxmpp/patches/06.patch
@@ -0,0 +1,92 @@
+From 8f8a15614f0dfddc349c101ce4f5d4edb5133815 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <james.le-cuirot@yakara.com>
+Date: Tue, 17 May 2016 12:05:29 +0100
+Subject: [PATCH] Add --http option for connecting over HTTP
+
+This allows the use of HTTP proxies.
+---
+ sendxmpp | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/sendxmpp b/sendxmpp
+index fafb0a5..8a9758e 100755
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -28,7 +28,7 @@ use open ':utf8';
+ use open ':std';
+
+ # subroutines decls
+-sub xmpp_login($$$$$$$$$$$$);
++sub xmpp_login($$$$$$$$$$$$$);
+ sub xmpp_send ($$$$);
+ sub xmpp_send_raw_xml($$);
+ sub xmpp_send_message($$$$$$);
+@@ -82,6 +82,7 @@ sub main () { # {{{
+ $$cmdline{'no-tls-verify'} || $$config{'no-tls-verify'},
+ $$cmdline{'tls-ca-path'} || $$config{'tls-ca-path'} || '',
+ $$cmdline{'ssl'},
++ $$cmdline{'http'} || $$config{'http'} || 0,
+ $$cmdline{'debug'},
+ $$cmdline{'sso'}
+ ) or error_exit("cannot login: $!");
+@@ -211,7 +212,7 @@ sub parse_cmdline () { # {{{
+
+ my ($subject, $file, $resource, $jserver, $port, $username, $password, $sso, $component,
+ $message, $chatroom, $headline, $debug, $tls, $ssl,
+- $no_tls_verify, $tls_ca_path,
++ $no_tls_verify, $tls_ca_path, $http,
+ $interactive, $help, $raw, $verbose
+ );
+ $debug = 0;
+@@ -232,6 +233,7 @@ sub parse_cmdline () { # {{{
+ 'no-tls-verify|n' => \$no_tls_verify,
+ 'tls-ca-path|a=s' => \$tls_ca_path,
+ 'ssl|e' => \$ssl,
++ 'http' => \$http,
+ 'interactive|i' => \$interactive,
+ 'help|usage|h' => \$help,
+ 'debug|d:i' => sub { $debug = $_[1] ? $_[1] : $debug + 1 },
+@@ -301,6 +303,7 @@ sub parse_cmdline () { # {{{
+ 'no-tls-verify' => ($no_tls_verify or 0),
+ 'tls-ca-path' => ($tls_ca_path or ''),
+ 'ssl' => ($ssl or 0),
++ 'http' => ($http or 0),
+ 'debug' => ($debug or 0),
+ 'verbose' => ($verbose or 0),
+ 'raw' => ($raw or 0),
+@@ -319,12 +322,12 @@ sub parse_cmdline () { # {{{
+
+ #
+ # xmpp_login: login to the xmpp (jabber) server
+-# input: hostname, port, username, password, resource, tls, ssl, debug
++# input: hostname, port, username, password, resource, tls, ssl, http, debug
+ # output: an XMPP connection object
+ #
+-sub xmpp_login ($$$$$$$$$$$$) { # {{{
++sub xmpp_login ($$$$$$$$$$$$$) { # {{{
+
+- my ($host, $port, $user, $pw, $comp, $res, $tls, $no_tls_verify, $tls_ca_path, $ssl, $debug, $sso) = @_;
++ my ($host, $port, $user, $pw, $comp, $res, $tls, $no_tls_verify, $tls_ca_path, $ssl, $http, $debug, $sso) = @_;
+ my $cnx = new Net::XMPP::Client(debuglevel=>$debug);
+ error_exit "could not create XMPP client object: $!"
+ unless ($cnx);
+@@ -343,7 +346,7 @@ sub xmpp_login ($$$$$$$$$$$$) { # {{{
+ ssl_verify => $ssl_verify,
+ ssl_ca_path => $tls_ca_path,
+ ssl => $ssl,
+- connectiontype => 'tcpip',
++ connectiontype => $http ? 'http' : 'tcpip',
+ componentname => $comp,
+ srv => 1, # enable SRV lookups
+ };
+@@ -641,6 +644,10 @@ Deactivate the verification of SSL certificates. Better way is to use parameter
+
+ Path to your custom CA certificates, so you can verificate SSL certificates during connecting.
+
++=item B<--http>
++
++Connect over HTTP, allowing the use of a proxy.
++
+ =item B<-l>, B<--headline>
+
+ Backward compatibility option. You should use B<--message-type=headline> instead. Send a headline type message (not stored in offline messages)
diff --git a/network/sendxmpp/patches/07.patch b/network/sendxmpp/patches/07.patch
new file mode 100644
index 0000000000000..600e8a89fcc69
--- /dev/null
+++ b/network/sendxmpp/patches/07.patch
@@ -0,0 +1,42 @@
+From 9186b8c49e54cf59ace4e5ddf52aa10b1a386fa5 Mon Sep 17 00:00:00 2001
+From: Lubomir Host <lubomir.host@gmail.com>
+Date: Sun, 13 Nov 2016 18:25:44 +0100
+Subject: [PATCH] Remove 'I<something>' markers from configuration example.
+
+---
+ sendxmpp | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/sendxmpp b/sendxmpp
+index 8a9758e..4d06ab9 100755
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -695,19 +695,19 @@ Show debugging info while running. B<WARNING>: This will include passwords etc.
+ You may define a 'F<~/.sendxmpprc>' file with the necessary data for your
+ xmpp-account. Since version 1.24 the following format is supported:
+
+- username: I<your_username>
+- jserver: I<jabber_server>
+- port: I<jabber_port>
+- password: I<your_jabber_password>
+- component: I<optional_component_name>
++ username: <your_username>
++ jserver: <jabber_server>
++ port: <jabber_port>
++ password: <your_jabber_password>
++ component: <optional_component_name>
+
+
+ Example for Google Talk servers:
+
+- username: I<lubomir.host>
+- jserver: I<talk.google.com>
+- password: I<my-secure-password>
+- component: I<gmail.com>
++ username: <lubomir.host>
++ jserver: <talk.google.com>
++ password: <my-secure-password>
++ component: <gmail.com>
+
+ With version 1.23 and older only one-line format is supported:
+
diff --git a/network/sendxmpp/patches/08.patch b/network/sendxmpp/patches/08.patch
new file mode 100644
index 0000000000000..ca78d3f0d4003
--- /dev/null
+++ b/network/sendxmpp/patches/08.patch
@@ -0,0 +1,12 @@
+See https://bugs.debian.org/854210
+--- a/sendxmpp
++++ b/sendxmpp
+@@ -299,7 +299,7 @@
+ 'interactive' => ($interactive or 0),
+ 'tls' => ($tls or 0),
+ 'no-tls-verify' => ($no_tls_verify or 0),
+- 'tls-ca-path' => ($tls_ca_path or ''),
++ 'tls-ca-path' => ($tls_ca_path or '/etc/ssl/certs'),
+ 'ssl' => ($ssl or 0),
+ 'debug' => ($debug or 0),
+ 'verbose' => ($verbose or 0),
diff --git a/network/sendxmpp/sendxmpp.SlackBuild b/network/sendxmpp/sendxmpp.SlackBuild
new file mode 100644
index 0000000000000..71e1e1a872aac
--- /dev/null
+++ b/network/sendxmpp/sendxmpp.SlackBuild
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+# Slackware build script for sendxmpp
+
+# Copyright 2019, Alexander Verbovetsky, Moscow Russia
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PRGNAM=sendxmpp
+VERSION=${VERSION:-1.24}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+
+for p in $CWD/patches/*.patch; do patch -p1 < $p; done
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+perl Makefile.PL PREFIX=/usr
+make
+make install DESTDIR=$PKG
+
+mv $PKG/usr/share/man $PKG/usr
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
+
+find $PKG -depth -type d -empty -delete || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a examples Changes README $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/network/sendxmpp/sendxmpp.info b/network/sendxmpp/sendxmpp.info
new file mode 100644
index 0000000000000..788f7a2d2f928
--- /dev/null
+++ b/network/sendxmpp/sendxmpp.info
@@ -0,0 +1,10 @@
+PRGNAM="sendxmpp"
+VERSION="1.24"
+HOMEPAGE="https://sendxmpp.hostname.sk"
+DOWNLOAD="https://github.com/lhost/sendxmpp/archive/1.24/sendxmpp-1.24.tar.gz"
+MD5SUM="7145fb0d05f4c774b0ecec78bc787117"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="perl-Net-XMPP perl-IO-Socket-SSL perl-net-dns"
+MAINTAINER="Alexander Verbovetsky"
+EMAIL="alik@ejik.org"
diff --git a/network/sendxmpp/slack-desc b/network/sendxmpp/slack-desc
new file mode 100644
index 0000000000000..23ef92eae0b27
--- /dev/null
+++ b/network/sendxmpp/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+sendxmpp: sendxmpp (send xmpp messages from the command line)
+sendxmpp:
+sendxmpp: sendxmpp is a program to send XMPP (Jabber) messages from the
+sendxmpp: command line, not unlike mail(1). Messages can be sent both to
+sendxmpp: individual recipients and chatrooms.
+sendxmpp:
+sendxmpp: XMPP is an open, non-proprietary protocol for instant messaging.
+sendxmpp:
+sendxmpp: Homepage: https://sendxmpp.hostname.sk
+sendxmpp:
+sendxmpp: