Philip Withnall
philip@tecnocode.co.uk
Will Thompson
wjt@endlessos.org
Milan Crha
mcrha@redhat.com
Hoe Software metadata gebruikt
Marvin Parlevliet
marvinparlevliet@msn.com 2025
Nathan Follens
nfollens@gnome.org 2025

# Software-metadata

# Schermafdrukken

Software toont schermafdrukken op de detailpagina voor een toepassing. Deze zal normaal gesproken schermafdrukken van een aantal (dialoog)vensters van de toepassing moeten bevatten, zodat de gebruiker in een oogopslag de mogelijkheden van de toepassing kan zien, de look-en-feel, enz.

Wanneer er meer dan één schermafdruk beschikbaar is in het metainfo-bestand van de toepassing, zal Software de schermafdrukken in een carrousel weergeven.

In gevallen waar het metainfo-bestand van de toepassing geen schermafbeelding bevat, zal er een tijdelijk pictogram met `Geen schermafdrukken` getoond worden, zoals hieronder:

Het tijdelijke pictogram kan er anders uitzien wanneer u een aangepast pictogramthema gebruikt.

Schermafdrukken kunnen verouderd raken wanneer de gebruikersinterface van de toepassing verandert. Zelfs als Software schermafdrukken van een toepassing toont, is het belangrijk om te controleren of deze schermafdrukken bijgewerkt of verouderd geraakt zijn.

U kunt de schermafdrukinformatie van toepassingen verbeteren:

Ontbrekende schermafdrukken toevoegen

# Toepassing-contextbalk

De toepassing-contextbalk in Software is een collectie van tegels op de detailpagina voor een toepassing, die de volgende details toont.

Opslag

Veiligheid

Hardwareondersteuning

Leeftijdsbeoordeling

Dit toont de contextbalk voor de Software-toepassing:

De tegels worden getoond in de volgorde zoals hierboven genoemd (beginnend met de `Opslag`-tegel aan de linkerkant).

Elke tegel wordt hieronder in detail beschreven.

# Opslag

Software toont een opslagtegel op de detailpagina van een toepassing. Als de toepassing niet al geïnstalleerd is, toont deze een geschatte downloadgrootte benodigd om deze te installeren. Wanneer de toepassing geïnstalleerd is, toont deze de opslagruimte gebruikt door de toepassing.

De groottes worden berekend gebaseerd op data afkomstig van de Software-back-end (zoals Flatpak of een RPM) en worden niet vastgesteld in de metadata van de toepassing. Er zijn geen veranderingen die u kunt maken aan deze tegel door het metainfo-bestand van een toepassing te bewerken. Dit wordt getoond ter volledigheid.

# Veiligheid

Software toont een veiligheidstegel op de detailpagina voor een toepassing. Dit toont een samenvatting van informatie in hoeverre een toepassing beschouwd kan worden als veilig om te installeren en uit te voeren, of dat voorzichtigheid wordt aangeraden alvorens deze te vertrouwen.

Deze tegel combineert informatie over de machtigingen die de toepassing aanvraagt wanneer ze uitgevoerd wordt (zoals machtiging om uw bestanden te lezen), met informatie over hoe de toepassing ontwikkeld is. Vrije software, waarvan de broncode openbaar leesbaar is, kan veiliger zijn dan propriëtaire software, omdat deze gecontroleerd kan worden.

Het dialoogvenster dat verschijnt wanneer de tegel aangeklikt wordt, toont de verschillende machtigingen die de toepassing aanvraagt, met wat informatie over de licentie en runtime ervan.

U kunt de veiligheidsinformatie verbeteren:

Foutieve veiligheids- en machtigingsinformatie aanvullen

# Hardwareondersteuning

Software toont een hardwareondersteuningstegel op de detailpagina voor een toepassing. Deze combineert informatie over de hardware-eisen van de toepassing, en de hardwaremogelijkheden van de computer, met het doel om incompatibele of ontbrekende eisen aan te kaarten — of om te tonen dat de toepassing correct zou moeten werken zonder incompatibiliteiten.

