Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37825025
en ru br
Репозитории ALT
S:0.21-alt1
5.1: 0.09-alt1
www.altlinux.org/Changes

Группа :: Разработка/Прочее
Пакет: repocop-unittest-freedesktop

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

pax_global_header00006660000000000000000000000064117512745340014523gustar00rootroot0000000000000052 comment=ecb514cdf713eeab2866153564bbaff3dcccf39c
repocop-unittest-freedesktop-0.19/000075500000000000000000000000001175127453400173075ustar00rootroot00000000000000repocop-unittest-freedesktop-0.19/.gear/000075500000000000000000000000001175127453400203035ustar00rootroot00000000000000repocop-unittest-freedesktop-0.19/.gear/rules000064400000000000000000000000071175127453400213550ustar00rootroot00000000000000tar: .
repocop-unittest-freedesktop-0.19/desktop-exec-fill-code.posttest000064400000000000000000000014621175127453400253500ustar00rootroot00000000000000#!/bin/sh
sqlite3 "$REPOCOP_TEST_DBDIR/freedesktop-desktop.db" <<EOSQL
-- # attach database '$REPOCOP_TEST_DBDIR/rpm.db' as rpm;
.mode tabs
.output $REPOCOP_TEST_TMPDIR/msg
SELECT distinct pkgid, desktopfile from freedesktop_desktop_mimetypes LEFT JOIN freedesktop_desktop ON freedesktop_desktop_mimetypes.desktopid=freedesktop_desktop.desktopid WHERE desktopdir glob '/usr/share/applications/*' AND appexec not glob '*[ ="'']%[fuFU]*';
EOSQL
perl -ne 'chomp;@a=split /\t/;system("repocop-test-warn", "-k", $a[0], $a[1].q{: found MimeType= entry, but to handle it properly you have to declare one of %f,%F,%u,%U in Exec= entry. Note that %m is deprecated. See http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html#exec-variables}) if $a[0]' $REPOCOP_TEST_TMPDIR/msg
rm $REPOCOP_TEST_TMPDIR/*
repocop-unittest-freedesktop-0.19/desktop-misplaced-type-application.posttest000064400000000000000000000012071175127453400300060ustar00rootroot00000000000000#!/bin/sh
sqlite3 "$REPOCOP_TEST_DBDIR/freedesktop-desktop.db" <<EOSQL
-- # attach database '$REPOCOP_TEST_DBDIR/rpm.db' as rpm;
.mode tabs
.output $REPOCOP_TEST_TMPDIR/msg
select pkgid,DESKTOPDIR,DESKTOPFILE from freedesktop_desktop where desktoptype='Application' and DESKTOPDIR not glob '/usr/share/applications*' and DESKTOPDIR not glob '/usr/share/kde*/applications*' and DESKTOPDIR not glob '/usr/share/applnk*';
EOSQL
perl -ne 'chomp;@a=split /\t/;system("repocop-test-fail", "-k", $a[0], "$a[1]/$a[2] has Type=Application and should be placed under /usr/share/applications.") if $a[0]' $REPOCOP_TEST_TMPDIR/msg
rm $REPOCOP_TEST_TMPDIR/msg
repocop-unittest-freedesktop-0.19/desktop-misplaced-type-service.posttest000064400000000000000000000011611175127453400271420ustar00rootroot00000000000000#!/bin/sh
sqlite3 "$REPOCOP_TEST_DBDIR/freedesktop-desktop.db" <<EOSQL
-- # attach database '$REPOCOP_TEST_DBDIR/rpm.db' as rpm;
.mode tabs
.output $REPOCOP_TEST_TMPDIR/msg
select pkgid,DESKTOPDIR,DESKTOPFILE from freedesktop_desktop where desktoptype='Service' and DESKTOPDIR not glob '/usr/share/services*' and DESKTOPDIR not glob '/usr/share/kde*/services*' and DESKTOPDIR not glob '/usr/share/apps*';
EOSQL
perl -ne 'chomp;@a=split /\t/;system("repocop-test-warn", "-k", $a[0], "$a[1]/$a[2] has Type=Service and should be placed under /usr/share/services.") if $a[0]' $REPOCOP_TEST_TMPDIR/msg
rm $REPOCOP_TEST_TMPDIR/msg
repocop-unittest-freedesktop-0.19/desktop-misplaced-type-servicetype.posttest000064400000000000000000000011741175127453400300500ustar00rootroot00000000000000#!/bin/sh
sqlite3 "$REPOCOP_TEST_DBDIR/freedesktop-desktop.db" <<EOSQL
-- # attach database '$REPOCOP_TEST_DBDIR/rpm.db' as rpm;
.mode tabs
.output $REPOCOP_TEST_TMPDIR/msg
select pkgid,DESKTOPDIR,DESKTOPFILE from freedesktop_desktop where desktoptype='ServiceType' and DESKTOPDIR not glob '/usr/share/servicetypes*' and DESKTOPDIR not glob '/usr/share/kde*/servicetypes*' and DESKTOPDIR not glob '/usr/share/apps*';
EOSQL
perl -ne 'chomp;@a=split /\t/;system("repocop-test-warn", "-k", $a[0], "$a[1]/$a[2] has Type=ServiceType and should be placed under /usr/share/servicetypes.")' $REPOCOP_TEST_TMPDIR/msg
rm $REPOCOP_TEST_TMPDIR/msg
repocop-unittest-freedesktop-0.19/freedesktop-categories.posttest000064400000000000000000000056361175127453400255660ustar00rootroot00000000000000#!/usr/bin/perl
use DBI;
use strict;
use warnings;

