Control: tags -1 + patch
Control: found -1 2026-07-14.a+dfsg-2
Control: severity -1 important


Hi Daniel,

the error is still present in 2026-07-14.a+dfsg-2, and it has one cause
in each package.

libphp-simplepie 1.5.8+dfsg-1 predates the SimplePie\ namespace, which
upstream introduced in 1.7.0, so the class cannot exist with what is in
the archive today. I have uploaded libphp-simplepie 1.9.0+dfsg-1 to
unstable. That is the version DokuWiki 2026-07-14 is written against:
vendor/composer/installed.php records simplepie/simplepie 1.9.0 and
inc/Feed/FeedParserFile.php implements the SimplePie\HTTP\Response
interface, which only exists since 1.9.

On the dokuwiki side, vendor_simplepie.patch only redirects the PSR-0
"SimplePie" entry to /usr/share/php/simplepie/library. The PSR-4
"SimplePie\" entry in autoload_psr4.php and autoload_static.php still
points at vendor/simplepie/simplepie/src, which is stripped from the
package, so SimplePie\SimplePie is never found, whichever libphp-
simplepie is installed. This is also what #1111888 was about: inc_fix-
feedparser.patch turned the fatal error in inc/legacy.php into a
warning by aliasing a class that does not exist (\dokuwiki\FeedParser),
but the FeedParser alias is then never defined and every page embedding
{{rss>...}} still fails. The editor's "syntax" page embeds one, which
is how the reporter hit it without using feeds.

The attached debdiff does three things:

  * extends vendor_simplepie.patch so that SimplePie\ maps to
/usr/share/php/simplepie/src (the php-constant-time and php-phpseclib3
patches are refreshed, context lines only);
  * drops inc_fix-feedparser.patch, restoring upstream's alias to
\dokuwiki\Feed\FeedParser; * depends on libphp-simplepie (>=
1.9.0+dfsg).

I verified it by building the package with the debdiff applied and
rendering "{{rss>https://www.debian.org/News/news 3}}" through
p_render() with libphp-simplepie 1.9.0+dfsg-1 installed:
SimplePie\SimplePie is loaded from
/usr/share/php/simplepie/src/SimplePie.php and the three items come
out. The same test with the current 2026-07-14.a+dfsg-2 and the new
libphp-simplepie reproduces the error from the report, so the new
library alone is not enough.

Please wait for libphp-simplepie 1.9.0+dfsg-1 to be accepted before
uploading, otherwise the versioned dependency makes dokuwiki
uninstallable in unstable.

Cheers
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/changelog dokuwiki-2026-07-14.a+dfsg/debian/changelog
--- dokuwiki-2026-07-14.a+dfsg/debian/changelog	2026-07-29 23:38:39.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/changelog	2026-09-21 12:28:41.000000000 -0300
@@ -1,3 +1,17 @@
+dokuwiki (2026-07-14.a+dfsg-3) UNRELEASED; urgency=medium
+
+  * Updating vendor_simplepie.patch to also map the SimplePie\ PSR-4
+    namespace to the packaged /usr/share/php/simplepie/src, fixing
+    "Class SimplePie\SimplePie not found" on every page that embeds a
+    feed (Closes: #1123667).
+  * Removing inc_fix-feedparser.patch: the alias it introduced points to
+    a class that does not exist and only hid the missing SimplePie
+    namespace behind a warning.
+  * Depending on libphp-simplepie (>= 1.9.0+dfsg), the first version
+    shipping the namespaced SimplePie\ classes.
+
+ -- Marcelo Jorge Vieira <[email protected]>  Mon, 21 Sep 2026 12:30:00 -0300
+
 dokuwiki (2026-07-14.a+dfsg-2) sid; urgency=medium
 
   * Taking over debconf handling for plugins from dokuwiki-templates-
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/control dokuwiki-2026-07-14.a+dfsg/debian/control
--- dokuwiki-2026-07-14.a+dfsg/debian/control	2026-07-29 17:36:12.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/control	2026-09-21 12:28:41.000000000 -0300
@@ -19,7 +19,7 @@
  libjs-jquery,
  libjs-jquery-cookie,
  libjs-jquery-ui,
- libphp-simplepie,
+ libphp-simplepie (>= 1.9.0+dfsg),
  php,
  php-constant-time,
  php-geshi,
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0004-vendor_simplepie.patch dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0004-vendor_simplepie.patch
--- dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0004-vendor_simplepie.patch	2026-07-29 16:22:38.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0004-vendor_simplepie.patch	2026-09-21 12:28:40.000000000 -0300
@@ -1,5 +1,11 @@
 Author: Mohammed Adnène Trojette <[email protected]>
+Author: Marcelo Jorge Vieira <[email protected]>
 Description: Use packaged version of SimplePie instead of an embedded one.
+ SimplePie 1.7 and later ship the namespaced SimplePie\ classes under src/
+ and keep library/ only as compatibility shims for the old SimplePie_*
+ names, so both composer mappings have to point at the packaged copy.
+ With only the PSR-0 entry rewritten, every page that embeds a feed fails
+ with "Class SimplePie\SimplePie not found" (Closes: #1123667).
 
 diff -Naurp dokuwiki.orig/vendor/composer/autoload_namespaces.php dokuwiki/vendor/composer/autoload_namespaces.php
 --- dokuwiki.orig/vendor/composer/autoload_namespaces.php
@@ -12,9 +18,30 @@
 +    'SimplePie' => array('/usr/share/php/simplepie/library'),
      'EmailAddressValidator' => array($vendorDir . '/aziraphale/email-address-validator'),
  );
+diff -Naurp dokuwiki.orig/vendor/composer/autoload_psr4.php dokuwiki/vendor/composer/autoload_psr4.php
+--- dokuwiki.orig/vendor/composer/autoload_psr4.php
++++ dokuwiki/vendor/composer/autoload_psr4.php
+@@ -13,7 +13,7 @@ return array(
+     'splitbrain\\JSStrip\\tests\\' => array($vendorDir . '/splitbrain/php-jsstrip/tests'),
+     'splitbrain\\JSStrip\\' => array($vendorDir . '/splitbrain/php-jsstrip/src'),
+     'phpseclib3\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
+-    'SimplePie\\' => array($vendorDir . '/simplepie/simplepie/src'),
++    'SimplePie\\' => array('/usr/share/php/simplepie/src'),
+     'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'),
+     'PHP81_BC\\strftime\\' => array($vendorDir . '/php81_bc/strftime/src'),
+     'LesserPHP\\tests\\' => array($vendorDir . '/splitbrain/lesserphp/tests'),
 diff -Naurp dokuwiki.orig/vendor/composer/autoload_static.php dokuwiki/vendor/composer/autoload_static.php
 --- dokuwiki.orig/vendor/composer/autoload_static.php
 +++ dokuwiki/vendor/composer/autoload_static.php
+@@ -78,7 +78,7 @@ class ComposerStaticInita19a915ee98347a0
+         ),
+         'SimplePie\\' =>
+         array (
+-            0 => __DIR__ . '/..' . '/simplepie/simplepie/src',
++            0 => '/usr/share/php/simplepie/src',
+         ),
+         'ParagonIE\\ConstantTime\\' =>
+         array (
 @@ -111,7 +111,7 @@ class ComposerStaticInita19a915ee98347a0
          array (
              'SimplePie' =>
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0005-vendor_php-constant-time.patch dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0005-vendor_php-constant-time.patch
--- dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0005-vendor_php-constant-time.patch	2026-07-29 16:22:38.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0005-vendor_php-constant-time.patch	2026-09-21 12:28:41.000000000 -0300
@@ -7,7 +7,7 @@
 @@ -14,7 +14,7 @@ return array(
      'splitbrain\\JSStrip\\' => array($vendorDir . '/splitbrain/php-jsstrip/src'),
      'phpseclib3\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
-     'SimplePie\\' => array($vendorDir . '/simplepie/simplepie/src'),
+     'SimplePie\\' => array('/usr/share/php/simplepie/src'),
 -    'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'),
 +    'ParagonIE\\ConstantTime\\' => array('/usr/share/php/ParagonIE/ConstantTime'),
      'PHP81_BC\\strftime\\' => array($vendorDir . '/php81_bc/strftime/src'),
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0008-vendor_php-phpseclib3.patch dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0008-vendor_php-phpseclib3.patch
--- dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0008-vendor_php-phpseclib3.patch	2026-07-29 16:22:38.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0008-vendor_php-phpseclib3.patch	2026-09-21 12:28:41.000000000 -0300
@@ -20,7 +20,7 @@
      'splitbrain\\JSStrip\\' => array($vendorDir . '/splitbrain/php-jsstrip/src'),
 -    'phpseclib3\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
 +    'phpseclib3\\' => array('/usr/share/php/phpseclib3'),
-     'SimplePie\\' => array($vendorDir . '/simplepie/simplepie/src'),
+     'SimplePie\\' => array('/usr/share/php/simplepie/src'),
      'ParagonIE\\ConstantTime\\' => array('/usr/share/php/ParagonIE/ConstantTime'),
      'PHP81_BC\\strftime\\' => array($vendorDir . '/php81_bc/strftime/src'),
 diff -Naurp dokuwiki.orig/vendor/composer/autoload_static.php dokuwiki/vendor/composer/autoload_static.php
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0014-inc_fix-feedparser.patch dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0014-inc_fix-feedparser.patch
--- dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0014-inc_fix-feedparser.patch	2026-07-29 16:22:38.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/patches/debian/0014-inc_fix-feedparser.patch	1969-12-31 21:00:00.000000000 -0300
@@ -1,12 +0,0 @@
-Author: Daniel Baumann <[email protected]>
-Description: Correcting internal FeedParser alias (Closes: #1111888).
-
-diff -Naurp dokuwiki.orig/inc/legacy.php dokuwiki/inc/legacy.php
---- dokuwiki.orig/inc/legacy.php
-+++ dokuwiki/inc/legacy.php
-@@ -23,4 +23,4 @@ class_alias('\dokuwiki\Extension\SyntaxP
- class_alias('\dokuwiki\Parsing\Handler', 'Doku_Handler');
- class_alias('\dokuwiki\Parsing\Parser', 'Doku_Parser');
- 
--class_alias('\dokuwiki\Feed\FeedParser', 'FeedParser');
-+class_alias('\dokuwiki\FeedParser', 'FeedParser');
diff -Nru dokuwiki-2026-07-14.a+dfsg/debian/patches/series dokuwiki-2026-07-14.a+dfsg/debian/patches/series
--- dokuwiki-2026-07-14.a+dfsg/debian/patches/series	2026-07-29 16:22:38.000000000 -0300
+++ dokuwiki-2026-07-14.a+dfsg/debian/patches/series	2026-09-21 12:28:40.000000000 -0300
@@ -11,4 +11,3 @@
 debian/0011-conf_subscribers.patch
 debian/0012-tpl_tidy-footer.patch
 debian/0013-inc_tidy-init.patch
-debian/0014-inc_fix-feedparser.patch

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to