Debian Packaging
This a work-in-progress how-to to create Debian packages for Ryzom client and all its dependencies.
You will find all the files here :
http://hg.kervala.net/packaging/file/
3rd-party libraries
libsquish
libsquish is not yet packaged for Debian so I googleed about it and found the Panda3D project (http://www.panda3d.org) was using libsquish and debianized it.
But their scripts were only created static libs, so I slightly modified them.
libwww
libwww is not packaged anymore for recent distribution, so I got the debian directory from the last release and updated it.
Ryzom Core
I just updated files from http://svn.debian.org/wsvn/pkg-games/packages/trunk/nel/
Update changelogs
I coded a little script which convert Mercurial log to ChangeLog file.
If you execute it, it will update the changelog.
Create .deb
You can uncompress .zip files in their respective root directory (NeL in code/nel and Ryzom in code/ryzom).
And type "debuild -b" to create all packages.
Upload to your PPA (Ubuntu specific)
If you don't want to create binary packages now, you can upload sources to your PPA and it will create all packages for all supported platforms.
To do that, I coded a script which can simplify the process :
The syntax to use is : upload_ppa.sh <source directory> <version> <distrib> [minor version]
- "upload_ppa.sh nel 0.7.666 maverick" will create all NeL packages (libs, tools, -dev, etc...) for Maverick Mercat (Ubuntu 10.10)
If you already uploaded a package and just changed packaging stuff, you can append a number: upload_ppa.sh nel 0.7.666 maverick 1
Here are the steps it performs:
- update Debian changelog (it will open it with nano), when you're done, press ctrl+x
- remove temporay files in debian directory
- backup your changelog in parent directory as <source>-<distrib>-changelog (useful if you plan to create packages for several distribs)
- export or copy your sources to ../<source>-<version>
- copy "debian" directory to ../<source>-<version>
- execute debuild -S to create source packages
- ask you confirmation before to upload to your PPA
A lot of checks are missing, you have to manually install a lot of packages such as : debhelper, dput, cvs, svn, git, mercurial
It's uploading to ppa:$USER/ppa so if your username is not the same as your PPA account, it will fail and your "ppa" has to be named "ppa" (the first one should have this name).
Test existing PPA
I'm using my PPA to create NeL/Ryzom packages and all dependencies:
https://edge.launchpad.net/~kervala/+archive/ppa
You can use it directly by adding "ppa:kervala/ppa" to your sources.
WARNING: If you install ryzom-client-data, it will patch/download data files in /usr/share/games/ryzom so be sure you have enough disk space on this disk (it will take about 7 GB), don't install this package if you have your files located elsewhere.
If you installed static client version, you can create a symbolic link from /usr/share/games/ryzom to your real game client directory and then you will be able to patch in your right directory.