source: appstream-generator/README.md @ 4841

Last change on this file since 4841 was 4841, checked in by Juanma, 2 years ago

Initial release

File size: 2.9 KB
Line 
1# AppStream Generator
2
3AppStream is an effort to provide additional metadata and unique IDs for all software available in a Linux system.
4This repository contains the server-side of the AppStream infrastructure, a tool to generate metadata from distribution packages. You can find out more about AppStream collection metadata at [Freedesktop](https://www.freedesktop.org/software/appstream/docs/chap-CollectionData.html).
5
6The AppStream generator is currently primarily used by Debian, but is written in a distribution agnostic way. Backends only need to implement [two interfaces](src/asgen/backends/interfaces.d) to to be ready.
7
8If you are looking for the AppStream client-tools, the [AppStream repository](https://github.com/ximion/appstream) is where you want to go.
9
10![AppStream Generator Logo](data/templates/default/static/img/asgen.png "AppStream Generator")
11
12
13## Development
14[![Build Status](https://travis-ci.org/ximion/appstream-generator.svg?branch=master)](https://travis-ci.org/ximion/appstream-generator)
15
16### Build dependencies
17
18 * LDC[1]
19 * Meson (>= 0.34) [2]
20 * glib2 (>= 2.46)
21 * AppStream [3]
22 * libarchive (>= 3.2) [4]
23 * LMDB [5]
24 * mustache-d [6]
25 * GirToD [7]
26 * Cairo
27 * GdkPixbuf 2.0
28 * RSvg 2.0
29 * FreeType
30 * Fontconfig
31 * Pango
32 * Bower (optional) [8]
33
34[1]: https://github.com/ldc-developers/ldc/releases
35[2]: http://mesonbuild.com/
36[3]: https://github.com/ximion/appstream
37[4]: http://www.libarchive.org/
38[5]: http://symas.com/mdb/
39[6]: https://github.com/repeatedly/mustache-d
40[7]: https://github.com/gtkd-developers/GIR-D-Generator
41[8]: http://bower.io/
42
43On Debian and derivatives of it, all build requirements can be installed using the following command:
44```ShellSession
45sudo apt install meson ldc libappstream-dev libgdk-pixbuf2.0-dev libarchive-dev \
46    librsvg2-dev liblmdb-dev libglib2.0-dev libcairo2-dev libcurl4-gnutls-dev \
47    libfreetype6-dev libfontconfig1-dev libpango1.0-dev libmustache-d-dev
48```
49
50### Build instructions
51
52To build the tool with Meson, create a `build` subdirectory, change into it and run `meson .. && ninja` to build.
53In summary:
54
55```ShellSession
56$ mkdir build && cd build
57$ meson -Ddownload_js=true ..
58$ ninja
59$ sudo ninja install
60```
61
62We support several options to be set to influence the build. Change into the build directory and run `mesonconf` to see them all.
63
64You might want to perform an optimized debug build by passing `--buildtype=debugoptimized` to `meson` or just do a release build straight
65away with `--buildtype=release` in case you want to use the resulting binaries productively. By default, the build happens without optimizations
66which slows down the generator.
67
68## Usage
69
70Take a look at the `docs/` directory in the source tree for information on how to use the generator and write configuration files for it.
71
72## Hacking
73
74Pull-requests and patches are very welcome! If you are new to D, it is highly recommended to take a few minutes to look at the D tour to get a feeling of what the language can do: http://tour.dlang.org/
Note: See TracBrowser for help on using the repository browser.