#!/usr/bin/perl
use DBI;
use strict;
use warnings;
use File::Path qw(make_path remove_tree);

my $localmode=not $ENV{'REPOCOP_TEST_STATEDIR'};
unless ($localmode) {
    remove_tree($ENV{'REPOCOP_TEST_STATEDIR'});
    make_path($ENV{'REPOCOP_TEST_STATEDIR'});
}

my @proposed_raw=qw!
faces-xface	-	-Mail;+Email;	/usr/share/applications/faces.desktop
gconf-editor	-	-System;+Settings;+DesktopSettings;	/usr/share/applications/gconf-editor.desktop
gucharmap	-	+Accessibility;	/usr/share/applications/gucharmap.desktop
meld	-	-Development;+Utility;+FileTools;	/usr/share/applications/meld.desktop
putty	-	+RemoteAccess;	/usr/share/applications/putty.desktop
seahorse	-	+Settings;-Utility;	/usr/share/applications/seahorse.desktop
!;

#stk	-	-AudioVideo,Sequencer;+AudioVideo;+Sequencer;+Audio;	/usr/share/applications/stk.desktop
#push @proposed_raw, 'stk','-','-AudioVideo,Sequencer;+AudioVideo;+Sequencer;+Audio;','/usr/share/applications/stk.desktop';

my %patchdata;
while (@proposed_raw>0) {
    my $name=shift @proposed_raw;
    my $fixmime=shift @proposed_raw;
    my $fixcategory=shift @proposed_raw;
    my $desktop=shift @proposed_raw;
    # no vendor prefix
    $desktop=~s!^/(?:altlinux|fedora)-!/!;
    die unless $desktop and $name and $fixcategory and $fixmime;
    $patchdata{$desktop}=[$name,$fixmime,$fixcategory];
}

#se Data::Dumper;
#print Dumper ([&process_spec('-System;+Settings;+DesktopSettings;')]);
#exit;

my $dbh = DBI->connect('dbi:SQLite:dbname='.$ENV{'REPOCOP_TEST_DBDIR'}.'/freedesktop-desktop.db',"","");

my $sth = $dbh->prepare("SELECT DESKTOPID, PKGID, DESKTOPDIR, DESKTOPFILE FROM freedesktop_desktop WHERE DESKTOPDIR='/usr/share/applications' AND DESKTOPTYPE='Application' AND IS_HIDDEN=0 AND IS_NODISPLAY=0 AND IS_ONLYSHOWIN=0");
$sth->execute();
my $sth_c = $dbh->prepare('SELECT CATEGORY FROM freedesktop_desktop_categories WHERE DESKTOPID = ?');
my $sth_m = $dbh->prepare('SELECT MIMETYPE FROM freedesktop_desktop_mimetypes  WHERE DESKTOPID = ?');

my @row;
while (@row  = $sth->fetchrow_array) {
    my ($desktopid, $pkgid, $desktopdir, $filename)=@row;
    # no vendor prefix
    my $barename=$filename;
    $barename=~s!^(?:altlinux|fedora)-!!;
    my $patchdata=$patchdata{$desktopdir.'/'.$barename};
    if ($patchdata) {
	my $pkgname=$patchdata->[0];
	if ($pkgid!~/^$pkgname/) {
	    warn "invalid patch data @{$patchdata}";
	    next;
	}
	$sth_c->execute($desktopid);
	my @categories;
	while (@row  = $sth_c->fetchrow_array) {
	    push @categories, @row;
	}
	$sth_m->execute($desktopid);
	my @mimetypes;
	while (@row  = $sth_m->fetchrow_array) {
	    push @mimetypes, @row;
	}
	my ($mimeadd,$mimedel)=&process_spec($patchdata->[1]);
	my ($catadd,$catdel)=&process_spec($patchdata->[2]);
	push @$catdel, 'Application' if grep {$_ eq 'Application'} @categories;
	push @$catadd, 'GTK' if grep {$_ eq 'GNOME'} @categories;
	push @$catadd, 'Qt' if grep {$_ eq 'KDE'} @categories;
	#print STDERR "added del Application for $pkgid\n" if grep {$_ eq 'Application'} @categories;

	next if &is_applied_adddel($catadd,$catdel,\@categories) and &is_applied_adddel($mimeadd,$mimedel,\@mimetypes);
	&generate_patch($pkgid, $pkgname, $desktopdir, $filename, $catadd,$catdel,$mimeadd,$mimedel);
	my $STATUS="warn";
	my @message;
	push @message, "Please, apply the repocop patch for $desktopdir/$filename.";
	system {"repocop-test-$STATUS"} "repocop-test-$STATUS", '-k', $pkgid, @message unless ($localmode);
	#print join(' ', "repocop-test-$STATUS", '-k', $pkgid, @message), "\n" if $localmode;
    }
}

