← Feed
@brie@do.crimes.brie.gay
Post #1055354
2026-04-09 20:31 UTC
reading the spec about IDs for AppStream, which needs to match the flatpak ID:While hyphens are allowed for legacy compatibility, their usage is strongly discouraged to ensure interoperability of the AppStream ID with other tools such as D-Bus (and thereby making the ID more generic and useful). Okay, sure. You shouldn't use hyphens because you can't use them in dbus/appstream ids, and all of this should match. Makes sense.
One sentence later:Additionally, even though uppercase letters are permitted in a component-ID, it is strongly encouraged to only use lowercase letters for the ID.Sure, it is discouraged. Thank you for the info. All lower case. Let's just check out the other specs (for fun).
starting with the freedesktop specifications for naming .desktop files:For applications, the part of the name of the desktop file before the .desktop extension should be a valid D-Bus well-known name.great. makes sense.The domain name should be followed by the name of the application, which is conventionally written with words run together and initial capital letters (CamelCase). For example, if the owner of example.org writes "Foo Viewer", they might choose the name org.example.FooViewer, resulting in a file named org.example.FooViewer.desktopThat seems like it's saying the exact opposite, but I'm probably missing something.
Lets check out the spec for dbus names to make sure:
We're looking for bus name ("the convention that an application's "main" interface and object path resemble its bus name"), so lets look at that section:Like interface names, well-known bus names should start with the reversed DNS domain name of the author of the interface (in lower-case), and it is conventional for the rest of the well-known bus name to consist of words run together, with initial capital letters.so according to various freedesktop specs:
- AppStream ID, dbus bus names, and .desktop file names should match
- dbus bus names and .desktop files should be camel case
- AppStream ID should be all lowercase
but that doesn't make sense because all of those things are freedesktop specs, which wouldn't contradict each other. right?
Replies (1)
-
Maybe I missed something, lets look at the flatpak docs again (which aren't as formal as the other ones): https://docs.flatpak.org/en/latest/conventions.htmlAs will be seen below and in future sections, this ID is expected to be used in a number of places. Developers must follow the standard D-Bus naming conventions for bus names when creating their own IDs. This format is already recommended by the Desktop File specification and also the Appstream specification.Yes, cool, flatpaks must follow the dbus bus name conventions. They should also match desktop file names and appstream names.while not required, the application portion is recommended to be in lowercase as welland they should be all lowercase :neobot_explode:
Lets look at examples. That should help. The freedesktop spec was made in large parts by GNOME and KDE, lets check out what they do. This will solve the ambiguity.
KDE KColorChooser flatpak manifest
"id": "org.kde.kcolorchooser",
and this matches their desktop file, org.kde.kcolorchooser.desktop
now, GNOME SystemMonitor flatpak manifest
"app-id": "org.gnome.SystemMonitor.Devel",
this matches their desktop file, org.gnome.SystemMonitor.desktop
nice. cool. thank you. glad we're consistent :neobot_explode:
Open ##1055355