MetaInfo/Components: Difference between revisions
(Created page with "{{Construction}} == Introduction == Every project which provides interfaces for external projects to use can publish them in a metadata document. A software-center might show ...") |
|||
Line 24: | Line 24: | ||
<description> | <description> | ||
<p> | <p> | ||
ThreadWeaver is a helper for multithreaded programming. It uses a job-based interface to queue tasks and execute them in an efficient way. You simply divide the workload into jobs, state the dependencies between the jobs and ThreadWeaver will work out the most efficient way of dividing the work between threads within a set of resource limits. | ThreadWeaver is a helper for multithreaded programming. | ||
It uses a job-based interface to queue tasks and execute them in an efficient way. | |||
You simply divide the workload into jobs, state the dependencies between the jobs and ThreadWeaver | |||
will work out the most efficient way of dividing the work between threads | |||
within a set of resource limits. | |||
</p> | </p> | ||
</description> | </description> |
Revision as of 17:17, 17 April 2014
Under Construction |
---|
This is a new page, currently under construction! |
Introduction
Every project which provides interfaces for external projects to use can publish them in a metadata document. A software-center might show these components as "technical items", but more importantly, by specifying this information other tools gain the ability to install for example missing libraries without knowing their exact package name. It is also possible for developers to specify just the component names their project depends on and having a distribution-independent tool installing all missing packages, to greatly simplify building software for the first time. The component metadata is also used to match upstream projects with distribution packages, so even if your project does not provide public interfaces, you may consider adding this metadata to your project.
The AppStream project provides a metadata XML specification for projects to specify all necessary data.
Projects wanting to make use of the metadata file should ship one or more XML files in /usr/share/appdata/%{id}.metainfo.xml.
File Specification
Sample File
The file should contain something like this:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 First Lastname <[email protected]> -->
<component>
<id>ThreadWeaver</id>
<metadata_license>CC0</metadata_license>
<project_license>GPL-2+</project_license>
<name>ThreadWeaver</name>
<summary>ThreadWeaver Library for the KDE Platform</summary>
<description>
<p>
ThreadWeaver is a helper for multithreaded programming.
It uses a job-based interface to queue tasks and execute them in an efficient way.
You simply divide the workload into jobs, state the dependencies between the jobs and ThreadWeaver
will work out the most efficient way of dividing the work between threads
within a set of resource limits.
</p>
</description>
<url type="homepage">http://kde.org/</url>
<url type="bugtracker">https://bugs.kde.org/buglist.cgi?product=frameworks-threadweaver&component=general</url>
<project_group>KDE</project_group>
<provides>
<library>libthreadweaver.so.4</library>
</provides>
</component>
Component type
The type property of the <component/> root node can be empty. If the component provides a special software-product, such as a graphical application, font, codec or input-method, you may set the property accordingly. See also the DesktopApp metadata.