Hello community,

here is the log from the commit of package kadu for openSUSE:Factory checked in 
at 2015-02-11 16:44:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kadu (Old)
 and      /work/SRC/openSUSE:Factory/.kadu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kadu"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kadu/kadu.changes        2015-02-03 
11:40:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kadu.new/kadu.changes   2015-02-11 
16:44:54.000000000 +0100
@@ -1,0 +2,12 @@
+Tue Feb 10 21:37:19 UTC 2015 - [email protected]
+
+- Update to 1.5, bugfixes only:
+  * new chat notification is now closed after opening chat widget
+  * receiving images works again
+  * uuids visible in info panel after adding new buddy
+  * random disconnections
+  * crash after clicking on hint
+  * clear history menu item dissappears after a second
+- Enable all translations.
+
+-------------------------------------------------------------------

Old:
----
  kadu-1.2.tar.bz2

New:
----
  kadu-1.5.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kadu.spec ++++++
--- /var/tmp/diff_new_pack.UqdRPz/_old  2015-02-11 16:44:56.000000000 +0100
+++ /var/tmp/diff_new_pack.UqdRPz/_new  2015-02-11 16:44:56.000000000 +0100
@@ -21,7 +21,7 @@
 %define build_penguins 0
 
 Name:           kadu
-Version:        1.2
+Version:        1.5
 Release:        0
 # Choosing GPL-3.0+ because of presence and usage of numerous GPL-3.0 files
 Summary:        Gadu-Gadu and Jabber/XMPP protocol Instant Messenger
@@ -66,7 +66,7 @@
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(enchant)
 BuildRequires:  pkgconfig(libarchive) >= 2.6.0
-BuildRequires:  pkgconfig(libgadu) >= 1.12.0
+BuildRequires:  pkgconfig(libgadu) >= 1.12.1
 BuildRequires:  pkgconfig(libidn)
 %if %{?suse_version} < 1310
 BuildRequires:  pkgconfig(libntrack-qt4)
@@ -332,7 +332,8 @@
 %endif
       -DCMAKE_BUILD_TYPE=RelWithDebInfo \
       -DCMAKE_INSTALL_PREFIX=%{_prefix} \
-      -DWITH_ENCHANT=ON
+      -DWITH_ENCHANT=ON \
+      -DINSTALL_UNOFFICIAL_TRANSLATIONS=ON
 make %{?_smp_mflags}
 
 %install

++++++ kadu-1.2.tar.bz2 -> kadu-1.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/ChangeLog new/kadu-1.5/ChangeLog
--- old/kadu-1.2/ChangeLog      2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/ChangeLog      2015-01-17 18:08:13.000000000 +0100
@@ -1,3 +1,20 @@
++++ version 1.5
+* otr: #2895 fixed: strange error messages when using libotr5-4.1.0 (Vogel)
+* history: #2902 fixed: clear history menu item dissappears after a second 
(Vogel)
+
++++ version 1.4
+* hints: #2905 fixed: crash after clicking on hint (Vogel)
+* gadu: #2906 fixed: random disconnections (Vogel)
+
++++ version 1.3
+* gui: #2869 fixed: uuids visible in info panel after adding new buddy (Vogel)
+* bsd: #2894 fixed: fix build on FreeBSD (Pekala)
+* imagelink: #2896 fixed: support more image urls (Vogel)
+* gadu: #2877 fixed: receiving images works again (Vogel)
+* notify: #2897 fixed: new chat notification is now closed after opening chat 
widget (Vogel)
+* gui: #2899 fixed: leaving conference properly closes chat widget (Vogel)
+* bsd: #2898 fixed: fix scripts on FreeBSD (Pekala)
+
 +++ version 1.2
 * gui: #2881 fixed: after some imported configuration no contacts are 
displayed at all (Vogel)
 * windows: #2880 fixed: improve hiding Kadu button on taskbar (Vogel)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/VERSION new/kadu-1.5/VERSION
