1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Ticket #634 (closed defect: fixed)

Opened 15 months ago

Last modified 8 months ago

txml lib is bundled, blocks packaging.

Reported by: alec_leamas Owned by: pouillot
Priority: major Milestone: 2.1.0
Component: Build system Version: 2.0.0
Keywords: bundling packaging txml expat Cc:

Description

Because major distributions has a policy not to accept bundled libraries, the bundled txml library blocks packaging. See also http://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries (fedora) and http://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles (debian, also applies to ubuntu).

Attachments

params.cpp.expat.patch (381 bytes) - added by beaglejoe 11 months ago.
fix-encoding.sh (3.0 KB) - added by alec_leamas 11 months ago.
Ouch! bugfix. Simple shell script to handle xml files with bad encoding

Change History

Changed 11 months ago by pouillot

  • status changed from new to accepted
  • component changed from To be defined to Build system
  • owner changed from somebody to pouillot
  • version changed from 2.0.0-dev to 2.0.0
  • milestone changed from to be defined to 2.1.0
  • keywords txml expat added

Just starting to work on this :

  • on the Windows side first : need to build a new MSVC 2005 "3rdParty" package (will also upgrade our other 3rd party dependencies to the latest stable releases),
  • then on the Linux side (easier)
  • whatever, will try Expat 2 first, and see if it's simple or not to adapt the code to the API changes (txml was some piece of Expat 1)
  • will do my best in order SD compiles and runs just the same :
    • keep txml in the build system for the moment
    • use a CMake option to disable/enable it
  • will need your help, you guys with so many different platforms, to check if :
    • you have easy access to a distro-stock Expat 2 devel package in order to compile,
    • SD still works as expected.


Changed 11 months ago by alec_leamas

On the Linux side, pkg-config is ubiquitous. It can be used to determine whether expat exists, it's version level and flags needed to compile and link with it. It's supposed be easy to use from cmake - although for me, nothing is easy in cmake.

On Fedora 16 and 17 expat is 2.1.0

Changed 11 months ago by beaglejoe

Changed 11 months ago by beaglejoe

On Windows, I am building and running with Expat 2.1 (from tarball at sourceforge)
No source changes except #includes were needed. (see patch)
I removed txml and gennmtab
Two .h files expat.h and expat_external.h need to go in 3rdParty/include
and of course the lib (libexpatMT) goes in 3rdParty/lib

Changed 11 months ago by pouillot

Thanks for the tips, Alec and Beaglejoe, will save me time :-)

Changed 11 months ago by alec_leamas

Ouch! bugfix. Simple shell script to handle xml files with bad encoding

Changed 11 months ago by beaglejoe

I used Alec's shell script to convert xml files.
I am once again running SD (from svn) with Expat 2.1

Changed 11 months ago by pouillot

Some news on the WIP port to Expat 2 :

  • under Linux Mint Debian Edition AMD 64, just built and run with stock Expat 2.0 package (Debian testing) (with converted XML files).
  • the cmake configuration code is thus ready for Linux
  • I have now to tweak the last bits for making it work under Windows :-)

Changed 11 months ago by pouillot

Now, these last Windows "bits" are done, so :

  • once I've commited the fixed XML files (see #718 : bad XML encoding),
  • once I've checked back that these bits don't break the Linux side,

I'll commit it all.

Changed 11 months ago by beaglejoe

Which package and project are you using for the Windows build?
I used expat\expat\lib\expat_static.dsp from http://expat.cvs.sourceforge.net/expat/expat.tar.gz
For testing and reporting, I would like to use the same configuration as you.

Changed 11 months ago by pouillot

I chose the most obvious one = the latest official one :
http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download

It works perfectly (actually tested), so I'd prefer we stick on it :-)

(the one you mention seems very similar, shows a 2.1.0 version in its README file, but some non-source-code files are lacking, added, or even slightly differing ... don't know why ...)

And as for FreeSolid? (see my last post on the devel list about #712), if you're patient enough (a few days), you'll got (at SF.net) the source packages and the lib types/names choices I made to build the MSVC 2005 binary package, as well as (through SVN) the updated CMake configuration to make it all work with SD in a snap :-)

Changed 11 months ago by pouillot

Just committed (r4790) the CMake configuration changes in order to support compiling / linking / running without txml at all.

Can be disabled at CMake-configuration-time, through OPTION_3RDPARTY_EXPAT (but enabled by default for all platforms), so, to make the build work :

  1. Windows + old MSVC 2005 3rd party package (or any other compiler) : simply set OPTION_3RDPARTY_EXPAT=false (use bundled txml),
  2. Windows + new 2.1 3rd party package : wait a few hours for my publishing it, and it'll work out-of-the-box
  3. Linux : install the Expat 2 package for your distro. and it'll work out-of-the-box
  4. Linux + no Expat 2 package for your distro. : simply set OPTION_3RDPARTY_EXPAT=false (use bundled txml).

Of course, cleanup first your build folder / CMake cache.

In the following weeks (months ?), I plan to _remove_ txml support and OPTION_3RDPARTY_EXPAT switch ...

So please, test with 3rd party Expat (= without txml), in order we can detect any issue for some special cases :-)

Changed 11 months ago by kroartem

Seems to work under ubuntu 12.10 alpha + expat 2.1 + Speed-dreams r[4795]

Changed 11 months ago by kroartem

Works under ubuntu 12.05 + expat 2.0.1 + Speed-dreams r[4795]
Both systems are 64-bit.

Changed 8 months ago by pouillot

  • status changed from accepted to closed
  • resolution set to fixed

Thanks for your help :-)

Note: See TracTickets for help on using tickets.