I am using:
$ libreoffice --version
LibreOffice 5.2.7.2 20m0(Build:2)
on:
$ uname -a
Linux niggahme 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
after finishing a basic impress presentation without fancy transition, embedded objects … when I try to save the file as ppt to be displayed on Windows at school (I am a teacher), by going:
File > Save A Copy As
then selecting as file type: .ppt or .pptx (I have tried both)
I am getting:
Error saving the document <…>:
Write Error.
The file could not be written.
Why is this happening and how can I debug and fix that problem?
Here is a link to the actual file:
$ ls -l W04_Photosynthesis_Cicle_of_Life.odp
-rw-r–r-- 1 niggahme niggahme 1901985 Oct 4 16:03 W04_Photosynthesis_Cicle_of_Life.odp
$ md5sum -b W04_Photosynthesis_Cicle_of_Life.odp
cb1458f86a91a95a842bfb368d1efb0e *W04_Photosynthesis_Cicle_of_Life.odp
I have also tried to debug the file, but I don’t see anything of value. Libreoffice doesn’t report anything about a “title 2” page creating problems:
_IFL="…/W04/W04_Photosynthesis_Cicle_of_Life.odp"
_IPDFNX=${_IFL##/}
_FN="${_IPDFNX%.}"
echo “// __ $_IPDFNX: |”${_IPDFNX}"|"
echo “// __ $_FN: |”${_FN}"|"
ls -l “${_IFL}”
md5sum -b “${_IFL}”
ls -l “${_ODIR}/${_FN}”.pptx
md5sum -b “${_ODIR}/${_FN}”.pptx
$ time libreoffice --convert-to pptx --backtrace --outdir “${_ODIR}” “${_IFL}”
GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show copying”
and “show warranty” for details.
This GDB was configured as “x86_64-linux-gnu”.
Type “show configuration” for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
—Type to continue, or q to quit—
For help, type “help”.
Type “apropos word” to search for commands related to “word”…
Reading symbols from /usr/lib/libreoffice/program/soffice.bin…(no debugging symbols found)…done.
log will be saved as gdbtrace.log, this will take some time, patience…
^Z
real 1m56.868s
user 0m3.208s
sys 0m0.888s
$ ls -l gdbtrace.log
-rw-r–r-- 1 niggahme niggahme 3041 Oct 8 00:14 gdbtrace.log
$ cat gdbtrace.log
warning: Currently logging to gdbtrace.log. Turn the logging off and on to make the new setting effective.
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib/x86_64-linux-gnu/libthread_db.so.1”.
[New Thread 0x7fffe0ca2700 (LWP 20053)]
[New Thread 0x7fffd638e700 (LWP 20054)]
[Thread 0x7fffd638e700 (LWP 20054) exited]
Thread 1 “soffice.bin” received signal SIGTSTP, Stopped (user).
0x00007ffff33b17fd in connect () from /lib/x86_64-linux-gnu/libc.so.6
#0 0x00007ffff33b17fd in connect () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff369d648 in ?? () from /usr/lib/libreoffice/program/libuno_sal.so.3
#2 0x00007ffff369d75e in osl_createPipe () from /usr/lib/libreoffice/program/libuno_sal.so.3
#3 0x00007ffff5654e2e in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#4 0x00007ffff56557c8 in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#5 0x00007ffff5630bbe in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#6 0x00007ffff6553d6d in InitVCL() () from /usr/lib/libreoffice/program/libmergedlo.so
#7 0x00007ffff6554c2d in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#8 0x00007ffff6554c82 in SVMain() () from /usr/lib/libreoffice/program/libmergedlo.so
#9 0x00007ffff565de91 in soffice_main () from /usr/lib/libreoffice/program/libmergedlo.so
#10 0x00005555555547cb in ?? ()
#11 0x00007ffff32e82e1 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x000055555555480a in ?? ()
Thread 2 (Thread 0x7fffe0ca2700 (LWP 20053)):
# 0x00007ffff0e22508 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1 0x00007ffff367f4db in ?? () from /usr/lib/libreoffice/program/libuno_sal.so.3
#2 0x00007ffff0e1c494 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#3 0x00007ffff33b0acf in clone () from /lib/x86_64-linux-gnu/libc.so.6
Thread 1 (Thread 0x7ffff7f15ac0 (LWP 20048)):
#0 0x00007ffff33b17fd in connect () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff369d648 in ?? () from /usr/lib/libreoffice/program/libuno_sal.so.3
#2 0x00007ffff369d75e in osl_createPipe () from /usr/lib/libreoffice/program/libuno_sal.so.3
#3 0x00007ffff5654e2e in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#4 0x00007ffff56557c8 in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#5 0x00007ffff5630bbe in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#6 0x00007ffff6553d6d in InitVCL() () from /usr/lib/libreoffice/program/libmergedlo.so
#7 0x00007ffff6554c2d in ?? () from /usr/lib/libreoffice/program/libmergedlo.so
#8 0x00007ffff6554c82 in SVMain() () from /usr/lib/libreoffice/program/libmergedlo.so
#9 0x00007ffff565de91 in soffice_main () from /usr/lib/libreoffice/program/libmergedlo.so
#10 0x00005555555547cb in ?? ()
#11 0x00007ffff32e82e1 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x000055555555480a in ?? ()
A debugging session is active.
Inferior 1 [process 20048] will be killed.
Quit anyway? (y or n) [answered Y; input not from terminal]
$
Out of my frustration with libreoffice not producing, logging more and more useful debugging information, I even put together some silly bash script to find out where that Title2 master slide was:
_W=“Title2”
_ODFL="/W04_Photosynthesis_Cicle_of_Life.odp"
### should not touch
_ODIR=$(dirname “${_ODFL}”)
_IPDFNX=${_ODFL##/}
_DT=$(date +%Y%m%d%H%M%S)
_FN="${_IPDFNX%.}"
_ZFL="${_ODIR}/${FN}$_DT.zip"
echo “// __ $_ZFL: |${_ZFL}|”
cp “${_ODFL}” “${_ZFL}”
ls -l “${_ODFL}”
ls -l “${_ZFL}”
md5sum -b “${_ODFL}”
md5sum -b “${_ZFL}”
_TESTLN=“No errors detected in compressed data of “${_ZFL}”.”
_TESTFL="${_FN}.zip.test.txt"
unzip -t “${_ZFL}” > “${_TESTFL}”
_LSTLN=$(tail -n 1 “${_TESTFL}”)
if [ “${_TESTLN}” == “${_LSTLN}” ]; then
echo “// __ TEST OK! |${_TESTLN}|${_LSTLN}|”
_OZDIR="${_ODIR}/${_FN}/${FN}${_DT}"
mkdir -p “${_OZDIR}”
unzip “${_ZFL}” -d “${_OZDIR}”
_TMP="${FN}"$(mktemp “${_DT}”.XXXXXX)
find “${_OZDIR}” -type f -iname “*.xml” >> “${_TMP}” 2>&1
_LNS=$(wc -l ${_TMP}| awk ‘{print $1}’)
_IX=0
while read -r _XMLFL; do
echo “// __ [$_IX,$_LNS): |$_XMLFL|”
_FND=$(cat “${_XMLFL}” | grep “${_W}”)
if [[ ! -z “${_FND}” ]]; then
echo “// __ |${_W}|${_XMLFL}|”
fi
_IX=$(( _IX+1 ))
done < “${_TMP}”
rm --force “${_TMP}”
rm --force “${_ZFL}”
rm --force “${_TESTFL}”
else
echo “// __ $_TESTLN: |${_TESTLN}|”
echo “// __ $_LSTLN: |${_LSTLN}|”
fi