Closed Bug 18706 Opened 23 years ago Closed 23 years ago

[XSL] Make Transformiix buildable on Unix platforms.


(Core :: XML, defect, P3)

Windows NT





(Reporter: nisheeth_mozilla, Assigned: nisheeth_mozilla)


(Blocks 1 open bug)


(Keywords: helpwanted)


(2 files)

Andreas Otte has submitted patches to make Transformiix buildable on Linux which
I'll attach to this bug report.

I haven't had time to do this myself so I'm putting this task into Bugzilla to
make sure I don't forget about it.

Axel Hecht expressed a desire to work on getting Transformiix to build on

Andreas and Axel, do you want to become the Linux and Solaris platform owners
for Transformiix?  Do either of you have CVS write access to the mozilla

Here's Andreas's email:

Hi Nisheeth!

Here are my changes to the tree to get transformiix building as a lib
under linux:


Unpack under mozilla/extensions/transformiix. This includes the    that bring it on the same level as the windows makefiles.
The original Makefile in this directorys have to be removed or at least
renamed. or something like that.


Unpack under mozilla/layout/xsl. This includes the for the
xsl directory.


This adds the transformiix and xsl makefiles to the list. When configure
is called the next time this will create the real Makefile in the

4. mozilla/extensions/transformiix/source/xml/dom/DOM.H has to be
renamed to dom.h

5. Double.cpp.diff
I had to change #ifdef MOZILLA into #ifdef WIN32. I think this has to go
into nspr. carefully testing is necessary.

6. NodeSet.h.diff
Adapt another version of dom.h writing

7. nsIDocumentTransformer.h.diff
I fixed and used this one for unix because I could not fix the idl one.
Maybe you can take a look at the xpidl version.

8. nsXMLContentSink.cpp.diff
make #include <windows.h> conditional and adapt to latest necko changes.

9. nsXSLContentSink.h.diff
#include nsITransformMediator.h

10. XSLProcessorFactory.cpp.diff
remove the string.h hack for non windows

11. various changes to layout and rdf Makefiles to get the xsl
components conditionaly build (MOZ_XSL)

12. and
get a --enable-xsl switch into configure and autoconf. This sets MOZ_XSL
which is used in the makefiles

There are a huge number of warnings when compiling this stuff. Most of
this warnings are not dangerous, others might cause problems with
commercial compilers.

I even tried to load one of the tests, but it failed with an assertion.
So there is much work ahead. But at least it builds now under

Hope I have not forgotten anything ...


Here's an update from Andreas about his previous email:

Andreas Otte wrote:


> 11. various changes to layout and rdf Makefiles to get the xsl
> components conditionaly build (MOZ_XSL)

Building with --enable-xsl causes apprunner to assert on startup at the
moment, to overcome this dont't build rdf/content/src with -DXSL.
Somewhere in there is lurking a bug ...


Here's the email from Axel:

I was trying to get transformiix to build (and run) under solaris 2.7.
I got the sources via cvs on November 8.

To get transformiix to compile I had to rename a number of files, and to
get things consistent, had to edit a few headers. This was mainly to
make up for upper/lower case filenames.
This produced an executable, which gave a bus error.
I tracked the error down to a not right created expat parser. So I
substituted the directories xml/parser/xmlparse and xmltok by their
equivalents in /mozilla/expat.
These won't build (undef'd XML_ROLE...), so I just used the libexpat_s.a
and libxmltok_s.a from dist/lib. But those need nspr, which is probably
not the way to go for the standalone version.

My question:
Is someone working on the unix-related issues of transformiix? As I
heard, that mozilla is the primary repository of transformiix, how much
file-name mangling should be done?
Which is the preferred way to resolve the expat problems?

I'll submit patches to get something working, if you want to.

Axel Hecht
I have write access to the repository. I don't know much about XSL, just got
something building. I think Axel and I can sync our changes for a start. Axel?
I have new code which allows TransforMiiX to be built on Linux and Solaris.
Actually my development environent is Linux. If any of you have Write Access to
the CVS I would love to get my latest build committed. I have been unable to log
into the CVS server. I also have bug fixes and more features implemented.
I have looked over the description of Andreas' patch, and don't find anything, I
have done. In fact, it's further ahead quite a bit.
I wonder if we could build the transfomiix executable as well. May be good to
sort out some testing, whether bugs result from the glue or the transformiix
BTW, I don't have CVS write access, and currently I don't have a good place to
put mozilla (/tmp is no good), but this may change. I will wait for the next
state on CVS and check it out on solaris. If I think I can contribute, I will do

Assigning bug to myself for now...
I think it would be nice to build the standalone-executable as a testprogram. To
get there I think XSLProcessor.cpp has to be broken up into a mozilla part and a
standalone part which delivers all the stubs for printing, expat, ... which are
not needed my mozilla.
This way we would get the core library which could be linked with some glue code
to mozilla on one side and also with a support-library and all the other
transformiix librarys to build the standalone executable without any defines or
Currently I'm getting this when building with xsl enabled and trying to load the
functions example:

PreCondition: "Error: Parser's IStreamListener API was not setup correctly in
constructor." ((eNone==mParserContext->mStreamListenerState)) at file
nsParser.cpp, line 1107
Break: at file nsParser.cpp, line 1107

Some time ago I had build the standalone version and it did the conversion
right, so this problem is somewhere in the gluecode.
Some more integrating with Mozilla would be nice, too. I've found a new String
class in there :-(.
Target Milestone: M16
Keywords: helpwanted
Summary: [HELP WANTED] [XSL] Make Transformiix buildable on Unix platforms. → [XSL] Make Transformiix buildable on Unix platforms.
Transformiix has been building on Unix for some time now.  Marking bug fixed.
Closed: 23 years ago
Resolution: --- → FIXED
Marking fixed per last comments.
Attachment #2890 - Attachment description: These are some and configure, scripts. Building in separate dir does not work, that needs a different building scheme. But at least compiler and options are passed to all steps of compiling. Tested with gcc/g++ and GNUmake on → These are some and configure, scripts. Building in separate dir does not work, that needs a different building scheme. But at least compiler and options are passed to all steps of compiling.
You need to log in before you can comment on or make changes to this bug.