Put XBMC on the team PPA

Registered by Oumar Aziz OUATTARA

1. Usually if we want to install something "a la windows" we install it in /opt ( ~= Programs Files). That's what has been done in the deb package. It's not wrong but usually we would not use the deb format to do that. I would be done via an install script. But as XBMC, if I understood well, won't be split all over the system we can used the trick that consist in installing the full package in /usr/share/xbmc ( or /usr/local/share/xbmc if we use "make install").

2. The system binary ( launcher ) should be in /usr/bin (if the installation is made from a deb) . /usr/local/bin is used if the installation is made via "make install". Here start the impact on the source code. Can the binary be away from the other files ?
A solution is to create a launcher script to put in the $BIN dir to call the binary in /usr/share/xbmc . That might permit to avoid modification of the code and will match a recommendation that is to not have very big binary in the $BIN dir.
The launcher script :
http://bazaar.launchpad.net/~team-xbmc/xbmc/xbmc-soft/annotate/wattazoum%40wattazoum-laptop-20080303175001-leemvf9y1v9uweh2?file_id=xbmc-20080209021224-ftu33toqne25m8df-2

3. The user rights problem : That is the problem that some have called "chown problem" in this thread. After an install, no other user but the root might be able to run the application cause they won't have the right to write in the install directory. The only correct solution is to make those writable location be in the user's $HOME dir. This mainly concerns "UserData" IMHO. There is no need to move the skins and visualisations there unless the skins settings are set in the skin diretory. This is the biggest problem to deal with.

4. Optional but nice to have : allow the users to install skins for themselves. This will need some changes in the code to make xbmc manage 2 skins directory aat the same time. The system skins directory (/usr/share/xbmc/skins) and the user skin directory ($HOME/.local/share/xbmc/skin : this path is the one to use if we want to be compliant to the XDG specification). This is not a packaging issue. It's just informative.

5. Usually, for a big application like XBMC, we make multiple packages out of a single source folder. Then we use meta-package to assemble it. See an example of control file that I made for XBMC. This allows to have a default installation package, with a default skin, a default set of python scripts , of visualisation and so on. Then if someone else wants to make another skin package ( let's take XTV for instance : xbmc-skin-xtv.deb) he can and the installation of this skin won't requires the installation of the default skin ( the package should only depends on xbmc-datas ) . This will also permit the creation of different flavour of XBMC package ( eg. with XTV skin; special set of scripts, other visualisations .... ).
The debian control file :
http://bazaar.launchpad.net/~team-xbmc/xbmc/xbmc-deb/annotate/wattazoum%40wattazoum-laptop-20080304055449-xqedm75bavlfp17b?file_id=control-20080304055417-mlysd7gni7vfpj3g-5

The work I have done is available on BZR on launchpad :
My debian directory :
http://bazaar.launchpad.net/~team-xbmc/xbmc/xbmc-deb/files/wattazoum%40wattazoum-laptop-20080304055449-xqedm75bavlfp17b?file_id=debian-20080304055417-mlysd7gni7vfpj3g-1

As for the installation, I used the Build.sh script from SVN and sets some options to avoid having issues.
The debian rules file :
http://bazaar.launchpad.net/~team-xbmc/xbmc/xbmc-deb/annotate/wattazoum%40wattazoum-laptop-20080304055449-xqedm75bavlfp17b?file_id=rules-20080304055417-mlysd7gni7vfpj3g-25

Blueprint information

Status:
Complete
Approver:
Kodi
Priority:
Undefined
Drafter:
Oumar Aziz OUATTARA
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Oumar Aziz OUATTARA
Completed by
Oumar Aziz OUATTARA

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.