sub is_applied_adddel {
    my ($add,$del,$list)=@_;
    my %key=map {$_=>1} @$list;
    map {return 0 unless $key{$_}} @$add;
    map {return 0 if $key{$_}} @$del;
    return 1;
}

sub process_spec {
    my $spec=shift;
    return [],[] if $spec eq '-';
    my (@add, @del);
    foreach (split ';', $spec) {
	next unless $_;
	warn "Strange: $_" unless /^[-+]/;
	push @add, $_ if s/^\+//;
	push @del, $_ if s/^-//;
    }
    return \@add, \@del;
}

sub generate_patch {
    my ($pkgid, $pkgname, $desktopdir, $filename, $catadd,$catdel,$mimeadd,$mimedel)=@_;
    $desktopdir= '%_desktopdir' if $desktopdir eq '/usr/share/applications';
    my $movl=' \\'."\n";
    my @patch;
    push @patch, 'desktop-file-install --dir %buildroot'.$desktopdir.$movl;
    push @patch, map {"\t--remove-category=$_".$movl} @$catdel;
    push @patch, map {"\t--add-category=$_".$movl} @$catadd;
    push @patch, map {"\t--remove-mime-type=$_".$movl} @$mimedel;
    push @patch, map {"\t--add-mime-type=$_".$movl} @$mimeadd;
    push @patch, "\t\%buildroot$desktopdir/$filename\n";
    if ($localmode) {
	print "$pkgid:\n", @patch;
    } else {
	my $filename=$ENV{'REPOCOP_TEST_STATEDIR'}."/${pkgname}.in";
	open my $fn, '>>', $filename || die "can't open $filename: $!";
	print $fn @patch;
	close $fn;
    }
}

__END__
desktop-file-install --dir %buildroot%_desktopdir \
	--remove-category=System \
	--add-category=Settings \
	--add-category=DesktopSettings \
	%buildroot%_desktopdir/gconf-editor.desktop

# filesearch
Categories=GTK;Utility;Filesystem;
catfish	-	+	/usr/share/applications/catfish.desktop
# find files
Categories=GNOME;GTK;Utility;Core;
gnome-search-tool	-	+	/usr/share/applications/gnome-search-tool.desktop
# search
Categories=GNOME;GTK;Core;Utility;Filesystem;System;
beagle-gui	-	+	/usr/share/applications/gnome-beagle-search.desktop
Categories=GTK;Utility;
tracker-search-tool	-	+	/usr/share/applications/tracker-search-tool.desktop
Categories=Qt;Utility;Filesystem;Database;
recoll	-	+	/usr/share/applications/recoll-searchgui.desktop

# disc usage
Categories=Qt;KDE;Utility;
kde4utils-filelight	-	+	/usr/share/applications/kde4/filelight.desktop
Categories=Qt;KDE;Utility;
filelight	-	+	/usr/share/applications/kde/filelight.desktop
Categories=Qt;KDE;System;
kde4utils-kdf	-	+	/usr/share/applications/kde4/kwikdisk.desktop
Categories=Qt;KDE;System;
kde4utils-kdf	-	+	/usr/share/applications/kde4/kdf.desktop

# ip calculator
Categories=GNOME;GTK;Utility;
gip	-	+	/usr/share/applications/gip.desktop

Categories=Qt;Utility;Translation;
qgoogletranslate	-	+	/usr/share/applications/qgoogletranslate.desktop

# accelerometer hardware demo
Categories=Utility;
hdaps-gl	-	+	/usr/share/applications/hdaps-gl.desktop

# joystick programming (Accessibility)
Categories=Accessibility;Utility;Game;Qt;TrayIcon;
qjoypad	-	+	/usr/share/applications/qjoypad.desktop

Categories=System;Utility;Core;
idesk	-	+	/usr/share/applications/idesk.desktop

# wm; TODO: move (see e17.desktop)
awesome	-	-Graphics	/usr/share/applications/awesome.desktop

Categories=Gtk;Utility;Office;
metromap	-	+	/usr/share/applications/metromap.desktop

# Filesystem? 
Categories=Network;System;Utility
pyneighborhood	-	+	/usr/share/applications/pyNeighborhood.desktop
Categories=Qt;Network;Utility;
qtsmbstatus	-	+	/usr/share/applications/qtsmbstatus.desktop
Categories=Qt;Network;Utility;
qtsmbstatus-light	-	+	/usr/share/applications/qtsmbstatusl.desktop
Categories=AudioVideo;
furiusisomount	-	+	/usr/share/applications/furiusisomount.desktop


# change display color...
Categories=Utility;
redshift	-	+	/usr/share/applications/gtk-redshift.desktop

# notifier (local and remote)
Categories=GTK;GNOME;Utility;
specto	-	+	/usr/share/applications/specto.desktop

# System Cleaner for KDE
Categories=Qt;KDE;Utility;
kde4utils-sweeper	-	+	/usr/share/applications/kde4/sweeper.desktop

# clipboard mgr
Categories=GTK;Utility;TrayIcon;
xfce4-clipman-plugin	-	+	/usr/share/applications/xfce4-clipman-plugin.desktop

Categories=GTK;GNOME;Utility;Security;
clamtk	-	+	/usr/share/applications/clamtk.desktop
Categories=Qt;System;
qtclamavclient	-	+	/usr/share/applications/qtclamavclient.desktop
Categories=Qt;System;
qtclamavclient-qt4	-	+	/usr/share/applications/qtclamavclient-qt4.desktop

Categories=System;Utility;GNOME;GTK;
gnome-nettool	-	+Network;	/usr/share/applications/gnome-nettool.desktop

# sync tool (ContactManagement?)
Categories=GNOME;GTK;Utility;
conduit	-	+TextTools;	/usr/share/applications/conduit.desktop
Categories=GTK;GNOME;Utility;X-PIM;
multisync-gui	-	+	/usr/share/applications/multisync-gui.desktop

Categories=Utility;GTK;
mini-screenshoter	-	+	/usr/share/applications/mini-screenshoter.desktop
Categories=GTK;Utility;
xfce4-screenshooter	-	+	/usr/share/applications/xfce4-screenshooter.desktop
Categories=GTK;GNOME;Utility;Core;
gnome-screenshot	-	+	/usr/share/applications/gnome-screenshot.desktop


Categories=AudioVideo;
# kbd daemon
gmerlin-kbd	-	+	/usr/share/applications/gmerlin-kbd.desktop
# settings
gmerlin-utils	-	+	/usr/share/applications/gmerlin-plugincfg.desktop

# check accessibility
Categories=Development;
accerciser	-	+	/usr/share/applications/accerciser.desktop
# test automation
Categories=Development;
dogtail	-	+	/usr/share/applications/sniff.desktop

Categories=Development;
gmanedit	-	+	/usr/share/applications/gmanedit.desktop
Categories=Development;
mono-tools	-	+	/usr/share/applications/gnunit2.desktop

Categories=GTK;GNOME;Development;
regexxer	-	+	/usr/share/applications/regexxer.desktop
Categories=Qt;KDE;Development;
kde4pim-akonadi	-	+	/usr/share/applications/kde4/akonadiconsole.desktop

# restricted application settings
Categories=System;
anykiosk	-	+	/usr/share/applications/anykiosk.desktop

Categories=Qt;System;
apt-indicator	-	+	/usr/share/applications/apt-indicator.desktop
Categories=System;Utility;Archiving;X-Red-Hat-Base;
bacula-bat	-	+	/usr/share/applications/bat.desktop
Categories=System;Utility;Archiving;X-Red-Hat-Base;
bacula-tray-monitor	-	+	/usr/share/applications/bacula-tray-monitor.desktop

# create bootable live USB
Categories=System;
unetbootin	-	+	/usr/share/applications/unetbootin.desktop

# Monitor? or HardwareSettings? or both?
Categories=System;
hardinfo	-	+	/usr/share/applications/hardinfo.desktop

# tor administration
Categories=Network;Qt;
vidalia	-	+	/usr/share/applications/vidalia.desktop

# like google earth
Categories=Geography;Network;Qt;
merkaartor	-	+	/usr/share/applications/merkaartor.desktop


