Archive for June, 2006
Package for OOo Security Bulletin 2006-06-29
OpenOffice.org 2.0.3 has been announced as out !
(french version is expected in the coming hours)
This announcement provides a security
bulletin dealing with 3 potential vulnerabilities detected by internal
security audits.
if you can not install this new 2.0.3 version for whatever reason, the
issue dealing with java applet can be countered as mentionned on the Java Applets,
CVE-2006-2199 dedicated page
(be carefull that other issues remain !!)
The solution proposed works great by deactivating java applets but is not
so easy to deploy at large scale or for regular users. So i used the OOo
Tools for what they are made for : The UNO Package concept that allow to
create great
extensions but also
deploy configuration settings
So this addon reproduces what is proposed on the CVE page. It works for OOo
2.x as well as OOo 1.x
To deploy under OOo 2.x
- Tools > Package Manager
Finding the last changed object in a ZODB.
Today I had to figure out why something that should not create a write
transaction did create one.
The first step is easy, you pack the database, do the thing that should not
modify anything and look in the “undo” tab of your Zope site. There you’ll
see if something was written or not, it comes up as an undoable transaction.
Then it is a matter of figuring out what happens. In this case, it was quite
a complex script with many parts. I wanted to see if I could narrow down the
problem by seeing what was actually changed. So, from my lib/python
directory, I ran this script:
from ZODB.FileStorage import FileStorage
storage = FileStorage('/path/to/var/Data.fs', read_only=1)
iter = storage.iterator()
try:
while True:
transaction = iter.next()
except:
pass
for rec in transaction:
print repr(rec.oid)
This prints out the “oids” of all modified objects in the transaction.
Then I can run … Read more
Creating a new Funambol connector
This blog post will be about sharing what I learned around developping
Funambol Connector. It is not intended to be complete or a replacement of
any Funambol tutorial. However, I’ll try to give some tips here to better
understand.
Basic documentation
First things firsts, before anything else, you should have a serious look
at the
Funambol module development tutorial. This will guide you in the
creation of a dummy connector. However, this paper is not complete enough
for new developers. Thus I’ll try to explain some difficult points here.
Take care of which API reference you are reading. The j2se and DS-server
APIs are different with similar concepts and names…
Understanding modules
First of all, the tutorial is about modules and not connectors… what’s
the difference ? In fact a module is a general additionnal component to
Funambol which contains one or more connectors.
As you might have understood … Read more
My first URE Component in Java
How to create a new URE based application ? The documentation is quite
hard to find, but the main important thing is: create a UNO component
implementing the com.sun.star.lang.XMain interface. This one will contain a
method run() I’ll explain how to create a “Hello URE World”
application.
The project will be organized in the following way:
- idl diretory containing the
application UNOIDL specifications - source directory containing the
implementation of the UNOIDL types - program directory which will
contain the application registries and libraries - MANIFEST.MF file which will
describe the registration class of the component - Makefile file to make the build
much easier - unotest file to
launch the newly created application
UNOIDL file definition
The file idl/org/unotest/Main.idl will
describe a simple service org.unotest.Main exporting the XMain
interface this gives the following code:
module org { module unotest {
service Main: com::sun::star::lang::XMain {
create ();
}
}; };
Note that this service is … Read more
UNO Component for URE test.
I have written an example of URE application just saying Hello URE world in
two languages: C++ and Java.
To run this example you will need an UNIX environment, that is to say a
UNIX or an emulation like cygwin. It uses the following tools:
- GNU Make
- G++ 3.3
- OpenOffice.org 2.0 SDK
- URE installed in /opt/openoffice.org/ure/
Howto run the example ?
You just have to launch make to build the component. Launch
unotest to run the URE starting with the C++ implementation and the
Java one. To clear the directory, use make purge.
How does it work ?
This example is the one given in
this post of my blog. It has been completed by a C++ implementation. The
principle in C++ is the same than in Java: the major problem is the
compilation chain. You can study it by reading the content of the makefile
contained in … Read more
A UNO-URE exercise
I just have completed to write and document a small exercise to learn the
basis for C++ URE based applications. Just get the joint archive and look at
the README file for the instructions.
In the archive you will find: the correction, the question and the makefile
for the build. In a few words, the exercise consists in writing the
specifications and implementation of an application using a Banker and a
Customer asking for money. Completing the exercise without looking at the
answer takes approximatly working 2 or 3 days
(Post originally written by Cedric Bosdonnat on the old Nuxeo blogs.)
MS Office XML format not so clear
Yesterday, in a meeting at school, I could clearly see what could prevent us
to consider MS Office XML file as open.
- There is a processing directive at the beginning of the Word document
saying: “it’s a word document”. This could be interpreted by the XML
parser to do what it want’s wihtout we know it. - To our surprise, there are some XML namespaces where the URN is
no. This means obviously that the format is not fully known by a
customer.
I have an answer now for people saying me that MS Office XML is open…
XML doesn’t necessary mean open !
(Post originally written by Cedric Bosdonnat on the old Nuxeo blogs.)
OOEclipse Integration isn’t dead
A new version
I have released a new version (1.0.1) of the Eclipse plugin to support
OpenOffice.org development. Here are the changes from the previous
release:
- a new UNO-IDL interface wizard
- the new UNO project wizard was extended with the new service wizard as
a second page - definition of default values in the wizards
- build bug fixed (was just a workspace refreshing problem)
Important: The plugin doesn’t work with the gij and gcj
Getting the new version
- Sources available on the api/ooeclipseintegration CVS
- Add http://cedric.bosdonnat.free.fr/ooeclipseintegration as an Eclipse
update site.
What’s next ?
- C++ language support: This mainly includes the cppumaker use
- detection of the Eclipse available plugins to configure the
wizards/li> - complete the code documentation and the user help
- update of the Cheat Sheets
- fix some configuration bugs.
(Post originally written by Cedric Bosdonnat on the old Nuxeo blogs.)
Creating an URE application in C++
I just have finished to write a tutorial on how to create a simple C++
application based on the URE. This paper is written for URE and UNO
beginners and might be missing some important informations.
I would really appreciate every return to modify this tutorial and make it
better: it may be a tool to spread UNO around the world. The tutorial is
refering to an article I wrote earlier: ”
A UNO/URE exercise“. See the attached link to get the tutorial
itself.
(Post originally written by Cedric Bosdonnat on the old Nuxeo blogs.)
Handling GStreamer throught UNO
Big news, I have a first working version of an UNO component to handle
GStreamer from UNO code. This will allow using gstreamer features within UNO
framework such as macro but also Java, c++ or pyUNO programs.
This component has many advantages for OpenOffice.org: it uses a free
multimedia framework, and provide an API. This API has to be extended and
doesn’t give access to every GStreamer feature.
The component is described on my personnal website where you can download
the OpenOffice.org package to install as well as a sample Basic macro
playing an Ogg file.
Of course this is still under development, and may not work in some
cases. However, every feedback is welcome.
Many thanks to Laurent Godard who help me to debug and test the
component
(Post originally written by Cedric Bosdonnat on the old Nuxeo blogs.)