--- old/kadu-1.2/VERSION        2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/VERSION        2015-01-17 18:08:13.000000000 +0100
@@ -1 +1 @@
-1.2
+1.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/kadu-core/chat/chat-details-buddy.cpp 
new/kadu-1.5/kadu-core/chat/chat-details-buddy.cpp
--- old/kadu-1.2/kadu-core/chat/chat-details-buddy.cpp  2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/chat/chat-details-buddy.cpp  2015-01-17 
18:08:13.000000000 +0100
@@ -110,7 +110,9 @@
  */
 void ChatDetailsBuddy::setChats(const QVector<Chat> &chats)
 {
-       Chats = chats;
+       Chats.clear();
+       for (auto &&chat : chats)
+               addChat(chat);
 }
 
 /**
@@ -126,7 +128,7 @@
 
 void ChatDetailsBuddy::addChat(const Chat &chat)
 {
-       if (!Chats.contains(chat))
+       if (chat && !Chats.contains(chat))
                Chats.append(chat);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/formatted-string/formatted-string-factory.h 
new/kadu-1.5/kadu-core/formatted-string/formatted-string-factory.h
--- old/kadu-1.2/kadu-core/formatted-string/formatted-string-factory.h  
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/formatted-string/formatted-string-factory.h  
2015-01-17 18:08:13.000000000 +0100
@@ -22,6 +22,7 @@
 #define FORMATTED_STRING_FACTORY_H
 
 #include <memory>
+#include <vector>
 #include <QtCore/QPointer>
 
 #include "formatted-string/formatted-string.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/formatted-string/formatted-string-image-block.cpp 
new/kadu-1.5/kadu-core/formatted-string/formatted-string-image-block.cpp
--- old/kadu-1.2/kadu-core/formatted-string/formatted-string-image-block.cpp    
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/formatted-string/formatted-string-image-block.cpp    
2015-01-17 18:08:13.000000000 +0100
@@ -27,7 +27,7 @@
 }
 
 FormattedStringImageBlock::FormattedStringImageBlock(QString imagePath) :
-               ImagePath{std::move(imagePath)}, Image{imagePath, 0}
+               ImagePath{imagePath}, Image{imagePath, 0}
 {
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/formatted-string/formatted-string-is-plain-text-visitor.cpp
 
new/kadu-1.5/kadu-core/formatted-string/formatted-string-is-plain-text-visitor.cpp
--- 
old/kadu-1.2/kadu-core/formatted-string/formatted-string-is-plain-text-visitor.cpp
  2014-11-06 21:56:16.000000000 +0100
+++ 
new/kadu-1.5/kadu-core/formatted-string/formatted-string-is-plain-text-visitor.cpp
  2015-01-17 18:08:13.000000000 +0100
@@ -27,7 +27,6 @@
 #include "formatted-string-is-plain-text-visitor.h"
 
 FormattedStringIsPlainTextVisitor::FormattedStringIsPlainTextVisitor() :
-               m_first{true},
                m_isPlain{true}
 {
 }
@@ -47,14 +46,11 @@
 void FormattedStringIsPlainTextVisitor::visit(const FormattedStringImageBlock 
* const)
 {
        m_first = false;
+       m_isPlain = false;
 }
 
 void FormattedStringIsPlainTextVisitor::visit(const FormattedStringTextBlock * 
const formattedStringTextBlock)
 {
-       if (!m_first)
-               m_isPlain = false;
-       m_first = false;
-
        // ignore colors
        if (formattedStringTextBlock->bold() || 
formattedStringTextBlock->italic() || formattedStringTextBlock->underline())
                m_isPlain = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/gui/actions/chat/leave-chat-action.cpp 
new/kadu-1.5/kadu-core/gui/actions/chat/leave-chat-action.cpp
--- old/kadu-1.2/kadu-core/gui/actions/chat/leave-chat-action.cpp       
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/gui/actions/chat/leave-chat-action.cpp       
2015-01-17 18:08:13.000000000 +0100
@@ -48,7 +48,7 @@
 {
        Q_UNUSED(toggled)
 
-       const Chat &chat = context->chat();
+       auto chat = context->chat();
        if (!chat)
                return;
 
@@ -56,7 +56,7 @@
        if (!chatWidget)
                return;
 
-       MessageDialog *dialog = 
MessageDialog::create(KaduIcon("dialog-warning"), tr("Kadu"),
+       auto dialog = MessageDialog::create(KaduIcon("dialog-warning"), 
tr("Kadu"),
                                                      tr("All messages received 
in this conference will be ignored\nfrom now on. Are you sure you want to leave 
this conference?"),
                                                      widget);
        dialog->addButton(QMessageBox::Yes, tr("Leave conference"));
@@ -65,7 +65,7 @@
                return;
 
        chat.setIgnoreAllMessages(true);
-       chatWidget->close();
+       chatWidget->requestClose();
 }
 
 #include "moc_leave-chat-action.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/kadu-core/gui/windows/about.cpp 
new/kadu-1.5/kadu-core/gui/windows/about.cpp
--- old/kadu-1.2/kadu-core/gui/windows/about.cpp        2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/gui/windows/about.cpp        2015-01-17 
18:08:13.000000000 +0100
@@ -134,7 +134,8 @@
        QString thanks = Qt::escape(loadFile("THANKS"));
        thanks.prepend("<b>");
        thanks.replace("\n\n", QLatin1String("</b><br/><br/>"));
-       thanks.replace("\n   ", "<br/>&nbsp;&nbsp;&nbsp;");
+       thanks.replace("\n", "<br/>");
+       thanks.replace(" ", "&nbsp;");
        tb_thanks->setHtml(thanks);
 
        // license
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/listener/chat-event-listener.cpp 
new/kadu-1.5/kadu-core/notify/listener/chat-event-listener.cpp
--- old/kadu-1.2/kadu-core/notify/listener/chat-event-listener.cpp      
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/listener/chat-event-listener.cpp      
2015-01-17 18:08:13.000000000 +0100
@@ -47,10 +47,9 @@
        auto chatWidget = 
Core::instance()->chatWidgetRepository()->widgetForChat(message.messageChat());
 
        if (!chatWidget)
-               Service->notify(new 
MessageNotification(MessageNotification::NewChat, message));
+               Service->notify(new 
MessageNotification(Core::instance()->chatWidgetRepository(), 
MessageNotification::NewChat, message));
        else if (!Service->newMessageOnlyIfInactive() || 
!_isWindowActiveOrFullyVisible(chatWidget))
-               Service->notify(new 
MessageNotification(MessageNotification::NewMessage, message));
+               Service->notify(new 
MessageNotification(Core::instance()->chatWidgetRepository(), 
MessageNotification::NewMessage, message));
 }
 
-
 #include "moc_chat-event-listener.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/listener/chat-event-listener.h 
new/kadu-1.5/kadu-core/notify/listener/chat-event-listener.h
--- old/kadu-1.2/kadu-core/notify/listener/chat-event-listener.h        
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/listener/chat-event-listener.h        
2015-01-17 18:08:13.000000000 +0100
@@ -40,7 +40,6 @@
        ChatEventListener(NotificationService *service);
        virtual ~ChatEventListener();
 
-       
 };
 
 #endif // CHAT_EVENT_LISTENER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/notification/aggregate-notification.cpp 
new/kadu-1.5/kadu-core/notify/notification/aggregate-notification.cpp
--- old/kadu-1.2/kadu-core/notify/notification/aggregate-notification.cpp       
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification/aggregate-notification.cpp       
2015-01-17 18:08:13.000000000 +0100
@@ -23,9 +23,12 @@
 
 #include "aggregate-notification.h"
 
-
-AggregateNotification::AggregateNotification(Notification *firstNotification)
-               : Notification(firstNotification->type(), 
firstNotification->icon()), GroupKey(firstNotification->groupKey())
+AggregateNotification::AggregateNotification(Notification *firstNotification) :
+               Notification(firstNotification->type(), 
firstNotification->icon()),
+               GroupKey(firstNotification->groupKey()),
+               Identifier{firstNotification->identifier()},
+               IsPeriodic{firstNotification->isPeriodic()},
+               Period{firstNotification->period()}
 {
        Notifications = QList<Notification *>();
        addNotification(firstNotification);
@@ -35,7 +38,7 @@
 {
        Notifications.append(notification);
 
-       connect(notification, SIGNAL(partialClosed(Notification *)), this, 
SLOT(partialNotificationClosed(Notification *)));
+       connect(notification, SIGNAL(closed(Notification *)), this, 
SLOT(partialNotificationClosed(Notification *)));
 
        emit updated(this);
 }
@@ -48,7 +51,7 @@
 
                foreach (Notification *n, Notifications)
                {
-                       n->partialClose();
+                       n->close();
                }
 
                emit closed(this);
@@ -84,37 +87,46 @@
 
 void AggregateNotification::clearCallbacks()
 {
-       Notifications.first()->clearCallbacks();
+       if (!Notifications.empty())
+               Notifications.first()->clearCallbacks();
 }
 
 void AggregateNotification::addCallback ( const QString& caption, const char* 
slot, const char* signature )
 {
-       Notifications.first()->addCallback(caption, slot, signature);
+       if (!Notifications.empty())
+               Notifications.first()->addCallback(caption, slot, signature);
 }
 
 void AggregateNotification::setDefaultCallback ( int timeout, const char* slot 
)
 {
-       Notifications.first()->setDefaultCallback(timeout, slot);
+       if (!Notifications.empty())
+               Notifications.first()->setDefaultCallback(timeout, slot);
 }
 
 bool AggregateNotification::requireCallback()
 {
-       return Notifications.first()->requireCallback();
+       if (!Notifications.empty())
+               return Notifications.first()->requireCallback();
+       else
+               return false;
 }
 
 void AggregateNotification::callbackAccept()
 {
-       Notifications.first()->callbackAccept();
+       if (!Notifications.empty())
+               Notifications.first()->callbackAccept();
 }
 
 void AggregateNotification::callbackDiscard()
 {
-       Notifications.first()->callbackDiscard();
+       if (!Notifications.empty())
+               Notifications.first()->callbackDiscard();
 }
 
 void AggregateNotification::clearDefaultCallback()
 {
-       Notifications.first()->clearDefaultCallback();
+       if (!Notifications.empty())
+               Notifications.first()->clearDefaultCallback();
 }
 
 void AggregateNotification::partialNotificationClosed(Notification 
*notification)
@@ -124,5 +136,4 @@
        close();
 }
 
-
 #include "moc_aggregate-notification.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/notification/aggregate-notification.h 
new/kadu-1.5/kadu-core/notify/notification/aggregate-notification.h
--- old/kadu-1.2/kadu-core/notify/notification/aggregate-notification.h 
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification/aggregate-notification.h 
2015-01-17 18:08:13.000000000 +0100
@@ -27,13 +27,16 @@
        Q_OBJECT
 
        QString GroupKey;
+       QString Identifier;
        QList<Notification *> Notifications;
+       bool IsPeriodic;
+       int Period;
 
 public:
        void addNotification(Notification * notification);
        AggregateNotification(Notification *firstNotification);
 
-       QString identifier() { return Notifications.first()->identifier(); }
+       QString identifier() { return Identifier; }
 
        virtual const QString title() const;
 
@@ -57,8 +60,8 @@
 
        virtual bool requireCallback();
 
-       virtual bool isPeriodic() { return Notifications.first()->isPeriodic(); 
}
-       virtual int period() { return Notifications.first()->period(); }
+       virtual bool isPeriodic() { return IsPeriodic; }
+       virtual int period() { return Period; }
 
 protected slots:
        void partialNotificationClosed(Notification *notification);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/notification/new-message-notification.cpp 
new/kadu-1.5/kadu-core/notify/notification/new-message-notification.cpp
--- old/kadu-1.2/kadu-core/notify/notification/new-message-notification.cpp     
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification/new-message-notification.cpp     
2015-01-17 18:08:13.000000000 +0100
@@ -23,6 +23,8 @@
 
 #include <QtGui/QTextDocument>
 
+#include "gui/widgets/chat-widget/chat-widget.h"
+#include "gui/widgets/chat-widget/chat-widget-repository.h"
 #include "icons/icons-manager.h"
 #include "message/message.h"
 #include "notify/notification-manager.h"
@@ -62,10 +64,12 @@
        NewMessageNotifyEvent = 0;
 }
 
-MessageNotification::MessageNotification(MessageType messageType, const 
Message &message) :
+MessageNotification::MessageNotification(ChatWidgetRepository 
*chatWidgetRepository, MessageType messageType, const Message &message) :
                ChatNotification(message.messageChat(), messageType == NewChat 
? "NewChat" : "NewMessage",
                KaduIcon("protocols/common/message")), CurrentMessage(message)
 {
+       connect(chatWidgetRepository, SIGNAL(chatWidgetAdded(ChatWidget*)), 
this, SLOT(chatWidgetAdded(ChatWidget*)));
+
        QString syntax;
 
        if (messageType == NewChat)
@@ -83,5 +87,10 @@
        setDetails(message.htmlContent());
 }
 
+void MessageNotification::chatWidgetAdded(ChatWidget *chatWidget)
+{
+       if (chatWidget->chat() == chat())
+               close();
+}
 
 #include "moc_new-message-notification.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/notification/new-message-notification.h 
new/kadu-1.5/kadu-core/notify/notification/new-message-notification.h
--- old/kadu-1.2/kadu-core/notify/notification/new-message-notification.h       
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification/new-message-notification.h       
2015-01-17 18:08:13.000000000 +0100
@@ -29,6 +29,8 @@
 #include "chat-notification.h"
 #include "exports.h"
 
+class ChatWidget;
+class ChatWidgetRepository;
 class NotifyEvent;
 
 class KADUAPI MessageNotification : public ChatNotification
@@ -51,9 +53,12 @@
        static void registerEvents();
        static void unregisterEvents();
 
-       MessageNotification(MessageType messageType, const Message &message);
+       MessageNotification(ChatWidgetRepository *chatWidgetRepository, 
MessageType messageType, const Message &message);
        virtual ~MessageNotification() {}
 
+private slots:
+       void chatWidgetAdded(ChatWidget *chatWidget);
+
 };
 
 #endif // NEW_MESSAGE_NOTIFICATION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/notification/notification.cpp 
new/kadu-1.5/kadu-core/notify/notification/notification.cpp
--- old/kadu-1.2/kadu-core/notify/notification/notification.cpp 2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification/notification.cpp 2015-01-17 
18:08:13.000000000 +0100
@@ -81,13 +81,6 @@
 {
        kdebugf();
 
-       emit closed(this);
-}
-
-void Notification::partialClose()
-{
-       kdebugf();
-
        if (!Closing)
        {
                Closing = true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/notify/notification/notification.h 
new/kadu-1.5/kadu-core/notify/notification/notification.h
--- old/kadu-1.2/kadu-core/notify/notification/notification.h   2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification/notification.h   2015-01-17 
18:08:13.000000000 +0100
@@ -162,8 +162,6 @@
         **/
        virtual void close();
 