De code kijkt naar de volgende hardware. Meer ondersteuning kan in de toekomst toegevoegd worden.

Of er een touchpad, muis of toetsenbord aanwezig/nodig is

Of er een gamepad nodig is

De minimum en aanbevolen schermgrootte waarin de toepassing zich kan schalen

Het is niet mogelijk om met betrouwbaarheid te detecteren of er een gamepad aanwezig is, omdat deze vaak niet aangekoppeld zijn tijdens normaal computergebruik.

Het dialoogvenster dat verschijnt wanneer de tegel aangeklikt wordt, toont de verschillende systeemeisen van de toepassing, en of er eisen zijn waaraan niet voldaan wordt.

U kunt de hardware-informatie verbeteren:

Ontbrekende hardware-informatie toevoegen

# Leeftijdsbeoordeling

Software toont een leeftijdsbeoordelingstegel op de detailpagina voor een toepassing. Dit toont de leeftijdsgroep voor wie de toepassing geschikt is, gebaseerd op de verschillende soorten inhoud waarvan de toepassing heeft aangegeven dat ze die bevat. Deze informatie wordt samengevat in een formaat vergelijkbaar met de spel- of filmkeuringscertificaten voor uw land.

Er wordt bijvoorbeeld getoond of een spel geweld bevat, of dat een toepassing inge advertenties bevat.

Het dialoogvenster dat getoond wordt wanneer er op de tegel geklikt wordt, toont de verschillende types van inhoud in de toepassing en de mate van ongepastheid van de inhoud.

U kunt de leeftijdsbeoordelingsinformatie verbeteren:

Ontbrekende leeftijdsbeoordelingsinformatie toevoegen

# Licentie

Software toont een tegel die aangeeft of een toepassing vrije software is, of dat de licentie propriëtair, speciaal of onbekend is. Deze tegel bevat meer gedetailleerde informatie over de licentie van het project. Ook toont deze tegel een aantal voordelen van vrije software. Meer informatie

Soms kan het voorkomen dat de licentie-informatie van een toepassing onjuist is, waardoor vrije software getoond wordt als ‘propriëtair’. Soms kan de licentie-informatie ook onbekend zijn.

Software markeert vrije en opensourcelicenties in het groen, en propriëtaire en speciale licenties in het geel, zoals hier getoond. Onbekende licenties worden in het grijs gemarkeerd.

U kunt de licentie-informatie verbeteren of toevoegen:

Foutieve licentie-informatie verbeteren

# Links

Software toont een lijst van bronverwijzingen gerelateerd aan de toepassing in de verwijzingstegel. Deze zijn als volgt:

| Verwijzing naar de website
| Verwijzing voor donaties
| Verwijzing om vertalingen bij te dragen
| Verwijzing om fouten te melden
| Verwijzing voor hulp
| Verwijzing om contact op te nemen

Een aantal of alle verwijzingen kunnen beschikbaar zijn, afhankelijk van of deze opgegeven zijn in het metainfo-bestand van de toepassing.

In gevallen waar het metainfo-bestand van de toepassing geen verwijzing bevat, wordt de volgende tegel met een vraagteken getoond.

U kunt de verwijzingen verbeteren:

Ontbrekende verwijzingen toevoegen

# Carrouseltegel

Toepassingen die uitgelicht zijn door Software, worden getoond in een carrousel aan de bovenkant van het venster zoals hier getoond. Elke carrouseltegel heeft een achtergrondtegel die automatisch uit het pictogram van de toepassing geëxtraheerd wordt. Soms klopt deze achtergrondkleur niet helemaal voor de toepassing en moet deze expliciet vastgesteld worden door de ontwikkelaar van de toepassing.