### done
netwag	-	+Security;	/usr/share/applications/netwag.desktop
oneko	-	+Amusement;	/usr/share/applications/oneko.desktop
padevchooser	-	+Mixer;	/usr/share/applications/padevchooser.desktop
paman	-	+Mixer;	/usr/share/applications/paman.desktop
pavumeter	-	+Mixer;	/usr/share/applications/pavumeter-record.desktop
pavumeter	-	+Mixer;	/usr/share/applications/pavumeter.desktop
pipenightdreams	-	+LogicGame;	/usr/share/applications/pipenightdreams.desktop
qcad	-	+Engineering;	/usr/share/applications/qcad.desktop
qtm	-	+WebDevelopment;	/usr/share/applications/qtm.desktop
gmerlin-camelot	-	+Video;+Recorder;	/usr/share/applications/gmerlin-camelot.desktop
gmerlin-alsamixer	-	+Mixer;	/usr/share/applications/gmerlin-alsamixer.desktop
gmerlin-player	-	+Player;	/usr/share/applications/gmerlin-player.desktop
gmerlin-recorder	-	+Recorder;	/usr/share/applications/gmerlin-recorder.desktop
gmerlin-transcoder	-	+AudioVideoEditing;	/usr/share/applications/gmerlin-transcoder.desktop
gmerlin-visualizer	-	+Audio;	/usr/share/applications/gmerlin-visualizer.desktop

dia	-	-Graphics;+Office;+Chart;	/usr/share/applications/dia.desktop
cairo-clock	-	+Clock;	/usr/share/applications/cairo-clock.desktop
aiksaurus-gtk	-	-Utility;+Office;+TextTools;+Dictionary;	/usr/share/applications/gaiksaurus.desktop
avahi-ui	-	+RemoteAccess;	/usr/share/applications/bssh.desktop
avahi-ui	-	+RemoteAccess;	/usr/share/applications/bvnc.desktop
avahi-ui	-	+RemoteAccess;	/usr/share/applications/avahi-discover.desktop
etherape	-	+Monitor;	/usr/share/applications/etherape.desktop
gjots2	-	+TextTools;	/usr/share/applications/gjots2.desktop
gquilt	-	+RevisionControl;	/usr/share/applications/gquilt.desktop
gringotts	-	-Utility;+Settings;+X-PersonalSettings;	/usr/share/applications/gringotts.desktop
monkey-bubble	-	+ArcadeGame;	/usr/share/applications/monkey-bubble.desktop
muine	-	+Audio;+Player;	/usr/share/applications/muine.desktop
Thunar	-	-Filesystem;+FileTools;	/usr/share/applications/Thunar-bulk-rename.desktop

### deprecated ?
gtorrentviewer	-	+FileTransfer;+P2P;	/usr/share/applications/gtorrentviewer.desktop
xfe	+inode/directory;-text/plain	-	/usr/share/applications/xfe.desktop
xfe	+application/x-rpm;+application/x-deb;-text/plain	-Utility;+Settings;	/usr/share/applications/xfp.desktop
xfe	+inage/jpg;+inage/png;-text/plain	-Utility;+Graphics;+RasterGraphics;+2DGraphics;	/usr/share/applications/xfi.desktop

moto4lin	-	+TelephonyTools;	/usr/share/applications/moto4lin.desktop
gtkpod	-	+TelephonyTools;+Utility;-AudioVideo;	/usr/share/applications/gtkpod.desktop
ksocrat	-	-Utility;	/usr/share/applications/kde/demo-menu-entry-ksocrat.desktop
xchm	-	-Utility;-TextTools;-Graphics;+Office;	/usr/share/applications/demo-menu-entry-xchm.desktop

