Warning: Can't synchronize with the repository (Couldn't open Subversion repository /home/crystal/scm/crystal: SubversionException: ("Expected FS format between '1' and '3'; found format '4'", 160043)). Look in the Trac log for more information.

Crystal Space Version 1.4 Planning


The 1.4 version is drawing closer, and this page is thought as a more fine-grained planning of what needs to be done and how to do it to get a 1.4 release out the door.
The SVN URL for CS 1.4: svn.code.sf.net/p/crystal/code/CS/branches/release/V1.4
The SVN URL for CEL 1.4: svn.code.sf.net/p/cel/code/cel/branches/release/V1.4
The cswin32libs version to use with 1.4 is 1.4_002.


CS 1.4 branch was created from trunk on 2008-06-05 by r29844.
CEL 1.4 branch was created from trunk on 2008-06-05 by cel:r3452.

Tasks/bugs for each step can be found under
Version 1.4 pre1 (CS)
cel:milestone:"1.4RC1" (CEL)

See CS branch-specific changes, integrated revisions etc. at log:CS/branches/release/V1.4
See CEL branch-specific changes, integrated revisions etc. at cel:log:cel/branches/release/V1.4

Guidelines for 1.4 release branch

To make sure we have a stable 1.4 there will be a set of guidelines to follow whenever touching code in the 1.4 release branch. Follow these!

  • Preferably no code should go directly into the 1.4 branch. Write it, debug it and commit it on the trunk, make sure it is tested and then integrate it. However sometimes it is too hard to test on the trunk especially when trunk evolved too far. In that case doing it the other way around is also acceptable.
  • No new features, only bugfixes.
  • Make sure code follows CS coding guidelines.
  • Make sure that jam check builds cleanly and that all tests pass.
  • Whenever you integrate a version from trunk to 1.4 branch, note it with date, time, revision and name in the list below. It might later be changed to be automatic, but for now this manual list is what we have.

See also the general guidelines for branch handling in [FuturePlanning].

Examining what needs to be merged

Easiest way is to compare log:CS/trunk with log:CS/branches/release/V1.4

Instructions on merging a specific changeset

To merge changeset N from main trunk to 1.4 follow this procedure:

  • Get  svnmerge.py script.
  • Go to the local CS_1.4 directory.
  • svnmerge.py merge -S trunk -r N
  • svn commit -F svnmerge-commit-message.txt (that is, commit and use the auto-generated file as comment)
  • Go mark in the relevant tickets which bugs are fixed by the merge.

To merge multiple revisions at once, ie. from trunk revisions N to M and revision Y:

  • svnmerge.py merge -S trunk -r N-M,Y

Making a tag for the Release

svn copy https://crystal.svn.sourceforge.net/svnroot/crystal/CS/branches/release/V1.4 https://crystal.svn.sourceforge.net/svnroot/crystal/CS/tags/V1.4.1

Candidates for 1.4.1

Here is a list of revisions that are in trunk and might still need to be merged in 1.4 branch.
By adding revisions here it is easier to keep track of things we still might need in 1.4 branch.

  • r33344: res, circular ref fix.
  • r33417: res, get rid of ptmalloc temp files.
  • r33609: sunshine, createproject.sh fix for locating CEL libraries. Resolves #737.
  • r33655: res, avoid libpng deprecation. Resolves #803.
  • r33695: sunshine, fix missing null terminator in csTinyXmlDocument::Parse(iDataBuffer*) overload. Resolves #805.
  • r33734,r33736: khakilord, resolve periodic pause forever issue on Mac OS X.
  • r33845: res, take 64-bit _opaque_pthread_t* type into account.
  • r33854: res, set CS_CONFIGDIR when building VFS, so a vfs.cfg at a default install location can be found.
  • r33867: sunshine, fix OSX 10.6 OpenGL context-related build error. Resolves #810.
  • r33872: sunshine, fix OSX 10.6 CoreAudio-related build error. Resolves #811.
  • r33877: weltall, apply ogg/vorbis patch. Resolves #812.
  • r34021:34022: sunshine, fix Windows symbolic-link installation problems. Resolves #813.
  • r34091: sunshine, update CS repository URL in documentation. Resolves #817.
  • r32120, r35138: mgist, res, Python.h inclusion tweaks for MSVC.
  • r35052: rlydontknow, fix m4_default invoked by CS_CHECK_PROG_VERSION() for modern Autoconf.

