[XSL] Make Transformiix buildable on Unix platforms.

VERIFIED FIXED in M16

Status

()

Core
XML
P3
normal
VERIFIED FIXED
19 years ago
18 years ago

People

(Reporter: Nisheeth Ranjan, Assigned: Nisheeth Ranjan)

Tracking

(Blocks: 1 bug, {helpwanted})

Trunk
x86
Windows NT
helpwanted
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Assignee)

Description

19 years ago
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
Solaris.

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
repository?

Here's Andreas's email:

***
Hi Nisheeth!

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

1. Makefiles.zip

Unpack under mozilla/extensions/transformiix. This includes the
Makefile.in    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. Makefile.org or something like that.

2. Makefiles2.zip

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

3. allmakefiles.sh.diff

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
directorys.

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. configure.in.diff and autoconf.mk.in
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
linux/unix.

Hope I have not forgotten anything ...

Andreas
--
***

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 ...


Andreas
--
***

Here's the email from Axel:

***
Hi,
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
--
***
(Assignee)

Comment 1

19 years ago
Created attachment 2826 [details]
Andreas's patch for building Transformiix on Linux

Comment 2

19 years ago
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?

Comment 3

19 years ago
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.

Comment 4

19 years ago
Hi,
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
itself.
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
so.

Axel
(Assignee)

Updated

19 years ago
Status: NEW → ASSIGNED
(Assignee)

Comment 5

19 years ago
Assigning bug to myself for now...

Comment 6

19 years ago
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
switches.

Comment 7

19 years ago
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.

Comment 8

19 years ago
Some more integrating with Mozilla would be nice, too. I've found a new String
class in there :-(.

Comment 9

19 years ago
Created attachment 2890 [details]
These are some Makefile.exe.in and configure, configure.in 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.
(Assignee)

Updated

19 years ago
Target Milestone: M16

Updated

19 years ago
Blocks: 17199

Updated

19 years ago
Keywords: helpwanted

Updated

19 years ago
Summary: [HELP WANTED] [XSL] Make Transformiix buildable on Unix platforms. → [XSL] Make Transformiix buildable on Unix platforms.
(Assignee)

Comment 10

18 years ago
Transformiix has been building on Unix for some time now.  Marking bug fixed.
Status: ASSIGNED → RESOLVED
Last Resolved: 18 years ago
Resolution: --- → FIXED

Comment 11

18 years ago
Marking fixed per last comments.
Status: RESOLVED → VERIFIED
Attachment #2890 - Attachment description: These are some Makefile.exe.in and configure, configure.in 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 Makefile.exe.in and configure, configure.in 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.