[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

state of doom packaging: etch to lenny, plans for squeeze



Hi folks,

I wanted to write a message to summarise the progress made
on doom packaging between etch and lenny, and to lay out
some of my plans for squeeze. Please feel free to comment
on any part of this, but I'd suggest changing the subject
to something contextual as this email is a bit big.

Contents (for ease of searching)

  1. What's new in Lenny
  2. Review of Debian patches
    2.1. prboom
    2.2. freedoom
    2.3. deutex
  3. What's next for squeeze
    3.1. new packages
    3.2. BSP/nodes builders
    3.3. doom packaging guidelines

1. What's new in Lenny
----------------------

We completed a few packaging transitions in the etch-lenny
cycle, including the introduction of "boom-wad" which paves
the way for packaging chocolate-doom. The freedoom package
grew another binary, "freedm", a multiplayer-oriented game.

"doom-package" included in etch grew into the much more
sophisticated and more generic "game-data-packager". This
supports a plethora of doom-related games: doom, doom2 and
the two halves of final doom. Although the package is still
only useful for doom, the groundwork has been put in to
support other split data/engine schemes (such as the quake
family).

2. Review of Debian patches
---------------------------

Here follows a list of patches we carry for upstream doom
packages, what they do, and what their future is. (I
encourage anyone carrying lots of upstream deviations to do
the same from time to time!)

  2.1. prboom
  -----------

    do_not_rebuild_prboom.wad.patch

      this disables the rebuilding of prboom.wad, a resource
      file. As part of adjusing prboom upstream to be DFSG
      compliant, we modify the supplied (prebuilt) resource
      file in the source package. There's no need to rebuild
      it (which would mean adding a build-dep on deutex, at
      least) so we don't, using this patch.

      We are likely to carry this patch as long as we modify
      upstream source to create a dfsg-compatible
      orig.tar.gz.  That might not always be necessary: the
      components of the resource file which are non-free
      might be fixed upstream.  They are certainly keen,
      it's just not easy to do it nicely.

    explain_no_iwad.patch

      we make an informational message more informational.
      The upstream message simply says "IWAD not found" if
      there is no game data present. This patch explains
      where to find game data. It's fairly Debian-specific,
      and imho necessary since we moved the doom-wad
      dependency to Recommends:.

    readme_customization.patch
  
      Some minor customisation of the documentation. We
      remove reference to an upstream file that we don't
      provide in the binary package, and add references to
      the man pages.
  
      I think this would make more sense upstream, and will
      ask them.
  
    windowed_mode.patch
  
      We change the default display mode to windowed, from
      fullscreen. This is to avoid exposing people to some X
      bugs that can occur when we try to set the X
      resolution to a very small number (doom's default
      resolution is 320x200 which is not even 4:3). Some
      drivers support such modes, many monitors do not.
  
      This patch may not go away but might evolve and be
      partially incorporated upstream if we ever come up
      with a cross-game consensus on how to handle user
      preferences for full screen vs. windowed mode.

      I will raise the issue of fullscreen vs. windowed
      mode on the newly created cross-distro games list.
  
  2.2. freedoom
  -------------

    makefile.patch
  
      this hardcodes a path to a binary (deutex). In some
      build environments, /usr/games is missing from $PATH, so
      it cannot be relied upon. However, we modify deutex
      to install to /usr/games (it defaults to /usr/bin) so
      this patch is unlikely to make it upstream. One which
      ensures that /usr/games is in $PATH might however. I
      will look into that.
  
  2.3. deutex
  -----------

    destdir_hack.patch

      Adjusts build scripts to install the binary into
      /usr/games and adds support for a DESTDIR prefix
      which allows the debian build process to "install"
      the package into debian/deutex, ready for stuffing
      into a .deb.

      This is necessary because upstream abhor autotools
      and are unlikely to change that.

    iwad_search_path.patch

      deutex requires an IWAD for many operations it
      performs. Normally it only checks the current working
      directory for one. This patch makes it check in
      /usr/share/games/doom too, which is where the Debian
      packages put them.

      There's a chance this would be accepted upstream,
      although the hardcoded UNIX path might not be
      suitable. I will ask.

    logging_segv.patch

      This fixes a segfault caused by a bad pointer. This
      has been applied upstream but a new release is not
      forthcoming.

    manpage_charset.patch

      Upstream use non-ASCII chars in their manpages. They
      are aware of this issue, but I might ask whether
      they'd accept this patch anyway, which approximates
      the required accent using roff-legal methods.

3. What's next for squeeze
--------------------------

  3.1. new packages
  -----------------

    I want to introduce a few more engines. On the cards are
    chocolate-doom, prboom-plus and remood.

    We do not have a level editor. Yadex used to be packaged
    but was orphaned and removed. Yadex lives on but is a
    fairly old-style UNIX program. I think Darren Salt might
    maintain it externally. Asides from that, I would like
    to package up "wadc", a fairly unique program which lets
    you build levels from scripts. I contacted the upstream
    author (Wouter van Oortmersen, you may remember him as
    the author of cube and sauerbraten) and he has given me
    permission to assume the role of upstream for any
    future changes to the program.

    I think that Debian would benefit from a launcher
    program.  Such a program allows you to tailor the exact
    settings for a given game of Doom: starting level,
    additional maps to use; difficulty; which engine and
    world resources, I think that a launcher program, to
    help users customize a specific game; etc. I do not know
    of a suitable candidate program (there were loads of
    them in the DOS days) so I might have to coordinate
    developing one upstream.

  3.2. BSP/nodes builders
  -----------------------

    One component of level editing is a binary space
    partition (or nodes) builder. I began packaging one of
    them (called 'bsp') but abandoned that after Darren Salt
    had glbsp uploaded (which is a superset of the bsp
    features).

    glbsp also builds additional helper information for
    ports which use OpenGL rendering. Prboom, already
    packaged, has an OpenGL renderer, and can apparently
    benefit from gl nodes. I am going to investigate
    building gl nodes for the freedoom IWAD.

  3.3. doom packaging guidelines
  ------------------------------

    I have a bug against debian-policy queued up to submit
    after this mail to include the virtual package names
    recommended in the doom packaging guidelines into the
    canonical list maintained within policy.

    I am unsure whether or not to submit the doom packaging
    guidelines to debian policy. There is no clear precedent
    (perl packaging appears to be policy, whereas java
    packaging is recommendation). I may seek advice on
    the debian-policy mailing list.

    If we are not to merge the guidelines into the main
    policy package, I am considering converting the doom
    packaging guidelines into a separate package. Then, a
    given stable release of Debian would have packaging
    guidelines within it which corresponded to what was
    convention at the time of release, for whatever value
    that would be.  It would make maintaining the guidelines
    easier.  Precedent includes debian-policy, maint-guide,
    debian-reference and lua5.1-policy.

    I am interested in working on the packaging of quake
    1/2/3 games in Debian. I think such games would benefit
    from a similar set of guidelines for inter-operation
    (virtual package names, file layouts, menu sections,
    etc.). It might be worthwhile to follow the doom-package
    evolution and evolve the doom packaging guidelines into
    game packaging guidelines. This would definitely make
    sense if we ended up packaging the guidelines.

    If we did that, there might be several other packaging
    conventions that we use that could find a home in such
    a document/package.


-- 
Jon Dowland
http://jmtd.net/

Attachment: signature.asc
Description: Digital signature


Reply to: