Editing Packaging a Qt application
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
+ | = Packaging a Qt application for Maemo= | ||
+ | |||
{{main|Packaging}} | {{main|Packaging}} | ||
Line 10: | Line 12: | ||
* Copy all the files to the <code>src/</code> directory | * Copy all the files to the <code>src/</code> directory | ||
* Rename <code>src/appname.pro</code> to <code>src/src.pro</code> | * Rename <code>src/appname.pro</code> to <code>src/src.pro</code> | ||
- | |||
- | |||
<pre> | <pre> | ||
$mv myapp myapp-0.1 | $mv myapp myapp-0.1 | ||
Line 23: | Line 23: | ||
<pre> | <pre> | ||
- | unix { | + | unix { |
- | + | #VARIABLES | |
- | + | isEmpty(PREFIX) { | |
- | + | PREFIX = /usr/local | |
} | } | ||
- | + | BINDIR = $$PREFIX/bin | |
- | + | DATADIR =$$PREFIX/share | |
- | + | DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\" | |
- | + | #MAKE INSTALL | |
- | + | INSTALLS += target desktop iconxpm icon26 icon48 icon64 | |
target.path =$$BINDIR | target.path =$$BINDIR | ||
Line 42: | Line 42: | ||
desktop.files += $${TARGET}.desktop | desktop.files += $${TARGET}.desktop | ||
- | + | iconxpm.path = $$DATADIR/pixmap | |
- | + | iconxpm.files += ../data/maemo/$${TARGET}.xpm | |
+ | |||
+ | icon26.path = $$DATADIR/icons/hicolor/26x26/apps | ||
+ | icon26.files += ../data/26x26/$${TARGET}.png | ||
+ | |||
+ | icon48.path = $$DATADIR/icons/hicolor/48x48/apps | ||
+ | icon48.files += ../data/48x48/$${TARGET}.png | ||
icon64.path = $$DATADIR/icons/hicolor/64x64/apps | icon64.path = $$DATADIR/icons/hicolor/64x64/apps | ||
Line 72: | Line 78: | ||
== Editing the rules file == | == Editing the rules file == | ||
- | The rules file generated by <code>dh_make | + | The rules file generated by <code>dh_make</code> will be modified in order to look like this one. We are using qmake, so there is no <code>configure</code> script to run. If you copy and paste the following file, notice that empty space beginning of lines it TAB characters, it is not multiple space characters. If you copy and paste the following chunk, you most propably get spaces instead of tabs and the file does not work. |
<pre> | <pre> | ||
Line 131: | Line 137: | ||
</pre> | </pre> | ||
- | == | + | == Application menu icon & position == |
- | The | + | The Maemo application menu detects automatically an app that provides a .desktop file in /usr/share/application/hildon . If you don't have desktop file, create one in the src directory. |
- | + | <pre> | |
+ | [Desktop Entry] | ||
+ | Encoding=UTF-8 | ||
+ | Version=0.1 | ||
+ | Type=Application | ||
+ | Name=myapp | ||
+ | Exec=/usr/bin/myapp | ||
+ | Icon=myapp | ||
+ | X-HildonDesk-ShowInToolbar=true | ||
+ | X-Osso-Type=application/x-executable | ||
+ | </pre> | ||
+ | |||
+ | Maemo menu structure is completely different from Debian: | ||
+ | * An unmodified Debian package installs the proper .desktop in /usr/share/applications | ||
+ | * Applications that use the debian menu are displayed in the extra menu | ||
+ | |||
+ | In order to show our application in the correct Maemo menu: | ||
+ | * debian/myapp.install moves the .desktop file and icons in the right directory | ||
+ | <pre> | ||
+ | src/*.desktop usr/share/applications/hildon | ||
+ | src/*.png usr/share/icons/hicolor/26x26/apps | ||
+ | </pre> | ||
+ | |||
+ | * debian/postinst should call maemo-select-menu-location utility to permit the user to choose the menu location. '''This works only in Diablo, it doesn't work in Fremantle.''' | ||
+ | <pre> | ||
+ | #!/bin/sh | ||
+ | maemo-select-menu-location myapp.desktop | ||
+ | </pre> | ||
- | + | = Example = | |
You can download the [http://maemo.org/packages/view/qt-maemo-example/ source package of qt-maemo-example] from the [[extras-devel]] repository as follows, if you have source packages enabled in your <code>/etc/apt/sources.list</code> file: | You can download the [http://maemo.org/packages/view/qt-maemo-example/ source package of qt-maemo-example] from the [[extras-devel]] repository as follows, if you have source packages enabled in your <code>/etc/apt/sources.list</code> file: | ||
Line 149: | Line 182: | ||
and will then automatically launch <code>dpkg -x file.dsc</code> in order to decompress the orig.tar.gz and apply the changes. | and will then automatically launch <code>dpkg -x file.dsc</code> in order to decompress the orig.tar.gz and apply the changes. | ||
- | + | = Useful Links = | |
- | |||
* [[Qt-Maemo|Qt for Maemo]] | * [[Qt-Maemo|Qt for Maemo]] | ||
* [[Packaging|Packaging guide for Maemo]] | * [[Packaging|Packaging guide for Maemo]] | ||
- | * [http:// | + | * [http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html Desktop entry specification] |
[[Category:Packaging]] | [[Category:Packaging]] | ||
[[Category:Qt]] | [[Category:Qt]] |
Learn more about Contributing to the wiki.