<div dir="ltr">The unfortunate side of things is that systemd uses an _ as an escape character for hex-encoding, and this proposal is incompatible with that, since we lose that ability. I certainly don't want to bikeshed too much, but I kind of like using _ for hex escapes more. It's uglier, but more universal.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 16, 2017 at 5:54 AM, Simon McVittie <span dir="ltr"><<a href="mailto:smcv@collabora.com" target="_blank">smcv@collabora.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, 16 Oct 2017 at 14:16:05 +0200, Matthias Klumpp wrote:<br>
> Is there a chance that DBus and other tools can get rid of the naming<br>
> limitations anytime soon? Or does the "no-digit-start, no-dash" rule<br>
> have to stay forever?<br>
<br>
</span>Given the number of D-Bus implementations floating around, and the<br>
historical behaviour of the reference implementation (libdbus enforces<br>
syntax rules strictly but historically didn't have public API to do<br>
the necessary checks, so every language binding had to NIH the correct<br>
validation), I think that would be an incompatible change of the sort<br>
that we Do Not Do.<br>
<br>
Also, encouraging underscores and deprecating dashes would align<br>
the recommended character set for D-Bus well-known names with the<br>
required character set for D-Bus interface names, which are more<br>
strict than well-known names (and in particular have never allowed<br>
dashes). Interface names are designed to be usable in code generation<br>
(e.g. some C++ bindings would map D-Bus com.example.MyInterface.<wbr>MyMethod<br>
to C++ com::example::MyInterface::<wbr>MyMethod) which I believe is why we<br>
never allowed dashes and leading digits there, and should not in future.<br>
<span class=""><br>
> Urgh, that is definitely a bug, AppStream should allow underscores for<br>
> sure. I will fix that with the next release.<br>
<br>
</span>Thanks!<br>
<span class=""><br>
> The AS spec should<br>
> really allow underscores, because they are an allowed character in<br>
> domain names, so that part is just a bug, and likely my mistake.<br>
<br>
</span>Underscores are an allowed character in the DNS protocol. They are *not*<br>
an allowed character in domain names[1], and that's why replacing dashes with<br>
underscores does not risk collisions: the owner of <a href="http://awesome-software.com" rel="noreferrer" target="_blank">awesome-software.com</a><br>
is free to use com.awesome_software in their desktop file ID, D-Bus API,<br>
AppStream etc. in the knowledge that they are not conflicting with the<br>
owner of <a href="http://awesome_software.com" rel="noreferrer" target="_blank">awesome_software.com</a>, because <a href="http://awesome_software.com" rel="noreferrer" target="_blank">awesome_software.com</a> cannot exist.<br>
<br>
(This is also why underscores are used in DNS SRV: they're allowed in<br>
the DNS protocol, but cannot appear in hostnames or domain names, so<br>
the special SRV DNS names like _ipp._<a href="http://tcp.example.com" rel="noreferrer" target="_blank">tcp.example.com</a> cannot collide with<br>
anyone's hostname or domain name.)<br>
<br>
However, underscores are an allowed character in D-Bus well-known names,<br>
and the recommended syntax for desktop file IDs is a D-Bus well-known name,<br>
which suggests that designs that reflect or mimic desktop file IDs (like<br>
the AppStream <id>) should probably allow underscores anyway.<br>
<br>
    smcv<br>
<br>
[1] <a href="https://tools.ietf.org/html/rfc1035" rel="noreferrer" target="_blank">https://tools.ietf.org/html/<wbr>rfc1035</a> "The labels must follow the<br>
    rules for ARPANET host names. They must start with a letter, end with a<br>
    letter or digit, and have as interior characters only letters, digits,<br>
    and hyphen."<br>
<div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
Flatpak mailing list<br>
<a href="mailto:Flatpak@lists.freedesktop.org">Flatpak@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/flatpak" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/flatpak</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">  Jasper<br></div>
</div>