Building DEBs from SubVersion

From MythTV Official Wiki
Revision as of 01:13, 19 November 2011 by Wagnerrp (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Time.png Outdated: The information on this page may no longer be relevant to the current release of MythTV, 0.27.4. Please consider helping to update it.

How to build Debian packages from Subversion. Currently we are in the planning and development process to put these packages together.

It should go without saying: While I have had no problems with going from 0.18 to pre-0.20 packages on Ubuntu Dapper, the same may not be true of you. You are going to end up installing packages that aren't considered a stable release of MythTV. Remember to backup mythtv setup data you don't want to lose.

Creating .deb files

Simple creation using checkinstall

You can create deb files using the normal configure-make process see , but stopping before the make install step, and running checkinstall to build and install your own deb package file.

Doing the job properly- creating real deb packages

Some outside reading about the various processes is useful. Please take some time to read the Ubuntu Packaging Guide.

After learning about the changelog, control, and rules file you can use the debian directories from this post to get started. Credit for those scripts go to Anthony J. Mirabella. For a very similar system for Debian Sid see [1] by Tino Keitel. In fact he has prepackaged packages as recent as August 7, 2006 (customized scripts and debian directories to follow)

Changes I have made to the originals in order to compile pre-0.20:

  • mythtv
    • control: changed instances of libmyth-0.19-svn in control to libmyth-0.20-svn
    • changed filenames libmyth-0.19-svn.filesfiles in the debian directory to libmyth-0.20-svn.files (same with their -dev counterparts)
    • rules: removed --enable-dvb-eit in ./configure line
  • myththemes
    • no changes required
  • mythplugins
    • rules: replace --disable-mythgame with --enable-mythgame
    • rules: add mythgame to the directory list in ln 65
    • rules: add
      dh_installdocs -pmythgame mythgame/README mythgame/UPGRADING
      after ln 100
    • control: replace references to libmyth-0.19 to libmyth-0.20-svn
    • control: libcdaudio0-dev to libcdaudio-dev
    • control: Had to add an entry for mythgame
mythtv (0.20.svn-10688) unstable; urgency=low

  * Update source to SVN version 10688

 -- Michael Edwards <medwards@ualberta.ca>  Sun,  6 Aug 2006 21:28:42 -0600

NOTE: These scripts will not create packages for mytharchive, mythcontrols, mythflix, or mythphone. Eventually I make include them in updated debian dirs but for the moment I can't really test them against past functionality.

After this is configured you can enter the individual directories from the Subversion repository and run:

 sudo dpkg-buildpackage -rfakeroot -us -uc -nc--

Before this I ran:

 dpkg-buildpackage -S -rfakeroot--

to build the -dev package. I vaguely remember it being requested by the following packages, YMMV.

You can also try running buildpkg from the tarball, but do NOT forget to change the -k argument (that is PGP-related information that should be unique the original author of the script) and the svn-changelog-update.sh file to reflect your own update message and the pre-0.20 version.

Proposed Packaging Structure

A potential packaging structure from Buzz on mythtv-dev:

Base mythtv packages:

  • mythtv-themes (non-optional, base themes)
  • mythtv-setup (initial config tools)
  • mythtv-frontend
  • mythtv-backend
  • mythtv (common myth stuff required for backend and frontend, depended on by these)
  • libmyth
  • libmyth-devel (headers, etc. only required if building against libmyth)


Optional plugins packages:

  • mythplugins (meta-package of dependancies to bring all the plugins below onto a instalation)
  • mythweather
  • mythvideo
  • mythphone
  • mythnews
  • mythmusic
  • mythgame
  • mythgallery
  • mythdvd
  • mythbrowser
  • mythweb


Optional themes packages:

  • mythtv-theme-Retro
  • mythtv-theme-ProjectGrayhem
  • mythtv-theme-MediaCenterOSD
  • mythtv-theme-MediaCenter
  • mythtv-theme-MediaCenterWeb
  • mythtv-theme-MythCenter
  • mythtv-theme-visor
  • mythtv-theme-abstract
  • mythtv-theme-Titivillus
  • mythtv-theme-isthmus
  • mythtv-theme-sleek
  • mythtv-theme-purplegalaxy
  • mythtv-theme-photo
  • mythtv-theme-gant


Other optionals (may not be part of official mythtv):

  • mythmkmovie
  • mythstream


Finally:

  • mythtv-suite (meta-package that depends on all the above packages, and gets it easily installed)

Ubuntu Packaging Structure

This tree only loosely shows dependencies. Several packages are Suggested or Recommended but logically require preexisting portions of MythTV to be relevant.

  • mythtv-themes
  • mythtv-doc
  • mythtv
    • mythtv-database
      • mythtv-common
    • mythtv-frontend
      • libmyth-.##
    • mythtv-backend
    • mythtv-jobqueue
  • mythplugins
    • mythbrowser
    • mythdvd
    • mythgallery
    • mythgame
    • mythmusic
    • mythnews
    • mythweather
    • mythvideo

I am relatively new to the Debian packaging process and would love to get help from more experienced individuals to bootstrap this. -- Luke

I found that making up a source patch, and uploading it to my Launchpad PPA, worked very nicely ; I was able to backport the desired fixes from trunk to the 0.21-fixes package, have the Ubuntu build servers build it for me, add the PPA to my sources list, and have apt upgrade it for me. --Adrian