Philip Withnall
philip@tecnocode.co.uk
Will Thompson
wjt@endlessos.org
Milan Crha
mcrha@redhat.com
Hvordan Software bruger metadata

# Softwaremetadata

# Skærmbilleder

Software viser skærmbilleder på detaljesiden for et program. Dette bør typisk omfatte skærmbilleder af forskellige vinduer/dialogbokse i programmet, så brugeren hurtigt kan danne sig et overblik over programmets funktioner, udseende og funktionalitet osv.

Når der er mere end ét skærmbillede i programmets metainfofil, viser Software skærmbillederne i en karrusel.

I tilfælde hvor programmets metainfofil ikke indeholder noget skærmbillede, vises et erstatningsikon som nedenfor med `Ingen skærmbilleder`:

Erstatningsikonet kan se anderledes ud, hvis du amvender et brugerdefineret ikontema.

Skærmbilleder kan blive forældede, når programmets brugergrænseflade ændres. Så selvom Software viser skærmbilleder for et program, er det vigtigt at kontrollere, om disse skærmbilleder er opdaterede eller forældede.

Du kan forbedre programmets skærmbilledoplysninger:

Sådan tilføjes manglende programskærmbilleder

# Programmets kontekstbjælke

Programmets kontekstbjælke i Software er en samling fliser på programmets detaljeside, som viser følgende detaljer.

Lager

Sikkerhed

Understøttelse af hardware

Aldersvurdering

Dette viser programmets kontekstbjælke for programmet Software:

Fliserne vises i ovenstående rækkefølge (startende med flisen `Lager` til venstre).

Hver flise er beskrevet i detaljer nedenfor.

# Lager

Software viser en lagerflise på et programs detaljeside. Hvis programmet ikke er installeret, vises den anslåede downloadstørrelse, der er nødvendig for at installere den. Hvis programmet er installeret, vises den lagerplads, som programmet bruger.

Størrelserne beregnes ud fra data fra Software-backend (f.eks. flatpak eller RPM) og er ikke angivet i de metadata, der leveres af programmet. Du kan ikke ændre denne flise ved at redigere et programs metainfofil. Den er angivet her for fuldstændighedens skyld.

# Sikkerhed

Software viser en sikkerhedsflise på et programs detaljeside. Denne opsummerer oplysninger om, hvorvidt programmet kan betragtes som sikkert at installere og køre, eller om der er grund til at udvise forsigtighed, før man stoler på det.

Denne flise kombinerer oplysninger om de tilladelser, som programmet anmoder om, når det kører (f.eks. tilladelse til at læse dine filer), med oplysninger om, hvordan programmet er udviklet. Frie softwareprogrammer, hvor kildekoden er offentligt tilgængelig, kan være mere sikre end proprietære programmer, da de kan undersøges.

Den dialog, der vises, når du klikker på flisen, viser de forskellige tilladelser, som programmer anmoder om, samt nogle oplysninger om dets licens og kørselstid.

Du kan forbedre sikkerhedsoplysningerne:

Sådan rettes forkerte oplysninger om sikkerhed og tilladelser

# Understøttelse af hardware

Software viser en flise med hardwareunderstøttelse på et programs detaljeside. Denne flise kombinerer oplysninger om programmets hardwarekrav og computerens hardwarefunktioner med det formål at fremhæve inkompatibilitet eller manglende krav — eller for at angive, at programmet bør fungere korrekt uden inkompatibiliteter.

Koden leder efter følgende hardware. Understøttelse af mere kan ske i fremtiden.

Om en pegeplade, mus eller tastatur er til stede/nødvendig

Om en gamepad er nødvendig

Den mindste og anbefalede skærmstørrelse programmet kan skaleres til

Det er ikke muligt at registrere pålideligt, om en gamepad er til stede, da de ofte er frakoblede, fordi de ikke er nødvendige til normal brug af computeren.

Dialogen, der vises, når du klikker på flisen, viser programmets forskellige hardwarekrav og angiver, om nogle af dem ikke er opfyldt.

Du kan forbedre oplysningerne om hardware:

Sådan tilføjes manglende oplysninger om hardware

# Aldersvurdering

Software viser en flise indeholdende aldersvurdering på programmets detaljeside. Denne viser, hvilken aldersgruppe programmet er egnet til, baseret på de forskellige typer indhold, som programmet har angivet at indeholde. Disse oplysninger er sammenfattet i et format, der ligner de spil- eller filmklassificeringscertifikater, der findes i dit land.

Dette vil f.eks. fremhæve, om et spil indeholder vold, eller om et program indeholder reklamer i appen.

Dialogen, der vises, når du klikker på flisen, viser de forskellige typer indhold i programmet, og hvor alvorligt dette indhold er.

Du kan forbedre oplysningerne om aldersvurdering:

Sådan tilføjes oplysninger om indholdsvurdering

# Licens

Software viser en flise, der angiver, om et program er fri software, eller om dets licens er proprietær, speciel eller ukendt. Denne flise indeholder mere detaljerede oplysninger om projektets licens. Flisen viser også nogle af fordelene ved fri software. Læs mere her.

