diff --git a/_maintainers.asc b/_maintainers.asc
index 0422b8d..6d80cd4 100644
--- a/_maintainers.asc
+++ b/_maintainers.asc
@@ -202,3 +202,135 @@ AhsMAAoJEGURbLbcKcvlceIAn24MmIXZB5Yrt6s6y3JoAaUFsDS8AJ4pZD0K8Bs6
hoGE5K49RXdu4dA6bQ==
=CiHU
-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEYMIZ8xYJKwYBBAHaRw8BAQdA9BnRwarODkRVo4ndIcQapi4C9RERNbeJu36I
+ZOj2GqC0KUZyYW5rIFNjaHJlaW5lciAoTTBzZXMpIDxmcmFua0BzYW1heGkuZGU+
+iJMEExYIADsCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQQUCXg20Yvnw+TC
+mGHRLHGTkUIMRAUCYMIwwAIZAQAKCRDRLHGTkUIMREN1AQDhn2kHyotO+jyh1RO/
+j3sQpB2leKg3j0VzVlV/opIpYAD9FX3t8rSbAN51KlFmgRX9WOpdNvDM7hOdOJAd
+Ec3+8ArRzj7OPAEQAAEBAAAAAAAAAAAAAAAA/9j/4AAQSkZJRgABAQAAAQABAAD/
+2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwc
+KDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIy
+MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACH
+AIcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QA
+tRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS
+0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn
+aGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLD
+xMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEB
+AQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEE
+BSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2
+Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOU
+lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn
+6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDF+KGv6zYeNtQhs9Yv7eJPKCxQ3Dqo
+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
+jtIweGmn0b0OtCpGcmFuayBTY2hyZWluZXIgPHNjaHJlaW5lckBzdXNlLmRlPiAo
+V29yaymIkAQTFggAOBYhBBQJeDbRi+fD5MKYYdEscZORQgxEBQJgwjC5AhsDBQsJ
+CAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJENEscZORQgxEUyAA/0x6tI5vpeU1u/x2
+nxxW2lCTgNnyp0S4tLt6CAGeXhvBAP4kbjms6AZWynxGtDZ822IDSDruPVZh9QoB
+IF5Rw870D7QsRnJhbmsgU2NocmVpbmVyIDxmc2NocmVpbmVyQHN1c2UuY29tPiAo
+V29yaymIkAQTFggAOBYhBBQJeDbRi+fD5MKYYdEscZORQgxEBQJgwjDjAhsDBQsJ
+CAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJENEscZORQgxEWREBALby2QDe04hUHyyH
+NTHxpwFl80MpwV3ERqnku0s+uftwAPwLFfQUW7GikhVwqIOkeWaJTI9JW45UOCXF
+uCQ5JJkOCrQvRnJhbmsgU2NocmVpbmVyIDxmcmFua0BzY2hyZWluZXItY29udWx0
+aW5nLmNvbT6IkAQTFggAOBYhBBQJeDbRi+fD5MKYYdEscZORQgxEBQJgwjEGAhsD
+BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJENEscZORQgxEl+MA/3Ts3dTlNTAY
+RTh7tCvClYmUvPovjU8aLcu5qqUtRQW6AQCp9ni9EKQuK77EZxAYwkF1VWpEhjJW
+ONd6XMeFpp7RDrQhRnJhbmsgU2NocmVpbmVyIDxtMHNlc0BzYW1heGkuZGU+iJAE
+ExYIADgWIQQUCXg20Yvnw+TCmGHRLHGTkUIMRAUCYMIxHAIbAwULCQgHAgYVCgkI
+CwIEFgIDAQIeAQIXgAAKCRDRLHGTkUIMRGRUAP91V9yYRWlAmf8AcBR2Cx+3Gfp9
+/RDxJfnH9AE4fGPQ3QEA7dz/uIf03y0B/yTW/CW5qtInS0tEvYU8hUzZVnP/xwW4
+OARgwhnzEgorBgEEAZdVAQUBAQdAXq5XzPcOAfUGbeCnOUgCCQ8XTDH3O9FYn5sg
+oAr8RlYDAQgHiHgEGBYIACAWIQQUCXg20Yvnw+TCmGHRLHGTkUIMRAUCYMIZ8wIb
+DAAKCRDRLHGTkUIMRL54AP9LyJlyVKMg69KYVIvx6CONYOdxON55d/MXEroX0gne
+FQD7Btc20vaJy8t/zQQPP2bHnWMLtIHZT4KP3bLyIPiMdQi4MwRgwhqLFgkrBgEE
+AdpHDwEBB0DTFR2XN0snno/Zwk76p6f1LxWdrp9X8uGlJ66Wd4DAvYj1BBgWCAAm
+FiEEFAl4NtGL58Pkwphh0Sxxk5FCDEQFAmDCGosCGyIFCQPCZwAAgQkQ0Sxxk5FC
+DER2IAQZFggAHRYhBHQzfBOdY0gKnQMG+XM7rLa8ox6uBQJgwhqLAAoJEHM7rLa8
+ox6uDJgBAI22wdH4sZz/UrIAOfH7LffqiOmyPn/9CK3S8rSqqIo8AQCBwp7a3nlS
+gvl697ibXpxabJ9cKbYdJfsyAWmAu9VdC0MpAQCJzrvxZLxnpwIc2WtH78DNBVrN
+WgCU758pAdTSy+lVTAEA+Wt/O5HfpOXBurobB9c9XN2HA8qLsCjpd/s+SI19YwC4
+MwRgwhtJFgkrBgEEAdpHDwEBB0CsUcPCiTx+4dkXdFhruSBuuidsohmYdI6FZJdU
+8r4TwIj1BBgWCAAmFiEEFAl4NtGL58Pkwphh0Sxxk5FCDEQFAmDCG0kCGwIFCQPC
+ZwAAgQkQ0Sxxk5FCDER2IAQZFggAHRYhBKsOhFtqb6LceTAplFMpSY8aLsl+BQJg
+whtJAAoJEFMpSY8aLsl+JoQBAJjMLkS6kiPfLkKDM880z4ioBNGQgQAE2TpbeXHa
+89YXAP4xC3WpNRrJPBN49nxIb1twQsAQ8w5ktWoj2pmB4fdbB1vFAP0X/abZZRfi
+/qZRU2W1wD/+OT3PR12kJ2Bb69qlDOLhzwD9HmEGM/vh+dcP2bQzqwAcEDuyiccE
+u6HVdBE5Ef2iRwA=
+=2MlP
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/_servicedata b/_servicedata
index c4b946e..007fe6d 100644
--- a/_servicedata
+++ b/_servicedata
@@ -1,4 +1,4 @@
https://github.com/M0ses/kanku.git
- f74afeded58d95457cc006f600cbe82e417b6973
\ No newline at end of file
+ 9003e19d05fd679ba8c73f5d10207c1bb43022d4
diff --git a/debian.changelog b/debian.changelog
index b5c8ecf..e1d9906 100644
--- a/debian.changelog
+++ b/debian.changelog
@@ -1,4 +1,4 @@
-kanku (0.10.3-0) UNRELEASED; urgency=medium
+kanku (0.10.4-0) UNRELEASED; urgency=medium
* updated to upstream version 0.10.1
diff --git a/debian.dsc b/debian.dsc
index 9c35eb0..ad6b353 100644
--- a/debian.dsc
+++ b/debian.dsc
@@ -2,7 +2,7 @@ Format: 1.0
Source: kanku
Binary: kanku
Architecture: any
-Version: 0.10.3
+Version: 0.10.4
Maintainer: Frank Schreiner
Standards-Version: 3.8.2
Homepage: https://github.com/M0ses/kanku
diff --git a/kanku-0.10.3.tar.xz b/kanku-0.10.3.tar.xz
deleted file mode 100644
index 43da31e..0000000
--- a/kanku-0.10.3.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:16401bcc00ae52a9ab3b0824929ba8a83168666e6268f85976349d0b5d3034b9
-size 2491676
diff --git a/kanku-0.10.4.tar.xz b/kanku-0.10.4.tar.xz
new file mode 100644
index 0000000..70c9e30
--- /dev/null
+++ b/kanku-0.10.4.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98428a51b9a7a20dd05fbf12cf4eb3c64a9eafe9f1acc612d802dfc90735d1d7
+size 2492016
diff --git a/kanku.changes b/kanku.changes
index a92855b..9bb1cea 100644
--- a/kanku.changes
+++ b/kanku.changes
@@ -1,3 +1,15 @@
+-------------------------------------------------------------------
+Sat Jun 12 09:23:57 UTC 2021 - FSchreiner@suse.com
+
+- Update to version 0.10.4:
+ * [handler] PrepareSSH - added all known default pub key file used by ssh
+ * [handler] OBSCheck changed default for use_oscrc to 0
+ * [notifier] new notifier NSCAng
+ * [notifier] removed unused variable in NSCA
+ * [dist] fixed duplicate key in kanku-config.yml.tt2
+ * [cli] basic version of check_configs command
+ * [core] switched logging to trace
+
-------------------------------------------------------------------
Thu Apr 15 10:46:53 UTC 2021 - FSchreiner@suse.com
diff --git a/kanku.spec b/kanku.spec
index 4c5b04e..4ec7160 100644
--- a/kanku.spec
+++ b/kanku.spec
@@ -1,7 +1,7 @@
#
# spec file for package kanku
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,91 +12,90 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-
-
%define kanku_user kankurun
%define kanku_group kanku
%define kanku_vardir /var/lib/kanku/
Name: kanku
# Version gets set by obs-service-tar_scm
-Version: 0.10.3
+Version: 0.10.4
Release: 0
-License: GPL-3.0-only
+License: GPL-3.0
Summary: Development and continuous integration
-URL: https://github.com/M0ses/kanku
+Url: https://github.com/M0ses/kanku
Group: Productivity/Networking/Web/Utilities
Source: %{name}-%{version}.tar.xz
BuildArch: noarch
-BuildRequires: fdupes
BuildRequires: perl-macros
+BuildRequires: fdupes
BuildRequires: systemd-rpm-macros
+
# perl requires for %check
-BuildRequires: perl(Const::Fast)
-BuildRequires: perl(Config::Tiny)
-BuildRequires: perl(Config::Tiny)
-BuildRequires: perl(DBIx::Class)
-BuildRequires: perl(DBIx::Class::Fixtures)
-BuildRequires: perl(DBIx::Class::Migration)
-BuildRequires: perl(DBIx::Class::Migration)
-BuildRequires: perl(Dancer2)
-BuildRequires: perl(Dancer2::Plugin::Auth::Extensible)
-BuildRequires: perl(Dancer2::Plugin::Auth::Extensible::Provider::DBIC)
-BuildRequires: perl(Dancer2::Plugin::DBIC)
-BuildRequires: perl(Dancer2::Plugin::REST)
-BuildRequires: perl(Dancer2::Plugin::REST)
-BuildRequires: perl(Expect)
-BuildRequires: perl(File::HomeDir)
-BuildRequires: perl(File::LibMagic)
-BuildRequires: perl(IO::Interactive)
-BuildRequires: perl(IO::Uncompress::UnXz)
-BuildRequires: perl(IPC::Run)
-BuildRequires: perl(JSON::XS)
-BuildRequires: perl(Log::Log4perl)
-BuildRequires: perl(Moose)
-BuildRequires: perl(MooseX::App)
-BuildRequires: perl(MooseX::Singleton)
-BuildRequires: perl(Net::IP)
-BuildRequires: perl(Net::OBS::Client)
-BuildRequires: perl(Net::SSH2)
-BuildRequires: perl(Path::Class)
-BuildRequires: perl(Plack)
-BuildRequires: perl(Sys::Virt)
-BuildRequires: perl(Template)
-BuildRequires: perl(Template::Plugin::Filter::ANSIColor)
-BuildRequires: perl(Term::ReadKey)
-BuildRequires: perl(Test::Simple)
-BuildRequires: perl(XML::Structured)
-BuildRequires: perl(XML::XPath)
-BuildRequires: perl(YAML::PP)
+BuildRequires: perl(Const::Fast)
+BuildRequires: perl(Test::Simple)
+BuildRequires: perl(YAML::PP)
+BuildRequires: perl(Config::Tiny)
+BuildRequires: perl(Path::Class)
+BuildRequires: perl(Sys::Virt)
+BuildRequires: perl(Moose)
+BuildRequires: perl(Log::Log4perl)
+BuildRequires: perl(MooseX::App)
+BuildRequires: perl(MooseX::Singleton)
+BuildRequires: perl(Dancer2::Plugin::REST)
+BuildRequires: perl(Expect)
+BuildRequires: perl(Net::SSH2)
+BuildRequires: perl(Net::IP)
+BuildRequires: perl(Net::OBS::Client)
+BuildRequires: perl(XML::Structured)
+BuildRequires: perl(DBIx::Class::Migration)
+BuildRequires: perl(Template)
+BuildRequires: perl(Template::Plugin::Filter::ANSIColor)
+BuildRequires: perl(Config::Tiny)
+BuildRequires: perl(Dancer2::Plugin::DBIC)
+BuildRequires: perl(Dancer2::Plugin::Auth::Extensible)
+BuildRequires: perl(Dancer2::Plugin::Auth::Extensible::Provider::DBIC)
+BuildRequires: perl(File::HomeDir)
+BuildRequires: perl(JSON::XS)
+BuildRequires: perl(DBIx::Class)
+BuildRequires: perl(DBIx::Class::Migration)
+BuildRequires: perl(DBIx::Class::Fixtures)
+BuildRequires: perl(File::LibMagic)
+BuildRequires: perl(IO::Uncompress::UnXz)
+BuildRequires: perl(Plack)
+BuildRequires: perl(Dancer2)
+BuildRequires: perl(Dancer2::Plugin::REST)
+BuildRequires: perl(XML::XPath)
+BuildRequires: perl(Term::ReadKey)
+BuildRequires: perl(IPC::Run)
+BuildRequires: perl(IO::Interactive)
# DBD::SQLite is also provided by perl-DBD-SQLite-Amalgamation
# but perl-DBD-SQLite-Amalgamation is breaks with SQL syntax errors
# at job_histroy_sub table
-BuildRequires: perl-DBD-SQLite
-BuildRequires: desktop-file-utils
-BuildRequires: libvirt-daemon
-BuildRequires: shared-mime-info
-BuildRequires: perl(Archive::Cpio)
-BuildRequires: perl(Dancer2)
-BuildRequires: perl(Dancer2::Plugin)
-BuildRequires: perl(Dancer2::Plugin::Auth::Extensible)
-BuildRequires: perl(Dancer2::Plugin::DBIC)
-BuildRequires: perl(Dancer2::Plugin::REST)
-BuildRequires: perl(Dancer2::Plugin::WebSocket)
-BuildRequires: perl(LWP::Protocol::https)
-BuildRequires: perl(LWP::UserAgent)
-BuildRequires: perl(Mail::Sendmail)
-BuildRequires: perl(Net::AMQP::RabbitMQ)
-BuildRequires: perl(UUID)
-Requires: kanku-cli = %{version}
-Requires: kanku-dispatcher = %{version}
-Requires: kanku-scheduler = %{version}
-Requires: kanku-triggerd = %{version}
-Requires: kanku-web = %{version}
-Requires: kanku-worker = %{version}
+BuildRequires: perl-DBD-SQLite
+BuildRequires: perl(LWP::UserAgent)
+BuildRequires: perl(LWP::Protocol::https)
+BuildRequires: perl(Mail::Sendmail)
+BuildRequires: perl(Archive::Cpio)
+BuildRequires: perl(Dancer2)
+BuildRequires: perl(Dancer2::Plugin)
+BuildRequires: perl(Dancer2::Plugin::REST)
+BuildRequires: perl(Dancer2::Plugin::DBIC)
+BuildRequires: perl(Dancer2::Plugin::WebSocket)
+BuildRequires: perl(Dancer2::Plugin::Auth::Extensible)
+BuildRequires: perl(Net::AMQP::RabbitMQ)
+BuildRequires: perl(UUID)
+BuildRequires: libvirt-daemon
+BuildRequires: desktop-file-utils
+BuildRequires: shared-mime-info
+Requires: kanku-cli = %{version}
+Requires: kanku-web = %{version}
+Requires: kanku-worker = %{version}
+Requires: kanku-scheduler = %{version}
+Requires: kanku-dispatcher = %{version}
+Requires: kanku-triggerd = %{version}
%description
kanku is a utility for integration of kiwi images built
@@ -129,64 +128,62 @@ ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rckanku-triggerd
%exclude /usr
%package common
-Summary: Common files for kanku
+Summary: Common files for kanku
-Recommends: apache2
-Recommends: osc
-Recommends: perl(IO::Uncompress::UnXz)
-Recommends: perl(YAML::PP::LibYAML)
-Requires: libvirt-daemon-config-network
-Requires: libvirt-daemon-config-nwfilter
-Requires: libvirt-daemon-qemu
-Requires: perl-Plack
-Requires: sudo
-Requires: perl(Config::Tiny)
-Requires: perl(Config::Tiny)
-Requires: perl(Const::Fast)
-Requires: perl(DBIx::Class)
-Requires: perl(DBIx::Class::Fixtures)
-Requires: perl(DBIx::Class::Migration)
-Requires: perl(DBIx::Class::Migration)
-Requires: perl(Dancer2)
-Requires: perl(Dancer2::Plugin::Auth::Extensible)
-Requires: perl(Dancer2::Plugin::Auth::Extensible::Provider::DBIC)
-Requires: perl(Dancer2::Plugin::DBIC)
-Requires: perl(Dancer2::Plugin::REST)
-Requires: perl(Dancer2::Plugin::REST)
-Requires: perl(Expect)
-Requires: perl(File::HomeDir)
-Requires: perl(File::LibMagic)
-Requires: perl(IO::Uncompress::UnXz)
-Requires: perl(IPC::Run)
-Requires: perl(JSON::XS)
-Requires: perl(Log::Log4perl)
-Requires: perl(Moose)
-Requires: perl(MooseX::App)
-Requires: perl(MooseX::Singleton)
-Requires: perl(Net::IP)
-Requires: perl(Net::OBS::Client)
-Requires: perl(Net::SSH2)
-Requires: perl(Path::Class)
-Requires: perl(Sys::Virt)
-Requires: perl(Template)
-Requires: perl(Template::Plugin::Filter::ANSIColor)
-Requires: perl(Template::Plugin::Filter::ANSIColor)
-Requires: perl(Term::ReadKey)
-Requires: perl(Test::Simple)
-Requires: perl(XML::Structured)
-Requires: perl(XML::XPath)
-Requires: perl(YAML::PP)
+Recommends: osc
+Recommends: perl(IO::Uncompress::UnXz)
+Recommends: apache2
+Recommends: perl(YAML::PP::LibYAML)
+Requires: libvirt-daemon-qemu libvirt-daemon-config-network libvirt-daemon-config-nwfilter
+Requires: sudo
+Requires: perl(DBIx::Class::Fixtures)
+Requires: perl(Test::Simple)
+Requires: perl(YAML::PP)
+Requires: perl(Config::Tiny)
+Requires: perl(Path::Class)
+Requires: perl(Sys::Virt)
+Requires: perl(Moose)
+Requires: perl(MooseX::App)
+Requires: perl(Dancer2::Plugin::REST)
+Requires: perl(MooseX::Singleton)
+Requires: perl(Expect)
+Requires: perl(Net::SSH2)
+Requires: perl(Net::IP)
+Requires: perl(Net::OBS::Client)
+Requires: perl(XML::Structured)
+Requires: perl(DBIx::Class::Migration)
+Requires: perl(Template)
+Requires: perl(Log::Log4perl)
+Requires: perl(Config::Tiny)
+Requires: perl(Dancer2::Plugin::DBIC)
+Requires: perl(Dancer2::Plugin::Auth::Extensible)
+Requires: perl(Dancer2::Plugin::Auth::Extensible::Provider::DBIC)
+Requires: perl(File::HomeDir)
+Requires: perl(Template::Plugin::Filter::ANSIColor)
+Requires: perl(JSON::XS)
+Requires: perl(DBIx::Class)
+Requires: perl(DBIx::Class::Migration)
+Requires: perl(Template::Plugin::Filter::ANSIColor)
+Requires: perl(File::LibMagic)
+Requires: perl(IO::Uncompress::UnXz)
+Requires: perl-Plack
+Requires: perl(Dancer2)
+Requires: perl(Dancer2::Plugin::REST)
+Requires: perl(XML::XPath)
+Requires: perl(Term::ReadKey)
+Requires: perl(IPC::Run)
+Requires: perl(Const::Fast)
# DBD::SQLite is also provided by perl-DBD-SQLite-Amalgamation
# but perl-DBD-SQLite-Amalgamation is breaks with SQL syntax errors
# at job_histroy_sub table
-Requires: perl-DBD-SQLite
-Requires: logrotate
-Requires: perl(Archive::Cpio)
-Requires: perl(LWP::Protocol::https)
-Requires: perl(Mail::Sendmail)
-Requires: perl(UUID)
+Requires: perl-DBD-SQLite
+Requires: perl(LWP::Protocol::https)
+Requires: perl(Mail::Sendmail)
+Requires: perl(Archive::Cpio)
+Requires: perl(UUID)
+Requires: logrotate
-Conflicts: perl-DBD-SQLite-Amalgamation
+Conflicts: perl-DBD-SQLite-Amalgamation
%description common
common config and lib files used in kanku
@@ -292,15 +289,15 @@ common config and lib files used in kanku
/usr/lib/kanku/lib/Kanku/Test/
%package cli
-Summary: Command line client for kanku
-Requires: kanku-common = %{version}
-Requires: libvirt-client
-Requires(pre): libvirt-daemon libvirt-daemon-driver-qemu
-Requires(pre): sudo
-Requires: (perl(Passwd::Keyring::Gnome) if gnome-keyring)
-Requires: (perl(Passwd::Keyring::KDEWallet) if kwalletd5)
-Requires: perl(IO::Interactive)
-Requires: perl(Net::AMQP::RabbitMQ)
+Summary: Command line client for kanku
+Requires: kanku-common = %{version}
+Requires: libvirt-client
+Requires(pre): libvirt-daemon libvirt-daemon-driver-qemu
+Requires(pre): sudo
+Requires: perl(Net::AMQP::RabbitMQ)
+Requires: perl(IO::Interactive)
+Requires: (perl(Passwd::Keyring::KDEWallet) if kwalletd5)
+Requires: (perl(Passwd::Keyring::Gnome) if gnome-keyring)
%description cli
Command line client for kanku, mainly used for setup tasks
@@ -316,17 +313,17 @@ and in developer mode.
/etc/bash_completion.d/kanku.sh
%package common-server
-Summary: Common server files or settings for kanku
-Requires(pre): libvirt-daemon libvirt-daemon-driver-qemu
+Summary: Common server files or settings for kanku
+Requires(pre): libvirt-daemon libvirt-daemon-driver-qemu
%if 0%{?fedora}
-Requires(pre): shadow-utils
+Requires(pre): shadow-utils
%else
-Requires(pre): shadow
+Requires(pre): shadow
%endif
%description common-server
-This package contains common server files, settings and dependencies
+This package contains common server files, settings and dependencies
for the kanku server components like kanku-worker, kanku-dispatcher,
kanku-web, kanku-scheduler and kanku-triggerd.
@@ -343,20 +340,20 @@ getent passwd %{kanku_user} >/dev/null || useradd -r -g %{kanku_group} -G libvir
%ghost %dir %attr(755, kankurun, kanku) /run/kanku
%package web
-Summary: WebUI for kanku
-Requires: kanku-common = %{version}
-Requires: kanku-common-server = %{version}
-Requires: perl(Dancer2::Plugin::WebSocket)
-Requires: perl(Mail::Message::Body::String)
-Requires: perl(Mail::Transport::Send)
-Requires: perl(Net::AMQP::RabbitMQ)
-Requires: perl(Template::Plugin::JSON::Escape)
-Requires: perl(Twiggy)
-Requires: perl(UUID)
+Summary: WebUI for kanku
+Requires: kanku-common = %{version}
+Requires: kanku-common-server = %{version}
+Requires: perl(Dancer2::Plugin::WebSocket)
+Requires: perl(Twiggy)
+Requires: perl(Mail::Message::Body::String)
+Requires: perl(Mail::Transport::Send)
+Requires: perl(Net::AMQP::RabbitMQ)
+Requires: perl(Template::Plugin::JSON::Escape)
+Requires: perl(UUID)
%if 0%{?fedora}
-Requires: server(smtp)
+Requires: server(smtp)
%else
-Requires: smtp_daemon
+Requires: smtp_daemon
%endif
%description web
@@ -409,23 +406,23 @@ WebUI for kanku using perl Dancer
/usr/lib/kanku/lib/Kanku/REST
%package worker
-Summary: Worker daemon for kanku
+Summary: Worker daemon for kanku
-Requires: kanku-common = %{version}
-Requires: kanku-common-server = %{version}
-Requires: perl(Net::AMQP::RabbitMQ)
-Requires: perl(Sys::CPU)
-Requires: perl(Sys::LoadAvg)
-Requires: perl(Sys::MemInfo)
-Requires: perl(UUID)
+Requires: kanku-common = %{version}
+Requires: kanku-common-server = %{version}
+Requires: perl(Net::AMQP::RabbitMQ)
+Requires: perl(UUID)
+Requires: perl(Sys::CPU)
+Requires: perl(Sys::LoadAvg)
+Requires: perl(Sys::MemInfo)
%if "%{_arch}" == "x86_64" || "%{_arch}" == "i686"
-Requires: qemu-kvm
+Requires: qemu-kvm
%endif
%if "%{_arch}" == "aarch64"
-Requires: qemu-arm
+Requires: qemu-arm
%endif
# apache2 is only needed for delivering console logs
-Recommends: apache2
+Recommends: apache2
%description worker
A remote worker for kanku based on RabbitMQ.
@@ -447,13 +444,13 @@ A remote worker for kanku based on RabbitMQ.
/usr/lib/kanku/lib/Kanku/Daemon/Worker.pm
%package dispatcher
-Summary: Dispatcher daemon for kanku
+Summary: Dispatcher daemon for kanku
-Requires: kanku-common = %{version}
-Requires: kanku-common-server = %{version}
-Requires: perl(Net::AMQP::RabbitMQ)
-Requires(pre): sudo
-Recommends: rabbitmq-server
+Requires: kanku-common = %{version}
+Requires: kanku-common-server = %{version}
+Requires: perl(Net::AMQP::RabbitMQ)
+Requires(pre): sudo
+Recommends: rabbitmq-server
%description dispatcher
A dispatcher for kanku based on RabbitMQ.
@@ -476,9 +473,9 @@ A dispatcher for kanku based on RabbitMQ.
/usr/share/kanku/views/notifier/
%package scheduler
-Summary: Scheduler daemon for kanku
-Requires: kanku-common = %{version}
-Requires: kanku-common-server = %{version}
+Summary: Scheduler daemon for kanku
+Requires: kanku-common = %{version}
+Requires: kanku-common-server = %{version}
%description scheduler
A scheduler for kanku based on RabbitMQ.
@@ -499,9 +496,9 @@ A scheduler for kanku based on RabbitMQ.
%{_sbindir}/rckanku-scheduler
%package triggerd
-Summary: Trigger daemon for kanku
-Requires: kanku-common = %{version}
-Requires: kanku-common-server = %{version}
+Summary: Trigger daemon for kanku
+Requires: kanku-common = %{version}
+Requires: kanku-common-server = %{version}
%description triggerd
A triggerd for kanku based on RabbitMQ.
@@ -523,8 +520,9 @@ A triggerd for kanku based on RabbitMQ.
/usr/lib/kanku/lib/Kanku/Daemon/TriggerD.pm
/usr/lib/kanku/lib/Kanku/Listener/RabbitMQ.pm
+
%package doc
-Summary: Documentation files for kanku
+Summary: Documentation files for kanku
%description doc
This package contains the documentation files for kanku.
@@ -533,11 +531,11 @@ This package contains the documentation files for kanku.
%{_defaultdocdir}/kanku/
%package urlwrapper
-Summary: Url wrapper for kanku:// urls
-Requires: desktop-file-utils
-Requires: kanku-cli = %{version}
-Requires: shared-mime-info
-Obsoletes: kanku-url-wrapper
+Summary: Url wrapper for kanku:// urls
+Requires: kanku-cli = %{version}
+Requires: desktop-file-utils
+Requires: shared-mime-info
+Obsoletes: kanku-url-wrapper
%description urlwrapper
A URL wrapper to start kanku from kanku:// urls in the browser.