Hi, This is the current situation: * Several packages in [community] (and maybe one package in [extra]) includes .desktop files * There is a 2 years, 8 months and 14 days old bug report, opened by Thomas Dziedzic, that opens with a few well chosen words, and is followed by a lengthy discussion: https://bugs.archlinux.org/task/23387 * For some packages, the lack of .desktop files has been reported upstream as bugs. * For some of those bug reports, upstream has: * Responded positively, and started to provide .desktop files (very few) * Responded that they will not provide .desktop files (even when provided in the bug report) * Not responded (seems to be the common case) * Several TUs and devs has had a go at moving things forward. The current effort is pretty spread out and has a long history: * Some are trying to keep the text in the bug report up to date. * Some are maintaining a wiki page about the topic: https://wiki.archlinux.org/index.php/DeveloperWiki:Removal_of_desktop_files * Some are posting comments to the bug report. * A tool for generating .desktop files has been created, named "gendesk" (I'm guilty of this, and one or more of the above). * The bug has been closed and re-opened three times * We had an Arch Desktop Project going, that was started back in 2007, but is now obsolete: https://wiki.archlinux.org/index.php/Desktop_Project * Creating a TODO list has been suggested, some people are for this, others are against it. Here are the arguments so far for upstream being the ones providing the .desktop files: * It should not be the responsibility of the users * It should not be the responsibility of Arch Linux * It is increasingly common that upstream provides these * The real issue is that .desktop files should be provided by upstream Here are a few arguments against upstream being the ones providing the .desktop files: * Desktop shortcuts are not provided by upstream for other platforms, like Android, OS X or Windows (except when included in an installer) * Upstream should create the application, users should use it and packagers should make the application available to the user. This includes providing a .desktop file. * "Good luck trying to convince upstreams like dwm (and many others) to include them. IIRC the previous attempt didnt produce much either." Conclusion so far: Regardless of if it is correct that upstream should provide the .desktop files or not, the current plan is not working. TUs and devs are slow at reporting this as bugs and upstream are slow at responding. At the current rate, this will take years, perhaps decades. The current plan is not working. I think .desktop files should ideally be provided by upstream. But for cases where they are not currently being provided, we should provide them. Here are the arguments for removing .desktop files from packages (or not having them in the first place): * Arch Linux has vanilla packages, so we should try to avoid including files that are hand-crafted by packagers * It clutters the repository * Including .desktop files is basically the same as patching. And this quote: "Patching only occurs in extremely rare cases, to prevent severe breakage in the instance of version mismatches that may occur within a rolling release model." from https://wiki.archlinux.org/index.php/Arch_Linux * In all other connections, it is bad form to check in files to the repository that can otherwise easily be generated (like Makefile.am files, for instance) * Packages should be defined with as few text files as possible. Ideally just one PKGBUILD file. Here are the arguments for keeping .desktop files in packages: * If the existing ones are okay, there is no point in changing them * Upstream should fix them (this does not seem to be happening / this is happening at a rate that is too slow) I think .desktop files should not be kept in the packages, but either be provided by upstream or being generated by a tool. Here are the arguments for generating the .desktop files with a tool like "gendesk": * There is much duplication of code by having one .desktop file per (GUI) package * If the .desktop specification should change in the future, there is only one tool that has to be changed, not bazillions of little .desktop files * If there should be alternative ways of providing desktop shortcuts in the future, possibly for other desktop environments, the transition will be easier * It's more elegant than including manually crafted files everywhere * It provides one consistent look of .desktop files and avoids problems (for instance, one hand crafted (or upstream provided?) .desktop file used Terminal=1 instead of Terminal=true, which caused problems). Generated files are consistent, which avoids problems. * gendesk is already being used for several packages (and has been used for a while), and it seems to work fine * Many files are generating during the prepare or build process. .desktop files should be generated too. * "I've just tried gendesk and it's pretty neat actually." Here are the arguments against generating the .desktop files with a tool like "gendesk": * It is just like including base64 encoded files directly in the PKGBUILD. (no, it's not. Contrast with other build-time generated files) * It's better to just leave the current .desktop files as they are. * Generating the .desktop files does not make the packages more "vanilla". (.desktop files are inherently non-vanilla, though) * It takes a bit of work to create a package in the first place. Adding a .desktop file or not won't make a difference in the overall burden. * The functionality should rather be in makepkg. * The maintainer still needs to relate to .desktop files one way or the other I think .desktop files should be generated with "gendesk", or a similar tool. (Note that gendesk has evolved and improved quite a bit since the time when it was first introduced and commented on in the bug report). Here are the arguments for creating a TODO list: * It's time to get this done and close the age old bug report. * People can still choose to reserve their packages from being affected (simply by marking their packages as complete, for instance). * A TODO list is the appropriate method for solving this situation. * "I'm convinced TODO is more appropriate. Also I think the TODO interface (Complete/Incomplete) is better suited for this task." Here are the arguments against creating a TODO list: * Todos are things that require 100% completion ASAP for the distro to go forward I think we should have a TODO for this. Specifically, I think we should have a TODO for removing all .desktop files from our package sources. They should ideally be provided by upstream, but in the mean time, they should be generated. If there are no protests, I will, after some time (say, three days without any replies to this thread): * Create a TODO for this * Start fixing the packages (I will not fix the packages of maintainers that wish to reserve themselves from this, of course). We all appreciate a good discussion, but before replying with a flamey flame of a flaming reply, please think a minute if you have a better solution than this for achieving the goal of closing FS#23387 in the near future (not in 10 years). All the best. -- Sincerely, Alexander Rødseth xyproto / TU