Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package liferea for openSUSE:Factory checked 
in at 2026-06-17 16:27:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/liferea (Old)
 and      /work/SRC/openSUSE:Factory/.liferea.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "liferea"

Wed Jun 17 16:27:44 2026 rev:21 rq:1360018 version:1.16.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/liferea/liferea.changes  2026-05-30 
22:57:50.103533832 +0200
+++ /work/SRC/openSUSE:Factory/.liferea.new.1981/liferea.changes        
2026-06-17 16:29:08.986206239 +0200
@@ -1,0 +2,39 @@
+Wed Jun 17 09:09:05 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 1.16.12:
+  + This is a security bugfix release.
+  + Fixes a RCE vulnerability when importing OPML files containing
+    script commands. Now script commands from untrusted OPML files
+    are always dropped.
+  + Fixes a RCE vulnerability in the download manager plugin where
+    a command could have been injected into file paths.
+
+-------------------------------------------------------------------
+Fri Jun 12 07:04:25 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 1.16.11:
+  + This is a security bugfix. Please urgently upgrade if you use
+    Liferea with Reedah or TheOldReader sync!
+  + If you use TinyTinyRSS sync please upgrade to fix a synching
+    issue. Security Issue with Reedah + TheOldReader sync support.
+  + Sadly there is a long-standing security bug causing unencrypted
+    connections when fetching feed content for those two backends.
+    When doing such requests via http:// your auth token got
+    exposed and could allow malicious 3rd parties to manipulate
+    your Reedah / TheOldReader accounts.
+  + Note: the login request itself (including) your password was
+    not affected, still I advise to upgrade to the newest Liferea
+    release 1.16.11 or 2.0-RC3 verify your Reedah / TheOldReader
+    subscriptions change your Reedah / TheOldReader password just
+    to be safe.
+  + Changes:
+    - Fixes a long-standing security bug that caused unencrypted
+      connection when fetching feed content from Reedah and
+      TheOldReader. Please upgrade and change your Reedah /
+      TheOldReader password afterwards!
+    - Fixes: TinyTinyRSS not working anymore due to
+      Content-Encoding header not indicating JSON
+    - Fixes: replace outdated feedburner URL in default feed list
+      OPML
+
+-------------------------------------------------------------------

Old:
----
  liferea-1.16.10.tar.xz

New:
----
  liferea-1.16.12.tar.xz

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

Other differences:
------------------
++++++ liferea.spec ++++++
--- /var/tmp/diff_new_pack.nvgZxi/_old  2026-06-17 16:29:10.122253536 +0200
+++ /var/tmp/diff_new_pack.nvgZxi/_new  2026-06-17 16:29:10.126253702 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           liferea
-Version:        1.16.10
+Version:        1.16.12
 Release:        0
 Summary:        Linux Feed Reader
 License:        GPL-2.0-only

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.nvgZxi/_old  2026-06-17 16:29:10.174255700 +0200
+++ /var/tmp/diff_new_pack.nvgZxi/_new  2026-06-17 16:29:10.182256034 +0200
@@ -1,5 +1,5 @@
-mtime: 1779781721
-commit: d062e45e54b230ecc88a830ea7b262bffb350cd7e7ce52cb9713c3bde647e151
+mtime: 1781687490
+commit: a090a0d212f11dd3a8a4e15f634a471cc129343c983e243f35b0f6fbaed330da
 url: https://src.opensuse.org/GNOME/liferea
 revision: factory
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.nvgZxi/_old  2026-06-17 16:29:10.210257200 +0200
+++ /var/tmp/diff_new_pack.nvgZxi/_new  2026-06-17 16:29:10.218257532 +0200
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://github.com/lwindolf/liferea.git</param>
-    <param name="revision">v1.16.10</param>
+    <param name="revision">v1.16.12</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-06-17 11:11:30.000000000 +0200
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild

++++++ liferea-1.16.10.tar.xz -> liferea-1.16.12.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/ChangeLog 
new/liferea-1.16.12/ChangeLog
--- old/liferea-1.16.10/ChangeLog       2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/ChangeLog       2026-06-17 00:00:52.000000000 +0200
@@ -1,3 +1,34 @@
+2026-06-16  Lars Windolf <[email protected]>
+
+       Version 1.16.12
+
+       * Fixes a RCE vulnerability when importing OPML files containing
+         script commands. Now script commands from untrusted OPML files are
+         always dropped.
+         (reported by Laurence Tennant)
+
+       * Fixes a RCE vulnerability in the download manager plugin where
+         a command could have been injected into file paths.
+         (reported by Laurence Tennant)
+
+
+2026-06-10  Lars Windolf <[email protected]>
+
+       Version 1.16.11
+
+       * Fixes a long-standing security bug that caused unencrypted connection 
+         when fetching feed content from Reedah and TheOldReader. Please 
upgrade
+         and change your Reedah / TheOldReader password afterwards!
+         (Lars Windolf)
+
+       * Fixes #1528: TinyTinyRSS not working anymore due to Content-Encoding
+         header not indicating JSON
+         (Lars Windolf)
+
+       * Fixes #1523: replace outdated feedburner URL in default feed list OPML
+         (Lars Windolf)
+
+
 2026-05-25  Lars Windolf <[email protected]>
 
        Version 1.16.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/configure.ac 
new/liferea-1.16.12/configure.ac
--- old/liferea-1.16.10/configure.ac    2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/configure.ac    2026-06-17 00:00:52.000000000 +0200
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT([liferea],[1.16.10])
+AC_INIT([liferea],[1.16.12])
 AC_CANONICAL_HOST
 AC_CONFIG_SRCDIR([src/feedlist.c])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_bg.opml 
new/liferea-1.16.12/opml/feedlist_bg.opml
--- old/liferea-1.16.10/opml/feedlist_bg.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_bg.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -19,7 +19,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_ca.opml 
new/liferea-1.16.12/opml/feedlist_ca.opml
--- old/liferea-1.16.10/opml/feedlist_ca.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_ca.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -24,7 +24,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_de.opml 
new/liferea-1.16.12/opml/feedlist_de.opml
--- old/liferea-1.16.10/opml/feedlist_de.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_de.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -26,7 +26,7 @@
                                <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                        </outline>
                        <outline text="Open Source">            <!-- translate 
this title for localized feed list -->
-                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                                <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                        </outline>
                        <outline text="Podcasts &amp; Music">           <!-- 
translate this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_en.opml 
new/liferea-1.16.12/opml/feedlist_en.opml
--- old/liferea-1.16.10/opml/feedlist_en.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_en.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -17,7 +17,7 @@
                        <outline text="Quanta Magazine" 
htmlUrl="https://api.quantamagazine.org/"; 
xmlUrl="https://api.quantamagazine.org/feed/"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts">               <!-- translate this 
title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_es.opml 
new/liferea-1.16.12/opml/feedlist_es.opml
--- old/liferea-1.16.10/opml/feedlist_es.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_es.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -22,7 +22,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="http://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/>  
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_eu.opml 
new/liferea-1.16.12/opml/feedlist_eu.opml
--- old/liferea-1.16.10/opml/feedlist_eu.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_eu.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -24,7 +24,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Software librea">                <!-- translate 
this title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcast eta musika">             <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_fa.opml 
new/liferea-1.16.12/opml/feedlist_fa.opml
--- old/liferea-1.16.10/opml/feedlist_fa.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_fa.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -20,7 +20,7 @@
                                <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                        </outline>
                        <outline text="Open Source">            
-                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                                <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                        </outline>
                        <outline text="Podcasts &amp; Music">           
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_fr.opml 
new/liferea-1.16.12/opml/feedlist_fr.opml
--- old/liferea-1.16.10/opml/feedlist_fr.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_fr.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -24,7 +24,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_gl.opml 
new/liferea-1.16.12/opml/feedlist_gl.opml
--- old/liferea-1.16.10/opml/feedlist_gl.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_gl.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -19,7 +19,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_he.opml 
new/liferea-1.16.12/opml/feedlist_he.opml
--- old/liferea-1.16.10/opml/feedlist_he.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_he.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -35,7 +35,7 @@
                                <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                        </outline>
                        <outline text="קוד פתוח">               <!-- translate 
this for localized feed list -->
-                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                                <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                        </outline>      
                        <outline text="Podcasts &amp; Music">           <!-- 
translate this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_hu.opml 
new/liferea-1.16.12/opml/feedlist_hu.opml
--- old/liferea-1.16.10/opml/feedlist_hu.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_hu.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -12,7 +12,7 @@
                        <outline text="HWSW" htmlUrl="https://www.hwsw.hu/"; 
xmlUrl="https://www.hwsw.hu/xml/latest_news_rss.xml"; />
                </outline>
                <outline text="Nyílt forrás">           <!-- translate this for 
localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/>
                        <outline text="HUP" htmlUrl="https://hup.hu/"; 
xmlUrl="http://feeds.feedburner.com/HUP"; />
                        <outline text="FSF.hu alapítvány" 
htmlUrl="https://fsf.hu/blog/"; xmlUrl="https://fsf.hu/blog/feed/atom/"; />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_id.opml 
new/liferea-1.16.12/opml/feedlist_id.opml
--- old/liferea-1.16.10/opml/feedlist_id.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_id.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -13,7 +13,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Sumber Terbuka">         <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/>
                </outline>
                <outline text="Podcasts">               <!-- translate this 
title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_it.opml 
new/liferea-1.16.12/opml/feedlist_it.opml
--- old/liferea-1.16.10/opml/feedlist_it.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_it.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -25,7 +25,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcast">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_nl.opml 
new/liferea-1.16.12/opml/feedlist_nl.opml
--- old/liferea-1.16.10/opml/feedlist_nl.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_nl.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -13,7 +13,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_no.opml 
new/liferea-1.16.12/opml/feedlist_no.opml
--- old/liferea-1.16.10/opml/feedlist_no.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_no.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -25,7 +25,7 @@
                                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                        </outline>
                        <outline text="Fri programvare">
-                                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                        </outline>
                        <outline text="Podkast og musikk">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_pl.opml 
new/liferea-1.16.12/opml/feedlist_pl.opml
--- old/liferea-1.16.10/opml/feedlist_pl.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_pl.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -25,7 +25,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_pt.opml 
new/liferea-1.16.12/opml/feedlist_pt.opml
--- old/liferea-1.16.10/opml/feedlist_pt.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_pt.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -31,7 +31,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_pt_BR.opml 
new/liferea-1.16.12/opml/feedlist_pt_BR.opml
--- old/liferea-1.16.10/opml/feedlist_pt_BR.opml        2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/opml/feedlist_pt_BR.opml        2026-06-17 
00:00:52.000000000 +0200
@@ -30,7 +30,7 @@
                                <outline text="Quanta Magazine" 
htmlUrl="https://api.quantamagazine.org/"; 
xmlUrl="https://api.quantamagazine.org/feed/"/>
                        </outline>
                        <outline text="Software Livre">         <!-- translate 
this title for localized feed list -->
-                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                               <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                                <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/>
                        </outline>
                        <outline text="Podcasts">       <!-- translate this 
title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_sk.opml 
new/liferea-1.16.12/opml/feedlist_sk.opml
--- old/liferea-1.16.10/opml/feedlist_sk.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_sk.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -15,7 +15,7 @@
                                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                                </outline>
                                <outline text="Open Source">            <!-- 
translate this title for localized feed list -->
-                                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                                </outline>
                                <outline text="Podcasts &amp; Music">           
<!-- translate this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/opml/feedlist_sv.opml 
new/liferea-1.16.12/opml/feedlist_sv.opml
--- old/liferea-1.16.10/opml/feedlist_sv.opml   2026-05-25 18:49:20.000000000 
+0200
+++ new/liferea-1.16.12/opml/feedlist_sv.opml   2026-06-17 00:00:52.000000000 
+0200
@@ -22,7 +22,7 @@
                        <outline text="Science" 
htmlUrl="https://www.sciencenews.org/"; 
xmlUrl="https://www.sciencenews.org/feed"/>
                </outline>
                <outline text="Open Source">            <!-- translate this 
title for localized feed list -->
-                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://feeds.feedburner.com/LifereaBlog"; />
+                       <outline text="Liferea Blog" 
htmlUrl="https://lzone.de/liferea/blog/"; 
xmlUrl="https://lzone.de/feed/liferea.xml"; />
                        <outline text="Planet GNOME" 
htmlUrl="https://planet.gnome.org/"; xmlUrl="https://planet.gnome.org/rss20.xml"; 
/> 
                </outline>
                <outline text="Podcasts &amp; Music">           <!-- translate 
