Split optional components into separate Debian packages
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 :)
Changed in dmedia: | |
assignee: | nobody → Bilal Akhtar (bilalakhtar) |
Changed in dmedia: | |
milestone: | 0.6 → 0.7 |
Changed in dmedia: | |
status: | Triaged → In Progress |
Changed in dmedia: | |
status: | Fix Committed → Fix Released |
Changed in dmedia (Ubuntu): | |
assignee: | nobody → Bilal Akhtar (bilalakhtar) |
importance: | Undecided → High |
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 appindicator- 0.1
2nd DBus service, implement Pro File Import UX
Depends: dmedia-service, dmedia-gtk, gir1.2-notify-0.7, gir1.2-