---
Type: console-application
ID: org.freedesktop.appstream.generator
Package: appstream-generator
ProjectLicense: LGPL-3.0+
Name:
C: AppStream Generator
Summary:
C: A fast AppStream metadata generator
Description:
C: |-
<p>AppStream is a metadata specification which permits software components to provide information about
themselves to automated systems and end-users before the software is actually installed.</p>
<p>The <em>appstream-generator</em> tool generates AppStream metadata from the repositories of a software
distribution. It currently supports the following repository formats / distributions: Debian, Ubuntu,
Arch Linux, RPM-MD (Fedora, Mageia).</p>
<p>The generator will produce AppStream catalog metadata files in the AppStream YAML or XML format to
be shipped to users, as well as a detailed HTML report about found components and HTML and JSON reports
on issues detected with the scanned metadata. It reads .desktop files as well as metainfo files, renders
fonts, scales images, caches screenshots etc. to produce high-quality metadata for AppStream based software
centers to consume. Usually, <em>appstream-generator</em> is integrated with the existing software build
& packaging workflow of a distribution.</p>
ProjectGroup: Freedesktop
Developer:
id: org.freedesktop
name:
C: Matthias Klumpp
Url:
homepage: https://github.com/ximion/appstream-generator
bugtracker: https://github.com/ximion/appstream-generator/issues
help: https://github.com/ximion/appstream-generator/blob/master/docs/index.md
Provides:
binaries:
- appstream-generator
Releases:
- version: "1.0.0"
type: stable
unix-timestamp: 1787875200
description:
C: |-
<heading>Notes</heading>
<p>This release allows writing your configuration in YAML, switches the default icon format to JPEG-XL
(with an option to set it to PNG, globally or per-suite) and stops processing TIFF/BMP/XPM images.</p>
<p>Please note that media processing is now lightly sandboxed on Linux on machines that have the Landlock
LSM available. Setting the <code>ASC_NO_SANDBOX=1</code> environment variable will disable the sandbox.</p>
<heading>Features</heading>
<ul>
<li>Store statistics data in the original JSON format again</li>
<li>Serve statistics file in compressed form only</li>
<li>Officially support YAML as configuration file format</li>
<li>Port logging to Quill</li>
<li>Port to the libappstream-compose 1.2</li>
<li>Switch media image default to JPEG-XL</li>
<li>Move statistics data into a separate database</li>
<li>engine: Make produced icon tarballs deterministic and only contain one format</li>
<li>Generate more detailed, fine-grained statistics for better overview pages</li>
<li>Drop flot & jquery, vendor uplot & highlight.js, drop NPM</li>
<li>Rebuild the HTML report pages on uPlot and the new statistics</li>
<li>reports: html: Create nicer frontpage as well, using tiles for the suites</li>
<li>reports: Don't reference index.html explicitly anymore in HTML reports</li>
<li>reports: Make HTML pages a single-column layout and center it</li>
<li>Ensure components and hints result files are always deterministic</li>
</ul>
<heading>Bugfixes</heading>
<ul>
<li>freebsd: little fixes for the packageForFile() code path</li>
<li>debian: Prevent deadlock when getFileData() triggers a package download</li>
<li>debian: Use a checksum instead of mtime to detect index changes</li>
<li>rpmmd: Fix package descriptions being dropped from generated metadata</li>
<li>IconHandler: set the extra prefix when creating a builtin hicolor theme</li>
<li>zarchive: Ensure parent directories are created for empty directories</li>
<li>Don't append section to origin if it's empty</li>
<li>Fix nondeterministic output when two packages claim the same metadata</li>
<li>Streamline hint JSON creation to not duplicate the schema in two places</li>
<li>Properly use a system copy of backward-cpp</li>
<li>Ensure a UTF-8 locale is enforced properly on startup</li>
<li>zarchive: Confine archive extraction to the destination directory</li>
<li>zarchive: Make temporary extraction behave like reading the archive directly</li>
<li>Fix icons randomly missing from the generated icon tarballs</li>
<li>Mention the source icon name when an icon is rejected (instead of the target name)</li>
<li>Fix memory leak in intermediate metadata validation</li>
<li>Refuse to register empty GCIDs in the ownership registry</li>
<li>Don't pile on error hints if a component was already rejected for icon issues</li>
<li>report: Fix hint accounting and global component statistics</li>
<li>Fix potential crash when statistics arrive out of order</li>
<li>Copy base static data when publishing a HTML report for a different template</li>
<li>Ensure the temp dir is safely created and shared with compose</li>
</ul>
<heading>Miscellaneous</heading>
<ul>
<li>Double-quote strings in YAML header</li>
<li>ci: Build on Debain & its derivatives using debspawn</li>
<li>ci: Bump Ubuntu version, update dependencies</li>
<li>docs: Port manpage to DocBook 5</li>
<li>Add small helper webserver to test HTML output locally easier</li>
<li>snap: Update to new core snap</li>
<li>snap: Simplify packaging and make it build on core26</li>
<li>snap: Amend libfyaml's install prefix</li>
<li>snap: Fix missing screenshots due to GdkPixbuf error</li>
<li>meson: Simplify template installation</li>
<li>Add security policy</li>
<li>Add fd.o code of conduct</li>
</ul>
<heading>Contributors</heading>
<p>Gleb Popov, Joey Riches, Matthias Klumpp, Nathan Pratta Teodosio</p>
- version: "0.10.2"
type: stable
unix-timestamp: 1770681600
description:
C: |-
<heading>Features</heading>
<ul>
<li>Allow backends to define a custom, non-default data prefix</li>
</ul>
<heading>Bugfixes</heading>
<ul>
<li>arch: Do not include suite name in pkgRoot</li>
<li>freebsd: implement dataPrefix() using getlocalbase()</li>
<li>freebsd: Implement packageForFile() by accepting a port's STAGEDIR</li>
<li>Pass -fexperimental-library when building with Clang and libc++</li>
<li>Fix icons and pixmaps paths when using prefix != /usr</li>
<li>tests: Combine results and registry tests to make them order-independent</li>
<li>archive: Don't use weakly_canonical on archive-content files for normalization</li>
<li>node{Bool,Int}Value: prevent read past scalar token</li>
</ul>
<heading>Miscellaneous</heading>
<ul>
<li>report: Use Inja's HTML-autoescape feature</li>
</ul>
<heading>Contributors</heading>
<p>Antonio Rojas, Gleb Popov, Matthias Klumpp, Miao Wang</p>
- version: "0.10.1"
type: stable
unix-timestamp: 1759363200
description:
C: |-
<heading>Features</heading>
<ul>
<li>engine: Limit default parallelism for main processing operations</li>
<li>Skip intermediate data check if gcid is empty</li>
<li>Print if data remains after manually removing a package</li>
<li>engine: Add function to process all suitable data at once</li>
</ul>
<heading>Bugfixes</heading>
<ul>
<li>tests: Allow network test to have all tests skipped</li>
<li>utils: Just use C++ standard library for copying directories</li>
<li>Guard against null values in the database</li>
<li>zarchive: Properly normalize paths</li>
<li>yaml: Make sure Time field is always read as string</li>
<li>Explicitly set up UTF-8 locale</li>
<li>Ensure we aren't running on a bad libfyaml</li>
<li>engine: Actually open the locale unit, so it can be used to find locale</li>
<li>Don't just skip processing most new packages</li>
</ul>
<heading>Miscellaneous</heading>
<ul>
<li>Update the snapcraft file</li>
</ul>
<heading>Contributors</heading>
<p>Matthias Klumpp</p>
- version: "0.10.0"
type: stable
unix-timestamp: 1757980800
description:
C: |-
<heading>Notes</heading>
<p>This release switches from using the D programming language to C++23. This change should simplify
maintenance of the tool and allow it to be more compatible with other tooling. C++23 adopted a lot of
D's features, so this is a pretty direct port - still, issues may exist even though this release has
been tested extensively. So, perform your own tests and report any issues!</p>
<heading>Features</heading>
<ul>
<li>Translate the project from D to C++23</li>
<li>zarchive: Support reading from hardlinks</li>
<li>Use backward-cpp if available for automated crash backtraces</li>
<li>Add optimization for repeated reads from large archives</li>
<li>Add support for loading JPEG-XL icons</li>
</ul>
<heading>Bugfixes</heading>
<ul>
<li>zarchive: Ensure parent path is created before opening file</li>
<li>debian: Ensure legacy-style repos get package descriptions for components</li>
<li>Create document timestamps in the right format</li>
<li>iconhandler: Render SVG with new API and properly report errors again</li>
</ul>
<heading>Miscellaneous</heading>
<ul>
<li>Add and enforce an npm lockfile</li>
<li>Avoid some unnecessary data copies and refcounting where possible</li>
</ul>
<heading>Contributors</heading>
<p>Joey Riches, LN Liberda, Matthias Klumpp</p>
ContentRating:
oars-1.0: {}