This brief instructions assume that you have Limba already installed on your system.
The cool thing about Limba is that you don’t really have to do many changes on your application. There are a few things to pay attention to, though:
This needs to be done so your application will find its data at runtime. Additionally, you need to write an AppStream metadata file, and find out which stuff your application depends on.
Now you can create the metadata necessary to build a Limba package. Just run:
cd /path/to/my/project
limba-build make-template
This will create a “lipkg” directory, containing a “control” file and a “metainfo.xml” file, which can be a symlink to the AppStream metadata, or be new metadata.
Now, configure your application with /app
as install prefix.
Hint
For CMake, use -DCMAKE_INSTALL_PREFIX=/app
, an Automake-based build-system
needs –prefix=/app
passed to configure/autogen.sh.
Then install the software to the lipkg/target
directory.
If your software has dependencies on other packages, just get the Limba packages for these dependencies, or build new ones. Then place the resulting IPK packages in the lipkg/repo directory. Ideally, you should be able to fetch Limba packages which contain the software components directly from their upstream developers.
Then, open the lipkg/control
file and adjust the Requires
line.
The names of the components you depend on match their AppStream-IDs (<id/>
tag in the AppStream XML document).
Any version-relation (>=, >>, <<, <=, <>) is supported, and specified in brackets after the component-id.
The resulting control-file might look like this:
Format-Version: 1.0
Requires: Qt5Core (>= 5.4), Qt5DBus (== 5.4), libpng12
If the specified dependencies are in the lipkg/repo/
subdirectory, these packages will get installed automatically, if your application package is installed.
Otherwise, Limba depends on the user to install these packages manually – there is no interaction with the distribution’s package-manager.
In order to build your package, make sure the content in target/
is up to date, then run:
lipkgen build lipkg/
This will build your package and output it in the lipkg/
directory.
Hint
For files installed into target/
, Limba will automatically split them into a SDK and a runtime package.
The SDK package is what you install in case you want to build against the software, the runtime package is
what user want to install to run it.
In case you want to influence which content goes into which package, install the runtime data into a target.rt/
directory, and the SDK components into target.sdk/
. Limba will then do the right thing.
You can now test your package, Just run:
sudo limba install-local bundle.ipk
Your software should install successfully.
If you provided a .desktop file in share/applications
, you should find your application in your desktop’s application-menu.
Otherwise, you can run a binary from the command-line, just append the version of your package to the binary name (bash-comletion helps).
Alternatively, you can use the runapp
command, which lets you run any binary in your bundle/package, which is quite helpful for debugging
(since the environment a Limba-installed application is run is different from the one of other applications).
Example:
runapp ${component_id}/${version}:/bin/binary-name