Fix id and appdata validation failures (#1131)

According to the AppStream specification org.keepassxc is not a valid
id. The product name is missing. This results in failures if one tries
to validate the file and makes it unusable where validation is enforced.

Additionally it seems specification don't allow the `<icon>` tag with
component type desktop-application. I am not sure this tag is strictly
necessary. In any case validation tests require this to be removed.

Fixing both of these issues ensure the AppStream appdata is compliant
and works anywhere passing validations is a requirement.

Also provide some other fixes and improvements to the appdata.

Minor validation failures:

- Fix missing captions for screenshots (`appstreamcli`)
- Fix descriptions cannot start with `<ul>` tag (`appstream-util`)

Other enhancements:

- Add more URL types, but could not add donation type because "&" is not
  allowed in the `<url>` tag and using "%26" causes
  `appstreamcli validate` to fail.
- Add `<developer_name>`, which in cases such as KeePassXC is a team name.
This commit is contained in:
AsavarTzeth 2017-10-26 13:00:50 +02:00
parent c280eac309
commit 4853014a61
5 changed files with 29 additions and 38 deletions

View File

@ -264,13 +264,13 @@ checkChangeLog() {
} }
checkAppStreamInfo() { checkAppStreamInfo() {
if [ ! -f share/linux/org.keepassxc.appdata.xml ]; then if [ ! -f share/linux/org.keepassxc.KeePassXC.appdata.xml ]; then
exitError "No AppStream info file found!" exitError "No AppStream info file found!"
fi fi
grep -qPzo "<release version=\"${RELEASE_NAME}\" date=\"\d{4}-\d{2}-\d{2}\">" share/linux/org.keepassxc.appdata.xml grep -qPzo "<release version=\"${RELEASE_NAME}\" date=\"\d{4}-\d{2}-\d{2}\">" share/linux/org.keepassxc.KeePassXC.appdata.xml
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
exitError "'share/linux/org.keepassxc.appdata.xml' has not been updated to the '${RELEASE_NAME}' release!" exitError "'share/linux/org.keepassxc.KeePassXC.appdata.xml' has not been updated to the '${RELEASE_NAME}' release!"
fi fi
} }

View File

@ -30,8 +30,8 @@ if(UNIX AND NOT APPLE)
install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor install(DIRECTORY icons/application/ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor
FILES_MATCHING PATTERN "application-x-keepassxc.png" PATTERN "application-x-keepassxc.svgz" FILES_MATCHING PATTERN "application-x-keepassxc.png" PATTERN "application-x-keepassxc.svgz"
PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE) PATTERN "status" EXCLUDE PATTERN "actions" EXCLUDE PATTERN "categories" EXCLUDE)
install(FILES linux/org.keepassxc.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) install(FILES linux/org.keepassxc.KeePassXC.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES linux/org.keepassxc.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) install(FILES linux/org.keepassxc.KeePassXC.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
install(FILES linux/keepassxc.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages) install(FILES linux/keepassxc.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages)
endif(UNIX AND NOT APPLE) endif(UNIX AND NOT APPLE)

View File

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2017 KeePassXC Team <team@keepassxc.org> --> <!-- Copyright 2017 KeePassXC Team <team@keepassxc.org> -->
<component type="desktop-application"> <component type="desktop-application">
<id>org.keepassxc</id> <id>org.keepassxc.KeePassXC.desktop</id>
<name>KeePassXC</name> <name>KeePassXC</name>
<metadata_license>CC-BY-3.0</metadata_license> <metadata_license>CC-BY-3.0</metadata_license>
<project_license>GPL-3.0+</project_license> <project_license>GPL-3.0+</project_license>
<icon type="stock">keepassxc</icon>
<url type="homepage">https://keepassxc.org</url>
<mimetypes> <mimetypes>
<mimetype>application/x-keepass2</mimetype> <mimetype>application/x-keepass2</mimetype>
</mimetypes> </mimetypes>
<summary>Community-driven port of the Windows application “KeePass Password Safe”</summary> <summary>Community-driven port of the Windows application “KeePass Password Safe”</summary>
<developer_name>KeePassXC Team</developer_name>
<description> <description>
<p> <p>
KeePassXC is an application for people with extremely high demands on secure KeePassXC is an application for people with extremely high demands on secure
@ -19,56 +18,41 @@
</p> </p>
</description> </description>
<launchable type="desktop-id">org.keepassxc.desktop</launchable> <launchable type="desktop-id">org.keepassxc.KeePassXC.desktop</launchable>
<url type="homepage">https://keepassxc.org</url>
<url type="bugtracker">https://github.com/keepassxreboot/keepassxc/issues</url>
<url type="faq">https://keepassxc.org/docs#faq</url>
<url type="help">https://keepassxc.org/docs</url>
<url type="translate">https://www.transifex.com/keepassxc/keepassxc</url>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<image>https://keepassxc.org/images/screenshots/linux/screen_001.png</image> <image>https://keepassxc.org/images/screenshots/linux/screen_001.png</image>
<caption>Create, Import or Open Databases</caption>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_002.png</image> <image>https://keepassxc.org/images/screenshots/linux/screen_002.png</image>
<caption>Organize with Groups and Entries</caption>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_003.png</image> <image>https://keepassxc.org/images/screenshots/linux/screen_003.png</image>
<caption>Database Entry</caption>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_004.png</image> <image>https://keepassxc.org/images/screenshots/linux/screen_004.png</image>
</screenshot> <caption>Icon Selection for Entry</caption>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_005.png</image>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_006.png</image> <image>https://keepassxc.org/images/screenshots/linux/screen_006.png</image>
</screenshot> <caption>Password Generator</caption>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_007.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_008.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_009.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_010.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_011.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_012.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_013.png</image>
</screenshot>
<screenshot>
<image>https://keepassxc.org/images/screenshots/linux/screen_014.png</image>
</screenshot> </screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release version="2.2.2" date="2017-10-22"> <release version="2.2.2" date="2017-10-22">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Fixed entries with empty URLs being reported to KeePassHTTP clients [#1031]</li> <li>Fixed entries with empty URLs being reported to KeePassHTTP clients [#1031]</li>
<li>Fixed YubiKey detection and enabled CLI tool for AppImage binary [#1100]</li> <li>Fixed YubiKey detection and enabled CLI tool for AppImage binary [#1100]</li>
@ -87,6 +71,7 @@
</description> </description>
</release><release version="2.2.1" date="2017-10-01"> </release><release version="2.2.1" date="2017-10-01">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Corrected multiple snap issues [#934, #1011]</li> <li>Corrected multiple snap issues [#934, #1011]</li>
<li>Corrected multiple custom icon issues [#708, #719, #994]</li> <li>Corrected multiple custom icon issues [#708, #719, #994]</li>
@ -103,6 +88,7 @@
</release> </release>
<release version="2.2.0" date="2017-06-23"> <release version="2.2.0" date="2017-06-23">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Added YubiKey 2FA integration for unlocking databases [#127]</li> <li>Added YubiKey 2FA integration for unlocking databases [#127]</li>
<li>Added TOTP support [#519]</li> <li>Added TOTP support [#519]</li>
@ -138,6 +124,7 @@
</release> </release>
<release version="2.1.4" date="2017-04-09"> <release version="2.1.4" date="2017-04-09">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Bumped KeePassHTTP version to 1.8.4.2</li> <li>Bumped KeePassHTTP version to 1.8.4.2</li>
<li>KeePassHTTP confirmation window comes to foreground [#466]</li> <li>KeePassHTTP confirmation window comes to foreground [#466]</li>
@ -146,6 +133,7 @@
</release> </release>
<release version="2.1.3" date="2017-03-03"> <release version="2.1.3" date="2017-03-03">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Fix possible overflow in zxcvbn library [#363]</li> <li>Fix possible overflow in zxcvbn library [#363]</li>
<li>Revert HiDPI setting to avoid problems on laptop screens [#332]</li> <li>Revert HiDPI setting to avoid problems on laptop screens [#332]</li>
@ -160,6 +148,7 @@
</release> </release>
<release version="2.1.2" date="2017-02-17"> <release version="2.1.2" date="2017-02-17">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Ask for save location when creating a new database [#302]</li> <li>Ask for save location when creating a new database [#302]</li>
<li>Remove Libmicrohttpd dependency to clean up the code and ensure better OS X compatibility [#317, #265]</li> <li>Remove Libmicrohttpd dependency to clean up the code and ensure better OS X compatibility [#317, #265]</li>
@ -177,6 +166,7 @@
</release> </release>
<release version="2.1.1" date="2017-02-06"> <release version="2.1.1" date="2017-02-06">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Enabled HTTP plugin build; plugin is disabled by default and limited to localhost [#147]</li> <li>Enabled HTTP plugin build; plugin is disabled by default and limited to localhost [#147]</li>
<li>Escape HTML in dialog boxes [#247]</li> <li>Escape HTML in dialog boxes [#247]</li>
@ -189,6 +179,7 @@
</release> </release>
<release version="2.1.0" date="2017-01-22"> <release version="2.1.0" date="2017-01-22">
<description> <description>
<p>Changes included in this release:</p>
<ul> <ul>
<li>Show unlock dialog when using autotype on a closed database [#10, #89]</li> <li>Show unlock dialog when using autotype on a closed database [#10, #89]</li>
<li>Show different tray icon when database is locked [#37, #46]</li> <li>Show different tray icon when database is locked [#37, #46]</li>

View File

@ -12,7 +12,7 @@ apps:
keepassxc: keepassxc:
command: desktop-launch keepassxc command: desktop-launch keepassxc
plugs: [unity7, x11, opengl, gsettings, home, network, network-bind, removable-media, raw-usb] plugs: [unity7, x11, opengl, gsettings, home, network, network-bind, removable-media, raw-usb]
desktop: usr/share/applications/org.keepassxc.desktop desktop: usr/share/applications/org.keepassxc.KeePassXC.desktop
cli: cli:
command: keepassxc-cli command: keepassxc-cli
plugs: [gsettings, home, removable-media, raw-usb] plugs: [gsettings, home, removable-media, raw-usb]
@ -42,7 +42,7 @@ parts:
- libyubikey-dev - libyubikey-dev
- libykpers-1-dev - libykpers-1-dev
install: | install: |
sed -i 's|Icon=keepassxc|Icon=${SNAP}/usr/share/icons/hicolor/256x256/apps/keepassxc.png|g' $SNAPCRAFT_PART_INSTALL/usr/share/applications/org.keepassxc.desktop sed -i 's|Icon=keepassxc|Icon=${SNAP}/usr/share/icons/hicolor/256x256/apps/keepassxc.png|g' $SNAPCRAFT_PART_INSTALL/usr/share/applications/org.keepassxc.KeePassXC.desktop
after: [desktop-qt5] after: [desktop-qt5]
# Redefine desktop-qt5 stage packages to work with Ubuntu 17.04 # Redefine desktop-qt5 stage packages to work with Ubuntu 17.04