-       void partialClose();
-
        /**
                Usuwa akcje u�ytkownika
         **/
@@ -226,6 +224,7 @@
         **/
        virtual void setDetails(const QStringList &details);
        virtual void setDetails(const QString &details);
+
        /**
                Szczeg��y zdarzenia
         **/
@@ -270,7 +269,6 @@
 
 signals:
        void updated(Notification *);
-       void partialClosed(Notification *);
        void closed(Notification *);
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/kadu-core/notify/notification-manager.cpp 
new/kadu-1.5/kadu-core/notify/notification-manager.cpp
--- old/kadu-1.2/kadu-core/notify/notification-manager.cpp      2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification-manager.cpp      2015-01-17 
18:08:13.000000000 +0100
@@ -175,13 +175,19 @@
                }
        }
 
-       Notification *notification = findGroup(rawNotification);
+       auto notification = findGroup(rawNotification);
+       if (notification) // should update details
+               return;
+
+       notification = new AggregateNotification(rawNotification);
+       connect(notification, SIGNAL(closed(Notification*)), this, 
SLOT(removeGrouped(Notification*)));
+       ActiveNotifications.insert(notification->identifier(), notification);
+
+       auto notifyType = rawNotification->key();
+       auto foundNotifier = false;
+       auto foundNotifierWithCallbackSupported = 
!rawNotification->requireCallback();
 