my %L1=map {$_=>1} qw/
AudioVideo
Audio
Video
Development
Education
Game
Graphics
Network
Office
Science
Settings
System
Utility
/;
my %L2=map {$_=>1} qw/
Building
Debugger
IDE
GUIDesigner
Profiling
RevisionControl
Translation
Calendar
ContactManagement
Database
Dictionary
Chart
Email
Finance
FlowChart
PDA
ProjectManagement
Presentation
Spreadsheet
WordProcessor
2DGraphics
VectorGraphics
RasterGraphics
3DGraphics
Scanning
OCR
Photography
Publishing
Viewer
TextTools
DesktopSettings
HardwareSettings
Printing
PackageManager
Dialup
InstantMessaging
Chat
IRCClient
FileTransfer
HamRadio
News
P2P
RemoteAccess
Telephony
TelephonyTools
VideoConference
WebBrowser
WebDevelopment
Midi
Mixer
Sequencer
Tuner
TV
AudioVideoEditing
Player
Recorder
DiscBurning
ActionGame
AdventureGame
ArcadeGame
BoardGame
BlocksGame
CardGame
KidsGame
LogicGame
RolePlaying
Simulation
SportsGame
StrategyGame
Art
Construction
Music
Languages
Science
ArtificialIntelligence
Astronomy
Biology
Chemistry
ComputerScience
DataVisualization
Economy
Electricity
Geography
Geology
Geoscience
History
ImageProcessing
Literature
Math
NumericalAnalysis
MedicalSoftware
Physics
Robotics
Sports
ParallelComputing
Amusement
Archiving
Compression
Electronics
Emulator
Engineering
FileTools
FileManager
TerminalEmulator
Filesystem
Monitor
Security
Accessibility
Calculator
Clock
TextEditor
Documentation
Core

