commit rpmlint-mini for openSUSE:Factory
Hello community, here is the log from the commit of package rpmlint-mini for openSUSE:Factory checked in at 2013-06-29 14:51:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpmlint-mini (Old) and /work/SRC/openSUSE:Factory/.rpmlint-mini.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "rpmlint-mini" Changes: -------- --- /work/SRC/openSUSE:Factory/rpmlint-mini/rpmlint-mini.changes 2013-06-26 20:27:04.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rpmlint-mini.new/rpmlint-mini.changes 2013-06-29 14:51:36.000000000 +0200 @@ -1,0 +2,15 @@ +Fri Jun 28 16:16:25 UTC 2013 - dmueller@suse.com + +- update to desktop-file-validate 0.21: + - update to current version of menu specification (Vincent): + - only print hint if no main category is present, not an error + - make Science a main category + - add new registered categories: Adult, Feed, Humanities, Maps, + Shooter, Spirituality, XFCE + - update related categories + - add TDE to list of registered OnlyShowIn + - accept and validate GNOME3/GSettings for AutostartCondition (Vincent) + - output hint if more than one main category is present (Vincent) + - output hint about suggested related categories (Vincent) + +------------------------------------------------------------------- Old: ---- desktop-file-utils-0.20.tar.xz New: ---- desktop-file-utils-0.21.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpmlint-mini.spec ++++++ --- /var/tmp/diff_new_pack.m9tATW/_old 2013-06-29 14:51:37.000000000 +0200 +++ /var/tmp/diff_new_pack.m9tATW/_new 2013-06-29 14:51:37.000000000 +0200 @@ -34,11 +34,11 @@ Summary: Rpm correctness checker License: GPL-2.0+ Group: System/Packages -Version: 1.4 +Version: 1.5 Release: 0 Url: http://rpmlint.zarb.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: desktop-file-utils-0.20.tar.xz +Source: desktop-file-utils-0.21.tar.xz Source100: rpmlint-deps.txt Source101: rpmlint.wrapper Source102: rpmlint-mini.config @@ -50,7 +50,7 @@ source packages can be checked. %prep -%setup -q -n desktop-file-utils-0.20 +%setup -q -n desktop-file-utils-0.21 [[ -r COPYING ]] %build ++++++ desktop-file-utils-0.20.tar.xz -> desktop-file-utils-0.21.tar.xz ++++++ ++++ 4910 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/ChangeLog new/desktop-file-utils-0.21/ChangeLog --- old/desktop-file-utils-0.20/ChangeLog 2012-03-05 11:02:10.000000000 +0100 +++ new/desktop-file-utils-0.21/ChangeLog 2012-10-11 16:08:39.000000000 +0200 @@ -1,5 +1,270 @@ # Generated by Makefile. Do not edit. +commit c0c4c6c1dcfc410984a96193678f40b7a31c9ba1 +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:25:25 2012 +0200 + + validate: Add Feed category, that can be used with Network + + https://bugs.freedesktop.org/show_bug.cgi?id=20197 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit 689ec978d17769092e0dde3c79c1ce2db871737e +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:24:56 2012 +0200 + + validate: Add Network as related category for Monitor + + https://bugs.freedesktop.org/show_bug.cgi?id=49699 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit a0e4f097c4d5d0da91dd6112c42111c95b18fff9 +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:24:22 2012 +0200 + + validate: Add Shooter category for games + + https://bugs.freedesktop.org/show_bug.cgi?id=38553 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit 0c2cc0855f537c8751af0bd47415193a55a903d2 +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:23:41 2012 +0200 + + validate: Add Maps category, and document where to put GIS applications + + https://bugs.freedesktop.org/show_bug.cgi?id=20187 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit 10c0d9e0af220d973c7a6ca80f7bb4ea3074e85f +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:22:59 2012 +0200 + + validate: Add Science as related category for more Education categories + + https://bugs.freedesktop.org/show_bug.cgi?id=20186 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit dc41f7391463ed083edff89e6719949f2755d18a +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:21:50 2012 +0200 + + validate: Make Science a main category + + https://bugs.freedesktop.org/show_bug.cgi?id=20186 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit 7948c96f7cf698f117d32e6e796e9073e77cc610 +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 15:00:32 2012 +0200 + + validate: Add Spirituality and Humanities categories + + https://bugs.freedesktop.org/show_bug.cgi?id=20192 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012525.html + +M src/validate.c + +commit 7a647466f4455c289549e399b20f86bd50190df3 +Author: Vincent Untz <vuntz@gnome.org> +Date: Thu Oct 11 14:49:13 2012 +0200 + + validate: Change some related categories from "and" to "or" + + https://bugs.freedesktop.org/show_bug.cgi?id=35844 + + See http://lists.freedesktop.org/archives/xdg/2012-October/012526.html + +M src/validate.c + +commit 055c439fade52e30f3c3a866881f6a2890c2a331 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 15:55:52 2012 +0200 + + validate: Code style fixes + +M src/validate.c + +commit 38b319d92525d1b1f887b1b5f094d416b51bd74c +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 15:48:35 2012 +0200 + + validate: Accept and validate GNOME3/GSettings for AutostartCondition + + We try to validate as much as we can the content of AutostartCondition. + This means: + + - for GNOME3, we check that if-session/unless-session is used with an + additional argument + - for GSettings, we check that two arguments are passed + + Additionally, we now add more validation for the GNOME condition (one + argument needs to be passed). + + https://bugs.freedesktop.org/show_bug.cgi?id=55483 + +M src/validate.c + +commit 355b4c6f7e4203a7c8ae184a2db76ae157235003 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 13:01:11 2012 +0200 + + validate: Rework multiple main categories detection + + AudioVideo is required if Audio or Video is present, and that would be + two main categories. But in that case, this is okay. So we need to + ignore the case of two main categories when one is required by the + other. + +M src/validate.c + +commit b18be61ad4957ea312efcbe65c6cffe2ef52fc6a +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 11:48:19 2012 +0200 + + validate: Clarify message when outputting an item of list + + In some messages, we don't display the key value, but one item of the + value (which is a list). Make this clearer. + +M src/validate.c + +commit 682184ed59154d68c8c333609f4cea777ac67079 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 08:44:02 2012 +0200 + + validate: Add hint about suggested related categories + + Now that related categories are not required (in general, see below for + an exception), we don't need to error out when they're missing. Still, + it's nice to suggest them with a hint. + + Note that there are still cases where another category is required + (AudioVideo for Audio, for instance). + + Part of https://bugs.freedesktop.org/show_bug.cgi?id=35844 (comment 6 + and later) + +M src/validate.c + +commit 02cbbd7f90ccb4f1b7e65e32aaabaa3057c61b76 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 08:21:57 2012 +0200 + + validate: Add Adult category + + See http://lists.freedesktop.org/archives/xdg/2011-November/012106.html + +M src/validate.c + +commit 6a685a92691087eeb0325355e52b42ecf621f797 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 08:17:39 2012 +0200 + + validate: Output hint if more than one main category is present + +M src/validate.c + +commit c3eeb8c7b4a63233226ef76a56221a167510253e +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 07:48:59 2012 +0200 + + validate: Only print hint if no main category is present, not an error + + The requirement to have at least one main category was removed for the + specification a few months ago. It's still useful to tell people with a + hint about the risk of not including one, though. + + See http://lists.freedesktop.org/archives/xdg/2011-November/012123.html + + Part of https://bugs.freedesktop.org/show_bug.cgi?id=35844 (comment 6 + and later) + +M src/validate.c + +commit a97707811e2669b6a52a861c41cf46838fab8eb5 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Oct 3 07:41:14 2012 +0200 + + validate: Add function to print hints, and --no-hints option + + This is useful to suggest improvements to the user. + +M src/install.c +M src/validate.c +M src/validate.h +M src/validator.c + +commit fadbee1bdceffa3c6ffdbaa67563dbcb0ce059f7 +Author: Vincent Untz <vuntz@gnome.org> +Date: Fri May 11 14:06:28 2012 +0200 + + validate: Add TDE to to list of registered OnlyShowIn + + See http://lists.freedesktop.org/archives/xdg/2012-April/012374.html + +M src/validate.c + +commit ff6bf3b5f8e1e2f384939db9d212b4b21c24d5f3 +Author: Vincent Untz <vuntz@gnome.org> +Date: Wed Apr 11 12:48:05 2012 +0200 + + validate: Add XFCE to to list of registered categories + + See http://lists.freedesktop.org/archives/xdg/2012-March/012302.html and + http://lists.freedesktop.org/archives/xdg/2012-April/012348.html + +M src/validate.c + +commit 56eddf4ce5008dc95e2b3725684aa2b7cb053c54 +Author: Vincent Untz <vuntz@gnome.org> +Date: Tue Apr 3 14:07:50 2012 +0200 + + install: Do not require glib >= 2.28 + + We still only check for an older version of glib, and requiring 2.28 + just for g_slist_free_full() can be silly. So if we don't have 2.28, + just use the equivalent trivial code. + + https://bugs.freedesktop.org/show_bug.cgi?id=48133 + +M src/install.c + +commit e82a75619484c8a5362787187871ae1d04cf006c +Author: Vincent Untz <vuntz@gnome.org> +Date: Mon Mar 5 11:03:49 2012 +0100 + + release: post-release bump to 0.21 + +M configure.ac + +commit a00235a091e4d49825c62f6dbb2de43b432e052b +Author: Vincent Untz <vuntz@gnome.org> +Date: Mon Mar 5 11:02:30 2012 +0100 + + release: 0.20 + +M NEWS + commit 191a09f0e1bf2ebd5a4dcbb5b106a91a3b335716 Author: Vincent Untz <vuntz@gnome.org> Date: Fri Mar 2 18:57:24 2012 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/NEWS new/desktop-file-utils-0.21/NEWS --- old/desktop-file-utils-0.20/NEWS 2012-03-05 10:55:56.000000000 +0100 +++ new/desktop-file-utils-0.21/NEWS 2012-10-11 16:08:32.000000000 +0200 @@ -1,4 +1,23 @@ ============ +Version 0.21 +============ + + desktop-file-validate + - update to current version of menu specification (Vincent): + - only print hint if no main category is present, not an error + - make Science a main category + - add new registered categories: Adult, Feed, Humanities, Maps, + Shooter, Spirituality, XFCE + - update related categories + - add TDE to list of registered OnlyShowIn + - accept and validate GNOME3/GSettings for AutostartCondition (Vincent) + - output hint if more than one main category is present (Vincent) + - output hint about suggested related categories (Vincent) + + misc + - do not require glib >= 2.28 for build (Vincent) + +============ Version 0.20 ============ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/configure.ac new/desktop-file-utils-0.21/configure.ac --- old/desktop-file-utils-0.20/configure.ac 2011-12-20 16:10:48.000000000 +0100 +++ new/desktop-file-utils-0.21/configure.ac 2012-08-27 16:09:02.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([desktop-file-utils], [0.20], +AC_INIT([desktop-file-utils], [0.21], [https://bugs.freedesktop.org/enter_bug.cgi?product=desktop-file-utils]) AC_CONFIG_SRCDIR(src/validate.h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/elisp-comp new/desktop-file-utils-0.21/elisp-comp --- old/desktop-file-utils-0.20/elisp-comp 2011-01-31 12:59:05.000000000 +0100 +++ new/desktop-file-utils-0.21/elisp-comp 2012-07-04 13:54:59.000000000 +0200 @@ -1,8 +1,7 @@ #!/bin/sh -# Copyright (C) 1995, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. +# Copyright (C) 1995-2012 Free Software Foundation, Inc. -scriptversion=2009-04-28.21; # UTC +scriptversion=2010-02-06.18; # UTC # Franc,ois Pinard <pinard@iro.umontreal.ca>, 1995. # @@ -30,16 +29,16 @@ case $1 in '') - echo "$0: No files. Try \`$0 --help' for more information." 1>&2 + echo "$0: No files. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: elisp-comp [--help] [--version] FILES... -This script byte-compiles all `.el' files listed as FILES using GNU -Emacs, and put the resulting `.elc' files into the current directory, -so disregarding the original directories used in `.el' arguments. +This script byte-compiles all '.el' files listed as FILES using GNU +Emacs, and put the resulting '.elc' files into the current directory, +so disregarding the original directories used in '.el' arguments. This script manages in such a way that all Emacs LISP files to be compiled are made visible between themselves, in the event @@ -65,7 +64,11 @@ # Cleanup the temporary directory on exit. trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0 -trap '(exit $?); exit' 1 2 13 15 +do_exit='(exit $ret); exit $ret' +trap "ret=129; $do_exit" 1 +trap "ret=130; $do_exit" 2 +trap "ret=141; $do_exit" 13 +trap "ret=143; $do_exit" 15 mkdir $tempdir cp "$@" $tempdir diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/missing new/desktop-file-utils-0.21/missing --- old/desktop-file-utils-0.20/missing 2011-01-31 12:59:05.000000000 +0100 +++ new/desktop-file-utils-0.21/missing 2012-07-04 13:54:59.000000000 +0200 @@ -1,10 +1,9 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.18; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -26,7 +25,7 @@ # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "Try '$0 --help' for more information" exit 1 fi @@ -34,7 +33,7 @@ sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' -# In the cases where this matters, `missing' is being run in the +# In the cases where this matters, 'missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac @@ -65,7 +64,7 @@ echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: @@ -74,21 +73,20 @@ --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' + aclocal touch file 'aclocal.m4' + autoconf touch file 'configure' + autoheader touch file 'config.h.in' autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c + automake touch all 'Makefile.in' files + bison create 'y.tab.[ch]', if possible, from existing .[ch] + flex create 'lex.yy.c', if possible, from existing .c help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c + lex create 'lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] + yacc create 'y.tab.[ch]', if possible, from existing .[ch] -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. Send bug reports to <bug-automake@gnu.org>." exit $? @@ -100,8 +98,8 @@ ;; -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "$0: Unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; @@ -122,22 +120,13 @@ # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether + # running '$TOOL --version' or '$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi @@ -149,27 +138,27 @@ case $program in aclocal*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from +WARNING: '$1' is $msg. You should only need it if + you modified 'acinclude.m4' or '${configure_ac}'. You might want + to install the Automake and Perl packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU +WARNING: '$1' is $msg. You should only need it if + you modified '${configure_ac}'. You might want to install the + Autoconf and GNU m4 packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them +WARNING: '$1' is $msg. You should only need it if + you modified 'acconfig.h' or '${configure_ac}'. You might want + to install the Autoconf and GNU m4 packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" @@ -186,9 +175,9 @@ automake*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. +WARNING: '$1' is $msg. You should only need it if + you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. + You might want to install the Automake and Perl packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | @@ -197,10 +186,10 @@ autom4te*) echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. +WARNING: '$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU + You can get '$1' as part of Autoconf from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` @@ -220,13 +209,13 @@ bison*|yacc*) echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package +WARNING: '$1' $msg. You should only need it if + you modified a '.y' file. You may need the Bison package in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." + Bison from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -250,13 +239,13 @@ lex*|flex*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package +WARNING: '$1' is $msg. You should only need it if + you modified a '.l' file. You may need the Flex package in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." + Flex from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -273,10 +262,10 @@ help2man*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if +WARNING: '$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." + Help2man package in order for those modifications to take + effect. You can get Help2man from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` @@ -291,12 +280,12 @@ makeinfo*) echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file +WARNING: '$1' is $msg. You should only need it if + you modified a '.texi' or '.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." + call might also be the consequence of using a buggy 'make' (AIX, + DU, IRIX). You might want to install the Texinfo package or + the GNU make package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` @@ -318,49 +307,14 @@ touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. +WARNING: '$1' is needed, and is $msg. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, + proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." + some other package would contain this missing '$1' program." exit 1 ;; esac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/src/install.c new/desktop-file-utils-0.21/src/install.c --- old/desktop-file-utils-0.20/src/install.c 2011-12-14 17:27:30.000000000 +0100 +++ new/desktop-file-utils-0.21/src/install.c 2012-10-03 13:02:22.000000000 +0200 @@ -248,7 +248,7 @@ g_key_file_free (kf); /* Load and validate the file we just wrote */ - if (!desktop_file_validate (new_filename, FALSE, TRUE)) + if (!desktop_file_validate (new_filename, FALSE, TRUE, TRUE)) { g_set_error (err, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_PARSE, _("Failed to validate the created desktop file")); @@ -940,7 +940,12 @@ } } +#if GLIB_CHECK_VERSION(2,28,0) g_slist_free_full (edit_actions, (GDestroyNotify) dfu_edit_action_free); +#else + g_slist_foreach (edit_actions, (GFunc) dfu_edit_action_free, NULL); + g_slist_free (edit_actions); +#endif g_option_context_free (context); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/src/validate.c new/desktop-file-utils-0.21/src/validate.c --- old/desktop-file-utils-0.20/src/validate.c 2012-03-02 19:42:06.000000000 +0100 +++ new/desktop-file-utils-0.21/src/validate.c 2012-10-11 15:26:43.000000000 +0200 @@ -112,6 +112,7 @@ gboolean kde_reserved_warnings; gboolean no_deprecated_warnings; + gboolean no_hints; char *main_group; DesktopType type; @@ -360,7 +361,17 @@ }; static const char *show_in_registered[] = { - "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "Unity", "XFCE", "Old" + "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old" +}; + +static struct { + const char *name; + const char *first_arg[3]; + unsigned int additional_args; +} registered_autostart_condition[] = { + { "GNOME", { NULL }, 1 }, + { "GNOME3", { "if-session", "unless-session", NULL }, 1}, + { "GSettings", { NULL }, 2 } }; static struct { @@ -368,148 +379,156 @@ gboolean main; gboolean require_only_show_in; gboolean deprecated; - const char *requires[4]; + const char *requires[2]; + const char *suggests[4]; } registered_categories[] = { - { "AudioVideo", TRUE, FALSE, FALSE, { NULL } }, - { "Audio", TRUE, FALSE, FALSE, { "AudioVideo", NULL } }, - { "Video", TRUE, FALSE, FALSE, { "AudioVideo", NULL } }, - { "Development", TRUE, FALSE, FALSE, { NULL } }, - { "Education", TRUE, FALSE, FALSE, { NULL } }, - { "Game", TRUE, FALSE, FALSE, { NULL } }, - { "Graphics", TRUE, FALSE, FALSE, { NULL } }, - { "Network", TRUE, FALSE, FALSE, { NULL } }, - { "Office", TRUE, FALSE, FALSE, { NULL } }, - { "Settings", TRUE, FALSE, FALSE, { NULL } }, - { "System", TRUE, FALSE, FALSE, { NULL } }, - { "Utility", TRUE, FALSE, FALSE, { NULL } }, - { "Audio", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "Video", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "Building", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "Debugger", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "IDE", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "GUIDesigner", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "Profiling", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "RevisionControl", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "Translation", FALSE, FALSE, FALSE, { "Development", NULL } }, - { "Calendar", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "ContactManagement", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "Database", FALSE, FALSE, FALSE, { "Office", "Development", "AudioVideo", NULL } }, - { "Dictionary", FALSE, FALSE, FALSE, { "Office;TextTools", NULL } }, - { "Chart", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "Email", FALSE, FALSE, FALSE, { "Office;Network", NULL } }, - { "Finance", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "FlowChart", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "PDA", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "ProjectManagement", FALSE, FALSE, FALSE, { "Office;Development", NULL } }, - { "Presentation", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "Spreadsheet", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "WordProcessor", FALSE, FALSE, FALSE, { "Office", NULL } }, - { "2DGraphics", FALSE, FALSE, FALSE, { "Graphics", NULL } }, - { "VectorGraphics", FALSE, FALSE, FALSE, { "Graphics;2DGraphics", NULL } }, - { "RasterGraphics", FALSE, FALSE, FALSE, { "Graphics;2DGraphics", NULL } }, - { "3DGraphics", FALSE, FALSE, FALSE, { "Graphics", NULL } }, - { "Scanning", FALSE, FALSE, FALSE, { "Graphics", NULL } }, - { "OCR", FALSE, FALSE, FALSE, { "Graphics;Scanning", NULL } }, - { "Photography", FALSE, FALSE, FALSE, { "Graphics", "Office", NULL } }, - { "Publishing", FALSE, FALSE, FALSE, { "Graphics", "Office", NULL } }, - { "Viewer", FALSE, FALSE, FALSE, { "Graphics", "Office", NULL } }, - { "TextTools", FALSE, FALSE, FALSE, { "Utility", NULL } }, - { "DesktopSettings", FALSE, FALSE, FALSE, { "Settings", NULL } }, - { "HardwareSettings", FALSE, FALSE, FALSE, { "Settings", NULL } }, - { "Printing", FALSE, FALSE, FALSE, { "HardwareSettings;Settings", NULL } }, - { "PackageManager", FALSE, FALSE, FALSE, { "Settings", NULL } }, - { "Dialup", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "InstantMessaging", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "Chat", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "IRCClient", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "FileTransfer", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "HamRadio", FALSE, FALSE, FALSE, { "Network", "Audio", NULL } }, - { "News", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "P2P", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "RemoteAccess", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "Telephony", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "TelephonyTools", FALSE, FALSE, FALSE, { "Utility", NULL } }, - { "VideoConference", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "WebBrowser", FALSE, FALSE, FALSE, { "Network", NULL } }, - { "WebDevelopment", FALSE, FALSE, FALSE, { "Network", "Development", NULL } }, - { "Midi", FALSE, FALSE, FALSE, { "AudioVideo;Audio", NULL } }, - { "Mixer", FALSE, FALSE, FALSE, { "AudioVideo;Audio", NULL } }, - { "Sequencer", FALSE, FALSE, FALSE, { "AudioVideo;Audio", NULL } }, - { "Tuner", FALSE, FALSE, FALSE, { "AudioVideo;Audio", NULL } }, - { "TV", FALSE, FALSE, FALSE, { "AudioVideo;Video", NULL } }, - { "AudioVideoEditing", FALSE, FALSE, FALSE, { "Audio", "Video", "AudioVideo", NULL } }, - { "Player", FALSE, FALSE, FALSE, { "Audio", "Video", "AudioVideo", NULL } }, - { "Recorder", FALSE, FALSE, FALSE, { "Audio", "Video", "AudioVideo", NULL } }, - { "DiscBurning", FALSE, FALSE, FALSE, { "Audio", "Video", "AudioVideo", NULL } }, - { "ActionGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "AdventureGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "ArcadeGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "BoardGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "BlocksGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "CardGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "KidsGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "LogicGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "RolePlaying", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "Simulation", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "SportsGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "StrategyGame", FALSE, FALSE, FALSE, { "Game", NULL } }, - { "Art", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "Construction", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "Music", FALSE, FALSE, FALSE, { "AudioVideo;Education", NULL } }, - { "Languages", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "Science", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "ArtificialIntelligence", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Astronomy", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Biology", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Chemistry", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "ComputerScience", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "DataVisualization", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Economy", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "Electricity", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Geography", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "Geology", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Geoscience", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "History", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "ImageProcessing", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Literature", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "Math", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "NumericalAnalysis", FALSE, FALSE, FALSE, { "Education;Science;Math", NULL } }, - { "MedicalSoftware", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Physics", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Robotics", FALSE, FALSE, FALSE, { "Education;Science", NULL } }, - { "Sports", FALSE, FALSE, FALSE, { "Education", NULL } }, - { "ParallelComputing", FALSE, FALSE, FALSE, { "Education;Science;ComputerScience", NULL } }, - { "Amusement", FALSE, FALSE, FALSE, { NULL } }, - { "Archiving", FALSE, FALSE, FALSE, { "Utility", NULL } }, - { "Compression", FALSE, FALSE, FALSE, { "Utility;Archiving", NULL } }, - { "Electronics", FALSE, FALSE, FALSE, { NULL } }, - { "Emulator", FALSE, FALSE, FALSE, { "System", "Game", NULL } }, - { "Engineering", FALSE, FALSE, FALSE, { NULL } }, - { "FileTools", FALSE, FALSE, FALSE, { "Utility", "System", NULL } }, - { "FileManager", FALSE, FALSE, FALSE, { "System;FileTools", NULL } }, - { "TerminalEmulator", FALSE, FALSE, FALSE, { "System", NULL } }, - { "Filesystem", FALSE, FALSE, FALSE, { "System", NULL } }, - { "Monitor", FALSE, FALSE, FALSE, { "System", NULL } }, - { "Security", FALSE, FALSE, FALSE, { "Settings", "System", NULL } }, - { "Accessibility", FALSE, FALSE, FALSE, { "Settings", "Utility", NULL } }, - { "Calculator", FALSE, FALSE, FALSE, { "Utility", NULL } }, - { "Clock", FALSE, FALSE, FALSE, { "Utility", NULL } }, - { "TextEditor", FALSE, FALSE, FALSE, { "Utility", NULL } }, - { "Documentation", FALSE, FALSE, FALSE, { NULL } }, - { "Core", FALSE, FALSE, FALSE, { NULL } }, - { "KDE", FALSE, FALSE, FALSE, { "Qt", NULL } }, - { "GNOME", FALSE, FALSE, FALSE, { "GTK", NULL } }, - { "GTK", FALSE, FALSE, FALSE, { NULL } }, - { "Qt", FALSE, FALSE, FALSE, { NULL } }, - { "Motif", FALSE, FALSE, FALSE, { NULL } }, - { "Java", FALSE, FALSE, FALSE, { NULL } }, - { "ConsoleOnly", FALSE, FALSE, FALSE, { NULL } }, - { "Screensaver", FALSE, TRUE, FALSE, { NULL } }, - { "TrayIcon", FALSE, TRUE, FALSE, { NULL } }, - { "Applet", FALSE, TRUE, FALSE, { NULL } }, - { "Shell", FALSE, TRUE, FALSE, { NULL } }, - { "Application", FALSE, FALSE, TRUE, { NULL } }, - { "Applications", FALSE, FALSE, TRUE, { NULL } } + { "AudioVideo", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Audio", TRUE, FALSE, FALSE, { "AudioVideo", NULL }, { NULL } }, + { "Video", TRUE, FALSE, FALSE, { "AudioVideo", NULL }, { NULL } }, + { "Development", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Education", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Game", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Graphics", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Network", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Office", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Science", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Settings", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "System", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Utility", TRUE, FALSE, FALSE, { NULL }, { NULL } }, + { "Audio", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "Video", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "Building", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "Debugger", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "IDE", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "GUIDesigner", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "Profiling", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "RevisionControl", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "Translation", FALSE, FALSE, FALSE, { NULL }, { "Development", NULL } }, + { "Calendar", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "ContactManagement", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "Database", FALSE, FALSE, FALSE, { NULL }, { "Office", "Development", "AudioVideo", NULL } }, + { "Dictionary", FALSE, FALSE, FALSE, { NULL }, { "Office", "TextTools", NULL } }, + { "Chart", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "Email", FALSE, FALSE, FALSE, { NULL }, { "Office", "Network", NULL } }, + { "Finance", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "FlowChart", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "PDA", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "ProjectManagement", FALSE, FALSE, FALSE, { NULL }, { "Office", "Development", NULL } }, + { "Presentation", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "Spreadsheet", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "WordProcessor", FALSE, FALSE, FALSE, { NULL }, { "Office", NULL } }, + { "2DGraphics", FALSE, FALSE, FALSE, { NULL }, { "Graphics", NULL } }, + { "VectorGraphics", FALSE, FALSE, FALSE, { NULL }, { "Graphics;2DGraphics", NULL } }, + { "RasterGraphics", FALSE, FALSE, FALSE, { NULL }, { "Graphics;2DGraphics", NULL } }, + { "3DGraphics", FALSE, FALSE, FALSE, { NULL }, { "Graphics", NULL } }, + { "Scanning", FALSE, FALSE, FALSE, { NULL }, { "Graphics", NULL } }, + { "OCR", FALSE, FALSE, FALSE, { NULL }, { "Graphics;Scanning", NULL } }, + { "Photography", FALSE, FALSE, FALSE, { NULL }, { "Graphics", "Office", NULL } }, + { "Publishing", FALSE, FALSE, FALSE, { NULL }, { "Graphics", "Office", NULL } }, + { "Viewer", FALSE, FALSE, FALSE, { NULL }, { "Graphics", "Office", NULL } }, + { "TextTools", FALSE, FALSE, FALSE, { NULL }, { "Utility", NULL } }, + { "DesktopSettings", FALSE, FALSE, FALSE, { NULL }, { "Settings", NULL } }, + { "HardwareSettings", FALSE, FALSE, FALSE, { NULL }, { "Settings", NULL } }, + { "Printing", FALSE, FALSE, FALSE, { NULL }, { "HardwareSettings;Settings", NULL } }, + { "PackageManager", FALSE, FALSE, FALSE, { NULL }, { "Settings", NULL } }, + { "Dialup", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "InstantMessaging", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "Chat", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "IRCClient", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "Feed", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "FileTransfer", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "HamRadio", FALSE, FALSE, FALSE, { NULL }, { "Network", "Audio", NULL } }, + { "News", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "P2P", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "RemoteAccess", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "Telephony", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "TelephonyTools", FALSE, FALSE, FALSE, { NULL }, { "Utility", NULL } }, + { "VideoConference", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "WebBrowser", FALSE, FALSE, FALSE, { NULL }, { "Network", NULL } }, + { "WebDevelopment", FALSE, FALSE, FALSE, { NULL }, { "Network", "Development", NULL } }, + { "Midi", FALSE, FALSE, FALSE, { NULL }, { "AudioVideo;Audio", NULL } }, + { "Mixer", FALSE, FALSE, FALSE, { NULL }, { "AudioVideo;Audio", NULL } }, + { "Sequencer", FALSE, FALSE, FALSE, { NULL }, { "AudioVideo;Audio", NULL } }, + { "Tuner", FALSE, FALSE, FALSE, { NULL }, { "AudioVideo;Audio", NULL } }, + { "TV", FALSE, FALSE, FALSE, { NULL }, { "AudioVideo;Video", NULL } }, + { "AudioVideoEditing", FALSE, FALSE, FALSE, { NULL }, { "Audio", "Video", "AudioVideo", NULL } }, + { "Player", FALSE, FALSE, FALSE, { NULL }, { "Audio", "Video", "AudioVideo", NULL } }, + { "Recorder", FALSE, FALSE, FALSE, { NULL }, { "Audio", "Video", "AudioVideo", NULL } }, + { "DiscBurning", FALSE, FALSE, FALSE, { NULL }, { "Audio", "Video", "AudioVideo", NULL } }, + { "ActionGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "AdventureGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "ArcadeGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "BoardGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "BlocksGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "CardGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "KidsGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "LogicGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "RolePlaying", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "Shooter", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "Simulation", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "SportsGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "StrategyGame", FALSE, FALSE, FALSE, { NULL }, { "Game", NULL } }, + { "Art", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Construction", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Music", FALSE, FALSE, FALSE, { NULL }, { "AudioVideo", "Education", NULL } }, + { "Languages", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "ArtificialIntelligence", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Astronomy", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Biology", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Chemistry", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "ComputerScience", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "DataVisualization", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Economy", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Electricity", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Geography", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Geology", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Geoscience", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "History", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Humanities", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "ImageProcessing", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Literature", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Maps", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", "Utility", NULL } }, + { "Math", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "NumericalAnalysis", FALSE, FALSE, FALSE, { NULL }, { "Education;Math", "Science;Math", NULL } }, + { "MedicalSoftware", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Physics", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Robotics", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "Spirituality", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", "Utility", NULL } }, + { "Sports", FALSE, FALSE, FALSE, { NULL }, { "Education", "Science", NULL } }, + { "ParallelComputing", FALSE, FALSE, FALSE, { NULL }, { "Education;ComputerScience", "Science;ComputerScience", NULL } }, + { "Amusement", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Archiving", FALSE, FALSE, FALSE, { NULL }, { "Utility", NULL } }, + { "Compression", FALSE, FALSE, FALSE, { NULL }, { "Utility;Archiving", NULL } }, + { "Electronics", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Emulator", FALSE, FALSE, FALSE, { NULL }, { "System", "Game", NULL } }, + { "Engineering", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "FileTools", FALSE, FALSE, FALSE, { NULL }, { "Utility", "System", NULL } }, + { "FileManager", FALSE, FALSE, FALSE, { NULL }, { "System;FileTools", NULL } }, + { "TerminalEmulator", FALSE, FALSE, FALSE, { NULL }, { "System", NULL } }, + { "Filesystem", FALSE, FALSE, FALSE, { NULL }, { "System", NULL } }, + { "Monitor", FALSE, FALSE, FALSE, { NULL }, { "System", "Network", NULL } }, + { "Security", FALSE, FALSE, FALSE, { NULL }, { "Settings", "System", NULL } }, + { "Accessibility", FALSE, FALSE, FALSE, { NULL }, { "Settings", "Utility", NULL } }, + { "Calculator", FALSE, FALSE, FALSE, { NULL }, { "Utility", NULL } }, + { "Clock", FALSE, FALSE, FALSE, { NULL }, { "Utility", NULL } }, + { "TextEditor", FALSE, FALSE, FALSE, { NULL }, { "Utility", NULL } }, + { "Documentation", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Adult", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Core", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "KDE", FALSE, FALSE, FALSE, { NULL }, { "Qt", NULL } }, + { "GNOME", FALSE, FALSE, FALSE, { NULL }, { "GTK", NULL } }, + { "XFCE", FALSE, FALSE, FALSE, { NULL }, { "GTK", NULL } }, + { "GTK", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Qt", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Motif", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Java", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "ConsoleOnly", FALSE, FALSE, FALSE, { NULL }, { NULL } }, + { "Screensaver", FALSE, TRUE, FALSE, { NULL }, { NULL } }, + { "TrayIcon", FALSE, TRUE, FALSE, { NULL }, { NULL } }, + { "Applet", FALSE, TRUE, FALSE, { NULL }, { NULL } }, + { "Shell", FALSE, TRUE, FALSE, { NULL }, { NULL } }, + { "Application", FALSE, FALSE, TRUE, { NULL }, { NULL } }, + { "Applications", FALSE, FALSE, TRUE, { NULL }, { NULL } } }; static void @@ -565,6 +584,26 @@ g_free (str); } +static void +print_hint (kf_validator *kf, const char *format, ...) +{ + va_list args; + gchar *str; + + g_return_if_fail (kf != NULL && format != NULL); + + if (kf->no_hints) + return; + + va_start (args, format); + str = g_strdup_vprintf (format, args); + va_end (args); + + g_print ("%s: hint: %s", kf->filename, str); + + g_free (str); +} + /* + Key names must contain only the characters A-Za-z0-9-. * Checked. */ @@ -1021,11 +1060,12 @@ if (g_str_has_suffix (value, ".png") || g_str_has_suffix (value, ".xpm") || g_str_has_suffix (value, ".svg")) { - print_future_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" is an icon " - "name with an extension, but there should be no extension " - "as described in the Icon Theme Specification if the " - "value is not an absolute path\n", - value, locale_key, kf->current_group); + print_future_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" is an " + "icon name with an extension, but there should be " + "no extension as described in the Icon Theme " + "Specification if the value is not an absolute " + "path\n", + value, locale_key, kf->current_group); return FALSE; } @@ -1428,10 +1468,10 @@ break; case MU_INVALID: print_future_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " - "contains value \"%s\" which is an invalid MIME " - "type: %s\n", - value, locale_key, kf->current_group, - types[i], valid_error); + "contains value \"%s\" which is an invalid " + "MIME type: %s\n", + value, locale_key, kf->current_group, + types[i], valid_error); retval = FALSE; g_free (valid_error); @@ -1462,12 +1502,19 @@ * FIXME: it's not really deprecated, so the error message is wrong * + All categories extending the format should start with "X-". * Checked. - * + At least one main category must be included. + * + Using multiple main categories may lead to appearing more than once in + * application menu. + * Checked. + * + One main category should be included, otherwise application will appear in + * "catch-all" section of application menu. * Checked. * FIXME: decide if it's okay to have an empty list of categories. - * + Some categories, if include, require that another category is included. - * Eg: if Audio is there, AudioVideo must be there. Same for most additional - * categories. + * + Some categories, if included, require that another category is included. + * Eg: if Audio is there, AudioVideo must be there. + * Checked. + * + Some categories, if included, suggest that another category is included. + * Eg: Debugger suggests Development. + * This is the case for most additional categories. * Checked. */ static gboolean @@ -1480,7 +1527,7 @@ GHashTable *hashtable; int i; unsigned int j; - gboolean main_category_present; + int main_categories_nb; handle_key_for_application (kf, locale_key, value); @@ -1514,7 +1561,7 @@ } /* second pass */ - main_category_present = FALSE; + main_categories_nb = 0; for (i = 0; categories[i]; i++) { unsigned int k; @@ -1541,8 +1588,57 @@ continue; } - if (registered_categories[j].main) - main_category_present = TRUE; + if (registered_categories[j].main) { + /* only count it as a main category if none of the required categories + * for this one is also a main category (and is present) */ + gboolean required_main_category_present = FALSE; + + for (k = 0; registered_categories[j].requires[k] != NULL; k++) { + char **required_categories; + int l; + + required_categories = g_strsplit (registered_categories[j].requires[k], + ";", 0); + + for (l = 0; required_categories[l]; l++) { + unsigned int m; + + if (!g_hash_table_lookup (hashtable, required_categories[l])) + continue; + + for (m = 0; m < G_N_ELEMENTS (registered_categories); m++) { + if (strcmp (required_categories[l], + registered_categories[m].name) != 0) + continue; + + if (registered_categories[m].main) + required_main_category_present = TRUE; + + break; + } + + if (required_main_category_present) + break; + } + + if (required_main_category_present) { + g_strfreev (required_categories); + break; + } + + g_strfreev (required_categories); + } + + if (!required_main_category_present) + main_categories_nb++; + } + + if (registered_categories[j].main && main_categories_nb > 1) + print_hint (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "contains more than one main category; application " + "might appear more than once in the application menu\n", + value, locale_key, kf->current_group); + if (registered_categories[j].deprecated) { if (!kf->no_deprecated_warnings) @@ -1554,7 +1650,7 @@ if (registered_categories[j].require_only_show_in) { if (!g_hash_table_lookup (kf->current_keys, "OnlyShowIn")) { - print_fatal (kf, "value \"%s\" in key \"%s\" in group \"%s\" " + print_fatal (kf, "value item \"%s\" in key \"%s\" in group \"%s\" " "is a reserved category, so a \"OnlyShowIn\" key " "must be included\n", categories[i], locale_key, kf->current_group); @@ -1562,6 +1658,8 @@ } } + /* required categories */ + for (k = 0; registered_categories[j].requires[k] != NULL; k++) { char **required_categories; int l; @@ -1584,7 +1682,9 @@ g_strfreev (required_categories); } - /* there was a required category and it wasn't found */ + /* we've reached the end of a non-empty set of required categories; this + * means none of the possible required category (or list of required + * categories) was found */ if (k != 0 && registered_categories[j].requires[k] == NULL) { GString *output_required; @@ -1593,27 +1693,73 @@ g_string_append_printf (output_required, ", or %s", registered_categories[j].requires[k]); - print_future_fatal (kf, "value \"%s\" in key \"%s\" in group \"%s\" " - "requires another category to be present among the " - "following categories: %s\n", - categories[i], locale_key, kf->current_group, - output_required->str); + print_future_fatal (kf, "value item \"%s\" in key \"%s\" in group \"%s\" " + "requires another category to be present among " + "the following categories: %s\n", + categories[i], locale_key, kf->current_group, + output_required->str); g_string_free (output_required, TRUE); retval = FALSE; } + /* suggested categories */ + + for (k = 0; registered_categories[j].suggests[k] != NULL; k++) { + char **suggested_categories; + int l; + + suggested_categories = g_strsplit (registered_categories[j].suggests[k], + ";", 0); + + for (l = 0; suggested_categories[l]; l++) { + if (!g_hash_table_lookup (hashtable, suggested_categories[l])) + break; + } + + /* we've reached the end of a list of suggested categories, so + * the condition is satisfied */ + if (suggested_categories[l] == NULL) { + g_strfreev (suggested_categories); + break; + } + + g_strfreev (suggested_categories); + } + + /* we've reached the end of a non-empty set of suggested categories; this + * means none of the possible suggested category (or list of suggested + * categories) was found */ + if (k != 0 && registered_categories[j].suggests[k] == NULL) { + GString *output_suggested; + + output_suggested = g_string_new (registered_categories[j].suggests[0]); + for (k = 1; registered_categories[j].suggests[k] != NULL; k++) + g_string_append_printf (output_suggested, ", or %s", + registered_categories[j].suggests[k]); + + print_hint (kf, "value item \"%s\" in key \"%s\" in group \"%s\" " + "can be extended with another category among the " + "following categories: %s\n", + categories[i], locale_key, kf->current_group, + output_suggested->str); + + g_string_free (output_suggested, TRUE); + } + } g_strfreev (categories); g_hash_table_destroy (hashtable); - if (!main_category_present) { - print_future_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " - "does not contain a registered main category\n", - value, locale_key, kf->current_group, categories[i]); - retval = FALSE; - } + g_assert (main_categories_nb >= 0); + + if (main_categories_nb == 0) + print_hint (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "does not contain a registered main category; application " + "might only show up in a \"catch-all\" section of the " + "application menu\n", + value, locale_key, kf->current_group); return retval; } @@ -1740,6 +1886,7 @@ * - if-exists FILE * - unless-exists FILE * - DESKTOP-ENVIRONMENT-NAME [DESKTOP-SPECIFIC-TEST] + * - other known conditions (GNOME3, GSettings, etc.) * Checked. * + FILE must be a path to a filename, relative to $XDG_CONFIG_HOME. * Checked. @@ -1801,9 +1948,124 @@ value, locale_key, kf->current_group, argument); } + } else if (strncmp (condition, "X-", 2) == 0) { + if (argument && argument[0] == '\0') + print_warning (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "has trailing space(s)\n", + value, locale_key, kf->current_group); } else { - if (strncmp (condition, "X-", 2)) { - unsigned int i; + unsigned int i; + unsigned int j; + + /* Look if it's a registered AutostartCondition */ + + for (i = 0; i < G_N_ELEMENTS (registered_autostart_condition); i++) { + + if (strcmp (condition, registered_autostart_condition[i].name) != 0) + continue; + + /* check if first argument is one of the expected ones */ + for (j = 0; registered_autostart_condition[i].first_arg[j] != NULL; j++) { + const char *first = registered_autostart_condition[i].first_arg[j]; + char *after_first = argument; + + if (argument && !strncmp (argument, first, strlen (first))) { + after_first += strlen (first); + if (after_first[0] == '\0' || after_first[0] == ' ') { + /* find next argument */ + argument = after_first; + while (*argument == ' ') + argument++; + } + + break; + } + } + + /* we've reached the end of a non-empty set of first arguments; this + * means none of the possible first arguments was found */ + if (j != 0 && registered_autostart_condition[i].first_arg[j] == NULL) { + GString *output; + + output = g_string_new (registered_autostart_condition[i].first_arg[0]); + for (j = 1; registered_autostart_condition[i].first_arg[j] != NULL; j++) + g_string_append_printf (output, ", or %s", + registered_autostart_condition[i].first_arg[j]); + + print_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "does not contain a valid first argument for " + "condition \"%s\"; valid first arguments are: %s\n", + value, locale_key, kf->current_group, + condition, output->str); + retval = FALSE; + + g_string_free (output, TRUE); + + } else { + + switch (registered_autostart_condition[i].additional_args) { + case 0: + if (argument && argument[0] != '\0') { + print_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "has too many arguments for condition \"%s\"\n", + value, locale_key, kf->current_group, condition); + retval = FALSE; + } + break; + + case 1: + /* we handle the "one argument" case specially, as spaces might be + * normal there, and therefore we don't want to split the string + * based on spaces */ + if (!argument || argument[0] == '\0') { + print_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "is missing a last argument for condition " + "\"%s\"\n", + value, locale_key, kf->current_group, condition); + retval = FALSE; + } + break; + + default: + { + int argc_diff = -registered_autostart_condition[i].additional_args; + + while (argument && argument[0] != '\0') { + argc_diff++; + argument = g_utf8_strchr (argument, -1, ' '); + while (argument && *argument == ' ') + argument++; + } + + if (argc_diff > 0) { + print_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "has %d too many arguments for condition " + "\"%s\"\n", + value, locale_key, kf->current_group, + argc_diff, condition); + retval = FALSE; + } else if (argc_diff < 0) { + print_fatal (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "has %d too few arguments for condition " + "\"%s\"\n", + value, locale_key, kf->current_group, + -argc_diff, condition); + retval = FALSE; + } + } + break; + } + + } + + break; + + } + + /* Now, if we didn't find condition in list of registered + * AutostartCondition... */ + if (i == G_N_ELEMENTS (registered_autostart_condition)) { + /* Accept conditions with same name as OnlyShowIn values */ for (i = 0; i < G_N_ELEMENTS (show_in_registered); i++) { if (!strcmp (condition, show_in_registered[i])) @@ -1818,12 +2080,11 @@ value, locale_key, kf->current_group, condition); retval = FALSE; } - } - if (argument && argument[0] == '\0') { - print_warning (kf, "value \"%s\" for key \"%s\" in group \"%s\" " - "has trailing space(s)\n", - value, locale_key, kf->current_group); + if (argument && argument[0] == '\0') + print_warning (kf, "value \"%s\" for key \"%s\" in group \"%s\" " + "has trailing space(s)\n", + value, locale_key, kf->current_group); } } @@ -2778,7 +3039,8 @@ gboolean desktop_file_validate (const char *filename, gboolean warn_kde, - gboolean no_warn_deprecated) + gboolean no_warn_deprecated, + gboolean no_hints) { kf_validator kf; @@ -2795,6 +3057,7 @@ kf.current_keys = NULL; kf.kde_reserved_warnings = warn_kde; kf.no_deprecated_warnings = no_warn_deprecated; + kf.no_hints = no_hints; kf.main_group = NULL; kf.type = INVALID_TYPE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/src/validate.h new/desktop-file-utils-0.21/src/validate.h --- old/desktop-file-utils-0.20/src/validate.h 2010-03-19 11:55:41.000000000 +0100 +++ new/desktop-file-utils-0.21/src/validate.h 2012-10-03 13:02:22.000000000 +0200 @@ -34,7 +34,8 @@ gboolean desktop_file_validate (const char *filename, gboolean warn_kde, - gboolean no_warn_deprecated); + gboolean no_warn_deprecated, + gboolean no_hints); gboolean desktop_file_fixup (GKeyFile *keyfile, const char *filename); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/desktop-file-utils-0.20/src/validator.c new/desktop-file-utils-0.21/src/validator.c --- old/desktop-file-utils-0.20/src/validator.c 2010-09-10 02:31:04.000000000 +0200 +++ new/desktop-file-utils-0.21/src/validator.c 2012-10-03 13:02:22.000000000 +0200 @@ -29,10 +29,12 @@ #include "validate.h" static gboolean warn_kde = FALSE; +static gboolean no_hints = FALSE; static gboolean no_warn_deprecated = FALSE; static char **filename = NULL; static GOptionEntry option_entries[] = { + { "no-hints", 0, 0, G_OPTION_ARG_NONE, &no_hints, "Do not output hints to improve desktop file", NULL }, { "no-warn-deprecated", 0, 0, G_OPTION_ARG_NONE, &no_warn_deprecated, "Do not warn about usage of deprecated items", NULL }, { "warn-kde", 0, 0, G_OPTION_ARG_NONE, &warn_kde, "Warn about usage of KDE extensions to the specification", NULL }, { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &filename, NULL, "<desktop-file>" }, @@ -75,7 +77,7 @@ return 1; } - if (desktop_file_validate (filename[0], warn_kde, no_warn_deprecated)) + if (desktop_file_validate (filename[0], warn_kde, no_warn_deprecated, no_hints)) return 0; else return 1; ++++++ rpmlint-deps.txt ++++++ --- /var/tmp/diff_new_pack.m9tATW/_old 2013-06-29 14:51:37.000000000 +0200 +++ /var/tmp/diff_new_pack.m9tATW/_new 2013-06-29 14:51:37.000000000 +0200 @@ -13,6 +13,7 @@ commandsmodule.so commands.pyo commands.so +ConfigParser.pyo copy.pyo copy_regmodule.so copy_reg.pyo -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de