-       QString notifyType = rawNotification->key();
-       bool foundNotifier = false;
-       bool foundNotifierWithCallbackSupported = 
!rawNotification->requireCallback();
-
-       foreach (Notifier *notifier, Notifiers)
+       for (auto notifier : Notifiers)
        {
                if (config_file.readBoolEntry("Notify", notifyType + '_' + 
notifier->name()))
                {
@@ -193,7 +199,7 @@
        }
 
        if (!foundNotifierWithCallbackSupported)
-               foreach (Notifier *notifier, Notifiers)
+               for (auto notifier : Notifiers)
                {
                        if (Notifier::CallbackSupported == 
notifier->callbackCapacity())
                        {
@@ -213,21 +219,11 @@
        kdebugf2();
 }
 
-Notification * NotificationManager::findGroup(Notification *rawNotification)
+AggregateNotification * NotificationManager::findGroup(Notification 
*rawNotification)
 {
-       AggregateNotification *aggregate = 
ActiveNotifications.value(rawNotification->identifier());
-
+       auto aggregate = 
ActiveNotifications.value(rawNotification->identifier());
        if (aggregate)
-       {
                aggregate->addNotification(rawNotification);
-       }
-       else
-       {
-               aggregate = new AggregateNotification(rawNotification);
-               connect(aggregate, SIGNAL(closed(Notification*)), this, 
SLOT(removeGrouped(Notification*)));
-       }
-
-       ActiveNotifications.insert(aggregate->identifier(), aggregate);
 
        return aggregate;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/kadu-core/notify/notification-manager.h 
new/kadu-1.5/kadu-core/notify/notification-manager.h
--- old/kadu-1.2/kadu-core/notify/notification-manager.h        2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/notify/notification-manager.h        2015-01-17 
18:08:13.000000000 +0100
@@ -67,7 +67,7 @@
        NotificationManager();
        virtual ~NotificationManager();
 
-       Notification * findGroup(Notification *notification);
+       AggregateNotification * findGroup(Notification *notification);
 
 private slots:
        void removeGrouped(Notification *notification);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/plugin/metadata/plugin-metadata-finder.cpp 
new/kadu-1.5/kadu-core/plugin/metadata/plugin-metadata-finder.cpp
--- old/kadu-1.2/kadu-core/plugin/metadata/plugin-metadata-finder.cpp   
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/plugin/metadata/plugin-metadata-finder.cpp   
2015-01-17 18:08:13.000000000 +0100
@@ -48,7 +48,7 @@
 std::map<QString, PluginMetadata> PluginMetadataFinder::provide() noexcept
 {
        if (m_directory.isEmpty() || !m_pluginMetadataReader)
-               return {};
+               return std::map<QString, PluginMetadata>{};
 
        auto result = std::map<QString, PluginMetadata>{};
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/kadu-core/plugin/plugin-conflict-resolver.cpp 
new/kadu-1.5/kadu-core/plugin/plugin-conflict-resolver.cpp
--- old/kadu-1.2/kadu-core/plugin/plugin-conflict-resolver.cpp  2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/kadu-core/plugin/plugin-conflict-resolver.cpp  2015-01-17 
18:08:13.000000000 +0100
@@ -40,7 +40,7 @@
 std::set<QString> PluginConflictResolver::conflictingPlugins(const 
std::set<QString> &activePluginSet, const QString &pluginName)
 {
        if (!m_pluginDependencyHandler || contains(activePluginSet, pluginName))
-               return {};
+               return std::set<QString>{}; 
 
        auto withDependencies = 
m_pluginDependencyHandler->withDependencies(pluginName);
        auto withoutActive = decltype(withDependencies){};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/encryption_otr/CMakeLists.txt 
new/kadu-1.5/plugins/encryption_otr/CMakeLists.txt
--- old/kadu-1.2/plugins/encryption_otr/CMakeLists.txt  2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/encryption_otr/CMakeLists.txt  2015-01-17 
18:08:13.000000000 +0100
@@ -102,6 +102,10 @@
 
 set (LIBRARIES ${QCA2_LIBRARIES} ${LIBOTR_LDFLAGS} gcrypt)
 
+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+       include_directories (${LIBOTR_INCLUDE_DIRS})
+endif ()
+
 kadu_plugin (encryption_otr
        PLUGIN_SOURCES ${SOURCES}
        PLUGIN_MOC_SOURCES ${MOC_SOURCES}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/plugins/encryption_otr/otr-raw-message-transformer.cpp 
new/kadu-1.5/plugins/encryption_otr/otr-raw-message-transformer.cpp
--- old/kadu-1.2/plugins/encryption_otr/otr-raw-message-transformer.cpp 
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/encryption_otr/otr-raw-message-transformer.cpp 
2015-01-17 18:08:13.000000000 +0100
@@ -20,10 +20,13 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
-extern "C" {
-#      include <libotr/proto.h>
-#      include <libotr/userstate.h>
-}
+#include "otr-raw-message-transformer.h"
+
+#include "otr-app-ops-service.h"
+#include "otr-op-data-factory.h"
+#include "otr-op-data.h"
+#include "otr-session-service.h"
+#include "otr-user-state-service.h"
 
 #include "accounts/account.h"
 #include "chat/chat-details.h"
@@ -34,16 +37,13 @@
 #include "message/message.h"
 #include "message/raw-message.h"
 
-#include "otr-app-ops-service.h"
-#include "otr-op-data-factory.h"
-#include "otr-op-data.h"
-#include "otr-session-service.h"
-#include "otr-user-state-service.h"
-
-#include "otr-raw-message-transformer.h"
+extern "C" {
+#      include <libotr/proto.h>
+#      include <libotr/userstate.h>
+}
 
 OtrRawMessageTransformer::OtrRawMessageTransformer() :
-               EnableFragments(false)
+               EnableFragments{false}
 {
 }
 
@@ -94,22 +94,22 @@
        if (!AppOpsService || !OpDataFactory || !UserStateService || 
message.messageChat().contacts().size() != 1)
                return rawMessage;
 
-       OtrlUserState userState = UserStateService.data()->userState();
+       auto userState = UserStateService.data()->userState();
        if (!userState)
                return rawMessage;
 
-       OtrOpData opData = 
OpDataFactory.data()->opDataForContact(message.messageChat().contacts().toContact());
-       Account account = message.messageChat().chatAccount();
+       auto opData = 
OpDataFactory.data()->opDataForContact(message.messageChat().contacts().toContact());
+       auto account = message.messageChat().chatAccount();
        char *newMessage = 0;
        OtrlTLV *tlvs = 0;
 
-       bool ignoreMessage = otrl_message_receiving(userState, 
AppOpsService.data()->appOps(), &opData,
+       auto ignoreMessage = otrl_message_receiving(userState, 
AppOpsService.data()->appOps(), &opData,
                        account.id().toUtf8().data(), 
account.protocolName().toUtf8().data(),
                        message.messageSender().id().toUtf8().data(),
                        rawMessage.rawXmlContent().data(),
                        &newMessage, &tlvs, 0, 0, 0);
 
-       OtrlTLV *tlv = otrl_tlv_find(tlvs, OTRL_TLV_DISCONNECTED);
+       auto tlv = otrl_tlv_find(tlvs, OTRL_TLV_DISCONNECTED);
        if (tlv)
                emit peerEndedSession(message.messageSender());
        otrl_tlv_free(tlvs);
@@ -119,7 +119,7 @@
 
        if (newMessage)
        {
-               QByteArray result = newMessage;
+               auto result = QByteArray{newMessage};
                otrl_message_free(newMessage);
                return {result, result};
        }
@@ -132,25 +132,25 @@
        if (!AppOpsService || !OpDataFactory || !UserStateService || 
message.messageChat().contacts().size() != 1)
                return rawMessage;
 
-       OtrlUserState userState = UserStateService.data()->userState();
+       auto userState = UserStateService.data()->userState();
        if (!userState)
                return rawMessage;
 
-       Contact receiver = message.messageChat().contacts().toContact();
-       OtrOpData opData = 
OpDataFactory.data()->opDataForContact(message.messageChat().contacts().toContact());
-       Account account = message.messageChat().chatAccount();
+       auto receiver = message.messageChat().contacts().toContact();
+       auto opData = 
OpDataFactory.data()->opDataForContact(message.messageChat().contacts().toContact());
+       auto account = message.messageChat().chatAccount();
        char *newMessage = 0;
 
-       gcry_error_t err = otrl_message_sending(userState, 
AppOpsService.data()->appOps(), &opData,
+       auto err = otrl_message_sending(userState, 
AppOpsService.data()->appOps(), &opData,
                        account.id().toUtf8().data(), 
account.protocolName().toUtf8().data(),
                        receiver.id().toUtf8().data(), OTRL_INSTAG_BEST,
                        rawMessage.rawXmlContent().data(), 0,
-                       &newMessage, EnableFragments ? OTRL_FRAGMENT_SEND_ALL : 
OTRL_FRAGMENT_SEND_SKIP,
+                       &newMessage, EnableFragments ? 
OTRL_FRAGMENT_SEND_ALL_BUT_LAST : OTRL_FRAGMENT_SEND_SKIP,
                        0, 0, 0);
 
        if (!err && newMessage)
        {
-               QByteArray result = newMessage;
+               auto result = QByteArray{newMessage};
                otrl_message_free(newMessage);
                return {result, result};
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/gadu_protocol/CMakeLists.txt 
new/kadu-1.5/plugins/gadu_protocol/CMakeLists.txt
--- old/kadu-1.2/plugins/gadu_protocol/CMakeLists.txt   2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/gadu_protocol/CMakeLists.txt   2015-01-17 
18:08:13.000000000 +0100
@@ -12,7 +12,7 @@
 
 find_package (Kadu REQUIRED CONFIG)
 
-set (LIBGADU_MIN_VERSION "1.12.0")
+set (LIBGADU_MIN_VERSION "1.12.1")
 
 kadu_api_directories (plugins/gadu_protocol
        dcc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/hints/hint.cpp 
new/kadu-1.5/plugins/hints/hint.cpp
--- old/kadu-1.2/plugins/hints/hint.cpp 2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/hints/hint.cpp 2015-01-17 18:08:13.000000000 +0100
@@ -107,11 +107,6 @@
 
 Hint::~Hint()
 {
-       kdebugf();
-
-       disconnect(notification, 0, this, 0);
-
-       kdebugf2();
 }
 
 void Hint::configurationUpdated()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/plugins/history/gui/widgets/history-messages-tab.cpp 
new/kadu-1.5/plugins/history/gui/widgets/history-messages-tab.cpp
--- old/kadu-1.2/plugins/history/gui/widgets/history-messages-tab.cpp   
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/history/gui/widgets/history-messages-tab.cpp   
2015-01-17 18:08:13.000000000 +0100
@@ -297,7 +297,6 @@
        QScopedPointer<QMenu> menu(new QMenu());
        
MenuInventory::instance()->menu("buddy-list")->attachToMenu(menu.data());
        MenuInventory::instance()->menu("buddy-list")->applyTo(menu.data(), 
TalkableTree->actionContext());
-       MenuInventory::instance()->menu("buddy-list")->update();
 
        menu->addSeparator();
        menu->addAction(KaduIcon("kadu_icons/clear-history").icon(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/imagelink/image-expander.cpp 
new/kadu-1.5/plugins/imagelink/image-expander.cpp
--- old/kadu-1.2/plugins/imagelink/image-expander.cpp   2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/imagelink/image-expander.cpp   2015-01-17 
18:08:13.000000000 +0100
@@ -30,7 +30,7 @@
 #include "image-expander.h"
 
 ImageExpander::ImageExpander() :
-               
DomTextRegexpVisitor(QRegExp("https?://.*(\\.gif|\\.jpg|\\.png)"))
+               
DomTextRegexpVisitor(QRegExp("https?://([^\\s]*)(\\.gif|\\.jpg|\\.png)\\??""([^\\s]*)#?([^\\s]*)"))
 // "" required to ignore trigraph
 {
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/plugins/indicator_docking/indicator_docking.cpp 
new/kadu-1.5/plugins/indicator_docking/indicator_docking.cpp
--- old/kadu-1.2/plugins/indicator_docking/indicator_docking.cpp        
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/indicator_docking/indicator_docking.cpp        
2015-01-17 18:08:13.000000000 +0100
@@ -127,7 +127,7 @@
 {
        if (config_file.readBoolEntry("Notify", "NewChat_IndicatorNotify") && 
!Core::instance()->notificationService()->silentMode())
                foreach (const Message &message, 
Core::instance()->unreadMessageRepository()->allUnreadMessages())
-                       notify(new 
MessageNotification(MessageNotification::NewChat, message));
+                       notify(new 
MessageNotification(Core::instance()->chatWidgetRepository(), 
MessageNotification::NewChat, message));
 }
 
 void IndicatorDocking::silentModeToggled(bool silentMode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/single_window/CMakeLists.txt 
new/kadu-1.5/plugins/single_window/CMakeLists.txt
--- old/kadu-1.2/plugins/single_window/CMakeLists.txt   2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/single_window/CMakeLists.txt   2015-01-17 
18:08:13.000000000 +0100
@@ -19,6 +19,10 @@
        configuration/single_window.ui
 )
 
+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+       include_directories (${X11_X11_INCLUDE_PATH})
+endif ()
+
 kadu_plugin (single_window
        PLUGIN_SOURCES ${SOURCES}
        PLUGIN_MOC_SOURCES ${MOC_SOURCES}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/plugins/sms/translations/extract-custom-strings.sh 
new/kadu-1.5/plugins/sms/translations/extract-custom-strings.sh
--- old/kadu-1.2/plugins/sms/translations/extract-custom-strings.sh     
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/sms/translations/extract-custom-strings.sh     
2015-01-17 18:08:13.000000000 +0100
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 grep "translator\\.tr(\\\".*\\\")" ../data/scripts/*.js -o | grep ""\\\".*\\\" 
-o | awk '{ print "QT_TRANSLATE_NOOP(\"@default\", "$0");"  }' | sort | uniq > 
.sms-translations.cpp
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/plugins/sql_history/data/scripts/history-database-recovery.sh 
new/kadu-1.5/plugins/sql_history/data/scripts/history-database-recovery.sh
--- old/kadu-1.2/plugins/sql_history/data/scripts/history-database-recovery.sh  
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/sql_history/data/scripts/history-database-recovery.sh  
2015-01-17 18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 ERROR_NO_ERROR=0
 ERROR_SQLITE3_NOT_EXECUTABLE=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/sql_history/storage/sql-restore.cpp 
new/kadu-1.5/plugins/sql_history/storage/sql-restore.cpp
--- old/kadu-1.2/plugins/sql_history/storage/sql-restore.cpp    2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/plugins/sql_history/storage/sql-restore.cpp    2015-01-17 
18:08:13.000000000 +0100
@@ -80,7 +80,7 @@
                return ErrorNoRestoreScriptExecutable;
 
        QProcess restoreProcess;
-       restoreProcess.execute("/bin/bash", QStringList() << recoveryScriptPath 
<< databaseFilePath);
+       restoreProcess.execute("bash", QStringList() << recoveryScriptPath << 
databaseFilePath);
        restoreProcess.waitForFinished(-1);
 
        if (restoreProcess.exitCode() < 0 || restoreProcess.exitCode() > 
ErrorRecovering)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/plugins/tabs/CMakeLists.txt 
new/kadu-1.5/plugins/tabs/CMakeLists.txt
--- old/kadu-1.2/plugins/tabs/CMakeLists.txt    2014-11-06 21:56:16.000000000 
+0100
+++ new/kadu-1.5/plugins/tabs/CMakeLists.txt    2015-01-17 18:08:13.000000000 
+0100
@@ -23,6 +23,10 @@
        configuration/tabs.ui
 )
 
+if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+       include_directories (${X11_X11_INCLUDE_PATH})
+endif ()
+
 kadu_plugin (tabs
        PLUGIN_SOURCES ${SOURCES}
        PLUGIN_MOC_SOURCES ${MOC_SOURCES}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/create-package.sh 
new/kadu-1.5/scripts/create-package.sh
--- old/kadu-1.2/scripts/create-package.sh      2014-11-06 21:56:16.000000000 
+0100
+++ new/kadu-1.5/scripts/create-package.sh      2015-01-17 18:08:13.000000000 
+0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # %kadu copyright begin%
 # Copyright 2012 Rafał Malinowski ([email protected])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/create-plugin-package.sh 
new/kadu-1.5/scripts/create-plugin-package.sh
--- old/kadu-1.2/scripts/create-plugin-package.sh       2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/scripts/create-plugin-package.sh       2015-01-17 
18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # %kadu copyright begin%
 # Copyright 2012 Rafał Malinowski ([email protected])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/create-ultr-plugin-package.sh 
new/kadu-1.5/scripts/create-ultr-plugin-package.sh
--- old/kadu-1.2/scripts/create-ultr-plugin-package.sh  2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/scripts/create-ultr-plugin-package.sh  2015-01-17 
18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # %kadu copyright begin%
 # Copyright 2012 Rafał Malinowski ([email protected])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/scripts/find-inconsistent-plugin-dependencies.sh 
new/kadu-1.5/scripts/find-inconsistent-plugin-dependencies.sh
--- old/kadu-1.2/scripts/find-inconsistent-plugin-dependencies.sh       
2014-11-06 21:56:16.000000000 +0100
+++ new/kadu-1.5/scripts/find-inconsistent-plugin-dependencies.sh       
2015-01-17 18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 OK=true
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/find-missing-moc_srcs.sh 
new/kadu-1.5/scripts/find-missing-moc_srcs.sh
--- old/kadu-1.2/scripts/find-missing-moc_srcs.sh       2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/scripts/find-missing-moc_srcs.sh       2015-01-17 
18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 echo "The following header files need to be included in MOC_SRCS part of 
respecting CMakeLists.txt files:"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/get-file-authors-and-dates.sh 
new/kadu-1.5/scripts/get-file-authors-and-dates.sh
--- old/kadu-1.2/scripts/get-file-authors-and-dates.sh  2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/scripts/get-file-authors-and-dates.sh  2015-01-17 
18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 BASEDIR=${0%/*}
 FILE=$1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/release.sh 
new/kadu-1.5/scripts/release.sh
--- old/kadu-1.2/scripts/release.sh     1970-01-01 01:00:00.000000000 +0100
+++ new/kadu-1.5/scripts/release.sh     2015-01-17 18:08:13.000000000 +0100
@@ -0,0 +1,263 @@
+#!/usr/bin/env bash
+
+function update_version_file()
+{
+       VERSION=$1
+       echo $VERSION > VERSION
+
+       git commit -a -m "version: update to $VERSION"
+}
+
+function git_tag()
+{
+       VERSION=$1
+       git tag $VERSION
+       git push origin $VERSION
+}
+
+function create_package()
+{
+       VERSION=$1
+
+       rm -rf package
+       mkdir package
+       pushd package
+       ../scripts/create-package.sh $VERSION
+       popd
+}
+
+function build_binary()
+{
+       VERSION=$1
+
+       rm -rf package-build
+       mkdir package-build
+       pushd package-build
+       cmake ../package/kadu-$VERSION/
+       make -j4
+       popd
+}
+
+function write_forum_entry()
+{
+       VERSION=$1
+
+       CHANGELOG=""
+       while read line; do
+               if [[ -z "$line" ]]; then
+                       break
+               fi
+               if [[ "$line" =~ ^\*.* ]]; then
+                       if [[ -z "$CHANGELOG" ]]; then
+                               CHANGELOG=$line
+                       else
+                               CHANGELOG="$CHANGELOG
+$line"
+                       fi
+               fi
+       done < ChangeLog
+
+       pushd package
+       cat > forum <<-END
+               Kolejne poprawkowa wersja Kadu została właśnie wydana!
+
+               Poprawione błędy:
+               $CHANGELOG
+
+               Instalator Windows i sumy kontrolne:
+                
https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/Kadu-$VERSION.exe
+                http://download.kadu.im/stable/windows/Kadu-$VERSION.exe
+                
http://sourceforge.net/projects/kadu/files/kadu/$VERSION/Kadu-$VERSION.exe/download
+                http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.md5
+                http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.sha1
+
+               Źródła i sumy kontrolne:
+                
https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/kadu-$VERSION.tar.bz2
+                http://download.kadu.im/stable/kadu-$VERSION.tar.bz2
+                
http://sourceforge.net/projects/kadu/files/kadu/$VERSION/kadu-$VERSION.tar.bz2/download
+                http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.md5
+                http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.sha1
+
+               Źródła zewnętrznych wtyczek:
+               http://download.kadu.im/external-plugins/stable/
+
+               Błędy jak zawsze proszę zgłaszac na redmine: 
http://www.kadu.im/redmine/
+END
+
+       popd
+}
+
+function write_mailing_list_entry()
+{
+       VERSION=$1
+
+       CHANGELOG=""
+       while read line; do
+               if [[ -z "$line" ]]; then
+                       break
+               fi
+               if [[ "$line" =~ ^\*.* ]]; then
+                       if [[ -z "$CHANGELOG" ]]; then
+                               CHANGELOG=$line
+                       else
+                               CHANGELOG="$CHANGELOG
+$line"
+                       fi
+               fi
+       done < ChangeLog
+
+       pushd package
+       cat > mailing-list <<-END
+               Next bugfix version of Kadu 1 series is available.
+
+               Bugs fixed:
+               $CHANGELOG
+
+               Windows installer and checksums:
+                
https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/Kadu-$VERSION.exe
+                http://download.kadu.im/stable/windows/Kadu-$VERSION.exe
+                
http://sourceforge.net/projects/kadu/files/kadu/$VERSION/Kadu-$VERSION.exe/download
+                http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.md5
+                http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.sha1
+
+               Source code:
+                
https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/kadu-$VERSION.tar.bz2
+                http://download.kadu.im/stable/kadu-$VERSION.tar.bz2
+                
http://sourceforge.net/projects/kadu/files/kadu/$VERSION/kadu-$VERSION.tar.bz2/download
+                http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.md5
+                http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.sha1
+
+               Sources of external plugins are available at
+               http://download.kadu.im/external-plugins/stable/
+
+               Please report all found bugs in redmine: 
http://www.kadu.im/redmine/
+
+               Regards,
+               Rafał Malinowski
+END
+
+       popd
+}
+
+function write_pl_wiki_entry()
+{
+       VERSION=$1
+
+       CHANGELOG=""
+       while read line; do
+               if [[ -z "$line" ]]; then
+                       break
+               fi
+               if [[ "$line" =~ ^\*.* ]]; then
+                       if [[ -z "$CHANGELOG" ]]; then
+                               CHANGELOG=$line
+                       else
+                               CHANGELOG="$CHANGELOG
+$line"
+                       fi
+               fi
+       done < ChangeLog
+
+       DATE=`date +"%d.%m.%Y"`
+
+       pushd package
+       cat > wiki-pl <<-END
+               === Kadu $VERSION wydane ''($DATE)'' ===
+               ----
+               '''Pobierz''':
+               :: Źródła dla systemu Linux ([[Instalacja_ze_źródeł|opis 
instalacji tej wersji Kadu]]):
+               ::: 
[https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/kadu-$VERSION.tar.bz2
 Pobierz źródła (Google Drive)]
+               ::: 
[http://sourceforge.net/projects/kadu/files/kadu/$VERSION/kadu-$VERSION.tar.bz2/download
 Pobierz źródła (serwer SourceForge.net)]
+               ::: [http://download.kadu.im/stable/kadu-$VERSION.tar.bz2 
Pobierz źródła (serwer Kadu.im)]
+               ::: [http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.md5 
Suma MD5]
+               ::: [http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.sha1 
Suma SHA1]
+               :: Instalator Windows:
+               ::: 
[https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/Kadu-$VERSION.exe 
Pobierz Instalator Windows (Google Drive)]
+               ::: 
[http://sourceforge.net/projects/kadu/files/kadu/$VERSION/Kadu-$VERSION.exe/download
 Pobierz Instalator Windows (SourceForge.net)]
+               ::: [http://download.kadu.im/stable/windows/Kadu-$VERSION.exe 
Pobierz Instalator Windows (Kadu.im)]
+               ::: 
[http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.md5 Suma MD5]
+               ::: 
[http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.sha1 Suma SHA1]
+               :: [http://download.kadu.im/external-plugins/stable/ Zewnętrzne 
wtyczki]
+
+               Lista zmian:
+               $CHANGELOG
+
+               Notki o wydaniu:
+               * [[NotkaOWydaniu1|Notka w wersji polskiej]]
+               * [[English:ReleaseNotes1|Notka w wersji angielskiej]]
+
+               Błędy prosimy zgłaszać w naszym systemie śledzenia błędów 
[http://www.kadu.im/redmine Redmine], a propozycje zmian na 
[http://www.kadu.im/forum forum] w dziale o odpowiednim tytule. Listę znany 
błędów zaplanowanych do poprawienia w przyszłych wersjach również można znaleźć 
w Redmine, w [http://www.kadu.im/redmine/projects/kadu/roadmap mapie dla 
projektu Kadu].
+
+               <p>
+               </p>
+END
+
+       popd
+}
+
+function write_en_wiki_entry()
+{
+       VERSION=$1
+
+       CHANGELOG=""
+       while read line; do
+               if [[ -z "$line" ]]; then
+                       break
+               fi
+               if [[ "$line" =~ ^\*.* ]]; then
+                       if [[ -z "$CHANGELOG" ]]; then
+                               CHANGELOG=$line
+                       else
+                               CHANGELOG="$CHANGELOG
+$line"
+                       fi
+               fi
+       done < ChangeLog
+
+       DATE=`date +"%d/%m/%Y"`
+
+       pushd package
+       cat > wiki-en <<-END
+               === Kadu $VERSION has been released ''($DATE)'' ===
+               ----
+               '''Download''':
+               :: Source code:
+               ::: 
[https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/kadu-$VERSION.tar.bz2
 Download Sources (Google Drive)]
+               ::: 
[http://sourceforge.net/projects/kadu/files/kadu/$VERSION/kadu-$VERSION.tar.bz2/download
 Download Sources (SourceForge.net)]
+               ::: [http://download.kadu.im/stable/kadu-$VERSION.tar.bz2 
Download Sources (Kadu.im)]
+               ::: [http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.md5 
MD5 Checksum]
+               ::: [http://download.kadu.im/stable/kadu-$VERSION.tar.bz2.sha1 
SHA1 Checksum]
+               :: Windows installer:
+               ::: 
[https://googledrive.com/host/0B2Jon_7ucnshOFg5NTNzazdmdk0/Kadu-$VERSION.exe 
Download Windows Installer (Google Drive)]
+               ::: 
[http://sourceforge.net/projects/kadu/files/kadu/$VERSION/Kadu-$VERSION.exe/download
 Download Windows Installer (SourceForge.net)]
+               ::: [http://download.kadu.im/stable/windows/Kadu-$VERSION.exe  
Download Windows Installer (Kadu.im)]
+               ::: 
[http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.md5 MD5 Checksum]
+               ::: 
[http://download.kadu.im/stable/windows/Kadu-$VERSION.exe.sha1 SHA1 Checksum]
+               :: [http://download.kadu.im/external-plugins/stable/ Sources of 
external plugins]
+
+               Fixed bugs:
+               $CHANGELOG
+
+               Release notes:
+               * [[English:ReleaseNotes1|English version]]
+               * [[NotkaOWydaniu1|Polish version]]
+
+               Please report all found issues in our 
[http://www.kadu.im/redmine Redmine] system.
+
+               <p>
+               </p>
+END
+
+       popd
+}
+
+VERSION=$1
+
+update_version_file $VERSION
+git_tag $VERSION
+create_package $VERSION
+build_binary $VERSION
+write_forum_entry $VERSION
+write_mailing_list_entry $VERSION
+write_pl_wiki_entry $VERSION
+write_en_wiki_entry $VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/sort-all-includes.sh 
new/kadu-1.5/scripts/sort-all-includes.sh
--- old/kadu-1.2/scripts/sort-all-includes.sh   2014-11-06 21:56:16.000000000 
+0100
+++ new/kadu-1.5/scripts/sort-all-includes.sh   2015-01-17 18:08:13.000000000 
+0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 BASEDIR=${0%/*}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/sort-includes.sh 
new/kadu-1.5/scripts/sort-includes.sh
--- old/kadu-1.2/scripts/sort-includes.sh       2014-11-06 21:56:16.000000000 
+0100
+++ new/kadu-1.5/scripts/sort-includes.sh       2015-01-17 18:08:13.000000000 
+0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 BASEDIR=${0%/*}
 FILE=$1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/scripts/update-copyrights.sh 
new/kadu-1.5/scripts/update-copyrights.sh
--- old/kadu-1.2/scripts/update-copyrights.sh   2014-11-06 21:56:16.000000000 
+0100
+++ new/kadu-1.5/scripts/update-copyrights.sh   2015-01-17 18:08:13.000000000 
+0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 BASEDIR=${0%/*}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kadu-1.2/varia/scripts/nsis_installer.nsi.in 
new/kadu-1.5/varia/scripts/nsis_installer.nsi.in
--- old/kadu-1.2/varia/scripts/nsis_installer.nsi.in    2014-11-06 
21:56:16.000000000 +0100
+++ new/kadu-1.5/varia/scripts/nsis_installer.nsi.in    2015-01-17 
18:08:13.000000000 +0100
@@ -157,7 +157,7 @@
        SetOverwrite on
 
        SetOutPath "$INSTDIR"
-       File "${BIN_DIR}\bz2-1.dll"
+       File "${BIN_DIR}\libbz2-1.dll"
        File "${BIN_DIR}\libarchive-12.dll"
        File "${BIN_DIR}\libcrypto-10.dll"
        File "${BIN_DIR}\libffi-6.dll"
@@ -186,6 +186,8 @@
        File "${BIN_DIR}\libtiff-5.dll"
        File "${BIN_DIR}\libwinpthread-1.dll"
        File "${BIN_DIR}\zlib1.dll"
+       File "${BIN_DIR}\libotr-5.dll"
+       File "${BIN_DIR}\libssp-0.dll"
 SectionEnd
 
 Section -section_qt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kadu-1.2/varia/themes/icons/oxygen/src/rebuild-statuses.sh 
new/kadu-1.5/varia/themes/icons/oxygen/src/rebuild-statuses.sh
--- old/kadu-1.2/varia/themes/icons/oxygen/src/rebuild-statuses.sh      
2014-11-06 21:56:17.000000000 +0100
+++ new/kadu-1.5/varia/themes/icons/oxygen/src/rebuild-statuses.sh      
2015-01-17 18:08:13.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 
 FILTER="Blackman"

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to