Marble/MaemoPackaging: Difference between revisions

From KDE TechBase
No edit summary
Line 6: Line 6:
First, we check out a fresh subversion copy of Marble to a temporary directory. Make sure to do this inside scratchbox with the armel target activated if you intend to use the package on the N900.
First, we check out a fresh subversion copy of Marble to a temporary directory. Make sure to do this inside scratchbox with the armel target activated if you intend to use the package on the N900.
<code bash>
<code bash>
cd $(mktemp -d)
cd "$(mktemp -d)"
repo="svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeedu/marble"
repo="svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeedu/marble"
rev="$(svn info "${repo}" | grep Revision | awk '{ print $2 }')"
rev="$(svn info "${repo}" | grep Revision | awk '{ print $2 }')"
svn co "${repo}" marble-0.9+svn${rev}
svn co "${repo}" "marble-0.10+svn${rev}"
</code>
</code>


Inside, we'll add the debian packaging files.
Inside, we'll add the debian packaging files.
<code bash>
<code bash>
cd "marble-0.9+svn${rev}"
cd "marble-0.10+svn${rev}"
git clone https://vcs.maemo.org/git/marble garage
git clone https://vcs.maemo.org/git/marble garage
ln -s garage/packaging/debian
ln -s garage/packaging/debian
Line 26: Line 26:
Afterwards, build the packages:
Afterwards, build the packages:
<code bash>
<code bash>
LD_LIBRARY_PATH=debian/marble/opt/marble/lib dpkg-buildpackage -rfakeroot
dpkg-buildpackage -rfakeroot
</code>
</code>


Three debian packages -- marble-$version.deb, marble-plugins-$version.deb and marble-data-$version.deb -- will end up in the parent directory. Compared to the original Debian package, they contain the following adjustments:
Three debian packages -- marble-$version.deb, marble-plugins-$version.deb, libmarble-$version.deb and marble-data-$version.deb -- will end up in the parent directory. Compared to the original Debian package, they contain the following adjustments:
* Split into more packages
* Install prefix changed from /usr to /opt/marble ([http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing/Installing_under_opt_and_MyDocs Maemo suggestion])
* Install prefix changed from /usr to /opt/marble ([http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing/Installing_under_opt_and_MyDocs Maemo suggestion])
* Application manager icon contained in the control file
* Application manager icon contained in the control file
* bin/marble.sh wrapper script that sets LD_LIBRARY_PATH and XDG_DATA_HOME
* bin/marble.sh wrapper script that sets PATH, LD_LIBRARY_PATH and XDG_DATA_HOME
* marble.desktop and marble.service files for application menu integration
* marble.desktop and marble.service files for application menu integration
* Marble icons copied to /usr/share/icons/hicolor/apps/
* Marble icons copied to /usr/share/icons/hicolor/apps/

Revision as of 18:28, 7 April 2010

Maemo packages are based on the Debian package format. The git repository at marble.garage.maemo.org contains necessary files for quick packaging.

Creating fresh packages

We are going to check out a fresh subversion copy of Marble, add the debian specific packaging files from the marble garage git repository and build a Maemo .deb package for the armel target. It will be readily usable on the N900.

First, we check out a fresh subversion copy of Marble to a temporary directory. Make sure to do this inside scratchbox with the armel target activated if you intend to use the package on the N900. cd "$(mktemp -d)" repo="svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeedu/marble" rev="$(svn info "${repo}" | grep Revision | awk '{ print $2 }')" svn co "${repo}" "marble-0.10+svn${rev}"

Inside, we'll add the debian packaging files. cd "marble-0.10+svn${rev}" git clone https://vcs.maemo.org/git/marble garage ln -s garage/packaging/debian

Update the changelog, if needed. dch

Afterwards, build the packages: dpkg-buildpackage -rfakeroot

Three debian packages -- marble-$version.deb, marble-plugins-$version.deb, libmarble-$version.deb and marble-data-$version.deb -- will end up in the parent directory. Compared to the original Debian package, they contain the following adjustments:

  • Split into more packages
  • Install prefix changed from /usr to /opt/marble (Maemo suggestion)
  • Application manager icon contained in the control file
  • bin/marble.sh wrapper script that sets PATH, LD_LIBRARY_PATH and XDG_DATA_HOME
  • marble.desktop and marble.service files for application menu integration
  • Marble icons copied to /usr/share/icons/hicolor/apps/

To install the two packages on your N900, copy them to the device and install them using dpkg. scp ../marble*.deb root@IP-OF-N900:/home/user/MyDocs ssh root@IP-OF-N900 -- "dpkg -i /home/user/MyDocs/marble*.deb"

You can start Marble on the N900 from the application menu. To uninstall -- how dare you! -- use the application manager.