De verzameling toepassingen die uitgelicht zijn, wordt bepaald door de beheerders van de Linux-distributie.

U kunt de carrouseltegel verbeteren:

De achtergrondkleur van de carrousel instellen

# Waar metadata vandaan komt

De metadata gebruikt voor het bepalen welke hardware een toepassing nodig heeft, voor welke leeftijd ze geschikt is, en factoren die meewegen in hoe veilig het kan zijn om te installeren, komen allemaal uit het metainfo-bestand voor die toepassing.

Het metainfo-bestand is een XML-bestand. Het bestandsformaat is vastgesteld in de AppStream-specificatie.

Zie het metainfo-bestand voor de GNOME Bestanden-toepassing.

appdata is de oudere term voor metainfo.

# Wat er gebeurt als de metadata ontbreekt

Als er metadata voor een toepassing ontbreekt, kan Software alleen speculeren wat het zou kunnen zijn, waardoor het niet veel informatie erover kan tonen in de interfaces. De speculaties gemaakt door Software zijn gebaseerd op het feit dat de meeste software ontworpen is voor desktopcomputers.

U kunt de metadata van een toepassing verbeteren!

# Aanvullen van ontbrekende informatie

Als u ondervindt dat een pagina van een toepassing ontbrekende of onjuiste informatie bevat, kunt u bijdragen op een van de volgende twee manieren:

U kunt de ontbrekende / onjuiste metadata rapporteren in de respectieve bugtracker van de toepassing, zodat de ontwikkelaar van de toepassing dit kan oplossen.

U kunt de ontbrekende / onjuiste metadata zelf aanvullen. Zie de How to-handleiding hieronder hoe u dit kunt doen.

In beide gevallen moet u eerst de projectpagina van de toepassing vinden. De link naar de projectpagina zal normaal gesproken op de pagina van de toepassing getoond moeten worden zoals hier getoond. Als dit niet zo is, dan zal u deze kunnen vinden met een simpele zoekopdracht op Google.

Toepassingen worden normaal gesproken gehost op GitLab of GitHub. GNOME-toepassingen worden bijvoorbeeld gehost op gitlab.gnome.org.

# Ontbrekende schermafdrukken toevoegen

De schermafdrukinformatie van een toepassing wordt bewaard in het `<screenshots>`-element binnen de `<component>` in het metainfo-bestand van de toepassing.

Het aanbevolen aantal schermafdrukken voor een toepassing ligt tussen 5 en 10. Schermafdrukken behoren idealiter in PNG-formaat te zijn met een verhouding van 16:9 en een minimumbreedte van 620 pixels.

Hier zijn bijvoorbeeld een aantal schermafdrukken ingezonden voor de Software-toepassing:

<screenshots> <screenshot type="default"> <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-overview.png</image> <caption>Overview panel</caption> </screenshot> <screenshot> <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-details.png</image> <caption>Details panel</caption> </screenshot> </screenshots>

# Onjuiste veiligheids- en machtigingsinformatie oplossen

De veiligheids- en machtigingsinformatie voor een toepassing komt van verschillende bronnen, afhankelijk van hoe de toepassing is verpakt. Voor traditioneel-verpakte toepassingen, bijvoorbeeld in RPM- of DEB-formaat, is er geen veiligheids- of machtigingsinformatie beschikbaar en is er geen manier om dit aan een toepassing toe te voegen.

Voor Flatpak-toepassingen komt deze informatie van het flatpak-manifest van de toepassing, waarin staat welke openingen in de zandbak de toepassing nodig heeft. Elk van deze openingen leidt er doorgaans toe dat het weergegeven veiligheidsniveau van de toepassingen in Software verlaagd wordt — van ‘Veilig’ over ‘Mogelijk onveilig’ naar ‘Onveilig’.