Nogle gange er licensoplysningerne ikke korrekte for et program, og derfor vil et program, der faktisk er fri software, blive vist som “proprietært”. Tilsvarende er licensoplysningerne nogle gange ukendte.

Software fremhæver licenser for programmer, der er frie og open source med grønt, og proprietære og specielle licenser med gult, som vist her. Ukendte licenser fremhæves med gråt.

Du kan tilføje eller forbedre licensoplysningerne:

Sådan rettes forkerte licensoplysninger

# Links

Software viser en liste over links til applikationsressourcer i linkflisen. De er som følger:

| Webstedslink
| Donationslink
| Oversættelsesbidragslink
| Fejlrapporteringslink
| Hjælpelink
| Kontaktlink

Nogle eller alle disse links kan være til stede, afhængigt af om de er angivet i programmets metainfofil.

I tilfælde, hvor programmets metainfofil ikke indeholder noget link, vises følgende flise med et spørgsmålstegn.

Du kan forbedre linksene:

Sådan tilføjes manglende links

# Karruselflise

Programmer, der er udvalgt af Software, vises i en karrusel øverst i hovedvinduet, som vist her. Hver karruselflise har en baggrundsfarve, der automatisk udtrækkes fra programmets ikon. Nogle gange passer denne baggrundsfarve ikke helt til programmet og skal derfor angives eksplicit af programmets udvikler.

Det sæt programmer, der vises, bestemmes af Linux-distributionsadministratorerne.

Du kan forbedre karruselflisen:

Sådan indstilles karruselflisens baggrundsfarve

# Hvor kommer metadata fra?

Metadataene, der bruges til at angive, hvilken hardware et stykke software kræver, hvilken aldersgruppe det er egnet til, og faktorer, der bidrager til, hvor sikkert det er at installere, kommer alle fra metainfofilen for den pågældende software.

Metainfofilen er en XML-fil. Dens filformat er specificeret i AppStream-specifikationen.

Se metainfofilen for GNOME Filer.

appdata er en ældre betegnelse for metainfo.

# Hvad sker der, hvis metadata mangler?

Hvis nogle metadata mangler for et program, kan Software kun gætte på, hvad det kan være, og kan derfor ikke præsentere meget information i sine grænseflader. De gæt, som Software foretager, er baseret på det faktum, at de fleste programmer er designet til skrivebordscomputere.

Du kan hjælpe med at forbedre et programs metadata!

# Bidrag med manglende information

Hvis du opdager, at et programs side mangler oplysninger eller indeholder forkerte oplysninger, kan du bidrage på en af to måder:

Du kan rapportere de manglende/forkerte metadata til det pågældende programs fejlsporingssystem, så udvikleren kan rette fejlen.

Du kan selv rette de manglende/forkerte metadata. Se vejledningen Sådan gør du nedenfor for at se, hvordan du gør.

I begge tilfælde skal du først finde programmets projektside. Linket til projektsiden skal normalt være tilgængeligt på programmets side som vist her. Hvis ikke, skal du finde det ved hjælp af en simpel søgning f.eks. med brug af en søgemaskine som Qwant eller Ecosia.

Programmer har typisk hjemme hos GitLab eller GitHub. GNOME-programmer ligger for eksempel på gitlab.gnome.org.

# Sådan tilføjes manglende programskærmbilleder

Skærmbilledoplysningerne for et program gemmes i elementet `<screenshots>` inden for programmets `<component>` i dets metainfofil.

Det anbefalede antal skærmbilleder for et program er mellem 5 og 10. Skærmbilleder bør helst være i PNG-formatet med højde-breddeforholdet 16:9 og en minimumsbredde på 620 pixels.

Her er for eksempel skærmbillederne for programmet Software:

<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>

# Sådan rettes forkerte oplysninger om sikkerhed og tilladelser

Oplysninger om sikkerhed og tilladelser for et program kommer fra forskellige kilder, afhængigt af hvordan programmet distribueres. For traditionelt distribuerede programmer, f.eks. i RPM- eller DEB-format, findes der ingen sikkerheds- eller tilladelsesoplysninger, og der kan ikke gøres noget for at tilføje dem til et program.

For flatpak-programmer kommer oplysningerne fra programmets flatpak-manifest, der angiver, hvilke huller i sandkassen programmet kræver. Hvert af disse huller bidrager typisk til at sænke det viste sikkerhedsniveau for programmet i Software — fra “sikker” til “potentielt usikker” til “usikker”.

For at forbedre sikkerhedsniveauet for et program skal dets sandkassetilstand gøres så streng som muligt ved at fjerne sandkassetilladelser, hvor de ikke er nødvendige, og ved at bruge portaler i stedet for sandkassetilladelser, hvor det er muligt. Brug af portaler sænker ikke det viste sikkerhedsniveau for et program i Software.

Hvis programmet f.eks. anmoder om læse-/skriveadgang til hele filsystemet (`--filesystem=host`), har den så virkelig brug for det, eller behøver den kun at få adgang til filer på nogle få specifikke steder? I så fald kan filportalen bruges, eller der kan angives mere specifikke filsystemtilladelser.

Hvis programmet fungerer på Wayland og kun skal fungere på X11 i nødstilfælde uden at bruge specielle X11-funktioner, kan den så bruge `--socket=fallback-x11` i stedet for `--socket=x11`?

Vejledning om specifikke tilladelser eller andre pakkeformater kan blive tilføjet her i fremtiden.

Yderligere læsestof:

# Sådan tilføjes manglende oplysninger om hardware

Hardwareoplysningerne for et program gemmes i elementerne `<requires>`, `<recommends>` og `<supports>` i programmets `<component>` i dets metainfofil.

Software forstår elementerne `<control>` og `<display_length>`.

Du kan finde eksempler på metadata i dette blogindlæg eller dette blogindlæg.

# Sådan tilføjes oplysninger om indholdsvurdering

Oplysningerne om indholdsvurdering for et program gemmes i elementet `<content_rating>` inden for programmets `<component>` i dets metainfofil.

Programmer bør bruge OARS 1.1-standarden til at udfylde dette element. Hvis elementet `<content_rating>` ikke er angivet, er programmets indholdsvurdering ukendt. Hvis det er angivet, men tomt, har applikationen ikke noget indhold, der kan være uegnet for nogen målgruppe.

Brug OARS-generatoren til at generere passende indholdsvurderingsoplysninger til et program.

# Sådan rettes forkerte licensoplysninger

Et programs licensoplysninger gemmes i elementet <project_license> inden for programmets `<component>` i dets metainfofil.

Indholdet i dette element skal være et SPDX-udtryk, der beskriver projektets “hovedlicens”. Dette bør typisk være kildekodens licens og må ikke omfatte licensen for dokumentationen eller supplerende indhold.

Hvis SPDX-udtrykket er en enkelt licens eller en “eller”-kombination af flere licenser, som alle er godkendt af FSF eller OSI, betragtes programmet som “fri software”, og det fremgår af licensflisen. I modsat fald betragtes det som “proprietært”.

Hvis et program vises som “proprietært”, selvom du mener, det ikke burde være det, er det sandsynligt, at elementet `<project_license>` indeholder projektets dokumentationslicens. Fjern det.

Ændr for eksempel licensmetadata fra:

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

til

<project_license>GPL-2.0+</project_license>

Yderligere læsestof:

Du bør (generelt) ikke placere dokumentationslicensen i appdata

# Sådan tilføjes manglende links

The links for an application are stored as `<url>` elements within the application’s `<component>` in its metainfo file.

Tilføj så mange af de linktyper, der er beskrevet i appstream-specifikationen, som findes til programmet. Hvis der ikke findes en passende side til en given linktype, behøver den ikke at blive medtaget.

Her er for eksempel links til ressourcerne for programmet Software:

<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>

# Sådan indstilles karruselflisens baggrundsfarve

Karruselflisens baggrundsfarve hentes normalt automatisk fra programmets ikon. Hvis den farve ikke er tilfredsstillende, kan den dog tilsidesættes ved at bruge appstreams `<branding/>`-element med angivne farver (siden 47.x-serien). Fordelen er, at flere klienter kan bruge farverne.

Her er nogle eksempler på branding:

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

Bemærk, at attributten `scheme_preference` ignoreres; Software vælger selv den bedste farve til temaet.

Af hensyn til bagudkompatibilitet er det stadig muligt at tilføje følgende XML til programmets metainfo-`<component>`-element:

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

men `<branding/>`-elementet har forrang.

Værdien af `GnomeSoftware::key-colors` er en GVariant i tekstformat af typen `a(yyy)`, der repræsenterer en uordnet mængde af tastefarver til programmet. Hvert element i mængden er en farve i RGB-format, der spænder fra `(0, 0, 0)` til `(255, 255, 255)`.

Farver bør vælges så de:

Kan genkendes i forbindelse med programmet og om muligt på en eller anden måde matcher programmets branding.

Står i kontrast til kanten af programmets ikon, så ikonet kan skelnes, når farverne bruges som baggrund bag det.

Står i kontrast til forgrundstekstfarven i Adwaita-temaet (`#2e3436`) og i dets mørke variant (`#eeeeec`). Det betyder som regel, at man skal vælge en farve med en middel lysstyrke.

Kontrasten kan kontrolleres ved hjælp af programmet Contrast.

Der skal angives mindst én farve. Der kan angives flere, hvis én farve ikke kan opfylde alle ovenstående krav, og Software vælger den mest passende til brug i karruselflisen. Hvis der angives nøjagtigt én farve, kan dens lysstyrke og mætning ændres for at forbedre kontrasten til forgrundsfarven. Hvis der angives mere end én farve, vælges den med den bedste kontrast til forgrundsfarven, og dens lysstyrke og mætning ændres ikke.

# Sådan testes ændringer i karruselflisens baggrundsfarve

Redigér dit programs metainfofil, og kør derefter Software med:

gnome-software --show-metainfo=/sti/til/app.metainfo.xml,icon=/sti/til/app/icon.png

Dit programs detaljeside vises. Hvis du går tilbage til oversigtssiden for Software, vil dit program være den eneste i karrusellen “Udvalgte”.