this title for localized feed list -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/plugins/download-manager.py 
new/liferea-1.16.12/plugins/download-manager.py
--- old/liferea-1.16.10/plugins/download-manager.py     2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/plugins/download-manager.py     2026-06-17 
00:00:52.000000000 +0200
@@ -1,7 +1,7 @@
 """
 Download Manager Plugin
 
-Copyright (C) 2024 Lars Windolf <[email protected]>
+Copyright (C) 2024-2026 Lars Windolf <[email protected]>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
@@ -22,6 +22,7 @@
 import gi
 import os
 import time
+import subprocess
 
 gi.require_version('Gtk', '3.0')
 
@@ -137,7 +138,7 @@
         dialog.destroy()
 
     def on_open_file(self, button, download):
-        os.system(f"xdg-open {download.get('filename')}")
+        subprocess.run(["xdg-open", download.get('filename')])
 
     # Ideas:
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/export.c 
new/liferea-1.16.12/src/export.c
--- old/liferea-1.16.10/src/export.c    2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/export.c    2026-06-17 00:00:52.000000000 +0200
@@ -205,6 +205,14 @@
 
                if (tmp) {
                        debug (DEBUG_CACHE, "-> URL found assuming type feed");
+
+                       /* Security check, avoid RCE using commands on 
untrusted OPML */
+                       if (!trusted && tmp[0] == '|') {
+                               debug (DEBUG_CACHE, "-> Unsafe command found in 
untrusted OPML, skipping: %s", tmp);
+                               xmlFree (tmp);
+                               return;
+                       }
+
                        type = g_strdup ("feed");
                        xmlFree (tmp);
                } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/net.c 
new/liferea-1.16.12/src/net.c
--- old/liferea-1.16.10/src/net.c       2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/net.c       2026-06-17 00:00:52.000000000 +0200
@@ -186,7 +186,7 @@
        g_assert (NULL != job->request);
        debug (DEBUG_NET, "downloading %s", job->request->source);
        if (job->request->postdata && (debug_get_flags () & DEBUG_NET))
-               debug (DEBUG_NET, "   postdata=>>>%s<<<", 
job->request->postdata);
+               debug (DEBUG_NET, "   postdata=>>>%s<<< (content type: %s)", 
job->request->postdata, 
job->request->contentType?job->request->contentType:"NULL");
 
        /* Do not process request on HTTP 429 */
        g_autoptr(GUri) uri = g_uri_parse (job->request->source, 
G_URI_FLAGS_NONE, NULL);
@@ -245,7 +245,7 @@
        if (job->request->postdata) {
                g_autoptr(GBytes) postdata = g_bytes_new 
(job->request->postdata, strlen (job->request->postdata));
                soup_message_set_request_body_from_bytes (msg,
-                                                         
"application/x-www-form-urlencoded",
+                                                         
job->request->contentType?job->request->contentType:"application/x-www-form-urlencoded",
                                                          postdata);
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/node_sources/reedah_source.c 
new/liferea-1.16.12/src/node_sources/reedah_source.c
--- old/liferea-1.16.10/src/node_sources/reedah_source.c        2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/reedah_source.c        2026-06-17 
00:00:52.000000000 +0200
@@ -1,7 +1,7 @@
 /**
  * @file reedah_source.c  Reedah source support
  *
- * Copyright (C) 2007-2024 Lars Windolf <[email protected]>
+ * Copyright (C) 2007-2026 Lars Windolf <[email protected]>
  * Copyright (C) 2008 Arnold Noronha <[email protected]>
  * Copyright (C) 2011 Peter Oliver
  * Copyright (C) 2011 Sergey Snitsaruk <[email protected]>
@@ -47,7 +47,7 @@
 /** default Reedah subscription list update interval = once a day */
 #define NODE_SOURCE_UPDATE_INTERVAL (guint64)(60*60*24) * 
(guint64)G_USEC_PER_SEC
 
-#define BASE_URL "http://www.reedah.com/reader/api/0/";
+#define BASE_URL "https://www.reedah.com/reader/api/0/";
 
 #define SOURCE_ID "fl_reedah"
 
@@ -257,7 +257,7 @@
 {
        if (response_id == GTK_RESPONSE_OK) {
                Node *node = node_new ("node_source");
-               node_source_new (node, SOURCE_ID, 
"http://www.reedah.com/reader";);
+               node_source_new (node, SOURCE_ID, 
"https://www.reedah.com/reader";);
                node_set_title (node, node->source->type->name);
                
                subscription_set_auth_info (node->subscription,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/node_sources/reedah_source.h 
new/liferea-1.16.12/src/node_sources/reedah_source.h
--- old/liferea-1.16.10/src/node_sources/reedah_source.h        2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/reedah_source.h        2026-06-17 
00:00:52.000000000 +0200
@@ -58,7 +58,7 @@
  *         Authorization header in future requests. 
  */ 
 #define REEDAH_READER_LOGIN_URL "https://www.reedah.com/accounts/ClientLogin"; 
-#define REEDAH_READER_LOGIN_POST 
"service=reader&Email=%s&Passwd=%s&source=liferea&continue=http://www.reedah.com";
+#define REEDAH_READER_LOGIN_POST 
"service=reader&Email=%s&Passwd=%s&source=liferea&continue=https://www.reedah.com";
 
 /** Interval (in micro seconds) for doing a Quick Update: 10min */
 #define REEDAH_SOURCE_QUICK_UPDATE_INTERVAL 600 * G_USEC_PER_SEC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/liferea-1.16.10/src/node_sources/reedah_source_feed.c 
new/liferea-1.16.12/src/node_sources/reedah_source_feed.c
--- old/liferea-1.16.10/src/node_sources/reedah_source_feed.c   2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/reedah_source_feed.c   2026-06-17 
00:00:52.000000000 +0200
@@ -180,7 +180,7 @@
        gchar* source_escaped = g_uri_escape_string(metadata_list_get 
(subscription->metadata, "reedah-feed-id"), NULL, TRUE);
        // FIXME: move to .h
        // FIXME: do not use hard-coded 30
-       gchar* newUrl = g_strdup_printf 
("http://www.reedah.com/reader/api/0/stream/contents/%s?client=liferea&n=30";, 
source_escaped);
+       gchar* newUrl = g_strdup_printf 
("https://www.reedah.com/reader/api/0/stream/contents/%s?client=liferea&n=30";, 
source_escaped);
        update_request_set_source (request, newUrl);
        g_free (newUrl);
        g_free (source_escaped);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/liferea-1.16.10/src/node_sources/theoldreader_source.c 
new/liferea-1.16.12/src/node_sources/theoldreader_source.c
--- old/liferea-1.16.10/src/node_sources/theoldreader_source.c  2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/theoldreader_source.c  2026-06-17 
00:00:52.000000000 +0200
@@ -1,7 +1,7 @@
 /**
  * @file theoldreader_source.c  TheOldReader feed list source support
  *
- * Copyright (C) 2007-2024 Lars Windolf <[email protected]>
+ * Copyright (C) 2007-2026 Lars Windolf <[email protected]>
  * Copyright (C) 2008 Arnold Noronha <[email protected]>
  * Copyright (C) 2011 Peter Oliver
  * Copyright (C) 2011 Sergey Snitsaruk <[email protected]>
@@ -261,7 +261,7 @@
 {
        if (response_id == GTK_RESPONSE_OK) {
                Node *node = node_new ("node_source");
-               node_source_new (node, SOURCE_ID, 
"http://theoldreader.com/reader";);
+               node_source_new (node, SOURCE_ID, 
"https://theoldreader.com/reader";);
                node_set_title (node, node->source->type->name);
 
                subscription_set_auth_info (node->subscription,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/liferea-1.16.10/src/node_sources/theoldreader_source.h 
new/liferea-1.16.12/src/node_sources/theoldreader_source.h
--- old/liferea-1.16.10/src/node_sources/theoldreader_source.h  2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/theoldreader_source.h  2026-06-17 
00:00:52.000000000 +0200
@@ -1,7 +1,7 @@
 /**
  * @file theoldreader_source.h TheOldReader feed list source support
  * 
- * Copyright (C) 2007-2025 Lars Windolf <[email protected]>
+ * Copyright (C) 2007-2026 Lars Windolf <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -53,7 +53,7 @@
  *         Authorization header in future requests. 
  */ 
 #define THEOLDREADER_READER_LOGIN_URL 
"https://theoldreader.com/accounts/ClientLogin"; 
-#define THEOLDREADER_READER_LOGIN_POST 
"service=reader&Email=%s&Passwd=%s&source=liferea&continue=http://theoldreader.com";
+#define THEOLDREADER_READER_LOGIN_POST 
"service=reader&Email=%s&Passwd=%s&source=liferea&continue=https://theoldreader.com";
 
 void theoldreader_source_register (void);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/liferea-1.16.10/src/node_sources/theoldreader_source_feed.c 
new/liferea-1.16.12/src/node_sources/theoldreader_source_feed.c
--- old/liferea-1.16.10/src/node_sources/theoldreader_source_feed.c     
2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/theoldreader_source_feed.c     
2026-06-17 00:00:52.000000000 +0200
@@ -2,7 +2,7 @@
  * @file theoldreader_source_feed.c  TheOldReader feed subscription routines
  *
  * Copyright (C) 2008  Arnold Noronha <[email protected]>
- * Copyright (C) 2014-2022  Lars Windolf <[email protected]>
+ * Copyright (C) 2014-2026  Lars Windolf <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -210,7 +210,7 @@
                return FALSE;
        }
 
-       gchar* url = g_strdup_printf ("http://theoldreader.com/reader/atom/%s";, 
metadata_list_get (subscription->metadata, "theoldreader-feed-id"));
+       gchar* url = g_strdup_printf 
("https://theoldreader.com/reader/atom/%s";, metadata_list_get 
(subscription->metadata, "theoldreader-feed-id"));
        update_request_set_source (request, url);
        g_free (url);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/node_sources/ttrss_source.c 
new/liferea-1.16.12/src/node_sources/ttrss_source.c
--- old/liferea-1.16.10/src/node_sources/ttrss_source.c 2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/ttrss_source.c 2026-06-17 
00:00:52.000000000 +0200
@@ -142,7 +142,7 @@
 void
 ttrss_source_login (ttrssSourcePtr source, guint32 flags)
 {
-       gchar                   *username, *password, *source_uri;
+       gchar                   *username, *password;
        UpdateRequest           *request;
        subscriptionPtr         subscription = source->root->subscription;
 
@@ -157,21 +157,19 @@
                return;
        }
 
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
-
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        request = update_request_new (
                source_uri,
                NULL,   // updateState
                subscription->updateOptions
        );
 
-       g_free (source_uri);
-
        /* escape user and password for JSON call */
        username = g_strescape (subscription->updateOptions->username, NULL);
        password = g_strescape (subscription->updateOptions->password, NULL);
 
-       request->postdata = g_strdup_printf (TTRSS_JSON_LOGIN, username, 
password);
+       g_autofree gchar *postdata = g_strdup_printf (TTRSS_JSON_LOGIN, 
username, password);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        g_free (username);
        g_free (password);
@@ -241,7 +239,6 @@
        ttrssSourcePtr          source = (ttrssSourcePtr)root->data;
        UpdateRequest           *request;
        gint                    categoryId = 0;
-       gchar                   *source_uri;
 
        /* Determine correct category from selected folder name */
        parent = feedlist_get_selected ();
@@ -251,21 +248,19 @@
                categoryId = GPOINTER_TO_INT (g_hash_table_lookup 
(source->folderToCategory, parent->id));
        }
 
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
-
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        request = update_request_new (
                source_uri,
                NULL,
                root->subscription->updateOptions
        );
 
-       g_free (source_uri);
-
        /* escape user and password for JSON call */
        username = g_strescape (root->subscription->updateOptions->username, 
NULL);
        password = g_strescape (root->subscription->updateOptions->password, 
NULL);
 
-       request->postdata = g_strdup_printf (TTRSS_JSON_SUBSCRIBE, 
source->session_id, subscription->source, categoryId, username, password);
+       g_autofree gchar *postdata = g_strdup_printf (TTRSS_JSON_SUBSCRIBE, 
source->session_id, subscription->source, categoryId, username, password);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        g_free (username);
        g_free (password);
@@ -303,7 +298,6 @@
        ttrssSourcePtr  source = (ttrssSourcePtr)root->data;
        UpdateRequest   *request;
        const gchar     *id;
-       gchar           *source_uri;
 
        // FIXME: Check for login?
 
@@ -318,17 +312,15 @@
                return;
        }
 
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
-
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        request = update_request_new (
                source_uri,
                NULL,
                root->subscription->updateOptions
        );
 
-       g_free (source_uri);
-
-       request->postdata = g_strdup_printf (TTRSS_JSON_UNSUBSCRIBE, 
source->session_id, id);
+       g_autofree gchar *postdata = g_strdup_printf (TTRSS_JSON_UNSUBSCRIBE, 
source->session_id, id);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        update_job_new (source, request, ttrss_source_remove_node_cb, node, 0 
/* flags */);
 }
@@ -399,19 +391,16 @@
        Node            *root = node_source_root_from_node (node);
        ttrssSourcePtr  source = (ttrssSourcePtr)root->data;
        UpdateRequest   *request;
-       gchar           *source_uri;
-
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
 
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        request = update_request_new (
                source_uri,
                NULL,
                root->subscription->updateOptions
        );
 
-       g_free (source_uri);
-
-       request->postdata = g_strdup_printf (TTRSS_JSON_UPDATE_ITEM_FLAG, 
source->session_id, item_get_id(item), newStatus?1:0 );
+       g_autofree gchar *postdata = g_strdup_printf 
(TTRSS_JSON_UPDATE_ITEM_FLAG, source->session_id, item_get_id(item), 
newStatus?1:0 );
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        update_job_new (source, request, ttrss_source_remote_update_cb, source, 
0 /* flags */);
 
@@ -424,18 +413,16 @@
        Node            *root = node_source_root_from_node (node);
        ttrssSourcePtr  source = (ttrssSourcePtr)root->data;
        UpdateRequest   *request;
-       gchar           *source_uri;
-
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
 
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        request = update_request_new (
                source_uri,
                NULL,
                root->subscription->updateOptions
        );
-       g_free (source_uri);
 
-       request->postdata = g_strdup_printf (TTRSS_JSON_UPDATE_ITEM_UNREAD, 
source->session_id, item_get_id(item), newStatus?0:1 );
+       g_autofree gchar *postdata = g_strdup_printf 
(TTRSS_JSON_UPDATE_ITEM_UNREAD, source->session_id, item_get_id(item), 
newStatus?0:1);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        update_job_new (source, request, ttrss_source_remote_update_cb, source, 
0 /* flags */);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/node_sources/ttrss_source_feed.c 
new/liferea-1.16.12/src/node_sources/ttrss_source_feed.c
--- old/liferea-1.16.10/src/node_sources/ttrss_source_feed.c    2026-05-25 
18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/ttrss_source_feed.c    2026-06-17 
00:00:52.000000000 +0200
@@ -1,7 +1,7 @@
 /**
  * @file ttrss_source_feed.c  Tiny Tiny RSS feed subscription routines
  *
- * Copyright (C) 2010-2024 Lars Windolf <[email protected]>
+ * Copyright (C) 2010-2026 Lars Windolf <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -164,7 +164,6 @@
        Node            *root = node_source_root_from_node (subscription->node);
        ttrssSourcePtr  source = (ttrssSourcePtr) root->data;
        const gchar     *feed_id;
-       gchar           *source_name;
        gint            fetchCount;
 
        debug (DEBUG_UPDATE, "TinyTinyRSS preparing feed subscription for 
update");
@@ -185,10 +184,10 @@
        /* We can always max out as TinyTinyRSS does limit results itself */
        fetchCount = subscription_get_max_item_count (subscription);
 
-       request->postdata = g_strdup_printf (TTRSS_JSON_HEADLINES, 
source->session_id, feed_id, fetchCount);
-       source_name = g_strdup_printf (TTRSS_URL, source->url);
+       g_autofree gchar *postdata = g_strdup_printf (TTRSS_JSON_HEADLINES, 
source->session_id, feed_id, fetchCount);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
+       g_autofree gchar *source_name = g_strdup_printf (TTRSS_URL, 
source->url);
        update_request_set_source (request, source_name);
-       g_free (source_name);
 
        return TRUE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/liferea-1.16.10/src/node_sources/ttrss_source_feed_list.c 
new/liferea-1.16.12/src/node_sources/ttrss_source_feed_list.c
--- old/liferea-1.16.10/src/node_sources/ttrss_source_feed_list.c       
2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/node_sources/ttrss_source_feed_list.c       
2026-06-17 00:00:52.000000000 +0200
@@ -209,19 +209,16 @@
 ttrss_source_update_subscription_list (ttrssSourcePtr source, subscriptionPtr 
subscription)
 {
        UpdateRequest   *request;
-       gchar           *source_uri;
-
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
 
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        request = update_request_new (
                source_uri,
                subscription->updateState,
                subscription->updateOptions
        );
 
-       g_free (source_uri);
-
-       request->postdata = g_strdup_printf (TTRSS_JSON_SUBSCRIPTION_LIST, 
source->session_id);
+       g_autofree gchar *postdata = g_strdup_printf 
(TTRSS_JSON_SUBSCRIPTION_LIST, source->session_id);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        subscription->updateJob = update_job_new (subscription, request, 
ttrss_source_subscription_list_cb, subscription, UPDATE_REQUEST_NO_FEED);
 }
@@ -362,7 +359,6 @@
 {
        Node *node = subscription->node;
        ttrssSourcePtr  source = (ttrssSourcePtr) subscription->node->data;
-       gchar *source_uri;
 
        debug (DEBUG_UPDATE, "ttrss_subscription_prepare_update_request");
 
@@ -379,10 +375,10 @@
           installation is not self-updating to run a remote update for
           each feed before fetching it's items */
 
-       source_uri = g_strdup_printf (TTRSS_URL, source->url);
+       g_autofree gchar *source_uri = g_strdup_printf (TTRSS_URL, source->url);
        update_request_set_source (request, source_uri);
-       g_free (source_uri);
-       request->postdata = g_strdup_printf (TTRSS_JSON_CATEGORIES_LIST, 
source->session_id);
+       g_autofree gchar *postdata = g_strdup_printf 
(TTRSS_JSON_CATEGORIES_LIST, source->session_id);
+       update_request_set_postdata (request, postdata, "application/json; 
charset=utf-8");
 
        return TRUE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/update.c 
new/liferea-1.16.12/src/update.c
--- old/liferea-1.16.10/src/update.c    2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/update.c    2026-06-17 00:00:52.000000000 +0200
@@ -191,26 +191,34 @@
 }
 
 void
-update_request_set_source(UpdateRequest *request, const gchar* source)
+update_request_set_source(UpdateRequest *request, const gchar *source)
 {
        g_free (request->source);
        request->source = g_strdup (source);
 }
 
 void
-update_request_set_auth_value (UpdateRequest *request, const gchar* authValue)
+update_request_set_auth_value (UpdateRequest *request, const gchar *authValue)
 {
        g_free (request->authValue);
        request->authValue = g_strdup (authValue);
 }
 
 void
+update_request_set_postdata (UpdateRequest *request, const gchar *postdata, 
const gchar *contentType)
+{
+       g_free (request->postdata);
+       request->postdata = g_strdup (postdata);
+       g_free (request->contentType);
+       request->contentType = contentType?g_strdup (contentType):NULL;
+}
+
+void
 update_request_allow_commands (UpdateRequest *request, gboolean allowCommands)
 {
        request->allowCommands = allowCommands;
 }
 
-
 /* update result */
 
 G_DEFINE_TYPE (UpdateResult, update_result, G_TYPE_OBJECT)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liferea-1.16.10/src/update.h 
new/liferea-1.16.12/src/update.h
--- old/liferea-1.16.10/src/update.h    2026-05-25 18:49:20.000000000 +0200
+++ new/liferea-1.16.12/src/update.h    2026-06-17 00:00:52.000000000 +0200
@@ -78,6 +78,7 @@
                                             then it is parsed as a URL, 
otherwise it is a
                                             filename. */
        gchar           *postdata;      /*<< HTTP POST request data (NULL for 
non-POST requests) */
+       gchar           *contentType;   /*<< HTTP request content type 
(optional) */
        gchar           *authValue;     /*<< Custom value for Authorization: 
header */
        updateOptionsPtr options;       /*<< Update options for the request */
        gchar           *filtercmd;     /*<< Command will filter output of URL 
*/
@@ -178,6 +179,16 @@
  */
 void update_request_set_auth_value (UpdateRequest *request, const gchar* 
authValue);
 
+/** 
+ * update_request_set_postdata:
+ * @request:        the update request
+ * @postdata:       the data to be sent in an HTTP POST request
+ * @contentType:    the content type of the request (e.g. "application/json")
+ * 
+ * Sets the data and optional content type for a HTTP POST request.
+ */
+void update_request_set_postdata (UpdateRequest *request, const gchar* 
postdata, const gchar* contentType);
+
 /**
  * update_request_allow_commands:
  * @request:            the update request

++++++ liferea.obsinfo ++++++
--- /var/tmp/diff_new_pack.nvgZxi/_old  2026-06-17 16:29:11.034291507 +0200
+++ /var/tmp/diff_new_pack.nvgZxi/_new  2026-06-17 16:29:11.042291839 +0200
@@ -1,5 +1,5 @@
 name: liferea
-version: 1.16.10
-mtime: 1779727760
-commit: 3a6096c2ce47db742931668dcddf215416292aa1
+version: 1.16.12
+mtime: 1781647252
+commit: 068c12bbba396ed357078f9c3d69f495467f3827
 

Reply via email to