[arch-general] The Final Cleanup

Alexander Rødseth rodseth at gmail.com
Fri Dec 6 12:15:36 EST 2013


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


More information about the arch-general mailing list