Hello community,
here is the log from the commit of package desktop-file-utils
checked in at Sun Feb 25 23:22:17 CET 2007.
--------
--- desktop-file-utils/desktop-file-utils.changes 2007-01-15 18:07:50.000000000 +0100
+++ /mounts/work_src_done/STABLE/desktop-file-utils/desktop-file-utils.changes 2007-02-23 14:26:48.000000000 +0100
@@ -1,0 +2,8 @@
+Fri Feb 23 14:26:02 CET 2007 - sbrabec@suse.cz
+
+- Updated to version 0.12:
+ * improves category validation code to not catch false positives
+ * make category validation code non-fatal
+ * fix mem leaks and double frees
+
+-------------------------------------------------------------------
Old:
----
desktop-file-utils-0.11.tar.bz2
New:
----
desktop-file-utils-0.12.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ desktop-file-utils.spec ++++++
--- /var/tmp/diff_new_pack.c24128/_old 2007-02-25 23:21:52.000000000 +0100
+++ /var/tmp/diff_new_pack.c24128/_new 2007-02-25 23:21:52.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package desktop-file-utils (Version 0.11)
+# spec file for package desktop-file-utils (Version 0.12)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -15,8 +15,8 @@
License: GNU General Public License (GPL)
Group: Development/Tools/Other
Autoreqprov: on
-Version: 0.11
-Release: 22
+Version: 0.12
+Release: 1
Source: %{name}-%{version}.tar.bz2
Source1: SuSEconfig.desktop-file-utils
PreReq: /bin/rm /bin/rmdir
@@ -48,7 +48,7 @@
make %{?jobs:-j%jobs}
%install
-make DESTDIR=$RPM_BUILD_ROOT install
+%makeinstall
mkdir -p $RPM_BUILD_ROOT/sbin/conf.d
install %{S:1} $RPM_BUILD_ROOT/sbin/conf.d
# Create ghosts based on default $XDG_DATA_DIRS:
@@ -58,8 +58,6 @@
touch $RPM_BUILD_ROOT/etc/opt/kde3/share/applications/mimeinfo.cache
mkdir -p $RPM_BUILD_ROOT/opt/kde3/share/applications
touch $RPM_BUILD_ROOT/opt/kde3/share/applications/mimeinfo.cache
-mkdir -p $RPM_BUILD_ROOT/usr/share/applications
-touch $RPM_BUILD_ROOT/usr/share/applications/mimeinfo.cache
%clean
rm -rf $RPM_BUILD_ROOT
@@ -90,9 +88,13 @@
%dir /opt/kde3/share
%dir /opt/kde3/share/applications
%ghost /opt/kde3/share/applications/mimeinfo.cache
-%ghost /usr/share/applications/mimeinfo.cache
-%changelog -n desktop-file-utils
+%changelog
+* Fri Feb 23 2007 - sbrabec@suse.cz
+- Updated to version 0.12:
+ * improves category validation code to not catch false positives
+ * make category validation code non-fatal
+ * fix mem leaks and double frees
* Mon Jan 15 2007 - sbrabec@suse.cz
- Spec file cleanup.
- Fixed path in SuSEconfig.desktop-file-utils.
++++++ desktop-file-utils-0.11.tar.bz2 -> desktop-file-utils-0.12.tar.bz2 ++++++
++++ 17169 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.11/ChangeLog new/desktop-file-utils-0.12/ChangeLog
--- old/desktop-file-utils-0.11/ChangeLog 2006-04-19 00:17:29.000000000 +0200
+++ new/desktop-file-utils-0.12/ChangeLog 2006-11-08 20:43:33.000000000 +0100
@@ -1,6 +1,80 @@
+2006-11-08 Ray Strode
+
+ * NEWS: update news file
+
+2006-11-07 Ray Strode
+
+ * src/validate.c: If a desktop file contains
+ "Applications" instead of "Application" make the warning
+ reflect that.
+
+2006-11-07 Ray Strode
+
+ * src/validate.c: Print a warning instead of an error
+ if categories aren't defined by the spec. Give special
+ handling to the "Application" category since it's not
+ defined by the spec, but is in wide use, and can be
+ translated to one of the "main categories". (gnome bug
+ 343799 comment 8)
+
+2006-11-07 Ray Strode
+
+ * src/validate.c: Validate keywords as localestrings
+ instead of strings (red hat bug 172423). Patch from
+ Ville Skyttä
+
+2006-11-07 Ray Strode
+
+ * src/validate.c: update categories
+ to match the latest version of the desktop menu
+ specification, and reorder to make it easier to resync
+ in the future. Patch from
+ Ville Skyttä (red hat bug 212705)
+
+2006-11-07 Ray Strode
+
+ * misc/desktop-entry-mode.el: apply fixes
+ from Ville Skyttä to match the
+ latest version of the spec
+
+2006-11-06 Ray Strode
+
+ * src/desktop_file.c:
+ fix a couple of mem leaks. Patch from Pascal Terjan
+ (gnome bug 345686)
+
+2006-11-06 Ray Strode
+
+ * src/desktop_file.c:
+ move g_free inside if branch to prevent a double free in
+ the else case. Patch from Pascal Terjan (gnome bug
+ 345309)
+
+2006-11-06 Ray Strode
+
+ * src/validate.c: fix category typos:
+ TeminalEmulator -> TerminalEmulator
+ ScreenSaver -> Screensaver
+ spotted by Vincent Fretin (in gnome bug
+ 343799)
+
+2006-11-06 Ray Strode
+
+ * src/validate.c: add patch from Vincent Untz to
+ not validate categories that start with X-
+ (gnome bug 343799)
+
+2006-07-25 Ray Strode
+
+ * src/egg*: remove from cvs
+
+2006-04-18 Ray Strode
+
+ * configure.in: post-release bump to 0.12.
+
==================== 0.11 ====================
-2006-04-18 Ray Strode
+2006-04-18 Ray Strode
Validate that desktop file categories match those
specified in the spec. Patch from Emmet Hikory
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.11/configure.in new/desktop-file-utils-0.12/configure.in
--- old/desktop-file-utils-0.11/configure.in 2006-04-18 23:48:32.000000000 +0200
+++ new/desktop-file-utils-0.12/configure.in 2006-04-19 00:36:23.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([desktop-file-utils], [0.11],
+AC_INIT([desktop-file-utils], [0.12],
[http://www.freedesktop.org/Software/desktop-file-utils])
AC_CONFIG_SRCDIR(src/desktop_file.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.11/elisp-comp new/desktop-file-utils-0.12/elisp-comp
--- old/desktop-file-utils-0.11/elisp-comp 2005-12-10 20:29:31.000000000 +0100
+++ new/desktop-file-utils-0.12/elisp-comp 2006-07-12 09:00:28.000000000 +0200
@@ -1,5 +1,8 @@
#!/bin/sh
-# Copyright (C) 1995, 2000, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1995, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+scriptversion=2005-05-14.22
+
# Franc,ois Pinard , 1995.
#
# This program is free software; you can redistribute it and/or modify
@@ -14,26 +17,43 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
-# This script byte-compiles all `.el' files which are part of its
-# arguments, 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
-# they require or load-library one another.
-
-if test $# = 0; then
- echo 1>&2 "No files given to $0"
- exit 1
-fi
+# This file is maintained in Automake, please report
+# bugs to or send patches to
+# .
+
+case $1 in
+ '')
+ 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 manages in such a way that all Emacs LISP files to
+be compiled are made visible between themselves, in the event
+they require or load-library one another.
+
+Report bugs to .
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "elisp-comp $scriptversion"
+ exit $?
+ ;;
+esac
if test -z "$EMACS" || test "$EMACS" = "t"; then
# Value of "t" means we are running in a shell under Emacs.
@@ -44,7 +64,7 @@
tempdir=elc.$$
# Cleanup the temporary directory on exit.
-trap 'status=$?; rm -rf "$tempdir" && exit $status' 0
+trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15
mkdir $tempdir
@@ -57,4 +77,13 @@
mv *.elc ..
) || exit $?
-(exit 0); exit
+(exit 0); exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
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.11/misc/desktop-entry-mode.el new/desktop-file-utils-0.12/misc/desktop-entry-mode.el
--- old/desktop-file-utils-0.11/misc/desktop-entry-mode.el 2004-04-19 08:04:36.000000000 +0200
+++ new/desktop-file-utils-0.12/misc/desktop-entry-mode.el 2006-11-07 17:14:36.000000000 +0100
@@ -1,6 +1,6 @@
;;; desktop-entry-mode.el --- freedesktop.org desktop entry editing
-;; Copyright (C) 2003-2004, Ville Skytt�, <scop at xemacs.org>
+;; Copyright (C) 2003-2004, 2006, Ville Skytt�, <scop at xemacs.org>
;; Author: Ville Skytt�, <scop at xemacs.org>
;; Keywords: unix, desktop entry
@@ -19,8 +19,8 @@
;; You should have received a copy of the GNU General Public License
;; along with XEmacs; see the file COPYING. If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
+;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+;; MA 02110-1301 USA.
;;; Commentary:
@@ -45,11 +45,11 @@
;; For more information about desktop entry files, see
;; http://www.freedesktop.org/Standards/desktop-entry-spec
;;
-;; This version is up to date with version 0.9.4 of the specification.
+;; This version is up to date with version 0.9.8 of the specification.
;;; Code:
-(defconst desktop-entry-mode-version "0.94 (spec 0.9.4)"
+(defconst desktop-entry-mode-version "0.98 (spec 0.9.8)"
"Version of `desktop-entry-mode'.")
(defgroup desktop-entry nil
@@ -97,39 +97,48 @@
'(
"Type"
"Version"
- "Encoding"
"Name"
"GenericName"
"NoDisplay"
"Comment"
"Icon"
"Hidden"
- "FilePattern"
+ "OnlyShowIn"
+ "NotShowIn"
"TryExec"
"Exec"
"Path"
"Terminal"
- "SwallowTitle"
- "SwallowExec"
- "Actions"
"MimeType"
- "SortOrder"
- "Dev"
- "FSType"
- "MountPoint"
- "ReadOnly"
- "UnmountIcon"
- "URL"
"Categories"
- "OnlyShowIn"
- "NotShowIn"
"StartupNotify"
"StartupWMClass"
- ;; Reserved for use with KDE as of spec 0.9.4.
+ "URL"
+ ;; Reserved for use with KDE
"ServiceTypes"
"DocPath"
"KeyWords"
"InitialPreference"
+ ;; Used by KDE for entries of the FSDevice type
+ "Dev"
+ "FSType"
+ "MountPoint"
+ "ReadOnly"
+ "UnmountIcon"
+ ;; Deprecated
+ "Patterns"
+ "DefaultApp"
+ "Encoding"
+ "MiniIcon"
+ "TerminalOptions"
+ "Protocols"
+ "Extensions"
+ "BinaryPattern"
+ "MapNotify"
+ "SwallowTitle"
+ "SwallowExec"
+ "SortOrder"
+ "FilePattern"
) 'words)
"\\|X-[A-Za-z0-9-]+\\)"))
"Expression for matching desktop entry keys.")
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.11/missing new/desktop-file-utils-0.12/missing
--- old/desktop-file-utils-0.11/missing 2005-12-10 20:29:31.000000000 +0100
+++ new/desktop-file-utils-0.12/missing 2006-07-12 09:00:28.000000000 +0200
@@ -1,6 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+
+scriptversion=2005-06-08.21
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
@@ -15,8 +19,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -38,18 +42,24 @@
configure_ac=configure.in
fi
+msg="missing on your system"
+
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-h|--h|--he|--hel|--help)
echo "\
@@ -74,11 +84,15 @@
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]
+
+Send bug reports to ."
+ exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.4 - GNU automake"
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
;;
-*)
@@ -87,14 +101,44 @@
exit 1
;;
- aclocal*)
+esac
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+ lex|yacc)
+ # 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
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
fi
+ ;;
+esac
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+ aclocal*)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -102,13 +146,8 @@
;;
autoconf)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -116,13 +155,8 @@
;;
autoheader)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -140,13 +174,8 @@
;;
automake*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -156,14 +185,9 @@
;;
autom4te)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+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
archive site."
@@ -185,7 +209,7 @@
bison|yacc)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -215,7 +239,7 @@
lex|flex)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -237,13 +261,8 @@
;;
help2man)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. 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."
@@ -262,32 +281,30 @@
;;
makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
+ # The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
touch $file
;;
tar)
shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
@@ -323,8 +340,8 @@
*)
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+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,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
@@ -334,3 +351,10 @@
esac
exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
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.11/NEWS new/desktop-file-utils-0.12/NEWS
--- old/desktop-file-utils-0.11/NEWS 2006-04-19 00:17:26.000000000 +0200
+++ new/desktop-file-utils-0.12/NEWS 2006-11-08 20:39:23.000000000 +0100
@@ -1,4 +1,12 @@
============
+Version 0.12
+============
+
+ o improves category validation code to not catch false positives (Vincent Fretin, Ville Skyttä, Ray Strode, Vincent Untz)
+ o make category validation code non-fatal (Ray)
+ o fix mem leaks and double frees (Pascal Terjan)
+
+============
Version 0.11
============
@@ -20,7 +28,7 @@
Version 0.9
===========
- o Many update-desktop-database improvements (Ray Strode, Dan Williams)
+ o Many update-desktop-database improvements (Ray Strode, Dan Williams)
o Fix desktop-file-install --remove-only-show-in (Ray Strode)
===========
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.11/src/desktop_file.c new/desktop-file-utils-0.12/src/desktop_file.c
--- old/desktop-file-utils-0.11/src/desktop_file.c 2004-11-23 15:01:59.000000000 +0100
+++ new/desktop-file-utils-0.12/src/desktop_file.c 2006-11-06 17:54:17.000000000 +0100
@@ -1166,7 +1166,10 @@
g_free (with_territory);
if (raw == NULL)
- return FALSE;
+ {
+ g_free (used_locale);
+ return FALSE;
+ }
if (gnome_desktop_file_get_encoding (df) == GNOME_DESKTOP_FILE_ENCODING_UTF8)
{
@@ -1181,12 +1184,12 @@
const char *encoding;
encoding = desktop_file_get_encoding_for_locale (used_locale);
- g_free (used_locale);
if (encoding)
{
char *res;
+ g_free (used_locale);
error = NULL;
res = g_convert (raw, -1,
"UTF-8",
@@ -1226,6 +1229,7 @@
else
{
g_printerr ("Desktop file doesn't have its encoding marked, can't parse it.\n");
+ g_free (used_locale);
return FALSE;
}
}
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.11/src/validate.c new/desktop-file-utils-0.12/src/validate.c
--- old/desktop-file-utils-0.11/src/validate.c 2006-04-19 00:03:13.000000000 +0200
+++ new/desktop-file-utils-0.12/src/validate.c 2006-11-07 18:26:17.000000000 +0100
@@ -148,30 +148,37 @@
static void
validate_categories (const char *value, const char *key, const char *locale, const char *filename, GnomeDesktopFile *df)
{
- /* Category list from Desktop Menu Specification version 1.0-draft4 */
- const char *categories_keys[] = {
- "Core", "Development", "Building", "Debugger", "IDE", "GUIDesigner",
- "Profiling", "RevisionControl", "Translation", "Office", "Calendar",
- "ContactManagement", "Database", "Dictionary", "Chart", "Email",
- "Finance", "FlowChart", "PDA", "ProjectManagement", "Presentation",
- "Spreadsheet", "WordProcessor", "Graphics", "2DGraphics", "VectorGraphics",
- "RasterGraphics", "3DGraphics", "Scanning", "OCR", "Photography",
- "Viewer", "Settings", "DesktopSettings", "HardwareSettings",
- "PackageManager", "Network", "Dialup", "InstantMessaging", "IRCClient",
- "FileTransfer", "HamRadio", "News", "P2P", "RemoteAccess", "Telephony",
- "WebBrowser", "WebDevelopment", "AudioVideo", "Audio", "Midi", "Mixer",
- "Sequencer", "Tuner", "Video", "TV", "AudioVideoEditing", "Player",
- "Recorder", "DiscBurning", "Game", "ActionGame", "AdventureGame",
- "ArcadeGame", "BoardGame", "BlocksGame", "CardGame", "KidsGame",
- "LogicGame", "RolePlaying", "Simulation", "SportsGame", "StrategyGame",
- "Education", "Art", "Construction", "Music", "Languages", "Science",
- "Astronomy", "Biology", "Chemistry", "Geology", "Math", "MedicalSoftware",
- "Physics", "Teaching", "Amusement", "Applet", "Archiving", "Electronics",
- "Emulator", "Engineering", "FileManager", "Shell", "ScreenSaver",
- "TeminalEmulator", "TrayIcon", "System", "Filesystem", "Monitor",
- "Security", "Utility", "Accessibility", "Calculator", "Clock",
- "TextEditor", "KDE", "GNOME", "GTK", "Qt", "Motif", "Java",
- "ConsoleOnly", NULL
+ #define MAIN_CATEGORIES \
+ "AudioVideo", "Audio", "Video", "Development", "Education", "Game", \
+ "Graphics", "Network", "Office", "Settings", "System", "Utility"
+
+ #define ADDITIONAL_CATEGORIES \
+ "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", "Viewer", "DesktopSettings", \
+ "HardwareSettings", "PackageManager", "Dialup", "InstantMessaging", \
+ "IRCClient", "FileTransfer", "HamRadio", "News", "P2P", "RemoteAccess", \
+ "Telephony", "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", "Astronomy", "Biology", "Chemistry", "Geology", "Math", \
+ "MedicalSoftware", "Physics", "Amusement", "Archiving", "Electronics", \
+ "Emulator", "Engineering", "FileManager", "TerminalEmulator", \
+ "Filesystem", "Monitor", "Security", "Accessibility", "Calculator", \
+ "Clock", "TextEditor", "Core", "KDE", "GNOME", "GTK", "Qt", "Motif", \
+ "Java", "ConsoleOnly"
+
+ #define RESERVED_CATEGORIES \
+ "Screensaver", "TrayIcon", "Applet", "Shell"
+
+ /* Category list from Desktop Menu Specification version 1.0 */
+ static const char *categories_keys[] = {
+ MAIN_CATEGORIES, ADDITIONAL_CATEGORIES, RESERVED_CATEGORIES, NULL
};
char **vals;
int i;
@@ -202,16 +209,23 @@
{
int j = 0;
+ if (strncmp ("X-", vals[i], 2) == 0)
+ {
+ i++;
+ continue;
+ }
+
while (categories_keys[j])
{
if (g_ascii_strcasecmp (vals[i], categories_keys[j]) == 0)
{
if (strcmp (vals[i], categories_keys[j]) != 0)
{
- print_fatal (filename, "%s values are case sensitive (should be \"%s\" instead of \"%s\")\n",
+ print_warning (filename, "%s values are case sensitive (should be \"%s\" instead of \"%s\")\n",
key, categories_keys[j], vals[i]);
}
- break;
+
+ break;
}
++j;
}
@@ -220,9 +234,17 @@
{
char *valid_categories;
- valid_categories = g_strjoinv ("\", \"", (gchar **) categories_keys);
- print_fatal (filename, "%s values must be one of \"%s\" (found \"%s\")\n",
- key, valid_categories, vals[i]);
+ if ((g_ascii_strcasecmp (vals[i], "Application") == 0) ||
+ (g_ascii_strcasecmp (vals[i], "Applications") == 0))
+ {
+ valid_categories = g_strjoin ("\", \"", MAIN_CATEGORIES, NULL);
+ print_warning (filename, "The '%s' category is not defined by the desktop entry specification. Please use one of \"%s\" instead\n",
+ vals[i], valid_categories);
+ } else {
+ valid_categories = g_strjoinv ("\", \"", (gchar **) categories_keys);
+ print_warning (filename, "%s values must be one of \"%s\" (found \"%s\")\n",
+ key, valid_categories, vals[i]);
+ }
g_free (valid_categories);
}
++i;
@@ -469,7 +491,7 @@
{ "DocPath", validate_string }, /* 0.9.4: within KDE only */
{ "Extensions", validate_string, TRUE }, /* 0.9.3: deprecated */
{ "InitialPreference", validate_string }, /* 0.9.4: within KDE only */
- { "Keywords", validate_string }, /* 0.9.4: within KDE only */
+ { "Keywords", validate_localestring }, /* 0.9.4: within KDE only */
{ "MapNotify", validate_string, TRUE }, /* 0.9.3: deprecated */
{ "Protocols", validate_string, TRUE }, /* 0.9.3: deprecated */
{ "ServiceTypes", validate_string }, /* 0.9.4: within KDE only */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org