FS#23387 - [community] Cleanup of .desktop files
Attached to Project:
Community Packages
Opened by Thomas Dziedzic (tomd123) - Tuesday, 22 March 2011, 17:44 GMT
Last edited by Alexander F. Rødseth (xyproto) - Sunday, 08 December 2013, 10:43 GMT
Opened by Thomas Dziedzic (tomd123) - Tuesday, 22 March 2011, 17:44 GMT
Last edited by Alexander F. Rødseth (xyproto) - Sunday, 08 December 2013, 10:43 GMT
|
Details
Since archlinux advertises itself as having vanilla
packages, I thought it might be a good idea to contact
upstream about including these desktop files in their
sources.
Packages should only be moved to the Done list if the .desktop files are removed from svn repos and the package itself. In case upstream does reject taking in the .desktop file, put it in the Done (rejected) list but do not delete the .desktop files from the package. Relevant 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." - https://wiki.archlinux.org/index.php/Arch_Linux find /var/abs/community -name '*.desktop' | sort -u | wc -l 89 Not Done: =========== ams/ams.desktop assaultcube/assaultcube.desktop astromenace/astromenace.desktop aumix/aumix.desktop boinc/boinc.desktop critter/critter.desktop cycle/cycle.desktop dguitar/dguitar.desktop dolphin-emu/dolphin-emu.desktop dwm/dwm.desktop esmska/esmska.desktop ettercap/ettercap.desktop extremetuxracer/extremetuxracer.desktop flobopuyo/flobopuyo.desktop freecol/fc.desktop freedroid/freedroid.desktop freedroidrpg/freedroidrpg.desktop freemind/freemind.desktop freevo/freevo.desktop frogatto/frogatto.desktop gebabbel/gebabbel.desktop gl-117/gl-117.desktop gnubg/gnubg.desktop gnujump/gnujump.desktop gsmartcontrol/gsmartcontrol.desktop gutenpy/gutenpy.desktop gxmessage/gxmessage.desktop hex-a-hop/hex-a-hop.desktop intellij-idea-community-edition/idea.desktop josm/josm.desktop jsampler/jsampler-classic.desktop jsampler/jsampler.desktop kcheckers/kcheckers.desktop mari0/mari0.desktop monica/monica.desktop nfoview/x-nfo.desktop ninja-ide/ninja-ide.desktop ophcrack/ophcrack.desktop pdfedit/pdfedit.desktop pekwm/pekwm_kdm.desktop playonlinux/PlayOnLinux.desktop polkit-gnome/polkit-gnome-authentication-agent-1.desktop pympc/pympc.desktop qcad/QCad.desktop qgit/qgit.desktop qtcreator/qtcreator.desktop rapidsvn/rapidsvn.desktop ratpoison/ratpoison.desktop rocksndiamonds/rocksndiamonds.desktop rox/rox.desktop rxvt-unicode/urxvtc.desktop rxvt-unicode/urxvt.desktop rxvt-unicode/urxvt-tabbed.desktop sage-mathematics/SAGE-notebook.desktop sauerbraten/sauerbraten.desktop simutrans/simutrans.desktop singularity/singularity.desktop sk1/sk1.desktop tdfsb/tdfsb.desktop teamspeak3/teamspeak3.desktop teeworlds/teeworlds.desktop tigervnc/vncviewer.desktop tuxcards/tuxcards.desktop tuxguitar/tuxguitar.desktop vym/vym.desktop widelands/widelands.desktop xemacs/xemacs.desktop xjadeo/qjadeo.desktop xnee/gnee.desktop xonotic/xonotic-glx.desktop xonotic/xonotic-sdl.desktop xsensors/xsensors.desktop Pending (have been reported): =========== apvlv/apvlv.desktop blobby2/blobby2.desktop (http://sourceforge.net/apps/mantisbt/blobby/view.php?id=28) bomberclone/bomberclone.desktop (http://sourceforge.net/tracker/?func=detail&aid=3404991&group_id=79449&atid=556632) caph/caph.desktop (http://sourceforge.net/tracker/?func=detail&aid=3404994&group_id=295355&atid=1247095) checkgmail/checkgmail.desktop (http://sourceforge.net/tracker/?func=detail&aid=3377367&group_id=137480&atid=738666) driconf/driconf.desktop gcolor2/gcolor2.desktop - https://sourceforge.net/tracker/?func=detail&aid=3404696&group_id=119919&atid=685762 higan-gtk/purify.desktop (using gendesk for now, will contact upstream to have it included) higan-qt/purify.desktop (using gendesk for now, will contact upstream to have it included) pingus/pingus.desktop - http://code.google.com/p/pingus/issues/detail?id=136 rbutil/rbutil.desktop (http://gerrit.rockbox.org/r/#/c/573/) speed-dreams/speed-dreams.desktop (https://sourceforge.net/apps/trac/speed-dreams/ticket/112) tea/tea.desktop - sent to author, he promised to include in next release tremulous/tremulous.desktop - https://bugzilla.icculus.org/show_bug.cgi?id=6027 umlet/umlet.desktop - sent to upstream - http://code.google.com/p/umlet/issues/detail?id=23 uqm/uqm.desktop - https://bugs.uqm.stack.nl/show_bug.cgi?id=788 urbanterror/urbanterror.desktop Done (upstream has a .desktop file): =========== alienarena/alienarena.desktop (http://corent.proboards.com/index.cgi?action=display&board=bugreport&thread=5814&page=1#51900) armagetronad/armagetronad.desktop awesome/awesome.desktop dvdisaster/dvdisaster.desktop elinks/elinks.desktop eric5/eric5.desktop fceux/fceux.desktop fillets-ng/fillets-ng.desktop frostwire/frostwire.desktop gambas2/gambas2.desktop gambas3/gambas3.desktop gnormalize/gnormalize.desktop gpg-crypter/gpg-crypter.desktop gpsman/gpsman.desktop grass/grass.desktop hedgewars/hedgewars.desktop higan-gtk/higan.desktop (upstream desktop is there, but I prefer gendesk for the custom wrapper I have bundled) higan-qt/higan.desktop (upstream desktop is there, but I prefer gendesk for the custom wrapper I have bundled) jedit/jedit.desktop (http://sourceforge.net/tracker/?func=detail&aid=3404087&group_id=588&atid=350588) madman/madman.desktop megaglest/megaglest.desktop mldonkey/mldonkey.desktop mplayer-vaapi/mplayer.desktop mp3splt-gtk/mp3splt-gtk.desktop multiget/multiget.desktop mumble/mumble11x.desktop naev/naev.desktop netbeans/netbeans.desktop - http://netbeans.org/bugzilla/show_bug.cgi?id=200645 openarena/openarena.desktop (has official desktop, but now in AUR) openarena/openarena-server.desktop paintown/paintown.desktop pgadmin3/pgadmin3.desktop rawtherapee/rawtherapee.desktop sxiv/sxiv.desktop (https://github.com/muennich/sxiv/pull/50) tiled-qt/tiled.desktop tipp10/tipp10.desktop torcs/torcs.desktop (http://sourceforge.net/tracker/?func=detail&aid=3405193&group_id=3777&atid=103777) qmc2/qmamecat.desktop - also improved version sent to ML root/root.desktop - https://savannah.cern.ch/bugs/?85082 scite/SciTE.desktop scorched3d/scorched3d.desktop seamonkey/seamonkey.desktop sigil/sigil.desktop solfege/solfege.desktop springlobby/springlobby.desktop spyder/spyder.desktop - http://code.google.com/p/spyderlib/issues/detail?id=598 stone-soup/stone-soup.desktop synergy/synergy.desktop texmaker/texmaker.desktop ude/ude.desktop vdrift/vdrift.desktop (it's in, waiting for new release) warsow/warsow.desktop xboard/xboard.desktop xmonad/xmonad.desktop (http://code.google.com/p/xmonad/issues/detail?id=319) xmoto/xmoto.desktop zathura/zathura.desktop Done (rejected the .desktop file): =========== gens/gens.desktop (switched to gendesk, no release in 5 years, pretty much dead) nexuiz/nexuiz-glx.desktop (nexuiz is effectively dead) nexuiz/nexuiz-sdl.desktop (nexuiz is effectively dead) qgit/qgit.desktop (no project activity in 3 yrs) xskat/xskat.desktop intellij-idea-community-edition/intellijidea.desktop - IDEA has an option to generate desktop file from GUI, so there's no stand-alone file provided: http://youtrack.jetbrains.com/issue/IDEA-83646 |
This task depends upon
Closed by Alexander F. Rødseth (xyproto)
Sunday, 08 December 2013, 10:43 GMT
Reason for closing: Won't fix
Sunday, 08 December 2013, 10:43 GMT
Reason for closing: Won't fix
now you would suggest to the users, keep your own .desktop files around somewhere because we will be dropping them as soon as possible
I would count the .desktop files as patching the package in a conceptual way.
Therefore, I think .desktop files have no place in our repos.
Also from https://wiki.archlinux.org/index.php/Reporting_Bug_Guidelines#Reasons_for_not_being_a_bug
"A package which does not include a .desktop file or icons or other freedesktop stuff. This is not a bug if such files are not included in the source tarball, and this must be requested as a feature request upstream. If such files are provided by upstream but not used in the package then this is a bug."
xskat: Asked upstream. They do not consider it necessary to integrate the desktop file, but they have nothing against having one.
That being said you have 100% my support with this.
BTW if you mean to have a vanilla Arch you should start at the top of the pyramid, the Linux kernel...
In general dealing with the patched sources is better spent time than dealing with the desktop files IMO.
edit: oh, you said above you're gonna keep them even if rejected.
I do not know if a wiki page is convenient for you, I simply needed to take notes/keep track of the packages.
That way .desktop files aren't included with packages for projects that miss .desktop file and the "desktop-files" package can be its own project (where upstream can go look for .desktop files, if they want).
I hereby volunteer to gather all the tiny .desktop files into a tarball and create the "desktop-files" package.
What say you?
Also, I feel having such separate project would move the interest to upstream the desktop files from individiuals. What I mean by this is that everytime I build a package, I see there's a desktop file which should be moved to upstream. I didn't see it, I wouldn't think of that file at all.
I don't see what makes using some generator any better than providing "hand-made" desktop file. If the generated files should be of a reasonable quality, we will still have to give the generator some suggestions. In that case it would become only a more readable version of 'echo "[Desktop Entry]" > app.desktop; echo "Type=Application" >> app.desktop…' in a PKGBUILD.
I don't see removing the desktop files altogether as its suggested in the bug report to be a solution either. In my opinion this would be against our beloved KISS philosophy. We would unnecessarily force users to create their own desktop files. This would most likely result in a lot of duplication (everyone would use their own desktop file), lots of angry users ("Why did the icon disappeared?!") and probably some crap in a file system too (since the users would have to remove a desktop file themselves when they it's no longer useful while now it's removed when the package is removed).
https://aur.archlinux.org/packages.php?ID=57803
It reads from a PKGBUILD and writes to a .desktop and .png file, in the current directory. Note that it will overwrite any $pkgname.desktop and $pkgname.png files already present, so be careful.
Icons are downloaded from fedoraproject, but this could easly be replaced or supplemented by other icon-providing web resources in the future.
It's not perfect, and it's version 0.1, but it should work pretty well for several applications where upstream currently does not provide a .desktop file and icon.
Test it on the maniadrive PKGBUILD, for example: https://aur.archlinux.org/packages.php?ID=5344
:)
I have started removing .desktop files and replacing them with generated ones, while checking that the result is very close to the original and making sure the package still builds.
Please contribute patches to "gendesk", here's the project page:
https://github.com/xyproto/gendesk
If icons are already checked in, no icon is downloaded. If PKGBUILD files download icons in the source array, no icon is downloaded.
If there's no icon available from the icon web service, an icon with a picture of Rainbow Dash is used, as an incentive for upstream developers to create one.
If I indadvertently have or will change a package you own in a way that is not to your tastes, in the process of removing .desktop files, then I'm sorry in advance.
Luckily, if that should be the case, it should be easy to fix (and it was for the greater good). :)
To remove .desktop files and use generated ones, a simple method that often will work without further modification is to:
* Add gendesk to makedepends
* Start the build() function with:
cd "$srcdir"
gendesk
# And then the rest
* Make sure the .png and .desktop file is actually installed in the package() function
Please help out in removing .desktop files and replacing them with generated ones.
Alternatively, try finding The Perfect Solution (tm) for closing this ticket, for another 372 days. ;)
However, I'm strongly against to just replacing the manually created files with the generated ones. What I'd love to see is to either have gendesk functionality in makepkg or use it as a makedepend and utilize it in the package() function to generate a desktop file. Maybe you already do that, I just can't find any package where you've used gendesk.
PS.: Please do not replace the desktop file in my intellij-idea package, because the generated one isn't very good.
Running gendesk from build() instead of package() seems more intuitive to me, since gendesk _creates_ files (usually reserved for the build() function), while package() usually doesn't create files, just package them.
Note that gendesk supports split packages, even if run from the build() function.
I disagree with your sentiment that the generated .desktop files aren't very good, as they can be customized with the _name=(), _exec=() and _comment=() variables (amongst others) in the PKGBUILD.
This makes the resulting .desktop files look almost exactly like the ones they are replacing.
Case in point, here's an updated PKGBUILD for your intellij-idea package that generates a (IMO) perfectly fine .desktop file:
* New PKGBUILD: http://ix.io/2gf
* Old PKGBUILD, for comparison: http://ix.io/2gg
* New generated desktop file: http://ix.io/2gj
* Old checked in desktop file, for comparison: http://ix.io/2gi
I would say this is good enough to remove all .desktop files from our repository.
Improving the user experience for an upstream application should be done by upstream, just like patching an application should be done by upstream.
However, patches are some times applied temporarily, while waiting for upstream. This is a similar situation.
As a stop-gap measure, I think gendesk is an ok solution, at least good enough to remove .desktop files from our repository.
- Why not let maintainers take your soft in hand and choose if they prefer use it or let a manual desktop file?
- Generated desktop file for awesome is different that the orginial one adding some information:
Icon=awesome.png => file not existant
StartupNotify=false => Not revelent it's a Windows manager
Terminal=false => idem
Categories=Application; => idem
All those line are "bad" for a windows manager desktop file. I'm wondering if using generator is a good idea. Do you think?
- Why generate temporary desktop file inside directory containing PKGBUILD instead of running directory.
cd "$srcdir"
gendesk
setconf "$pkgname.desktop" Type XSession
I see issues coming if $startdir is not writable. I would test it in my chroot but my ... openvpn is down.
I gave this a second thought while walking home today. This perhaps isn't really "The Arch Way", and I agree that using gendesk doesn't really make that much of a difference except literally getting rid of the .desktop files.
One potential advantage of using gendesk is that variables like Exec are set directly in the PKGBUILD. This may be subjective, but I feel like it belongs there, together with pkgname and pkgdesc.
Also, if one day the .desktop spec should change, all generated files can be updated in one go. But, these are minor advantages, I guess.
If the current situation with .desktop files isn't too shabby after all, how about we just close this bug with "Won't fix"?
As for closing this bug: I always thought that this bug would be annoying enough to force TUs to try to push desktop files upstream. However, given the long list "Not Done" it doesn't seem to do so. It spooks our bug tracker for quite some time without having much attention, so I don't have any feelings either way.
Non-relevant fields like "StartupNotify=false" and "Terminal=false" does no harm, but they can be removed in future versions of gendesk. Patches are welcome.
Desktop files _are_ generated in running directory and you can specify the path to a PKGBUILD as a first parameter.
If you test it in your chroot I think you will find that those parts work fine. However, it seems to have problems with cmake and cairo-xcb when I tried to build it right now.
<quote>
gendesk PKGBUILD
[awesome] Generating desktop file... ok
[awesome] Downloading icon... no
[awesome] Using default icon instead... yes
</quote>
About patches, its question of time. Using your tool to generate a .desktop is useful. But vim can do the last fixes and let me sure that upgrade of your program doesn't introduce unexpected change in the desktop file between awesome (or others) updates.
I'm not completly sure that's have a generator (call each build) for this kind a file is something will help me to improve my day to day works on packages or improve user experience. But using it to create original desktop file, that's great.
That's why i suggest you to let maintainer choose if they want use it or not.
About local generation, you're right. I was tricked by the remaining awesome.desktop symlink in $src which let gendesk create file in $startdir. As a side note, i see, some time, downloading of icon fail (probably poor network), and let a bad icon take place.
This is now our oldest [community] ticket that is still open, btw. :) (I started closing old bugs, which is why I stumbled over this one).
Thanks for reading.
If it's reopened only because of rules, regulation and byrocracy, let me point out that this bug report has several technical problems since it:
- Does not include a version number (https://wiki.archlinux.org/index.php/Reporting_Bug_Guidelines#Gather_useful_information)
- Does not indicate how to reproduce the bug (https://wiki.archlinux.org/index.php/Reporting_Bug_Guidelines#Gather_useful_information)
- Does not start the summary with package name enclosed in square brackets (https://wiki.archlinux.org/index.php/Reporting_Bug_Guidelines#Summary)
If it's reopened for practical reasons, please inform us of the advantages of this bug report compared to creating a TODO list instead.
This was reopened because two more packages got fixed and I checked them off. Todo lists are for officially coordinated internal rebuilds (not for dealing with upstream or users) and can't be edited by just anyone. While a bug report is not optimal, it was previously decided that a single parent task would work better than a todo or opening a hundred individual bugs.
It may offend your militant sense of order, but this bug report is not hurting you. Un-assign yourself if you don't want the updates appearing in your mailbox. Let the rest of us get on with fixing it.
I disagree strongly that I "have an ax to grind", that I spam this bug report or that I have "a militant sense of order".
These claims are all off topic (and misguided).
I'm glad you agree that this bug report doesn't fit the intended purpose and I can agree that a TODO doesn't fit either. Closing as "Not a bug".
I have flyspray configured to email me, and I get notified every time
someone does something to this bug report.
It's mildly obnoxious.
However, "the we" (whomever they may be) have decided that this should be a task forever, so I guess there's nothing we can do... ಠ_ಠ
The .desktop was added by upstream to mldonkey-3.1.1.
https://wiki.archlinux.org/index.php/DeveloperWiki:Removal_of_desktop_files#Relevant_commands
Keeping information up-to-date is one of the things wiki pages are well suited for, as opposed to bug reports.
As this ticket hasn't seen much progress since it was reopened last time (with the current rate, it should be completed around 2039), and since there is now a wiki page that covers the same tasks and has a more managable overview, I sincerely hope that people are now okay with closing this one (which is also one of our two oldest community tickets).
Anyway, I hope that the possibility of dropping all .desktop files is no longer considered (as mentioned previously). The desktop files don't pose any significant maintenance burden, nor they take a lot of space if the space was an issue.
Otherwise I fully support this effort. However it seems no one really cares given how long the "Not Done" list is.
(I am willing to put in some time and effort to fix several packages, as long as the current maintainers are fine with it).
Angel Velasquez <angvp>:
ninja-ide
Balló György <ballogyor>:
polkit-gnome
simutrans
Eric Belanger <snowman>:
gutenpy
kcheckers
tdfsb
tuxcards
vym
Evgeniy Alekseev <arcanis>:
sage-mathematics
Felix Yan <felixonmars>:
boinc
Florian Pritz <bluewind>:
gcolor2
Jan de Groot <JGC>:
freevo
Jaroslav Lichtblau <drag0nl0rd>:
esmska
flobopuyo
freemind
gebabbel
josm
xemacs
xnee
Jonathan Steel <jsteel>:
apvlv
gnubg
gnujump
ophcrack
Kyle Keen <keenerd>:
ratpoison
rox
Laurent Carlier <lordheavy>:
critter
pingus
playonlinux
sauerbraten
uqm
widelands
Lukas Fleischer <cryptocrack>:
pdfedit
Lukas Jirkovsky <stativ>:
intellij-idea-community-edition
Maxime Gauduin <alucryd>:
rbutil
Rashif Rahman (Ray) <schiv>:
eric
jsampler
nfoview
Sergej Pupykin <sergej>:
aumix
cycle
dguitar
dwm
freedroid
freedroidrpg
gl-117
gxmessage
hex-a-hop
pympc
qcad
rapidsvn
rocksndiamonds
tea
tigervnc
tuxguitar
umlet
Sven-Hendrik Haase <svenstaro>:
assaultcube
astromenace
blobby2
caph
freecol
frogatto
mari0
mumble
paintown
qtcreator
singularity
speed-dreams
teamspeak3
teeworlds
tiled-qt
urbanterror
xonotic
Sébastien Luttringer <seblu>:
rxvt-unicode
Jakob Gruber <schuay>:
dolphin-emu
qgit
speps <speps>:
ams
xjadeo
I am planning to start removing the .desktop files and replacing them with generated ones unless there are reservations from the above maintainers.
The gendesk tool now has a -wm flag for generating .desktop files that are suitable for launching window managers (can be used by kdm, for instance).
Significant quotes from Allan McRae:
"As far as I am concerned, if upstream does not provide one, it is up to
the packager whether to use gendesk or a handcrafted .desktop file."
and
"There is no need to do anything here apart from packages that do not
provide a .desktop file that should need one added."
So, if your package currently could need a .desktop file, feel free to provide one and/or contact upstream.
If you think upstream should be contacted for all the packages that could need a .desktop file provided by upstream, feel free to contact upstream, discuss it on the mailinglist, create a wiki page or a TODO for the purpose of contacting upstream.
If you wish to remove the .desktop file from your package sources and generate one instead, feel free to do so as well.
Closing this bug. Complaints can be sent to the mailinglist discussion.
Edit: For the record, I will not start removing .desktop files from the above packages, as was my original plan, due to the discussion on the mailinglist.