Opened 7 years ago

Closed 6 years ago

#519 closed bug (fixed (in master))

Get the debian bits to the point where they can be autobuilt

Reported by: takkaria Owned by: magnate
Milestone: 3.1.1 beta Keywords:
Cc:

Description

Right now, they at least build an installable package, but other work needs doing:

It would be good to have a script/pkg_deb file which does this and sorts out versioning and things too.

Change History (7)

comment:1 Changed 6 years ago by takkaria

  • Milestone changed from 3.1.0 to 3.1.1

not release-necessary; when 3.1 is released, Magnate will be packaging it so we can incorporate the scripts he uses.

comment:2 Changed 6 years ago by magnate

  • Owner set to magnate
  • Status changed from new to assigned

comment:3 Changed 6 years ago by magnate

As of [eec04ab] (SVN r1268), a proper debian package can now be built by anyone who checks out trunk, runs autogen.sh and then executes "sudo debian/rules binary" - providing their system meets the build-deps (these are listed in debian/control).

At the moment it builds only curses and x11 - I will fix it so that it automatically builds the SDL port as well. If anyone wants the GTK support built too, say so here. It's never been included in any previous Debian package - I have asked Manoj (the current Debian maintainer) whether he's up for changing this.

Grateful for any views on whether this is sufficient (it's sufficient to build and upload any official Debian packages we want to submit, at any point in the release cycle). Arranging for automatic building of nightly debs is a separate challenge (changelog, version numbering, etc.).

comment:4 Changed 6 years ago by magnate

Note that running <sudo debian/rules binary> runs configure and overwrites any previous configuration. This is why I need to ensure that it builds SDL support.

comment:5 Changed 6 years ago by magnate

As of [a16391a] (SVN r1271), now builds SDL support by default. I've tested the resulting package on Lenny, and all three of ncurses, X11 and SDL work (everything is in the right place etc.). I've sent the package to Manoj for comments, but unless nightly debs are required I'm happy for this ticket to be closed.

comment:6 Changed 6 years ago by magnate

I've discovered why the Debian packages have never previously included gtk support: gtk does not like setgid, which is a fundamental feature of the way the Debian package works (along with numerous other games and apps). This is a well-documented and almost irreconcilable issue, but there are three options:

  1. Continue as before, without gtk support for Debian users
  2. Change the way the Debian package is built so that it doesn't use setgid (I'm not confident that I could do this before 3.1.1 - it's more complicated than it sounds)
  3. Change the way main-gtk runs, so that it drops the setgid privileges before calling gtk. This is how games like Gnome Breakout get around the problem, but I confess I don't entirely understand how it solves the problem. For example, one need for setgid is to write to the system-wide score file - but you don't do this until the end of the game, long after you have dropped privileges and invoked gtk. As I say, it works for other games, but I can't yet see how to implement it in Angband.

I don't really have a view in the longer term (I guess I should talk to whoever wrote or maintains main-gtk), but I think 1 is the only realistic option for 3.1.1

comment:7 Changed 6 years ago by magnate

  • Resolution set to fixed
  • Status changed from assigned to closed

As of [516a914] (SVN r1310) I'm happy enough to close this ticket. If gtk wins out over SDL as the preferred Linux version, I'll open a separate ticket to reconcile the Debian/gtk incompatibility.

Note: See TracTickets for help on using tickets.