Hello Guix, Not long ago, somebody has raised an issue regarding an error that occurs whenever some unconventional character is used as the name for a store item [0]. Tobias Geerinckx-Rice pointed out that this restriction was directly inherited from the Nix source code [1] and that, as such, it isn't really a bug. Regardless, I believe that the imposed limitation may be undesirable in some situations. One that I can think of off the top of my head is packaging a piece of software with a name that contains non-Latin characters in it (e.g., "Naršytuvas" by Raštija [2]). Of course, there are very few examples of such programs in actual practice, but there's a small chance of encountering them from time to time, especially if they're oriented towards non-English speaking users, and personally, I don't feel like resorting to transliteration is a good solution to this. After all, it's 2023, why would such a restriction need to be there in the first place when most filesystems are able to handle unicode characters just fine?
Another scenario where these artificial restrictions could be a potential cause of trouble is when we consider a possibility that Guix might be used for packaging and distributing not only software, but all kinds of non-executable data such as films, books, music, databases, historical documents, website archives, etc. [3]. In the case of website archives: say I wanted to package the contents of the whole raštija.lt website. When choosing the package name for it, should I go with "rastija.lt", "rashtija.lt", or "raštija.lt". The latter would be a clear winner in my mind, since it is the canonical domain name for that particular site. And for all other types of data and media packages, using the official/original titles for their names would, too, be much more preferable over making use of any kind of transcription or transliteration method, IMO. Therefore, my proposal is to relax these limitations as much as possible (or at least somewhat) and to allow some more freedom when it comes to naming packages and other kinds of items in the store. We could, of course, still disallow all the main problematic characters, such as NUL, /, $, ~, space, newline and a few others, but other than that, I don't see any reason to forbid any of the remaining ones from being used. I'd like to hear your opinions on this and get to know whether this idea is feasible to implement at all or not, and if not – why? [0] https://issues.guix.gnu.org/64976 [1] https://git.savannah.gnu.org/cgit/guix.git/tree/nix/libstore/store-api.cc#n58 [2] https://raštija.lt/liepa/paslaugos-vartotojams/narsytuvas [3] https://gitlab.com/guix-media-channels