Split optional components into separate Debian packages

Bug #748016 reported by Jason Gerard DeRose
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Dmedia
Fix Released
High
Bilal Akhtar
dmedia (Ubuntu)
Fix Released
High
Bilal Akhtar

Bug Description

In terms of both the Python packaging and Debian packaging, dmedia needs to be very modular because we need to deploy it across a wide range a scenarios. As a few examples:

 * media consumption apps (say Novacut player), have no intrinsic need for the dmedia importer or transcoder, so should be installable without

 * when running on a headless server, there is no need to install any graphical components and we might not want a DBus dependency

 * most of our artists are currently editing with Final Cut Pro, so running dmedia on OSX with with a Final Cut plugin would be a big win

So I'm proposing a component split something like this:

Python Packages:
  dmedia - core library, few dependencies outside Python standard library
  dmedia.service - DBus service stuff
  dmedia.webui - XML templates, JavaScript, CSS, and supporting Python
  dmedia.gtkui - GTK related stuff, like CouchView
  dmedia.importer - depends on gtkui, implements the Pro File Import UX
  dmedia.transcoder - transcode with GStreamer

(A lot of the above was already done during the 0.5 cycle.)

Debian Packages:
  python-dmedia - core Python library, no executables, minimal dependencies
  dmedia - bare bones DBus service, but with no tie to particular toolkit
  dmedia-webui - HTML5 UI components
  dmedia-gtkui - GTK integration
  dmedia-importer - dmedia-import script and everything else for file import
  dmedia-transcoder - GStreamer based transcoder
  dmedia-server - daemon for headless servers, started with upstart

Or something basically like that. Thoughts? Bilal, I'd love to work closely with you on this so it's done in a way that will work for the official Debain/Ubuntu packages... I think there's a huge advantage in having the daily builds and stable releases packaged exactly as dmedia is in the official packages

Bilal, when you have a chance, lets chat on #novacut about this... plus we'll see you at UDS-O :)

Tags: packaging
Revision history for this message
Jason Gerard DeRose (jderose) wrote :

Bilal, as per our IRC conversation in #novacut, this is kinda what I'm thinking:

dmedia
    Virtual package
    Depends: dmedia-service || dmedia-server

dmedia-service
    Minimal DBus service, contains no UI elements itself
    Depends: python-dmedia, desktopcouch, python-dbus

dmedia-server
    System-wide headless server, started with Upstart
    Depends: python-dmedia, dmedia-webui, couchdb, python-gevent

python-dmedia
    Core Python lib, no executables
    Depends: python-couchdb, python-xgd

dmedia-webui
    Contains XML templates, JavaScript, CSS for dmedia HTML5 UI
    Depends: python-dmedia, python-genshi

dmedia-gtk
    Contains GTK widgets like CouchView, dmedia browser, etc
    Depends: dmedia-webui, python-gobject, gir1.2-gtk-2.0, gir1.2-webkit-1.0

dmedia-importer
    2nd DBus service, implement Pro File Import UX
    Depends: dmedia-service, dmedia-gtk, gir1.2-notify-0.7, gir1.2-appindicator-0.1

Changed in dmedia:
assignee: nobody → Bilal Akhtar (bilalakhtar)
Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

Why would -gtk depend on -webui? Is it necessary?

Revision history for this message
Jason Gerard DeRose (jderose) wrote :

Sorry, I lost your question in the noise for bit...

Yes, it is necessary because many UI components are HTML5, whether they run in embedded WebKit or not.

This is a decent explanation here:

https://wiki.ubuntu.com/DesktopCouchWishList#Make%20web%20apps%20first%20class%20citizens

Changed in dmedia:
milestone: 0.6 → 0.7
Changed in dmedia:
status: Triaged → In Progress
Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

Fix uploaded to Debian Experimental in version 0.6.0~repack-1. More info at http://packages.qa.debian.org/d/dmedia/news/20110515T124711Z.html .

Filed package sync bug #783275 for Archive Admins to get the new version of dmedia into Ubuntu Oneiric.

Changed in dmedia (Ubuntu):
status: New → Fix Committed
Changed in dmedia:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dmedia - 0.6.0~repack-1

---------------
dmedia (0.6.0~repack-1) experimental; urgency=low

  * New upstream release.
  * debian/control:
    - Split up separate upstream components into separate Debian packages.
      (LP: #748016)
    - Change dependencies according to upstream changes.
    - Remove build-dep on libjs-mootools as mootools isn't used anymore.
    - Correct package synopsis by removing articles from them.
  * debian/*.install: Make appropriate changes for split up of separate
    DMedia components into individual binary packages.
  * debian/patches/02_fix_couchdb_deprecated_function.patch : Dropped,
    merged upstream.
  * debian/patches/01_fix_errors_in_manpage.patch: Refreshed to make patch
    apply properly in new upstream version.
  * debian/rules: Remove override_dh_installxfonts override as there's no
    need to link to mootools anymore

dmedia (0.3.0~repack-2) unstable; urgency=high

  * debian/control:
    - Remove dependencies on gir1.0-* and replace it with gir1.2-* as
      gir1.0-* packages no longer exist. (Closes: #622331)
    - Depend on desktopcouch directly as python-desktopcouch-records
      is now a virtual package.
    - Bump Standards-Version to 3.9.2 (no changes needed).

dmedia (0.3.0~repack-1) unstable; urgency=low

  * Initial release (Closes: #608364)
 -- Bilal Akhtar <email address hidden> Tue, 17 May 2011 12:06:01 +0000

Changed in dmedia (Ubuntu):
status: Fix Committed → Fix Released
Changed in dmedia:
status: Fix Committed → Fix Released
Changed in dmedia (Ubuntu):
assignee: nobody → Bilal Akhtar (bilalakhtar)
importance: Undecided → High
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.