kicad	-	+Engineering;	/usr/share/applications/eeschema.desktop
kicad	-	+Engineering;	/usr/share/applications/kicad.desktop
gpsim	-	+Engineering;+Electronics;	/usr/share/applications/gpsim.desktop
ponyprog2000	-	-Science;	/usr/share/applications/ponyprog2000.desktop
varkon	-	+Engineering;+Electronics;	/usr/share/applications/varkon.desktop
xfdiff	-	+FileTools;	/usr/share/applications/Xfdiff.desktop
revelation	-	-Utility;+Settings;+X-PersonalSettings;	/usr/share/applications/revelation.desktop
kde4utils-kcalc	-	+Calculator;	/usr/share/applications/kde4/kcalc.desktop
wmsystray	-	+X-Desktop;	/usr/share/applications/wmsystray.desktop
notecase	-	+TextTools;	/usr/share/applications/notecase.desktop
mytetra	-	+TextTools;	/usr/share/applications/mytetra.desktop
xpad	-	+TextTools;	/usr/share/applications/xpad.desktop
almanah	-	+TextTools;	/usr/share/applications/almanah.desktop
xfce4-notes-plugin	-	+TextTools;	/usr/share/applications/xfce4-notes.desktop
tomboy	-	+TextTools;	/usr/share/applications/tomboy.desktop
cairo-compmgr	-	-System;+X-Desktop;	/usr/share/applications/cairo-compmgr.desktop
cairo-dock	-	-System;+X-Desktop;	/usr/share/applications/cairo-dock-cairo.desktop
cairo-dock	-	-System;+X-Desktop;	/usr/share/applications/cairo-dock.desktop
xtrlock	-	-System;+Utility;+X-Desktop;	/usr/share/applications/xtrlock.desktop
cog	-	-System;+Settings;+DesktopSettings;	/usr/share/applications/cog.desktop
qtemu	-	-Utility;+System;+Emulator;	/usr/share/applications/qtemu.desktop
kde4pim-ktimetracker	-	+Clock;	/usr/share/applications/kde4/ktimetracker.desktop
gnome-phone-manager	-	-System;-Telephony;+TelephonyTools;+Utility;	/usr/share/applications/gnome-phone-manager.desktop
gnome-applets-extra-hamster	-	+Clock;	/usr/share/applications/hamster-time-tracker.desktop
audex	-	+Audio;+AudioVideoEditing;	/usr/share/applications/kde4/audex.desktop
kde4webdev-kfilereplace	-	+FileTools;	/usr/share/applications/kde4/kfilereplace.desktop
hot-babe	-	+Monitor;	/usr/share/applications/hot-babe.desktop
gtkperf	-	-System;+Development;+Profiling;	/usr/share/applications/altlinux-gtkperf.desktop
glsof	-	+Monitor;	/usr/share/applications/glsof.desktop
krb5-ticket-watcher	-	+Security;	/usr/share/applications/krb5-ticket-watcher.desktop
tuxpaint-config	-	-System;-SystemSetup;+Game;+KidsGame;	/usr/share/applications/tuxpaint-config.desktop

kdesvn-kde3	-	+RevisionControl;	/usr/share/applications/kde/kdesvn.desktop
gitg	-	+RevisionControl;	/usr/share/applications/gitg.desktop
qt4-assistant	-	+Documentation;	/usr/share/applications/qt4-assistant.desktop
qt3-assistant	-	+Documentation;	/usr/share/applications/qt3-assistant.desktop
devhelp	-	+Documentation;	/usr/share/applications/devhelp.desktop
ananas	-	+GUIDesigner;	/usr/share/applications/ananas-designer.desktop
dreampie	-	+IDE;	/usr/share/applications/dreampie.desktop
drpython	-	+IDE;	/usr/share/applications/drpython.desktop
gdb	-	+ConsoleOnly;+Debugger;	/usr/share/applications/gdb.desktop
wxlua	-	+IDE;	/usr/share/applications/wxlua.desktop
kuzya	-	+IDE;+ComputerScience;	/usr/share/applications/kuzya.desktop

qmpdclient	-	-Network;-Music;+AudioVideo;+Audio;+Player;	/usr/share/applications/qmpdclient.desktop
kdvdcreator	-	-Multimedia;+DiscBurning;	/usr/share/applications/kde4/kdvdcreator.desktop
qdvdauthor	-	+DiscBurning;	/usr/share/applications/qdvdauthor.desktop
dvdisaster	-	-System;-Utility;-Archiving;+AudioVideo;+DiscBurning;	/usr/share/applications/dvdisaster.desktop
sound-juicer	-	+DiscBurning;	/usr/share/applications/sound-juicer.desktop
nted	-	+Music;	/usr/share/applications/nted.desktop
ario	-	+Player;	/usr/share/applications/ario.desktop
arista	-	+AudioVideoEditing;	/usr/share/applications/arista.desktop
coriander	-	+Video;+Recorder;	/usr/share/applications/coriander.desktop
exfalso	-	+AudioVideoEditing;	/usr/share/applications/exfalso.desktop
fmit	-	+Music;	/usr/share/applications/fmit.desktop
gnomeradio	-	+Audio;+Tuner;	/usr/share/applications/gnomeradio.desktop
cheese	-	+Video;+Recorder;	/usr/share/applications/cheese.desktop
foobnix	-	+Audio;+Player;	/usr/share/applications/foobnix.desktop
gpodder	-	+Tuner;	/usr/share/applications/gpodder.desktop
gsopcast	-	-Multimedia;+Video;+TV;	/usr/share/applications/gsopcast.desktop
guvcview	-	+Recorder;+Video;	/usr/share/applications/guvcview.desktop
jokosher	-	+Audio;+AudioVideoEditing;	/usr/share/applications/jokosher.desktop
kino	-	+Video;+AudioVideoEditing;	/usr/share/applications/Kino.desktop
tkffmpeg	-	+Video;+AudioVideoEditing;	/usr/share/applications/tkffmpeg.desktop
tuxguitar	-	+Music;	/usr/share/applications/tuxguitar.desktop
rakarrack-data	-	+Music;	/usr/share/applications/rakarrack.desktop
terminatorx	-	+Audio;+AudioVideoEditing;	/usr/share/applications/terminatorX.desktop
wavesurfer	-	+AudioVideoEditing;	/usr/share/applications/wavesurfer.desktop
wmxmms	-	+Player;	/usr/share/applications/wmxmms.desktop
xmms-cyr-setup	-	+Player;	/usr/share/applications/xmms-cyr-setup.desktop
soundconverter	-	+Audio;+AudioVideoEditing;	/usr/share/applications/soundconverter.desktop
hydrogen	-	+Midi;	/usr/share/applications/hydrogen.desktop
miniAudicle-common	-	+Music;	/usr/share/applications/miniAudicle.desktop
patchage	-	+Midi;	/usr/share/applications/patchage.desktop
puddletag	-	+Audio;+AudioVideoEditing;	/usr/share/applications/puddletag.desktop

kde4network-krfb	-	-System;	/usr/share/applications/kde4/krfb.desktop
skype-call-recorder	-	+VideoConference;	/usr/share/applications/skype-call-recorder.desktop
linuxdcpp	-	+FileTransfer;+P2P;	/usr/share/applications/linuxdcpp.desktop
nicotine-plus	-	+FileTransfer;+P2P;	/usr/share/applications/nicotine.desktop
imule	-	+FileTransfer;+P2P;	/usr/share/applications/imule.desktop
deluge	-	+FileTransfer;+P2P;	/usr/share/applications/deluge.desktop
fatrat	-	+FileTransfer;	/usr/share/applications/fatrat.desktop
qgmailnotifier	-	+Email;	/usr/share/applications/qgmailnotifier.desktop
checkgmail	-	+Email;	/usr/share/applications/checkgmail.desktop
synce-kpm	-	-Network;+Office;+PDA;	/usr/share/applications/synce-kpm.desktop
knemo4	-	+System;+Monitor;	/usr/share/applications/kde4/knemo.desktop
webhttrack	-	+FileTransfer;	/usr/share/applications/WebHTTrack.desktop
setools-gui	-	+Security;	/usr/share/applications/sediffx.desktop
setools-gui	-	+Security;	/usr/share/applications/apol.desktop
setools-gui	-	+Security;	/usr/share/applications/seaudit.desktop
airsnort	-	+Security;	/usr/share/applications/airsnort.desktop
AutoScan	-	+Security;	/usr/share/applications/autoscan-network.desktop
linscope	-	+Security;	/usr/share/applications/linscope.desktop
choqok	-	+WebDevelopment;	/usr/share/applications/kde4/choqok.desktop
logjam	-	+WebDevelopment;	/usr/share/applications/logjam.desktop
lekhonee	-	+WebDevelopment;	/usr/share/applications/lekhonee.desktop
lekhonee-gnome	-	+WebDevelopment;	/usr/share/applications/lekhonee-gnome.desktop
gwibber	-	+WebDevelopment;	/usr/share/applications/gwibber.desktop
tsclient	-	+RemoteAccess;	/share/applications/tsclient.desktop
remmina	-	+RemoteAccess;	/usr/share/applications/remmina.desktop
nxclient	-	+RemoteAccess;	/usr/share/applications/nxclient.desktop
nxclient	-	+RemoteAccess;	/usr/share/applications/nxclient-wizard.desktop
nxclient	-	+RemoteAccess;	/usr/share/applications/nxclient-help.desktop
nxclient	-	+RemoteAccess;	/usr/share/applications/nxclient-admin.desktop
eagleeye	-	+RemoteAccess;	/usr/share/applications/eagleeye.desktop
hotssh	-	+RemoteAccess;	/usr/share/applications/hotssh.desktop
tigervnc	-	+RemoteAccess;	/usr/share/applications/vncviewer.desktop

synaptic-usermode	-	-System;+Settings;	/usr/share/applications/synaptic.desktop
rpminstall	-	-Utility;+Settings;+PackageManager;	/usr/share/applications/rpminstall.desktop
qalculate-gtk	-	+Calculator;	/usr/share/applications/qalculate-gtk.desktop
xosview	-	-Utility;	/usr/share/applications/xosview.desktop
gorilla	-	+Security;-Utility;	/usr/share/applications/gorilla.desktop
fvkbd	-	+Accessibility;	/usr/share/applications/fvkbd-gtk.desktop
qvkeyboard	-	+Accessibility;	/usr/share/applications/qvkeyboard.desktop
lxde-lxterminal	-	-Utility;+System;	/usr/share/applications/lxterminal.desktop
gksu	-	-Utility;+System;	/usr/share/applications/gksu.desktop
sakura	-	-Utility;+System;	/usr/share/applications/sakura.desktop
termit	-	-Utility;+System;	/usr/share/applications/termit.desktop
tilda	-	-Utility;+System;	/usr/share/applications/tilda.desktop
guake	-	-Utility;+System;	/usr/share/applications/guake.desktop
cutecom	-	-Utility;+System;	/usr/share/applications/cutecom.desktop
lcdtest	-	-Utility;+Settings;+HardwareSettings;+X-ALTLinux-VideoSettings;	/usr/share/applications/lcdtest.desktop

kflickr	-	+Database;	/usr/share/applications/kflickr.desktop
chmsee	-	-Utility;+Office;+Viewer;	/usr/share/applications/chmsee.desktop
libreoffice	-	-Utility;+Settings;+Printing;	/usr/share/applications/printeradmin.desktop
gnochm	-	-Utility;+Office;+Viewer;	/usr/share/applications/gnochm.desktop
exe	-	-Editor;+TextEditor;	/usr/share/applications/exe.desktop
kde4utils-kcharselect	-	+Accessibility;	/usr/share/applications/kde4/KCharSelect.desktop
kde4utils-ktimer	-	+Clock;	/usr/share/applications/kde4/ktimer.desktop
gpicview	-Utility;-Photography;	-	/usr/share/applications/gpicview.desktop
gcompris	-	-Utility;+Game;+KidsGame;	/usr/share/applications/gcompris-edit.desktop
cdcollect	-	-Utility;+AudioVideo;+Database;	/usr/share/applications/cdcollect.desktop
gresistor	-	-Utility;-gResistor;+Engineering;+Electronics;	/usr/share/applications/gresistor.desktop
artha	-	-Utility;-Languages;-Literature;+Office;+TextTools;+Dictionary;	/usr/share/applications/artha.desktop
lightlang	-	-Utility;+TextTools;	/usr/share/applications/xsl.desktop
qstardict	-	-Utility;+TextTools;+Office;	/usr/share/applications/qstardict.desktop
avant-window-navigator	-	+X-Desktop;	/usr/share/applications/avant-window-navigator.desktop
axkb	-	+Accessibility;+X-Desktop;	/usr/share/applications/axkb.desktop
gxneur	-	+Accessibility;	/usr/share/applications/gxneur.desktop
kde4pim-kalarm	-	+Clock;	/usr/share/applications/kde4/kalarm.desktop
drwright	-	+Clock;	/usr/share/applications/drwright.desktop
gtknetcat	-	-Utility;+FileTransfer;	/usr/share/applications/gtknetcat.desktop
kdissert	-	-Utility;+Office;+Presentation;	/usr/share/applications/kde/kdissert.desktop

cube3d	-	-Action;+ActionGame;	/usr/share/applications/cube3d.desktop
edgar	-	+RolePlaying;	/usr/share/applications/edgar.desktop
tuxtype	-	+KidsGame;+X-Typing;	/usr/share/applications/tuxtype.desktop
netherearth	-	+StrategyGame;	/usr/share/applications/netherearth.desktop
mana	-	+RolePlaying;	/usr/share/applications/mana.desktop
ksudoku	-	+LogicGame;	/usr/share/applications/kde/ksudoku.desktop
gtkevemon	-	+RolePlaying;	/usr/share/applications/gtkevemon.desktop
dangerdeep	-	+StrategyGame;	/usr/share/applications/alt-dangerdeep.desktop
pybookreader	-	+Office;+Viewer;+Literature;	/usr/share/applications/pybookreader.desktop
pybookreader	-	+Office;+Viewer;+Literature;	/usr/share/applications/ornamentbook.desktop
frescobaldi	-	+AudioVideo;	/usr/share/applications/kde4/frescobaldi.desktop
gwine	-	-Accessories;+System;+Emulator;+Wine;	/usr/share/applications/gwine.desktop
jamin	-	+AudioVideo;+Sequencer;	/usr/share/applications/jamin.desktop
lyx	-	-Office:WordProcessor:KDE:Qt;+Office;+WordProcessor;+KDE;+Qt;	/usr/share/applications/lyx.desktop
kodos	-	+Development;+Utility;	/usr/share/applications/fedora-kodos.desktop
kover	-	+Graphics;+Publishing;	/usr/share/applications/kde4/kover.desktop
mures	-	+Game;+ArcadeGame;	/usr/share/applications/mures.desktop
ncmpc	-	+AudioVideo;+Player;	/usr/share/applications/ncmpc.desktop
wxdialer	-	-Internet;+Network;+Dialup;	/usr/share/applications/wxdialer.desktop
qsopcast	-	-Multimedia;+AudioVideo;+Video;+TV;	/usr/share/applications/sopcast.desktop
qtrainer	-	-Other;+Education;+Sports;	/usr/share/applications/qtrainer.desktop
smile	-	+AudioVideo;+AudioVideoEditing;	/usr/share/applications/smile.desktop
sqliteman	-	+Development;+Database;	/usr/share/applications/sqliteman.desktop
wxstedit	-	+Utility;	/usr/share/applications/wxstedit.desktop
treeline	-	+Office;+Database;	/usr/share/applications/treeline.desktop
canorus	-	+AudioVideo;	/usr/share/applications/canorus.desktop
hugin	-	+Photography;	/usr/share/applications/hugin.desktop
hugin	-	+Photography;	/usr/share/applications/PTBatcherGUI.desktop
kde4-kipi-plugins-expoblending	-	+Photography;	/usr/share/applications/kde4/expoblending.desktop
kde4-kipi-plugins-core	-	+Photography;	/usr/share/applications/kde4/dngconverter.desktop
kde4-digikam-data	-	+Photography;	/usr/share/applications/kde4/showfoto.desktop
kde4-kipi-plugins-core	-	+Scanning;	/usr/share/applications/kde4/scangui.desktop
qgis	-	+Engineering;	/usr/share/applications/qgis.desktop
PythonCAD	-	+Engineering;-Utility;	/usr/share/applications/PythonCAD.desktop
aeskulap	-	+MedicalSoftware;+Viewer;	/usr/share/applications/aeskulap.desktop
wally	-	+DesktopSettings;+Settings;-Graphics;	/usr/share/applications/wally.desktop
multover	-	-Graphics;+AudioVideo;+Video;+AudioVideoEditing;	/usr/share/applications/multover.desktop
flpsed	-	+Publishing;	/usr/share/applications/flpsed.desktop
cfdg-fe	-	+VectorGraphics;	/usr/share/applications/cfdg-fe.desktop
koffice-karbon	-	+VectorGraphics;	/usr/share/applications/kde4/karbon.desktop
koffice-krita	-	+2DGraphics;+RasterGraphics;	/usr/share/applications/kde4/krita.desktop
gnome-alsamixer	-	+Audio;+Mixer;	/usr/share/applications/gnome-alsamixer.desktop
gnome-terminal	-	+System;-Utility;	/usr/share/applications/gnome-terminal.desktop
rhythmbox	-	+Audio;+Player;	/usr/share/applications/rhythmbox.desktop
gnome-media-gmix	-	+Audio;+Mixer;	/usr/share/applications/gnome-volume-control.desktop
epiphany	-	+WebBrowser;	/usr/share/applications/bme.desktop
nautilus	-	+FileManager;	/usr/share/applications/nautilus-browser.desktop
gnome-disk-utility	-	+Filesystem;	/usr/share/applications/palimpsest.desktop
gnome-screenshot	-	-Utility;+Graphics;	/usr/share/applications/gnome-screenshot.desktop