Revisions merged for 1.4.0

  • r29908, r29973: dingobloo, fix for compile warning resulting from change r29866 (made csPath a csObject) and removal of now useless csNamedPath.
  • r29921, r30910: res, vknecht, memdebug build fixes.
    • However, I'm getting Floating point exceptions at start of any CS app. To be investigated (opening a ticket later if need be).
  • r29932: mgist, removed trailing comma on enum.
  • r29938: mgist, warning fix for out of order vars in csFog struct.
  • r29969: mgist, fixed a crash in UnloadHelper.
  • r30010: res, Build (cscaca) w/ latest version.
  • r30036: mgist, fixed a bug in genmesh where the user renderbuffers weren't being updated from the legacy renderbuffers.
  • r30037: mgist, added a check to the legacy renderbuffer so that it removes the CS_BUFFER_COLOR user renderbuffer if colors are not set.
  • r30047, r30077, r30082, r30083, r30127: res, thebolt, fix csev* breakage & complete removal of CS_CONST_METHOD and CS_PURE_METHOD.
  • <rev tbd>: animesh changes. (new in 1.4 anyway, so can as well use the same state as in trunk.)
  • r30165: res, Warning fixes from 'Celestar'.
  • r30166: res, FreeBSD build fix by Maxime Henrion.
  • r30186: thebolt, lighter2 virtual address space exhaustion workarounds.
  • r30234:30235, r30354, r30357:30358, r30363:30365, r30367:30369, r30371:30375, r30407, r30409, r30411:30412, r30422, r30429:30431, r30433:30435 : erluk, make plugins and libraries use the new event system
  • r30243: darek, Frank's fixes for 'jam install' (partial merge, only vfs.cfg.template part).
  • r30244, r30258, r30268: terrain2 support for lighter2
  • r30332, r30687: res, fixes for static build.
  • r30396, r30408, r30417, r30419:30420, r30424:30426, r30441, r30443:30450: erluk, make applications use the new event system
  • r30350, r30359, r30360: res, avoid certain allocator mismatches. Merge if no problems in that area come up.
  • r30486: mgist, Added a missing dupe check in LoadLibrary.
  • r30489:30491, r30514, r30539, r30549: sunshine, various fixes for OpenSolaris (see #511).
  • r30498:30503: res, various Mac, PPC and endianess fixes.
  • r30553: thebolt, Fixed a bug whereby bruteblock renderer in terrain2 would crash if you don't have any material palette.
  • r30556: thebolt, fixed two bugs whereby RenderBufferLock and VertexListWalker would not work on null buffers.
  • r30557, r30564: thebolt, "smooth heightmap" feeder parameter addition for terrain2.
  • r30570: mgist, Added checkDupes option to lighter2.
  • r30576: mgist, Disabled RECT-texture extension on all platform (Nvidia driver).
  • r30586, r30588:30589, r30596, r30598:30599, r30601, r30605:30606, r30610:30611, r30614, r30618, r30620:30622, r30627, r30635, r30957, r30964, r31036, r31478, r31519, r31529, r31585:31586, r31599:31600, r31602: mgist, jwir3, collada convertor and triangulate fixes and improvements.
  • r30698: erluk, Updated jamtemplate for new event system.
  • r30710: vknecht, Added terrain2 to walktest static plugins list.
  • r30746:30749, r30751, r30755, r30757:30758, r30760:30761, r30784:30785, r30805, r30908:30909, r30918, r30928, r30979, r30982, r30985: res, andres, sunshine: filelist generation stuff.
  • r30756: vknecht, Improved jamtemplate with default VFS settings, default map, actor movement code and other minor things.
  • r30759: vknecht: Better starting position for terraini level.
  • r30771:30774,30776: res, Fixed sndsys software renderer to not crash when loaded after open event was sent.
  • r30775, r30897, r30917, r30919, r30930, r30932, r30934, r30937,r30965:30966, r30968:30970, r30986:30989, r30998:30999, r31001, r31070:31072, r31076, r31083:31085, r31090, r31091, r31092, r31138, r31139, r31247, r31279, r31501: res, andres, sunshine: WiX/MSI automatic generation stuff.
  • r30819: mgist, Fixed compile warning.
  • r30822: mgist, Patch from Andreas Heinchen to fix uninitialised var usage reported by valgrind.
  • r30832: mgist, Added a check that the cell is loaded in terrain2's collidetriangles. If the terrain is used only for collision and not for rendering then the cell wouldn't be properly loaded.
  • r30837:30838: mgist, Fixed compile errors when compiling with --disable-ptmalloc.
  • r30846: thebolt, Fixed crash in terrain2 if renderer isn't set.
  • r30980: vknecht, Fixed the jamtemplate so that it can generate MSVC9 project files.
  • r30990, r31061: mgist, res, Tinyxml fixes.
  • r30991, r30995: mgist, jorrit, fixes for csHashReversible's DeleteAll.
  • r30997, r31019, r31021: jorrit, sunshine, added frankie model.
  • r31015: dentoid, Fixed an error in the normal fetch of the terrain2 bruteblockrenderer.
  • r31028: sunshine, compilation warnings fixes in skeleton2.
  • r31048: jorrit, crash fix in the loader on badly formed world files.
  • r31050: sunshine, added macro CS_PATH_CANONICALIZE() to path.m4. Fixes #530.
  • r31087, r31254: res, sunshine: fixes for crystal.m4, CEL could not detect CS.
  • r31095: Khaki, bug fix for collision detection.
  • r31251: sunshine, publish iConsoleInput/iConsoleOutput to bindings.
  • r31255: sunshine, fix for cs-config unconditionally tranfsorming absolute MSYS-style paths to Windows-style. Fixes #541.
  • r31295: allcolor, resolves #499 and #543 (see comment:ticket:543:26 for merge instructions). After merge, test that #499 is fixed, and close if so.
  • r31310: res, fix gl3d Close() not clearing open flag.
  • r31321, r31322: res, GL ext manager improvements, GLX canvas multisampling
  • r31340: res, Multiply by 2 when using static PVL.
  • r31357, r31360, r31363, r31364: sunshine, resolve Java Swig syntax errors. Fixes #492.
  • r31365: sunshine, locate and utilize libjvm for csjava.
  • r31371: sunshine, more robust libjvm directory check (as originally intended).
  • r31404: sunshine, resolve #550.
  • r31444: vknecht, patch from Distantshores to prevent pop-up windows in fullscreen mode. Fixes #180.
  • r31447: sunshine, resolve #554.
  • r31449: res, fix bindoc GetAttributeValue() returning garbage for non-string attributes.
  • r31453:31456: philwyett, sunshine, docs tweaks.
  • r31474: vknecht, print warning when xf86vm is not available to set video mode (eg. fullscreen). Fixes #531.
  • r31480, r31482, r31483: res, use static color buffer in std_lighting_fixed shader. (IIRC 1.4 lighter2 also produces static color buffers for per vertex lighting)
  • r31523:31524: vknecht, typo fixes, and fix for OpenAL buffers not being cleaned do to those being removed before the source.
  • r31526: vknecht, fix for OpenAL device not being closed when the OpenAL renderer plugin is closed.
  • r31530: vknecht, fix/workaround for sound screetches when using OpenAL.
  • r31536: vknecht, applied patch from Chris Robinson, fixes offset problems when playing a sound more than once.
  • r31543, r31547: jorrit, added a new particle effector to interpolate parameters like mass, color, angular velocity, linear velocity, and particle size.
  • r31553: caedes, added simplestaticlighter to scripting bindings.
  • r31528, r31560, r31564: vknecht, added simplestaticlighter support to the jamtemplate (but disabled it by default), and more generic GetConfigVector().
  • r31592: sunshine, skeleton2 warning fix.
  • r31603:31604: mgist, pass needed data (by shaders) from cal3d to CS, so that (for example) normal mapping work on cal3d models.
  • r31606:31609: mgist, Speex plugin.
  • r31622: mgist, Fixed ticket #505 (simdtest incorrectly compiled as GUI).
  • r31623, r31625: mgist, Patch for ticket #569 (tweak gldrivers.xml for mesa 7.0/Intel).
  • r31624: mgist, Fixes so the speex plugin works with speex 1.0.x
  • r31630: mgist, Fixed header deallocs in the speex plugin.
  • r31632,r31634:31635: mgist, res, speex_header_free() check.
  • r31639, r31643:31646: res, fixes for csparser related to renderbuffer. Fixes #573.
  • r31641:31642: mgist, Fixed a crash in the speex plugin. Fixed uninit pointer.
  • r31654: res, fixed wrong alpha modifier in terrain_fixed_splatting.xml.
  • r31690: vknecht, build fix for bullet plugin with latest bullet version (2.73sp1).
  • r31710: vknecht, fix crash with latest ODE version (0.10.1).
  • r31813: res, fixed ticket #591 (Protect queries/changes of the GL_POINT_SPRITE_ARB state with tests for it's extension).
  • r32072, r32085: vknecht, updated python scripts for API changes and fixed pysimpcd.py.
  • r32114: caedes, fix for cel:#87.
  • r32115:32117: sunshine, resolve #620.
  • r32139: Khakilord, resolve #587.
  • r32193: sunshine, fix Speex configure.ac botch.
  • r32195: sunshine, fix documentation error in checktt2.m4.
  • r32196, r32198: sunshine, generalize cs_check_host.m4 macros.
  • r32202: sunshine, remove configure.ac detritus.
  • r32204: sunshine, fix -fno-strict-aliasing botch in configure.ac.
  • r32206: sunshine, add Mac OS X universal binary support to build system. Resolves #632.
  • r32208: sunshine, add scrollwheel support to Mac OS X. Closes #634.
  • r32213: sunshine, fix Mac OS X universal binary CoreAudio problem. Resolves #635.
  • r32225: philwyett, Eliminated string literal warning under GCC 4.3.x on Ubuntu jaunty development version.
  • r32227:32228: zeitherr, sunshine, add Mac OS X key-down autorepeat support. Closes #637.
  • r32229: sunshine, fix Mac OS X ar universal binaries incompatibility. Resolves #638.
  • r32234: sunshine, macosx.jam comment correction.
  • r32236: vengeance, added missing cleanup of sounds to auto-unregister in OpenAL renderer.
  • r32251: mgist, Fixed z value calculation in csTerrainSegmentCellCollider::GetIntersection.
  • r32259: jwir3, changed tri3dtest to rotate the camera so the user sees something by default.
  • r32277: mgist, Fixed uninit vars in csHitBeamResult.
  • r32284,r32285: mgist, Fixed decal z-mode.
  • r32294: zeitherr, Mac OS X mouse hide/show refinements.
  • r32314: mgist, Fixed circular ref in proctex.
    • (vk) seems unnapropriate for 1.4. flarge's proctex becomes overly bright, and textures don't animate.
  • r32335,r32336: mgist, Fixed loading of dxt1a compressed dds textures. Added some preliminary support for DX10 dds textures to the dds loader.
  • r32356: mgist, Made sure both min_z and max_z get initialized by csBox3::ProjectBox(). Resolves #641, uninit var reported by valgrind.
  • r32305,r32307: sunshine, fix Sparc build problems. Resolves #645 and part of #515.
  • r32341: vknecht, warning fixes.
  • r32349: khakilord, fix OpenGL clipping errors reported by g2dtest. Resolves #597.
  • r32358: vknecht, fixes for OpenAL plugin wrt. short sounds. Resolves #651 and #657.
  • r32380: res, csColor4 operators ignoring alpha fix.
  • r32430: res, fix CEGUI crash. Resolves #661.
  • r32446,r32448: weltall, improve csCommandLine::GetName() documentation. From #663.
  • r32447: weltall, add multi-file support to docconv. Closes #663.
  • r32148,r32452: res, Updates for new winlibs.
  • r32455: res, remove wxtypical workspace.
  • r32470: sunshine, fix emission of MMX, SSE, SSE2 optimization CFLAGS.
  • r32833, r32941: sunshine, fix Java SDK (JDK) check for modern OpenJDK. Also resolves #690.
  • r32859: sunshine, fix sprcal3d memory leaks. Resolves #692.
  • r32880,r32937: sunshine, invoke relaytool explicitly via bash. Resolves #649, #695.
  • r32881: sunshine, fix bogus CS_CHECK_PROGS() invocation for install command.
  • r32390,r32879: res, varslot, fix gl3d trying to activate non-present TC units.
  • r32947: sunshine, only check -mcpu=v9 on Sparc. Resolves #697.
  • r32990: zeitherr, resolve Mac OS X deprecation in GLOSXDriver2D.
  • r32996: sunshine, work around Swig API change. Resolves #677.
  • r33000: sunshine, fix CS_CHECK_JAVA() to respect its EMITTER argument. Resolves #701.
  • r33020:33021: xordan, add support for setting collision data on null meshes, and identation fixes.
  • r33067:33068, khakilord, csCollider overhaul, and fixes to better prevent stickiness.
  • r33062: sunshine, fix undefined GLOSXDriver2D::GetProcAddress(). Resolves #708.
  • r33082: xordan, fix Speex playback. Resolves #714.
  • r33129: res, MSVC warning fixes in collider.
  • r33185: weltall, fix csSpriteCal3DMeshObject::SetDefaultIdleAnim() to set proper idle overrides. Resolves #725.
  • r33179: khakilord, fixes for actor collision when jumping and for maps with geometry bugs on the floor.
  • r33203: khakilord, reduced maximum y difference between unwalkable and walkable surfaces.
  • r33236: vknecht, add new-events related headers to common bindings inclusions. Fixes #678.

CEL candidates



  • Can we release binaries this time, since the conversion to shared libraries is complete?