Om het veiligheidsniveau van een toepassing te verbeteren, moet de zandbak ervan zo strikt mogelijk gemaakt worden, door het verwijderen van zandbakmachtigingingen wanneer deze niet benodigd zijn, en door het gebruik van portalen in plaats van zandbakmachtigingen waar mogelijk. Het gebruik van portalen verlaagt het getoonde veiligheidsniveau van een toepassing in Software niet.

Als een toepassing bijvoorbeeld lees-/schrijfrechten aanvraagt voor het gehele bestandssysteem (`--filesystem=host`), heeft ze het dan echt nodig, of moet ze alleen bestanden benaderen in een paar specifieke locaties? In het laatste geval kan het bestandsportaal gebruikt worden, of meer specifieke bestandssysteemmachtigingen kunnen worden aangegeven.

Als de toepassing op Wayland werkt, en alleen als terugvaloptie moet werken op X11 zonder het gebruik van speciale X11-mogelijkheden, zou het `--socket=fallback-x11` kunnen gebruiken in plaats van `--socket=x11`?

Richtlijnen over specifieke machtigingen, of andere pakketformaten, kunnen hier in de toekomst toegevoegd worden.

Verder lezen:

# Ontbrekende hardware-informatie toevoegen

De hardware-informatie voor een toepassing wordt bewaard in de `<requires>`-, `<recommends>`- en `<supports>`-elementen binnen de `<component>` van de toepassing in het metainfo-bestand.

Software begrijpt de `<control>`- en `<display_length>`-elementen.

ZIe deze blogpost of deze blogpost voor voorbeelden van metadata.

# Ontbrekende leeftijdsbeoordelingsinformatie toevoegen

De leeftijdsbeoordelingsinformatie voor een toepassing wordt bewaard in het `<content_rating>`-element binnen de `<component>` in het metainfo-bestand van de toepassing.

Toepassingen zullen de OARS 1.1-standaard moeten gebruiken om dit element in te vullen. Als het `<content_rating>`-element niet gespecificeerd is, dan is de leeftijdbeoordelingsinformatie onbekend. Als deze gespecificeerd maar leeg is, bevat de toepassing geen inhoud die mogelijk ongepast is voor een doelgroep.

Gebruik de OARS-generator om passende leeftijdsbeoordelingsinformatie voor een toepassing te genereren.

# Foutieve licentie-informatie oplossen

De licentie-informatie voor een toepassing wordt bewaard in het `<project_license>`-element binnen de `<component>` in het metainfo-bestand van de toepassing.

De inhoud in dit element zou een SPDX-expressie moeten zijn, die de ‘hoofdlicentie’ voor het project beschrijft. Deze zou normaal gesproken de licentie van de code moeten zijn, en niet de licentie van de documentatie of bijkomende inhoud mogen bevatten.

Als de SPDX-expressie één licentie is, of een ‘of’-combinatie van meerdere licenties, die allen door de FSF of het OSI goedgekeurd zijn, dan wordt de toepassing als ‘vrije software’ beschouwd, en de tegel zal dit dan aangeven. Anders wordt ze als ‘propriëtair’ beschouwd.

Als een toepassing wordt getoond als ‘propriëtair’ terwijl u denkt dat dit niet klopt, dan kan het zijn dat het `<project_license>`-element de documentatielicentie voor het project bevat. Verwijder deze.

Verander bijvoorbeeld de licentiemetadata van:

<project_license>GPL-2.0+ and CC-BY-SA-3.0</project_license>

naar

<project_license>GPL-2.0+</project_license>

Verder lezen:

Zet (over het algemeen) geen documentatielicentie in appdata

# Ontbrekende verwijzingen toevoegen

De verwijzingen voor een toepassing worden bewaard als `<url>`-elementen binnen de `<component>` in het metainfo-bestand van de toepassing.

Voeg zoveel verwijzingstypes gedocumenteerd in de AppStream-specificatie als er beschikbaar zijn voor de toepassing. Als er geen passende pagina bestaat voor een gegeven verwijzingstype, hoeft het niet toegevoegd te worden.

