Closed apyrgio closed 1 year ago
I don't have mac device. but I will try to reproduce this issue in any ARM system. I wrote filter name of extension incorrectly somewhere once, that has mislead the usage. infilter="Hwp2002_File" is the correct one. In first trial on Ubuntu on ARM machine, conversion from hwp to pdf done.
ubuntu@instance-20230816-2224:~$ uname -a
Linux instance-20230816-2224 5.15.0-1038-oracle #44-Ubuntu SMP Thu Jun 22 03:34:10 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@instance-20230816-2224:~$ libreoffice --headless --infilter="Hwp2002_File" --convert-to pdf:writer_pdf_Export HWP97.hwp
[08-18 19:53] (riterContext.dete) INFO: file detected not HWPX
[08-18 19:53] (riterContext.dete) INFO: file detected neither HWPX nor HWP
[08-18 19:53] (OrestartImpl.dete) INFO: File is not Hancomm document.
convert /home/ubuntu/HWP97.hwp -> /home/ubuntu/HWP97.pdf using filter : writer_pdf_Export
Overwriting: /home/ubuntu/HWP97.pdf
I will keep posted what I try on other ARM system.
I will try again with correct filter name on my ARM device(Raspberry Pi 4) too.
Thank you for all your work @ebandal
I tried on postmarketos on ARM, and reproduced it.
xiaomi-tissot:~$ uname -a
Linux xiaomi-tissot 6.3.0-postmarketos-qcom-msm8953 #3-postmarketos-qcom-msm8953 SMP PREEMPT Sat May 27 04:34:36 UTC aarch64 Linux
xiaomi-tissot:~$ libreoffice --headless --infilter="Hwp2002_File" --convert-to pdf:writer_pdf_Export Finish.hwp
Error: source file could not be loaded
"source file could not be loaded" message seems to be shown in libreoffice. no expected log from H2O restart.
so I check installation status of extension. but extension is not installed correctly. is registered: no
is shown.
xiaomi-tissot:~$ sudo unopkg list --shared
All deployed shared extensions:
Identifier: ebandal.libreoffice.H2Orestart
Version: 0.5.5
URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lu31804fyklq3.tmp_/H2Orestart.oxt
is registered: no
Media-Type: application/vnd.sun.star.package-bundle
Description: LibreOffice HWP 5.0 import Extension.
This product was developed by referring to the ᄒᆞᆫ글 document file (HWP, HWPML) published by 한글과컴퓨터.
Please report bugs to https://github.com/ebandal/H2Orestart
bundled Packages: {
URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lu31804fyklq3.tmp_/H2Orestart.oxt/H2Orestart.jar
is registered: no
Media-Type: application/vnd.sun.star.uno-component;type=Java
Description:
URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lu31804fyklq3.tmp_/H2Orestart.oxt/registry/H2Orestart_types.xcu
is registered: no
Media-Type: application/vnd.sun.star.configuration-data
Description:
URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lu31804fyklq3.tmp_/H2Orestart.oxt/registry/H2Orestart_filters.xcu
is registered: no
Media-Type: application/vnd.sun.star.configuration-data
Description:
URL: vnd.sun.star.expand:$UNO_SHARED_PACKAGES_CACHE/uno_packages/lu31804fyklq3.tmp_/H2Orestart.oxt/registry/TypeDetection.xcu
is registered: no
Media-Type: application/vnd.sun.star.configuration-data
Description:
}
I tried to remove extension and re-install. but unopkg not working.
xiaomi-tissot:~$ sudo unopkg remove --shared ebandal.libreoffice.H2Orestart
ERROR: Exception occurred: An error occurred while enabling: H2Orestart.jar: com.sun.star.registry.CannotRegisterImplementationException "ImplementationRegistration::registerImplementation() - The service com.sun.star.loader.Java2 cannot be instantiated at /home/buildozer/aports/community/libreoffice/src/libreoffice-7.5.4.2/stoc/source/implementationregistration/implreg.cxx:1275" at /home/buildozer/aports/community/libreoffice/src/libreoffice-7.5.4.2/desktop/source/deployment/registry/dp_backend.cxx:662 at /home/buildozer/aports/community/libreoffice/src/libreoffice-7.5.4.2/desktop/source/deployment/registry/package/dp_package.cxx:851
ERROR: unopkg failed.
I will research this symptom and keep posted.
Would you try with GUI? It's weird but if you open libreoffice GUI, then CLI conversion works.
It doesn't matter if you open libreoffice or libreoffice writer, both of them work.
Edit:
If you can't use GUI at all, you can try running soffice
on other place (terminal, tmux, tty... e.g.). Then try running converting script again.
And it was able to get more error information with "--safe-mode" option.
Would you try with GUI? It's weird but if you open libreoffice GUI, then CLI conversion works.
It doesn't matter if you open libreoffice or libreoffice writer, both of them work.
Edit: If you can't use GUI at all, you can try running
soffice
on other place (terminal, tmux, tty... e.g.). Then try running converting script again.
I can't use GUI with postmarketos device. CLI result is same. My assumption is that the results vary depending on whether or not the H2Orestart installed correctly. If H2Orestart installed correctly, then you can see the log like "INFO: file detected not HWPX".
I filed an issue report on Alpine Linux and got the answer. Alpine aarch64 package of libreoffice has been built without Java support whereas x86_64 is built with Java support.
Alpine team enabled the Java support on the aarch64 system. https://gitlab.alpinelinux.org/alpine/aports/-/commit/74d443f479df15fc57e6fde6ac02a36b24afdded
It's only on the edge, stable(3.18) repository doesn't have that package yet.
So I ran the following script to install libreoffice from the edge
repository on alpine 3.18
. But it seems not to work.
$ apk add libreoffice --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community
Ref: https://stackoverflow.com/questions/52899227/alpine-add-package-from-edge-repository
When I try on the edge
version of Alpine, conversion works great.
Thank you so much @ebandal!
Thank you both for digging into this :star_struck: . What you fixed here (the LibreOffice issue on Alpine) goes beyond the H2ORestart extension, which is super great. I consider this issue closed from the side of H2ORestart, and I'll resume the discussion on the Dangerzone side, so that we can fix it there as well.
First of all, thanks a lot @ebandal for this project! We are currently using it in Dangerzone, to sanitize HWP / HWPX files.
While the extension seems to work great on x86 machines, it doesn't seem to work on ARM machines. The platform where we detected this issue is MacOS with Apple Silicon CPU, but note that we are using Docker in this case, so the actual OS is Alpine Linux.
We have opened an issue (https://github.com/freedomofpress/dangerzone/issues/498) in our issue tracker, where @OctopusET has been kindly helping us figure out what's going on. I'm opening an issue here as well though, since this problem does not seem to be Dangerzone-related, and probably affects all users in ARM devices.
Copying here from the original issue the instructions to reproduce this error: