Subject: AppStream metadata updates
From: Peter Oliver <[email-masked]>
To: [email-masked]
Date: Thu, 3 Apr 2025 15:23:24 +0100 (BST)
List-Id: <debbugs-submit.debbugs.gnu.org>

Attached are three patches related to etc/emacs.metainfo.xml.

-- 
Peter Oliver

From 7bcfb7a6f42761ee8548b1ee2b75b1432242f31e Mon Sep 17 00:00:00 2001
From: Peter Oliver <[email-masked]>
Date: Wed, 2 Apr 2025 15:06:05 +0100
Subject: [PATCH 1/3] Add AppStream metadata about supported and recommended
 hardware

* etc/emacs.metainfo.xml: Note that Emacs is best with a keyboard, but
other forms of input are possible.  Also note that Emacs can access the
Internet.  A modestly sized display is sufficient.
---
 etc/emacs.metainfo.xml | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/etc/emacs.metainfo.xml b/etc/emacs.metainfo.xml
index b063b918a2d..cc316fb8ffd 100644
--- a/etc/emacs.metainfo.xml
+++ b/etc/emacs.metainfo.xml
@@ -37,6 +37,19 @@
  <url type="contribute">https://www.gnu.org/software/emacs/manual/html_node/emacs/Contributing.html</url>
  <launchable type="desktop-id">emacs.desktop</launchable>
  <launchable type="service">emacs.service</launchable>
+ <recommends>
+   <control>keyboard</control>
+
+   <!-- 80×24 at 6×13 per character -->
+   <display_length side="longest">480</display_length>
+   <display_length side="shortest">312</display_length>
+ </recommends>
+ <supports>
+   <control>console</control>
+   <control>pointing</control>
+   <control>touch</control>
+   <internet/>
+ </supports>
  <project_group>GNU</project_group>
  <project_license>GPL-3.0+ and GFDL-1.3+</project_license>
  <developer_name>Free Software Foundation</developer_name>
-- 
2.49.0

From 8c57862263584e1e517c6b90707542fc57cc1da8 Mon Sep 17 00:00:00 2001
From: Peter Oliver <[email-masked]>
Date: Wed, 2 Apr 2025 15:15:02 +0100
Subject: [PATCH 2/3] Tweak AppStream metadata to satisfy `appstream-util
 validate'

* etc/emacs.metainfo.xml: `appstream-util validate' suggests that
screenshot height and width attributes should match the actual size of
the image, and that captions be no longer than 50 chars and do not end
in `.'.  Follow those rules.
---
 etc/emacs.metainfo.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/etc/emacs.metainfo.xml b/etc/emacs.metainfo.xml
index cc316fb8ffd..ad29940a5c3 100644
--- a/etc/emacs.metainfo.xml
+++ b/etc/emacs.metainfo.xml
@@ -55,8 +55,8 @@
  <developer_name>Free Software Foundation</developer_name>
  <screenshots>
   <screenshot type="default">
-    <image type="source" width="632" height="354">https://www.gnu.org/software/emacs/images/appdata-26.png</image>
-    <caption>Editing a Lisp program whilst viewing the Emacs manual.</caption>
+    <image type="source" width="1024" height="576">https://www.gnu.org/software/emacs/images/appdata-26.png</image>
+    <caption>Editing a Lisp program, whilst viewing the manual</caption>
   </screenshot>
  </screenshots>
  <update_contact>emacs-devel_AT_gnu.org</update_contact>
-- 
2.49.0

From 4cdb80c20ade9c21ad3660ae3ba8ed16f9dc7a67 Mon Sep 17 00:00:00 2001
From: Peter Oliver <[email-masked]>
Date: Wed, 2 Apr 2025 15:53:15 +0100
Subject: [PATCH 3/3] Provide Open Age Ratings Service metadata

* etc/emacs.metainfo.xml: Add a <content_rating/> section.
---
 etc/emacs.metainfo.xml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/etc/emacs.metainfo.xml b/etc/emacs.metainfo.xml
index ad29940a5c3..8414e9ac6ba 100644
--- a/etc/emacs.metainfo.xml
+++ b/etc/emacs.metainfo.xml
@@ -59,6 +59,28 @@
     <caption>Editing a Lisp program, whilst viewing the manual</caption>
   </screenshot>
  </screenshots>
+
+ <!-- https://hughsie.github.io/oars/generate.html -->
+ <content_rating type="oars-1.1">
+   <!-- M-x doctor -->
+   <content_attribute id="violence-fantasy">moderate</content_attribute>
+   <content_attribute id="violence-sexual">intense</content_attribute>
+   <content_attribute id="drugs-alcohol">mild</content_attribute>
+   <content_attribute id="drugs-narcotics">mild</content_attribute>
+   <content_attribute id="sex-themes">moderate</content_attribute>
+   <content_attribute id="language-profanity">intense</content_attribute>
+
+   <!-- etc/JOKES -->
+   <content_attribute id="language-humor">mild</content_attribute>
+   <content_attribute id="sex-nudity">mild</content_attribute>
+
+   <!-- Gnus, rirc, etc. -->
+   <content_attribute id="social-chat">intense</content_attribute>
+
+   <!-- M-x report-emacs-bug -->
+   <content_attribute id="social-info">intense</content_attribute>
+ </content_rating>
+
  <update_contact>emacs-devel_AT_gnu.org</update_contact>
  <branding>
     <color type="primary" scheme_preference="light">#7f5ab6</color>
-- 
2.49.0