unoconv / unoconv

Universal Office Converter - Convert between any document format supported by LibreOffice/OpenOffice.
http://dag.wieers.com/home-made/unoconv/
GNU General Public License v2.0
2.63k stars 374 forks source link

extrapath for LO on OpenBSD #8

Closed jirib closed 12 years ago

jirib commented 13 years ago

hello,

LO on OpenBSD uses different path, so here's patch:

diff --git a/unoconv b/unoconv
index ca9f5f2..7610817 100755
--- a/unoconv
+++ b/unoconv
@@ -21,6 +21,7 @@ global convertor, oobin, oobinpath, oolibpath, ooproc
 ### The first thing we ought to do is find a suitable OpenOffice installation
 ### with a compatible pyuno library that we can import.
 extrapaths = glob.glob('/usr/lib*/libreoffice*/basis*/program') + \
+             glob.glob('/usr/local/lib/libreoffice*/basis*/program') + \
              glob.glob('/opt/libreoffice/program') + \
              glob.glob('/usr/lib*/openoffice*/program') + \
              glob.glob('/usr/lib*/openoffice*/basis*/program') + \
dagwieers commented 13 years ago

Can you please try the current master branch ?

Your patch adds /usr/local/lib/libreoffice, instead of /usr/local/libreoffice, please confirm this is intentional. If so, I will need to add it to the new code as well. Thanks for your help !

jirib commented 13 years ago

I'll try but now I can just say the path is correct.

http://www.openbsd.org/cgi-bin/cvsweb/ports/editors/libreoffice/pkg/PLIST-main?rev=1.18

jirib commented 13 years ago

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/libreoffice/ure/lib:/usr/local/lib/libreoffice/basis3.4/program
$ python2.7 -V Python 2.7.1

$ pkg_info libreoffice | head -n1 Information for inst:libreoffice-3.4.3.2v0

$ python2.7 ./unoconv --stdout -f txt tests/document-example.odt
unoconv: Cannot find a suitable pyuno library and python binary combination on your system. ERROR: Please locate this library and send your feedback to: tools@lists.repoforge.org.

$ pkg_info -L libreoffice | grep 'ure/lib/uno' /usr/local/lib/libreoffice/ure/lib/unorc

$ pkg_info -L libreoffice | grep 'pyuno.so'
/usr/local/lib/libreoffice/basis3.4/program/libpyuno.so /usr/local/lib/libreoffice/basis3.4/program/pyuno.so

If I can provide more info please let me know.

Thank you for help.

dagwieers commented 13 years ago

Can you please try again with the latest code ?

You can now also influence unoconv by setting the UNO_PATH variable to point to your LibreOffice installation, eg.

UNO_PATH="/usr/local/lib/libreoffice" ./unoconv --stdout -f txt tests/document-example.odt
jirib commented 13 years ago
$ env UNO_PATH="/usr/local/lib/libreoffice" python2.7 ./unoconv --stdout -f txt tests/document-example.odt                
unoconv: Cannot find a suitable pyuno library and python binary combination on your system.
ERROR: Please locate this library and send your feedback to: <tools@lists.rpmforge.net>.
dynamic module not initialized properly
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/libreoffice/ure/lib:/usr/local/lib/libreoffice/basis3.4/program  
$ env UNO_PATH="/usr/local/lib/libreoffice" python2.7 ./unoconv --stdout -f txt tests/document-example.odt
Curriculum Vitae - Dag Wieers

Personalia
Full name 
Dag Johan Maarten Wie?rs 
Location 
Ghent, Belgium 
Phone 
+32 478 436 299 
Email 
dag@linux.com, dag@wieers.com 
Website 
http://dag.wieers.com/blog/, http://be.linkedin.com/in/dagwieers 
Work experience
Belgian Federal Police // may 2010 ? jul 2011
Linux system developer 
Implementing disaster recovery solution. Improvements to installation scripts and webmin modules. Packaging improvements. Automation and scripting. Design and implementation of a samba/anti-virus solution. Documentation and troubleshooting. 
AXA-Tech Belgium // nov 2007 ? mar 2010
Linux system engineer 
Linux migration of Belgian datacenter to Germany. Design and implementation of modular framework and infrastructure for Linux and VMware ESX, used for deploying, retrofitting and validating Linux servers. 3rd level support, troubleshooting and design work. 
EMC Belgium Development Group // jul 2007 ? dec 2007
Linux system engineer 
Implementation of infrastructure for Novell SLES Linux deployment for technical development workstations. Integration with Active Directory, NIS, Clearcase, VMware Server. 
Punch Telematix // jun 2007 ? sep 2007
Linux system engineer 
Design and implementation of technical documentation system. Design and implementation of subversion. Packaging for Novell SLES Linux. Troubleshooting. Automation. 
Euroclear // dec 2005 ? may 2007
Unix system engineer 
Deployment of Unix systems and services. Design and implementation of management infrastructure (configuration and documentation management, change management). Packaging for Solaris, AIX, Linux and VMware. Custom software development. Troubleshooting. Automation. 
Mind Linux Solutions // oct 1999 ? apr 2001
Founder / Business Unit Manager 
Taking care of various parts of the organization, including sales and marketing. Experience with project-management and pre-sales for a small (15 headcount) consultancy company. 
Consultant 
Linux and Open Source consultancy and training for several customers in on-site projects varying between 1 and 3 weeks. 
IBM Belgium // sep 1999 ? dec 2005
Unix system engineer 
On Unix and Linux systems. (eg. packaging on Linux/AIX, implementing various system and network services, general troubleshooting), implementing hosting infrastructure on Linux. (eg. resource and availability monitoring, capacity planning, firewall framework) 
Consultant 
Designing and implementing solutions for automatic deployment of Linux clients, Point-Of-Sale systems, network services, clusters and big parallel storage systems for digital media projects. incl. Real Software, VRT, EVS, RVA, Callata? and Wouters, KBC 
SISA Software/Winsome // summer job 1996/1997 // oct 1997 ? sep 1999
Consultant 
Analysis and design of an off-line website generation program (further developed as WebEngine) and web-scripting. Implementation of business projects. 
System administration 
Installation and operational management of Linux infrastructure and routers. 
Provinciale Bibliotheek Limburg // voluntary oct 1996 ? nov 1997
Network administration 
Maintenance of 12 public Internet terminals (based on Windows 95) and an ISDN Internet connection. 
Internet training 
Individual training and training in group regarding computer use, the Internet, search-engines and popular websites. 
Skills
Overall
Ability to learn quickly from self-study 
Thorough experience in Unix system administration and automation 
Thorough experience in configuring and deploying systems in a scalable and coherent manner 
Owner of various best practices regarding Linux system and application deployments, system maintenance and documentation, system security and Enterprise Linux in general. 
Experience in developing and marketing products using the Internet and Internet communities 
Experience in project-management and leading a technical team 
Operating systems / Software
Excellent knowledge of Linux (since 1994) incl. Red Hat Enterprise Linux, Scientific Linux, CentOS, Fedora (but also SLES, Ubuntu, Debian, ?) 
Experience with various Unix systems including AIX, HP/UX, Solaris, SCO Unix and Digital Unix, mostly software and automation. 
Experience with virtualization solutions incl. OpenVZ, RHEV/KVM and VMware ESX 
Thorough experience in designing and implementing a multi-customer monitoring and reporting infrastructure 
Experience with Red Hat kickstart, post-installation mechanisms for mass deployment and building Red Hat RPM packages 
Experience with clustered web-servers for load-balancing and fail-over, firewalling, virtual private networking (VPN), building high-capacity, load-balancing and high-available systems (IPVS), disaster recovery solutions and network intrusion detection systems (NIDS) 
Thorough experience in compiling, installing, and configuring of Unix system software, e.g. NFS, Samba, lpd (and LPRng), Postfix, Amavisd, Bind, DHCP, XFree86, Apache, ssh, ntpd, Snort, Dante, RRDtool, Nagios, Webmin, rear, KVM, ? 
Experience with GPFS clustering and SAN environments for large digital media environments 
Experience with building solutions using SugarCRM and Drupal 
Experience automating and integrating with Red Hat Network Satellite 
Experience in programming and scripting in various computer languages 
Experience with various markup languages (HTML, SGML, DocBook v3 and v4, XML, CSS, AsciiDoc) 
CGI Programming (in Perl and C) and PHP3/4 
IP (TCP/UDP), ICMP, ARP and protocols like IRC, FTP, SMTP, HTTP, NNTP, POP3, IMAP, DHCP, IPsec, ? 
SQL (MySQL, msql, PostgreSQL, DB2 and some Oracle) 
Programming languages
Active 
Python (since 2002), SQL (since 1997), PHP (since 1996), Javascript (since 1995), Bash, AWK and Unix-shells (since 1994), C (since 1994), Perl 4 and 5 (since 1994) 
Passive 
C# and Mono (since 2003), RPG on AS/400 (1997 - 1998), Visual Basic (1997), Java (since 1996), Pascal (1991 - 1999), Tcl/Tk, x86 Assembler (1992 - 1996), BASIC (1988 - 1990) 

Languages
Dutch: native 
English: fluently spoken and written 
French: basic spoken and limited written 
Afrikaans: basic spoken 
German: notions 
Education
Technical writing
IBM Redbook Residency, Poughkeepsie, NY (05/2005) 
Co-written a Redbook about the design and implementation of GPFS (General Parallel File System) in a digital media (broadcasting) environment. [SG246700] 
IBM Redbook Residency, Austin, TX (11/2002) 
Co-written a Redbook about the design and implementation of a Linux-based deployment in a branch banking environment. [SG246813] 
Presentations
I have presented on various topics at various events and get-togethers, including the following conferences:
Japan Linux Symposium, Tokyo, JP - 2009 
Jornadas Regionales de Software Libre, Buenos Aires, AR - 2008 
LinuxTag Berlin, DE - 2008 
LinuxWorld Expo Brussels, BE - 2008 
LinuxWorld Expo Utrecht, NL - 2007 
T-DOSE, Eindhoven, NL - 2007, 2008, 2009, 2010 
Linuxconf.eu, Cambridge, UK - 2007 
FrOSCon, Bonn, DE - 2007, 2008, 2009 
FOSDEM, Brussels, BE - 2006, 2008 
Certification
Brainbench Certificates
Linux Administration (General): 4.71/5 (30 March 2005) #1 Belgium [> 99% of all participants] 
Linux Administration (Red Hat 9): 4.34/5 (30 March 2005) #2 Belgium [> 98% of all participants] 
Linux Administration (Red Hat): 3.93/5 (30 March 2005) #2 Belgium [> 96% of all participants] 
Linux Programming (General): 4.21/5 (30 March 2005) #1 Belgium [> 89% of all participants] 
Unix Administration (General): 4.53/5 (30 March 2005) #3 Belgium [> 94% of all participants] 
Education
XIOS Hogeschool Limburg, Diepenbeek (1996 ? 1999) 
Applied Computer Science (~ Bachelor degree) 
Universiteit Hasselt, Diepenbeek (1994 ? 1996) 
Computer Science, 1st year 
Heilig Hartcollege, Heusden-Zolder (1988 ? 1994) 
Latin-Greek, Latin-Mathematics and Science-Mathematics 
Additional activities
Maintainer of RPMforge RPM Repository with more than 5000 Open Source software RPM packages for RHEL, SL and CentOS used by many international companies and organisations. 
Member of the ELRepo initiative providing kernel module packages (hardware drivers) used by many international companies and organisations using RHEL, SL or CentOS. 
Author of various Open Source software projects incl. dstat, unoconv, mrepo, dconf, sarah, wiipresent 
Contributor to various Open Source projects incl. asciidoc, docbook2odf, proxytunnel, Relax and Recover, scannedonly 
Ex-member of the CentOS core team 
Author of the FrOSCon LiveUSB used for informational displays and conference room computers 
python2.7 in free(): error: chunk is already free 0x88831c10
Abort trap (core dumped)
$ env UNO_PATH="/usr/local/lib/libreoffice" gdb -c python2.7.core "python2.7 ./unoconv --stdout -f txt tests/document-example.odt"
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-openbsd5.0"...python2.7 ./unoconv --stdout -f txt tests/document-example.odt: No such file or directory.

Core was generated by `python2.7'.
Program terminated with signal 6, Aborted.
#0  0x0080173d in ?? ()

(gdb) bt
#0  0x0080173d in ?? ()
#1  0x00867ec5 in ?? ()
#2  0x00007616 in ?? ()
#3  0x00000006 in ?? ()
#4  0x00000000 in ?? ()
(gdb) info registers
eax            0x0      0
ecx            0x0      0
edx            0x207cf250       545059408
ebx            0x207d0bd8       545065944
esp            0x8b0cede0       0x8b0cede0
ebp            0x8b0cee08       0x8b0cee08
esi            0x8b5a9000       -1956999168
edi            0x8b0cedf8       -1962086920
eip            0x867ec5 0x867ec5
eflags         0x200286 2097798
cs             0x2b     43
ss             0x33     51
ds             0x33     51
es             0x33     51
fs             0x5b     91
gs             0x63     99

should i build python with debug symbols? is this core dump unoconv or python bug?

dagwieers commented 13 years ago

Thanks jirib. The core dump seems to be Python :-/

Normally setting LD_LIBRARY_PATH should not be necessary, as unoconv sets the LD_LIBRARY_PATH itself. If you like to play around with the implementation, feel free to look at that in the unoconv script. It is essential for UNO that the library path is added to the front of the list before running soffice. Which does not work from the shell.

Also, you can use the -v option to see whether unoconv is swapping the python binary. It should state it does. Especially if you have another LibreOffice/OpenOffice installed on the system in one of the default library paths, this might be the issue of the core-dump as you'd be mixing two incompatible codebases :-/

I know, this is all quite messy :-(

dagwieers commented 12 years ago

Since recently you can new specify what LibreOffice/OpenOffice installation you want unoconv to use, use the UNO_PATH environment to point to your LibreOffice/OpenOffice location. I hope this fixes your problem !

jirib commented 12 years ago

Hello,

I will try your tip. Thank you.

dagwieers commented 12 years ago

Closing this issue. If the issue is not fixed with the current version in Github, feel free to reopen the issue.