FFE: Sync appstream 0.12.0-3 (main) from Debian unstable (main)

Bug #1762292 reported by Matthias Klumpp
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
appstream (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Please sync appstream 0.12.0-3 (main) from Debian unstable (main)

This introduces a new feature release pretty late in the cycle, so it is something to more carefully consider. Even if it's very late, I do think upgrading this package in Bionic is a good idea though.

First of all, it makes upgrading the appstream-generator package to version 0.7.1-3 possible, allowing people to generate much better and smaller metadata for Debian and Ubuntu repositories (and this is what sparked the creation of this sync request).
But there are also many other good reasons.

This is the NEWS file for the new release, with explanations on why we want the respective changes (I shuffled some entries around to form logical groups) :

Version 0.12.0
~~~~~~~~~~~~~~
Released: 2018-04-04

Features:
 * Implement release types
 * qt: Support release types

This adds a new feature to the AppStream specification and libappstream that allows release metadata to be tagged as "development" or "stable" releases. Nothing in Ubuntu uses this, so adding will not break anything, but having this in the LTS release means upstream projects can use this feature more easily, and Ubuntu will understand metadata containing it.

 * Update static data lists
 * spdx: Add some compatibility workarounds for SPDX 3.0
 * validator: Validate SPDX license expressions for metadata_license

This updates the SPDX[1] license lists to version 3.0 and adds some compatibility glue to libappstream to parse the new license strings introduced in SPDX 3.0. This is very useful to have, because many projects will start using the new identifier, and it makes sense for AppStream in Ubuntu to be ready for that.
Furthermore, it prevents errors from people using the new IDs with older AppStream versions (unfortunately, SPDX 3.0 broke the format, AppStream speaks all flavors of SPDX now, though)

[1]: https://spdx.org/licenses/

 * apt: Add config snippets to enable icon downloads

This results in an easy way for users as well as software centers to enable the download of application icon tarballs via APT just by installing a sepecific package (apt-icons-*). This is quite neat to make icon downloads configurable easily, and also have a central place for the APT configuration. The new packages are used in Debian already by GNOME Software and Plasma Dicover. All existing solutions to enable icons work though, this is an optional change.

 * Implement support for requires/recommends
 * Add recommends/requires data to the cache
 * Add a quick way to check if a version satisfies an AsRelation requirement
 * yaml: Make Requires/Recommends data more compact and easier to emit
 * Default to format version 0.12
 * validator: Validate requires/recommends tags

This adds a new feature to allow AppStream components to require other components or system resources (e.g. minimal memory sizes). Nothing uses this yet, due to that this feature also can't break anything. Having it in the LTS means that upstream projects can already add the metadata easily though and have it validated.

 * ascli: Properly document the --no-net flag
 * ascli: Allow to disable network access via an environment variable

This is useful in a package build environment where AppStream metadata is validated and the distributor wants to make sure appstreamcli doesn't try to access the network without changing upstream's code and passing the --no-net flag explicitly somewhere.
Nice feature to have, no risk potential to break existing code.

 * Make as_str_replace use as_gstring_replace internally
 * yaml: Ensure all string values have whitespaces stripped
 * Make as_component_get_launchables public API
 * apt: Support 48x48px icons

This are miscellaneous improvements which should not cause any issue at all. The 48x48px icons are used in some software centers, having them can be useful (this was a feature requested by Elementary, so chances are they will use these icons at some point).

Specification:
 * spec: Add a "type" property to <release/> tag
 * spec: Initial draft for requires/recommends
 * spec: Document the YAML Rquires/Recommends fields
 * spec: Clarify that the memory requirement uses MiB as unit

This improve the AppStream specification or extend it. It's just documentation changes.

Bugfixes:
 * qt: Implement missing constructors

This fixes some nasty crashes in Qt applications using AppStream, like Plasma Discover.

 * apt: escape the icon scale factor as it is using the arobase character

This fixes a bug which basically rendered HiDPI icons completely useless in AppStream under Debian/Ubuntu. Having this fix will make the use of HiDPI icons in software centers possible.

 * Check plain language string in as_component_localized_get as well

Apparently, in some circumstances text was not properly localized due to that because the function did not check the language code alone after failing to find a localized string for the locale.
Improved localization is a good thing.

 * qt: Define location and soname for all configurations, not just Debug

This patch has been in Ubuntu before. Without it, Qt applications using AppStream wouldn't build at all in release mode.

 * Never override high-quality data with incomplete .desktop data

Fixes an issue that would override more complete metadata with less complete versions and also change the metadata after the user installed an application.

 * Make data update script work with recent SPDX

Just a maintenance improvement on the source code itself with no impact on the installed binaries and data.

 * Add a timeout to URL validity checks

Before, appstreamcli would just hang forever when validating on systems with no network access, causing some annoyances especially on CI systems.

The package is not causing issues in Debian and other distributions, so far there have been no new bug reports. In general, I think the risk of new issues is low, especially because the new features don't impact the existing common code paths much and are additions (although obviously there is no such thing as no regressions risk).
I think the bugfixes especially on HiDPI icons and metadata replacement, as well as features like the updated SPDX license library and SPDX 3.0 support and that updating this package allows for a more recent appstream-generator package to be included make it reasonable to update the package.

Changelog entries since current bionic version 0.11.8-3:

appstream (0.12.0-3) unstable; urgency=medium

  * load-desktop-data.patch: Load desktop file data properly again

 -- Matthias Klumpp <email address hidden> Fri, 06 Apr 2018 21:30:08 +0200

appstream (0.12.0-2) unstable; urgency=medium

  * Make autopkgtest work again
  * Update d/copyright (Closes: #894856)
  * icon config: Pull in non-HiDPI config for large icons
    if large-icon HiDPI config is installed

 -- Matthias Klumpp <email address hidden> Fri, 06 Apr 2018 14:12:26 +0200

appstream (0.12.0-1) unstable; urgency=medium

  * New upstream version: 0.12.0
  * Drop all patches: Applied upstream
  * Update .symbols file
  * d/rules: Drop obsolete --parallel flag
  * Add APT config snippet packages for an easy way of enabling
    icon downloads for different sizes and HiDPI.

 -- Matthias Klumpp <email address hidden> Wed, 04 Apr 2018 18:36:26 +0200

Build logs and other QA data can be found at Debian: https://tracker.debian.org/pkg/appstream

Revision history for this message
Łukasz Zemczak (sil2100) wrote :

In the meantime while I review this request, did you build the package against the Ubuntu archives somewhere in a PPA for its supported architectures already? I would like to see if it builds correctly + would be nice if someone did some functional/upgrade tests of those Ubuntu-built binaries in bionic.

Revision history for this message
Matthias Klumpp (ximion) wrote :

It is built now in https://launchpad.net/~ximion/+archive/ubuntu/appstream/+packages (it appears like enabling more architectures either needs approval or doesn't cause package already in the archive not to be built on these...)
Let me know if there is anything more I can do to help!

Jeremy Bícha (jbicha)
tags: added: bionic upgrade-software-version
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Ok, FFe request approved - but please, before pushing it to the archives, I would like to request rebuilding the package in your PPA with all arches enabled and do some upgrade testing from the existing Ubuntu 0.11.8-3 package. If all looks good, please sync it from Debian.

I think packages already in PPA need to be rebuilt if one enabled new architectures in the given PPA. Just a no-change bump should be enough.

Thanks!

Changed in appstream (Ubuntu):
status: New → Triaged
Jeremy Bícha (jbicha)
Changed in gnome-software (Ubuntu):
status: New → Triaged
Revision history for this message
Jeremy Bícha (jbicha) wrote :

This bug was fixed in the package appstream - 0.12.0-3
Sponsored for Matthias Klumpp (ximion)

---------------
appstream (0.12.0-3) unstable; urgency=medium

  * load-desktop-data.patch: Load desktop file data properly again

 -- Matthias Klumpp <email address hidden> Fri, 06 Apr 2018 21:30:08 +0200

appstream (0.12.0-2) unstable; urgency=medium

  * Make autopkgtest work again
  * Update d/copyright (Closes: #894856)
  * icon config: Pull in non-HiDPI config for large icons
    if large-icon HiDPI config is installed

 -- Matthias Klumpp <email address hidden> Fri, 06 Apr 2018 14:12:26 +0200

appstream (0.12.0-1) unstable; urgency=medium

  * New upstream version: 0.12.0
  * Drop all patches: Applied upstream
  * Update .symbols file
  * d/rules: Drop obsolete --parallel flag
  * Add APT config snippet packages for an easy way of enabling
    icon downloads for different sizes and HiDPI.

 -- Matthias Klumpp <email address hidden> Wed, 04 Apr 2018 18:36:26 +0200

Changed in appstream (Ubuntu):
status: Triaged → Fix Released
Jeremy Bícha (jbicha)
no longer affects: gnome-software (Ubuntu)
Revision history for this message
Matthias Klumpp (ximion) wrote :

Nice, thank you all! :-)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.