Package: release.debian.org Severity: normal Tags: bullseye User: release.debian....@packages.debian.org Usertags: pu X-Debbugs-Cc: akrega...@packages.debian.org, Jeff Sacksteder <jsackste...@gmail.com>, he...@debian.org Control: affects -1 + src:akregator
Hey, [ Reason ] [#1027689] - Akregator is not able to delete feeds/folders. It can end in request data from websites you don't want to. [ Impact ] Akregator seems broken for users. [ Tests ] Manual test were done to check the patch and tests are still ongoing. [ Risks ] The patch it self comes from upstream and is a simply backport (int replacement with uint). I think the risk of sideeffects is quite small. [ Checklist ] [x] *all* changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in (old)stable [x] the issue is verified as fixed in unstable
diff -Nru akregator-20.08.3/debian/changelog akregator-20.08.3/debian/changelog --- akregator-20.08.3/debian/changelog 2023-01-13 00:49:15.000000000 +0100 +++ akregator-20.08.3/debian/changelog 2020-12-16 01:50:53.000000000 +0100 @@ -1,11 +1,3 @@ -akregator (4:20.08.3-1+deb11u1) bullseye; urgency=medium - - [ Sandro Knauß ] - * Add backport patch 2f6d4e233ae8178535d74c1da0cf75a54762d165.diff - (Closes: #1027689). - - -- Sandro Knauß <he...@debian.org> Fri, 13 Jan 2023 00:49:15 +0100 - akregator (4:20.08.3-1) unstable; urgency=medium [ Sandro Knauß ] diff -Nru akregator-20.08.3/debian/patches/2f6d4e233ae8178535d74c1da0cf75a54762d165.diff akregator-20.08.3/debian/patches/2f6d4e233ae8178535d74c1da0cf75a54762d165.diff --- akregator-20.08.3/debian/patches/2f6d4e233ae8178535d74c1da0cf75a54762d165.diff 2023-01-08 23:44:59.000000000 +0100 +++ akregator-20.08.3/debian/patches/2f6d4e233ae8178535d74c1da0cf75a54762d165.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,317 +0,0 @@ ---- a/src/command/deletesubscriptioncommand.cpp -+++ b/src/command/deletesubscriptioncommand.cpp -@@ -124,7 +124,7 @@ public: - void jobFinished(); - - QWeakPointer<FeedList> m_list; -- int m_subscriptionId = -1; -+ uint m_subscriptionId = 0; - }; - - DeleteSubscriptionCommand::Private::Private(DeleteSubscriptionCommand *qq) : q(qq) -@@ -146,13 +146,13 @@ DeleteSubscriptionCommand::~DeleteSubscr - delete d; - } - --void DeleteSubscriptionCommand::setSubscription(const QWeakPointer<FeedList> &feedList, int subId) -+void DeleteSubscriptionCommand::setSubscription(const QWeakPointer<FeedList> &feedList, uint subId) - { - d->m_list = feedList; - d->m_subscriptionId = subId; - } - --int DeleteSubscriptionCommand::subscriptionId() const -+uint DeleteSubscriptionCommand::subscriptionId() const - { - return d->m_subscriptionId; - } ---- a/src/command/deletesubscriptioncommand.h -+++ b/src/command/deletesubscriptioncommand.h -@@ -39,9 +39,9 @@ public: - explicit DeleteSubscriptionCommand(QObject *parent = nullptr); - ~DeleteSubscriptionCommand() override; - -- void setSubscription(const QWeakPointer<FeedList> &feedList, int subId); -+ void setSubscription(const QWeakPointer<FeedList> &feedList, uint subId); - -- int subscriptionId() const; -+ uint subscriptionId() const; - QWeakPointer<FeedList> feedList() const; - - private: ---- a/src/command/editsubscriptioncommand.cpp -+++ b/src/command/editsubscriptioncommand.cpp -@@ -83,13 +83,13 @@ public: - void jobFinished(); - - QSharedPointer<FeedList> m_list; -- int m_subscriptionId; -+ uint m_subscriptionId; - SubscriptionListView *m_subscriptionListView = nullptr; - }; - - EditSubscriptionCommand::Private::Private(EditSubscriptionCommand *qq) : q(qq) - , m_list() -- , m_subscriptionId(-1) -+ , m_subscriptionId(0) - , m_subscriptionListView(nullptr) - { - } -@@ -108,13 +108,13 @@ EditSubscriptionCommand::~EditSubscripti - delete d; - } - --void EditSubscriptionCommand::setSubscription(const QSharedPointer<FeedList> &feedList, int subId) -+void EditSubscriptionCommand::setSubscription(const QSharedPointer<FeedList> &feedList, uint subId) - { - d->m_list = feedList; - d->m_subscriptionId = subId; - } - --int EditSubscriptionCommand::subscriptionId() const -+uint EditSubscriptionCommand::subscriptionId() const - { - return d->m_subscriptionId; - } ---- a/src/command/editsubscriptioncommand.h -+++ b/src/command/editsubscriptioncommand.h -@@ -40,8 +40,8 @@ public: - explicit EditSubscriptionCommand(QObject *parent = nullptr); - ~EditSubscriptionCommand() override; - -- void setSubscription(const QSharedPointer<FeedList> &feedList, int subId); -- int subscriptionId() const; -+ void setSubscription(const QSharedPointer<FeedList> &feedList, uint subId); -+ uint subscriptionId() const; - QSharedPointer<FeedList> feedList() const; - - SubscriptionListView *subscriptionListView() const; ---- a/src/command/expireitemscommand.cpp -+++ b/src/command/expireitemscommand.cpp -@@ -50,7 +50,7 @@ public: - void jobFinished(KJob *); - - QWeakPointer<FeedList> m_feedList; -- QVector<int> m_feeds; -+ QVector<uint> m_feeds; - QSet<KJob *> m_jobs; - }; - -@@ -94,7 +94,7 @@ void ExpireItemsCommand::Private::create - return; - } - -- for (const int i : qAsConst(m_feeds)) { -+ for (const uint i : qAsConst(m_feeds)) { - Feed *const feed = qobject_cast<Feed *>(feedList->findByID(i)); - if (feed) { - addDeleteJobForFeed(feed); -@@ -122,12 +122,12 @@ QWeakPointer<FeedList> ExpireItemsComman - return d->m_feedList; - } - --void ExpireItemsCommand::setFeeds(const QVector<int> &feeds) -+void ExpireItemsCommand::setFeeds(const QVector<uint> &feeds) - { - d->m_feeds = feeds; - } - --QVector<int> ExpireItemsCommand::feeds() const -+QVector<uint> ExpireItemsCommand::feeds() const - { - return d->m_feeds; - } ---- a/src/command/expireitemscommand.h -+++ b/src/command/expireitemscommand.h -@@ -44,8 +44,8 @@ public: - void setFeedList(const QWeakPointer<FeedList> &feedList); - QWeakPointer<FeedList> feedList() const; - -- void setFeeds(const QVector<int> &feeds); -- QVector<int> feeds() const; -+ void setFeeds(const QVector<uint> &feeds); -+ QVector<uint> feeds() const; - - private: - void doStart() override; ---- a/src/feed/feedlist.cpp -+++ b/src/feed/feedlist.cpp -@@ -53,7 +53,7 @@ public: - Akregator::Backend::Storage *storage; - QList<TreeNode *> flatList; - Folder *rootNode; -- QHash<int, TreeNode *> idMap; -+ QHash<uint, TreeNode *> idMap; - AddNodeVisitor *addNodeVisitor; - RemoveNodeVisitor *removeNodeVisitor; - QHash<QString, QList<Feed *> > urlMap; -@@ -182,9 +182,9 @@ FeedList::FeedList(Backend::Storage *sto - addNode(rootNode, true); - } - --QVector<int> FeedList::feedIds() const -+QVector<uint> FeedList::feedIds() const - { -- QVector<int> ids; -+ QVector<uint> ids; - const auto f = feeds(); - for (const Feed *const i : f) { - ids += i->id(); -@@ -387,12 +387,12 @@ QDomDocument FeedList::toOpml() const - return doc; - } - --const TreeNode *FeedList::findByID(int id) const -+const TreeNode *FeedList::findByID(uint id) const - { - return d->idMap[id]; - } - --TreeNode *FeedList::findByID(int id) -+TreeNode *FeedList::findByID(uint id) - { - return d->idMap[id]; - } ---- a/src/feed/feedlist.h -+++ b/src/feed/feedlist.h -@@ -87,8 +87,8 @@ public: - - Q_REQUIRED_RESULT bool isEmpty() const; - -- const TreeNode *findByID(int id) const; -- TreeNode *findByID(int id); -+ const TreeNode *findByID(uint id) const; -+ TreeNode *findByID(uint id); - - Q_REQUIRED_RESULT QList<const TreeNode *> findByTitle(const QString &title) const; - Q_REQUIRED_RESULT QList<TreeNode *> findByTitle(const QString &title); -@@ -105,7 +105,7 @@ public: - Q_REQUIRED_RESULT QVector<const Feed *> feeds() const; - Q_REQUIRED_RESULT QVector<Feed *> feeds(); - -- Q_REQUIRED_RESULT QVector<int> feedIds() const; -+ Q_REQUIRED_RESULT QVector<uint> feedIds() const; - - /** - * returns all folders in this list ---- a/src/subscription/subscriptionlistjobs.cpp -+++ b/src/subscription/subscriptionlistjobs.cpp -@@ -37,17 +37,17 @@ using namespace Akregator; - MoveSubscriptionJob::MoveSubscriptionJob(QObject *parent) : KJob(parent) - , m_id(0) - , m_destFolderId(0) -- , m_afterId(-1) -+ , m_afterId(0) - , m_feedList(Kernel::self()->feedList()) - { - } - --void MoveSubscriptionJob::setSubscriptionId(int id) -+void MoveSubscriptionJob::setSubscriptionId(uint id) - { - m_id = id; - } - --void MoveSubscriptionJob::setDestination(int folder, int afterChild) -+void MoveSubscriptionJob::setDestination(uint folder, uint afterChild) - { - m_destFolderId = folder; - m_afterId = afterChild; -@@ -100,7 +100,7 @@ RenameSubscriptionJob::RenameSubscriptio - { - } - --void RenameSubscriptionJob::setSubscriptionId(int id) -+void RenameSubscriptionJob::setSubscriptionId(uint id) - { - m_id = id; - } -@@ -117,7 +117,7 @@ void RenameSubscriptionJob::start() - - void RenameSubscriptionJob::doRename() - { -- if (m_id > 0) { -+ if (m_id != 0) { - TreeNode *const node = m_feedList->findByID(m_id); - if (node) { - node->setTitle(m_name); -@@ -132,7 +132,7 @@ DeleteSubscriptionJob::DeleteSubscriptio - { - } - --void DeleteSubscriptionJob::setSubscriptionId(int id) -+void DeleteSubscriptionJob::setSubscriptionId(uint id) - { - m_id = id; - } ---- a/src/subscription/subscriptionlistjobs.h -+++ b/src/subscription/subscriptionlistjobs.h -@@ -42,8 +42,8 @@ class AKREGATOR_EXPORT MoveSubscriptionJ - public: - explicit MoveSubscriptionJob(QObject *parent = nullptr); - -- void setSubscriptionId(int id); -- void setDestination(int folder, int afterChild); -+ void setSubscriptionId(uint id); -+ void setDestination(uint folder, uint afterChild); - - void start() override; - -@@ -51,9 +51,9 @@ private Q_SLOTS: - void doMove(); - - private: -- int m_id; -- int m_destFolderId; -- int m_afterId; -+ uint m_id = 0; -+ uint m_destFolderId = 0; -+ uint m_afterId = 0; - QWeakPointer<FeedList> m_feedList; - }; - -@@ -63,7 +63,7 @@ class AKREGATOR_EXPORT RenameSubscriptio - public: - explicit RenameSubscriptionJob(QObject *parent = nullptr); - -- void setSubscriptionId(int id); -+ void setSubscriptionId(uint id); - void setName(const QString &name); - - void start() override; -@@ -72,7 +72,7 @@ private Q_SLOTS: - void doRename(); - - private: -- int m_id; -+ uint m_id; - QString m_name; - QSharedPointer<FeedList> m_feedList; - }; -@@ -83,13 +83,13 @@ class AKREGATOR_EXPORT DeleteSubscriptio - public: - explicit DeleteSubscriptionJob(QObject *parent = nullptr); - -- void setSubscriptionId(int id); -+ void setSubscriptionId(uint id); - - void start() override; - - private: - void doDelete(); -- int m_id; -+ uint m_id; - QWeakPointer<FeedList> m_feedList; - }; - } ---- a/src/subscription/subscriptionlistmodel.cpp -+++ b/src/subscription/subscriptionlistmodel.cpp -@@ -571,7 +571,7 @@ bool SubscriptionListModel::dropMimeData - } - MoveSubscriptionJob *job = new MoveSubscriptionJob(this); - job->setSubscriptionId(node->id()); -- job->setDestination(destFolder->id(), after ? after->id() : -1); -+ job->setDestination(destFolder->id(), after ? after->id() : 0); - job->start(); - } - diff -Nru akregator-20.08.3/debian/patches/series akregator-20.08.3/debian/patches/series --- akregator-20.08.3/debian/patches/series 2023-01-08 23:44:59.000000000 +0100 +++ akregator-20.08.3/debian/patches/series 2020-10-13 19:45:35.000000000 +0200 @@ -1,2 +1 @@ debianize_akregator_default.diff -2f6d4e233ae8178535d74c1da0cf75a54762d165.diff