Hier zijn bijvoorbeeld de bronverwijzingen voor de Software-toepassing:

<url type="bugtracker">https://gitlab.gnome.org/GNOME/gnome-software/-/issues</url> <url type="contact">https://discourse.gnome.org/tag/gnome-software</url> <url type="contribute">https://welcome.gnome.org/app/Software/</url> <url type="donation">https://www.gnome.org/donate/</url> <url type="homepage">https://apps.gnome.org/Software</url> <url type="translate">https://l10n.gnome.org/module/gnome-software/</url> <url type="vcs-browser">https://gitlab.gnome.org/GNOME/gnome-software/</url>

# Een achtergondkleur van de carrouseltegel instellen

De achtergrondkleur van de carrouseltegel wordt normaal gesproken automatisch uit het pictogram van de toepassing gehaald. Als deze kleur echter ontoereikend is, kan deze overschreven worden met behulp van het AppStream`<-branding/>`-element met gedeclareerde kleuren (sinds de 47.x-serie). Het voordeel hiervan is dat deze kleuren door meerdere cliënten gebruikt kunnen worden.

Hier zijn bijvoorbeeld een aantal branding-inzendingen:

<branding> <color type="primary" scheme_preference="light">#ff00ff</color> <color type="primary" scheme_preference="dark">#993d3d</color> </branding>

Merk op dat het`scheme_preference`-attribuut genegeerd wordt, en Software de betere kleur voor het thema zelf uitkiest.

Voor terugwaartse compatibiliteit is de mogelijkheid behouden om de volgende XML aan het metainfo-`<component>`-element van de toepassing toe te voegen:

<custom> <value key="GnomeSoftware::key-colors">[(124, 53, 77), (99, 16, 0)]</value> </custom>

maar het `<branding/>`-element neemt de voorrang.

De waarde van `GnomeSoftware::key-colors` is een tekstformaat GVariant met het type `a(yyy)`, en stelt een ongeordende lijst van sleutelkleuren voor de toepassing voor. Elk element van de verzameling is een kleur in de RGB-notatie van `(0, 0, 0)` tot `(255, 255, 255)`.

Kleuren zouden zodanig gekozen moeten worden dat ze:

Terug te kennen zijn naar de applicatie, waar mogelijk passend bij de merkidentiteit van de toepassing.

Contrast bieden ten opzichte van de rand van het toepassingspictogram, zodat het pictogram van de achtergrond onderscheiden kan worden.

Contrast met de voorgrondtekstkleur in het Adwaita-thema `#2e3436`) en zijn donkere variant (`#eeeeec`). Dit betekent over het algemeen een kleur te kiezen met een gemiddelde hoeveelheid helderheid.

Het contrast kan gecontroleerd worden met behulp van de Contrast-toepassing.

Minstens één kleur moet worden opgegeven. Meerdere kunnen worden opgegeven als één kleur niet aan alle eisen hierboven voldoet, Software zal dan kiezen welke het meest geschikt is voor gebruik in de carrouseltegel. Wanneer precies één kleur is opgegeven, kan de helderheid en verzadiging aangepast worden om contrast met de voorgrondkleur te verbeteren. Wanneer meer dan één kleur wordt opgegeven, dan zal de voorgrondkleur met het beste contrast gekozen worden, en zullen de helderheid en verzadiging niet aangepast worden.

# Testen van achtergrondkleurveranderingen in de carrouseltegel

Bewerk het metainfo-bestand voor uw toepassing, en start Software met:

gnome-software --show-metainfo=/pad/naar/app.metainfo.xml,icon=/pad/naar/toepassing/pictogram.png

De detailpagina voor uw toepassing zal nu getoond worden. Als u teruggaat naar de overzichtspagina van Software, zal uw toepassing als enige in de ‘Uitgelicht’-carrousel verschijnen.