Dear Maintainer,
pyuno in LibreOffice 26.2 has removed unohelper.absolutize in favor of
uno.absolutize to avoid duplication.
https://opengrok.libreoffice.org/history/core/pyuno/source/module/unohelper.py
unoconv makes use of unohelper.absolutize, which leads to a crash with
File "/usr/bin/unoconv", line 1003, in convert
inputurl = unohelper.absolutize(self.cwd, unohelper.systemPathToFileUrl(inputfn))
^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'unohelper' has no attribute 'absolutize'
This bug is also discussed here:
https://ask.libreoffice.org/t/is-this-unoconv-issue-a-regression-in-libreoffice/131807
Patch against unoconv 0.9.0 (not currently in Debian):
Description: Use uno.absolutize instead of unohelper.absolutize
pyuno in LibreOffice 26.2 dropped unohelp.absolutize in favor of uno.absolutize
to avoid duplication.
Author: Sergey Romanov <schragge@gmail.com>
Forwarded: not-needed
Last-Update: 2026-08-03
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/unoconv
+++ b/unoconv
@@ -1000,7 +1000,7 @@
inputurl = 'private:stream'
else:
if os.path.exists(inputfn):
- inputurl = unohelper.absolutize(self.cwd, unohelper.systemPathToFileUrl(inputfn))
+ inputurl = uno.absolutize(self.cwd, unohelper.systemPathToFileUrl(inputfn))
else:
inputurl = inputfn
document = self.desktop.loadComponentFromURL( inputurl , "_blank", 0, inputprops )
@@ -1014,7 +1014,7 @@
if os.path.exists(op.template):
info(1, "Template file: %s" % op.template)
templateprops = UnoProps(OverwriteStyles=True)
- templateurl = unohelper.absolutize(self.cwd, unohelper.systemPathToFileUrl(op.template))
+ templateurl = uno.absolutize(self.cwd, unohelper.systemPathToFileUrl(op.template))
document.StyleFamilies.loadStylesFromURL(templateurl, templateprops)
else:
print('unoconv: template file `%s\' does not exist.' % op.template, file=sys.stderr)
@@ -1157,7 +1157,7 @@
else:
outputfn = realpath(inbase + os.extsep + outputfmt.extension)
- outputurl = unohelper.absolutize( self.cwd, unohelper.systemPathToFileUrl(outputfn) )
+ outputurl = uno.absolutize( self.cwd, unohelper.systemPathToFileUrl(outputfn) )
info(1, "Output file: %s" % outputurl)
I've uploaded patched unoconv 0.9.0 source Debian package I'm currently using
here:
https://app.box.com/s/r34cbeunbnr3b9he71x0ogjbj9xb3isv
That version includes diverse changes apart from this patch, see
debian/changelog there.
BTW, unoconv is deprecated upstream in favor of unoserver:
https://github.com/unoconv/unoconv/commit/36f1435e8becf29e94b21e90339c32238ccb090b
I've made a preliminary package of unoserver as well. It can be found here:
https://app.box.com/s/mlmgk0w3wl7rxwfb8hn59kcfzym2u75f
However, unoserver doesn't provide all the features of unoconv as of yet.
Besides, they are quite different.
HTH,
Sergey Romanov