Teaching
X-Teaching
X-ALTLinux-Java
X-Typing
X-Desktop
/;

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 @row;
while (@row = $sth->fetchrow_array) {
my ($desktopid, $pkgid, $desktopdir, $filename)=@row;
my $sth2 = $dbh->prepare('SELECT CATEGORY FROM freedesktop_desktop_categories WHERE DESKTOPID = ?');
$sth2->execute($desktopid);
my @categories;
while (@row = $sth2->fetchrow_array) {
push @categories, @row;
}
my $STATUS='';
my @message;
unless (grep {$L1{$_}} @categories) {
$STATUS="fail";
push @message, "Main Categories consist of those categories that every conforming desktop environment MUST support.(http://standards.freedesktop.org/menu-spec/latest/apa.html). None found in $desktopdir/$filename. please, fix."
}
unless (grep {$L2{$_}} @categories) {
$STATUS="warn" unless $STATUS eq "fail";
push @message, "Menu-related Additional Categories (http://standards.freedesktop.org/menu-spec/latest/apa.html) not found in $desktopdir/$filename. Please add it or report a bug against this test if you already have registered one (not including menu unrelated ones as Core or Qt)."
}
system {"repocop-test-$STATUS"} "repocop-test-$STATUS", '-k', $pkgid, @message if $STATUS;
}
repocop-unittest-freedesktop-0.19/freedesktop-desktop-file-proposed-patch.pl000064400000000000000000000012151175127453400274700ustar00rootroot00000000000000#!/usr/bin/perl -w

push @SPECHOOKS, sub {
my ($spec, $parent, $pkgname) = @_;
my $section=$spec->get_section('install');
unless ($section) {
print STDERR "Oops! %install not found!\n";
return;
}
my $filename=$ENV{'REPOCOP_TEST_STATEDIR'}."/${pkgname}.in";
my $fn;
unless (open $fn, $filename) {
warn "can't open $filename: $!";
return;
}
my @result = <$fn>;
close $fn;
$section->push_body(join('',@result));

my $mainsec=$spec->get_section('package','');
$mainsec->unshift_body('BuildRequires: desktop-file-utils'."\n") unless $mainsec->match_body(qr'^Build(Pre)?Req.+desktop-file-utils');
};
1;
repocop-unittest-freedesktop-0.19/freedesktop-desktop-file-proposed-patch.posttest000075500000000000000000000642521175127453400307570ustar00rootroot00000000000000#!/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!
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

meld - -Development;+Utility;+FileTools; /usr/share/applications/meld.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
putty - +RemoteAccess; /usr/share/applications/putty.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
gucharmap - +Accessibility; /usr/share/applications/gucharmap.desktop
qvkeyboard - +Accessibility; /usr/share/applications/qvkeyboard.desktop
faces-xface - -Mail;+Email; /usr/share/applications/faces.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
trustme - +System;+Security; /usr/share/applications/trustme.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
seahorse - +Settings;-Utility; /usr/share/applications/seahorse.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
gconf-editor - -System;+Settings;+DesktopSettings; /usr/share/applications/gconf-editor.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
repocop-unittest-freedesktop-0.19/repocop-unittest-freedesktop.spec000064400000000000000000000071221175127453400260220ustar00rootroot00000000000000Name: repocop-unittest-freedesktop
Version: 0.19
Release: alt3
BuildArch: noarch
Packager: Igor Yu. Vlasenko <viy@altlinux.org>

Summary: desktop packaging test
Group: Development/Other
License: GPL or Artistic
Url: http://repocop.altlinux.org

Requires: repocop > 0.55
Requires: repocop-collector-freedesktop-desktop
Provides: repocop-unittest-freedesktop-desktop-exec-fill-code = 0.04
Obsoletes: repocop-unittest-freedesktop-desktop-exec-fill-code < 0.04
Provides: repocop-unittest-freedesktop-categories = 0.06
Obsoletes: repocop-unittest-freedesktop-categories < 0.06

Source: %name-%version.tar
BuildRequires: perl-devel perl-DBI

%description
integration test for repocop test platform.
Includes the following tests:
* desktop-exec-fill-code
verifies packaging of .desktop files with MimeType entry
and Exec (%%f|%%F|%%U|%%u) specifier.
according to http://www.freedesktop.org/Standards/desktop-entry-spec
(see also draft of Sergey N. Yatskevich
http://lists.altlinux.org/pipermail/devel/2008-March/071791.html)

%prep
%setup -q

%build

%install
for i in *.posttest; do
testname=`echo $i | sed -e s,.posttest\$,,`
install -pD -m 755 $testname.posttest %buildroot%_datadir/repocop/pkgtests/$testname/posttest
done

for i in *.pl; do
install -pD -m 644 $i %buildroot%_datadir/repocop/fixscripts/$i
done

%files
%_datadir/repocop/pkgtests/*
%_datadir/repocop/fixscripts/*

%changelog
* Sat May 05 2012 Igor Vlasenko <viy@altlinux.ru> 0.19-alt3
- maintainance release

* Fri Nov 11 2011 Igor Vlasenko <viy@altlinux.ru> 0.19-alt2
- fixscript cleanup

* Thu Nov 10 2011 Igor Vlasenko <viy@altlinux.ru> 0.19-alt1
- adapted for new fixscript syntax

* Tue May 24 2011 Igor Vlasenko <viy@altlinux.ru> 0.18-alt1
- patchgen improvements

* Wed May 18 2011 Igor Vlasenko <viy@altlinux.ru> 0.17-alt1
- patchgen improvements

* Mon May 16 2011 Igor Vlasenko <viy@altlinux.ru> 0.16-alt1
- cleanup for lyx patch

* Mon May 16 2011 Igor Vlasenko <viy@altlinux.ru> 0.15-alt1
- more generated category patches

* Sat May 14 2011 Igor Vlasenko <viy@altlinux.ru> 0.14-alt1
- bugfix release

* Sat May 14 2011 Igor Vlasenko <viy@altlinux.ru> 0.13-alt1
- added generated category patches

* Mon Apr 25 2011 Igor Vlasenko <viy@altlinux.ru> 0.12-alt1
- added some X- subcategories

* Sun Mar 27 2011 Igor Vlasenko <viy@altlinux.ru> 0.11-alt1
- added Science; category

* Sat Mar 26 2011 Igor Vlasenko <viy@altlinux.ru> 0.10-alt1
- kde3/4 share support

* Wed Sep 30 2009 Igor Vlasenko <viy@altlinux.ru> 0.09-alt1
- posttests migration

* Sat May 30 2009 Igor Vlasenko <viy@altlinux.ru> 0.08-alt4
- real bugfix

* Fri May 29 2009 Igor Vlasenko <viy@altlinux.ru> 0.08-alt3
- bugfix (thanks to drool@)

* Fri May 08 2009 Igor Vlasenko <viy@altlinux.ru> 0.08-alt2
- bugfix release

* Thu May 07 2009 Igor Vlasenko <viy@altlinux.ru> 0.08-alt1
- added freedesktop-categories

* Mon Mar 30 2009 Igor Vlasenko <viy@altlinux.ru> 0.07-alt1
- fixed desktop-exec-fill-code (thanks to REAL@)

* Mon Nov 03 2008 Igor Vlasenko <viy@altlinux.ru> 0.06-alt4
- message cleanup in the rest of tests

* Sun Nov 02 2008 Igor Vlasenko <viy@altlinux.ru> 0.06-alt3
- message cleanup

* Sat Aug 02 2008 Igor Vlasenko <viy@altlinux.ru> 0.06-alt2
- bugfix (incompete SQL in desktop-misplaced-type-servicetype)

* Thu Jul 10 2008 Igor Vlasenko <viy@altlinux.ru> 0.06-alt1
- bugfix for case no packages found

* Tue Jul 08 2008 Igor Vlasenko <viy@altlinux.ru> 0.05-alt1
- added
+ desktop-misplaced-type-application.done
+ desktop-misplaced-type-service.done
+ desktop-misplaced-type-servicetype.done

* Mon Jul 07 2008 Igor Vlasenko <viy@altlinux.ru> 0.04-alt1
- First build for Sisyphus.
repocop-unittest-freedesktop-0.19/run_test.sh000075500000000000000000000004071175127453400215120ustar00rootroot00000000000000#!/bin/sh

export REPOCOP_TEST_STATEDIR=in
export REPOCOP_TEST_DBDIR=.
export PATH=$PATH:
mkdir -p ./in
touch repocop-test-warn
chmod 755 repocop-test-warn
perl ./freedesktop-desktop-file-proposed-patch.posttest
rm -f repocop-test-warn

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin