Hello community,

here is the log from the commit of package appdata-tools for openSUSE:Factory 
checked in at 2014-02-03 11:12:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/appdata-tools (Old)
 and      /work/SRC/openSUSE:Factory/.appdata-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "appdata-tools"

Changes:
--------
--- /work/SRC/openSUSE:Factory/appdata-tools/appdata-tools.changes      
2013-12-11 15:33:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.appdata-tools.new/appdata-tools.changes 
2014-02-03 11:12:36.000000000 +0100
@@ -1,0 +2,15 @@
+Sun Feb  2 10:01:34 UTC 2014 - zai...@opensuse.org
+
+- Update to version 0.1.7:
+  + New Features: Add configure conditional to control validation.
+  + Bugs fixed:
+    - Bump serial in appdata-xml.m4.
+    - Correct a validation warning when using a translated list.
+    - Don't include appdata-rng-init.el in the distribution
+      tarball.
+    - Output the line and char number when printing problems.
+    - Pass --nonet to appdata-validate in appdata-xml.m4.
+    - Validate APPDATA_XML files during check phase.
+- Drop appdata-tools-nonet.patch, fixed upstream.
+
+-------------------------------------------------------------------

Old:
----
  appdata-tools-0.1.6.tar.xz
  appdata-tools-nonet.patch

New:
----
  appdata-tools-0.1.7.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ appdata-tools.spec ++++++
--- /var/tmp/diff_new_pack.GIdLz5/_old  2014-02-03 11:12:37.000000000 +0100
+++ /var/tmp/diff_new_pack.GIdLz5/_new  2014-02-03 11:12:37.000000000 +0100
@@ -1,6 +1,7 @@
 #
 # spec file for package appdata-tools
 #
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 # Copyright (c) 2013 Dominique Leuenberger, Amsterdam, The Netherlands
 #
 # All modifications and additions to the file contributed by third parties
@@ -15,16 +16,15 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 Name:           appdata-tools
-Version:        0.1.6
+Version:        0.1.7
 Release:        0
-License:        GPL-2.0+
 Summary:        AppData validation tool
-Url:            http://people.freedesktop.org/~hughsient/appdata/
+License:        GPL-2.0+
 Group:          System/Utilities
+Url:            http://people.freedesktop.org/~hughsient/appdata/
 Source:         
http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM appdata-tools-nonet.patch dims...@opensuse.org -- Pass 
--nonet to the tool. OBS workers have no access to network resources
-Patch0:         appdata-tools-nonet.patch
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  intltool >= 0.35.0
 BuildRequires:  xsltproc
@@ -44,7 +44,6 @@
 %lang_package
 %prep
 %setup -q
-%patch0 -p1
 
 %build
 %configure \

++++++ appdata-tools-0.1.6.tar.xz -> appdata-tools-0.1.7.tar.xz ++++++
++++ 2620 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/appdata-tools-0.1.6/ChangeLog new/appdata-tools-0.1.7/ChangeLog
--- old/appdata-tools-0.1.6/ChangeLog   2013-11-08 17:40:09.000000000 +0100
+++ new/appdata-tools-0.1.7/ChangeLog   2014-01-24 16:56:12.000000000 +0100
@@ -1,6 +1,137 @@
+commit b364e3e40c6115853fa9d179b8f453710bb999da
+Author: Richard Hughes <rich...@hughsie.com>
+Date:   2014-01-24
+
+    Release version 0.1.7
+
+M      NEWS
+M      RELEASE
+
+commit 90ab45ddc403faf5741059b5e1f3af77aa23f62a
+Merge: c017e61 2e70a91
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2014-01-03
+
+    Merge pull request #18 from mavit/dist_init.el
+
+    Don't include appdata-rng-init.el in the distribution tarball
+
+commit 2e70a913a136ea7b5e23277241e7891109444561
+Author: Peter Oliver <g...@mavit.org.uk>
+Date:  2014-01-03
+
+    Don't include appdata-rng-init.el in the distribution tarball;
+    it needs to be generated from appdata-rng-init.el.in at build.
+
+M      data/Makefile.am
+
+commit c017e611a2d428b288372a935806b444c40606b4
+Merge: 67d77d2 ce879e9
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2013-12-17
+
+    Merge pull request #17 from hughsie/issue-15
+
+    Add configure conditional to control validation
+
+commit ce879e9ad8fb667549c1cd673387a5a54b5ef4ca
+Author: David King <amigad...@amigadave.com>
+Date:  2013-12-16
+
+    Add configure conditional to control validation
+
+    Allow disabling of AppData XML validation during the check phase by
+    passing --disable-appdata-validate to configure. Only force validation
+    if --enable-appdata-validate is passed to configure. The default is to
+    validate AppData XML only if appdata-validate is installed.
+
+    https://github.com/hughsie/appdata-tools/issues/15
+
+M      data/appdata-xml.m4
+
+commit 67d77d2672e3312984aba91b3bf033e82885d9c8
+Merge: 5f544bb 1c67486
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2013-12-16
+
+    Merge pull request #16 from hughsie/issue-15
+
+    Validate APPDATA_XML files during check phase
+
+commit 1c6748665a405fafaab00b399f5ecc7a1a8a97d8
+Author: David King <amigad...@amigadave.com>
+Date:  2013-12-16
+
+    Validate APPDATA_XML files during check phase
+
+    https://github.com/hughsie/appdata-tools/issues/15
+
+M      data/appdata-xml.m4
+
+commit 5f544bb3474bad2d95ec25befd1045fac8dcf896
+Author: David King <amigad...@amigadave.com>
+Date:  2013-11-19
+
+    Bump serial in appdata-xml.m4
+
+    Any changes to the M4 macro should have a corresponding update to the
+    serial, to ensure that the change is propagated to maintainers when
+    running "aclocal --install".
+
+M      data/appdata-xml.m4
+
+commit ea347b769ed96019cfdc1c131713eb4e1741e303
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2013-11-14
+
+    Correct a validation warning when using a translated list introduction
+
+M      data/translated.appdata.xml
+M      src/appdata-common.c
+M      src/appdata-self-test.c
+
+commit 85611f2375b6e7a139547d1eedf704fd8c7f577b
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2013-11-14
+
+    Output the line and char number when printing problems
+
+M      src/appdata-common.c
+M      src/appdata-problem.c
+M      src/appdata-problem.h
+M      src/appdata-validate.c
+
+commit b2159cfda92a8c22e4b2c0e6b5cf3eb226029b3c
+Author: David King <amigad...@amigadave.com>
+Date:  2013-11-12
+
+    Pass --nonet to appdata-validate in appdata-xml.m4
+
+    This breaks gnome-continuous, Koji, and probably a variety of other
+    build systems.
+
+M      data/appdata-xml.m4
+
+commit 84b3c58a78874998dbabcba07441fa8e564a20fc
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2013-11-12
+
+    trivial: Add website section about full screen games
+
+M      docs/index.html
+
+commit 0760355ed7e7aa5bd13a5212cf25686e19622686
+Author: Richard Hughes <rich...@hughsie.com>
+Date:  2013-11-08
+
+    trivial: post release version bump
+
+M      RELEASE
+M      configure.ac
+
 commit d926bdcb63a48742d79458a4321efa23543633d0
 Author: Richard Hughes <rich...@hughsie.com>
-Date:   2013-11-08
+Date:  2013-11-08
 
     Release version 0.1.6
 
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/appdata-tools-0.1.6/INSTALL new/appdata-tools-0.1.7/INSTALL
--- old/appdata-tools-0.1.6/INSTALL     2013-11-08 17:24:46.000000000 +0100
+++ new/appdata-tools-0.1.7/INSTALL     2014-01-24 16:53:03.000000000 +0100
@@ -12,8 +12,8 @@
 Basic Installation
 ==================
 
-   Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package.  The following
+   Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package.  The following
 more-detailed instructions are generic; see the `README' file for
 instructions specific to this package.  Some packages provide this
 `INSTALL' file but do not implement all of the features documented
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/appdata-tools-0.1.6/NEWS new/appdata-tools-0.1.7/NEWS
--- old/appdata-tools-0.1.6/NEWS        2013-11-08 17:31:51.000000000 +0100
+++ new/appdata-tools-0.1.7/NEWS        2014-01-24 16:49:42.000000000 +0100
@@ -1,3 +1,18 @@
+Version 0.1.7
+~~~~~~~~~~~~~
+Released: 2014-01-24
+
+New Features:
+ - Add configure conditional to control validation (David King)
+
+Bugfixes:
+ - Bump serial in appdata-xml.m4 (David King)
+ - Correct a validation warning when using a translated list (Richard Hughes)
+ - Don't include appdata-rng-init.el in the distribution tarball (Peter Oliver)
+ - Output the line and char number when printing problems (Richard Hughes)
+ - Pass --nonet to appdata-validate in appdata-xml.m4 (David King)
+ - Validate APPDATA_XML files during check phase (David King)
+
 Version 0.1.6
 ~~~~~~~~~~~~~
 Released: 2013-11-08
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/appdata-tools-0.1.6/config.h new/appdata-tools-0.1.7/config.h
--- old/appdata-tools-0.1.6/config.h    2013-11-08 16:59:36.000000000 +0100
+++ new/appdata-tools-0.1.7/config.h    2014-01-24 16:50:30.000000000 +0100
@@ -56,9 +56,6 @@
    */
 #define LT_OBJDIR ".libs/"
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
 /* Name of package */
 #define PACKAGE "appdata-tools"
 
@@ -69,7 +66,7 @@
 #define PACKAGE_NAME "appdata-tools"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "appdata-tools 0.1.6"
+#define PACKAGE_STRING "appdata-tools 0.1.7"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "appdata-tools"
@@ -78,13 +75,13 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.1.6"
+#define PACKAGE_VERSION "0.1.7"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
 /* Version number of package */
-#define VERSION "0.1.6"
+#define VERSION "0.1.7"
 
 /* Enable large inode numbers on Mac OS X 10.5.  */
 #ifndef _DARWIN_USE_64_BIT_INODE
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/appdata-tools-0.1.6/config.h.in new/appdata-tools-0.1.7/config.h.in
--- old/appdata-tools-0.1.6/config.h.in 2013-11-08 17:24:45.000000000 +0100
+++ new/appdata-tools-0.1.7/config.h.in 2014-01-24 16:53:03.000000000 +0100
@@ -55,9 +55,6 @@
    */
 #undef LT_OBJDIR
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Name of package */
 #undef PACKAGE
 
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/appdata-tools-0.1.6/configure.ac new/appdata-tools-0.1.7/configure.ac
--- old/appdata-tools-0.1.6/configure.ac        2013-11-08 17:21:27.000000000 
+0100
+++ new/appdata-tools-0.1.7/configure.ac        2013-11-08 17:40:32.000000000 
+0100
@@ -1,6 +1,6 @@
 AC_PREREQ(2.63)
 
-AC_INIT([appdata-tools],[0.1.6])
+AC_INIT([appdata-tools],[0.1.7])
 AC_CONFIG_SRCDIR(src)
 AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-xz tar-ustar])
 AC_CONFIG_HEADERS([config.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/appdata-tools-0.1.6/data/Makefile.am 
new/appdata-tools-0.1.7/data/Makefile.am
--- old/appdata-tools-0.1.6/data/Makefile.am    2013-11-08 17:06:06.000000000 
+0100
+++ new/appdata-tools-0.1.7/data/Makefile.am    2014-01-06 09:24:38.000000000 
+0100
@@ -49,7 +49,7 @@
 appdata-rng-init.el: appdata-rng-init.el.in
 
 emacsinitdir = $(datadir)/emacs/site-lisp/site-start.d
-dist_emacsinit_DATA = appdata-rng-init.el
+emacsinit_DATA = appdata-rng-init.el
 
 EXTRA_DIST =                                   \
        appdata-rng-init.el.in                  \
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/appdata-tools-0.1.6/data/appdata-rng-init.el 
new/appdata-tools-0.1.7/data/appdata-rng-init.el
--- old/appdata-tools-0.1.6/data/appdata-rng-init.el    2013-11-08 
17:00:02.000000000 +0100
+++ new/appdata-tools-0.1.7/data/appdata-rng-init.el    1970-01-01 
01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-;; Tell nxml-mode where to find the AppData schema.
-
-(eval-after-load "rng-loc"
-  '(progn
-     (when (equal rng-schema-locating-files rng-schema-locating-files-default)
-       (add-to-list 'rng-schema-locating-files
-                    
"/home/hughsie/.root/share/appdata/schema/schema-locating-rules.xml" t))
-     (add-to-list 'rng-schema-locating-files-default
-                  
"/home/hughsie/.root/share/appdata/schema/schema-locating-rules.xml" t)))
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/appdata-tools-0.1.6/data/appdata-xml.m4 
new/appdata-tools-0.1.7/data/appdata-xml.m4
--- old/appdata-tools-0.1.6/data/appdata-xml.m4 2013-11-08 14:03:03.000000000 
+0100
+++ new/appdata-tools-0.1.7/data/appdata-xml.m4 2013-12-18 09:43:47.000000000 
+0100
@@ -1,6 +1,6 @@
 # appdata-xml.m4
 #
-# serial 1
+# serial 4
 
 dnl APPDATA_XML
 dnl Installs and validates AppData XML files.
@@ -8,21 +8,35 @@
 dnl Call APPDATA_XML in configure.ac to check for the appdata-validate tool.
 dnl Add @APPDATA_XML_RULES@ to a Makefile.am to substitute the make rules. Add
 dnl .appdata.xml files to appdata_XML in Makefile.am and they will be validated
-dnl at make time, as well as installed to the correct location automatically.
+dnl at make check time, if appdata-validate is installed, as well as installed
+dnl to the correct location automatically. Add --enable-appdata-validate to
+dnl DISTCHECK_CONFIGURE_FLAGS in Makefile.am to require valid AppData XML when
+dnl doing a distcheck.
 dnl
 dnl Adding files to appdata_XML does not distribute them automatically.
 
 AC_DEFUN([APPDATA_XML],
 [
   m4_pattern_allow([AM_V_GEN])
+  AC_ARG_ENABLE([appdata-validate],
+                [AS_HELP_STRING([--disable-appdata-validate],
+                                [Disable validating AppData XML files during 
check phase])])
+
+  AS_IF([test "x$enable_appdata_validate" != "xno"],
+        [AC_PATH_PROG([APPDATA_VALIDATE], [appdata-validate])
+         AS_IF([test "x$APPDATA_VALIDATE" = "x"],
+               [have_appdata_validate=no],
+               [have_appdata_validate=yes
+                AC_SUBST([APPDATA_VALIDATE])])],
+        [have_appdata_validate=no])
+
+  AS_IF([test "x$have_appdata_validate" != "xno"],
+        [appdata_validate=yes],
+        [appdata_validate=no
+         AS_IF([test "x$enable_appdata_validate" = "xyes"],
+               [AC_MSG_ERROR([AppData validation was requested but 
appdata-validate was not found])])])
+
   AC_SUBST([appdataxmldir], [${datadir}/appdata])
-  AC_PATH_PROG([APPDATA_VALIDATE], [appdata-validate])
-  AC_SUBST([APPDATA_VALIDATE])
-  if test "x$APPDATA_VALIDATE" = "x"; then
-    ifelse([$2],,[AC_MSG_ERROR([appdata-validate not found])],[$2])
-  else
-    ifelse([$1],,[:],[$1])
-  fi
 
   APPDATA_XML_RULES='
 .PHONY : uninstall-appdata-xml install-appdata-xml clean-appdata-xml
@@ -30,9 +44,12 @@
 mostlyclean-am: clean-appdata-xml
 
 %.appdata.valid: %.appdata.xml
-       $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; 
$(APPDATA_VALIDATE) $${d}$< && touch [$]@
+       $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; \
+               if test -n "$(APPDATA_VALIDATE)"; \
+                       then $(APPDATA_VALIDATE) --nonet $${d}$<; fi \
+               && touch [$]@
 
-all-am: $(appdata_XML:.appdata.xml=.appdata.valid)
+check-am: $(appdata_XML:.appdata.xml=.appdata.valid)
 uninstall-am: uninstall-appdata-xml
 install-data-am: install-appdata-xml
 
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/appdata-tools-0.1.6/data/translated.appdata.xml 
new/appdata-tools-0.1.7/data/translated.appdata.xml
--- old/appdata-tools-0.1.6/data/translated.appdata.xml 2013-10-01 
15:16:08.000000000 +0200
+++ new/appdata-tools-0.1.7/data/translated.appdata.xml 2013-11-14 
12:10:37.000000000 +0100
@@ -8,6 +8,11 @@
   <description>
     <p>A small application that allows you to monitor the current weather 
conditions for your city, or anywhere in the world and to access updated 
forecasts, up to 7 days, provided by various internet services.</p>
     <p xml:lang="de">Eine kleine Anwendung, welche es Ihnen erlaubt, das 
aktuelle Wetter für Ihre Stadt, oder für einen beliebigen Ort auf der Welt zu 
betrachten. Ebenfalls ermöglicht es Ihnen den Zugang zu der aktualisierten 
Wettervorhersage für bis zu sieben Tage mit Hilfe von verschiedenen 
Internetdiensten.</p>
+    <p>Some features include:</p>
+    <p xml:lang="de">Einem featurum includem:</p>
+    <ul>
+      <li>A map view of a city of your choice.</li>
+    </ul>
   </description>
   <screenshots>
     <screenshot width="940" type="default" 
height="529">https://help.gnome.org/misc/release-notes/3.8/figures/weather-zurich.png</screenshot>
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/appdata-tools-0.1.6/m4/libtool.m4 new/appdata-tools-0.1.7/m4/libtool.m4
--- old/appdata-tools-0.1.6/m4/libtool.m4       2013-11-08 17:24:42.000000000 
+0100
+++ new/appdata-tools-0.1.7/m4/libtool.m4       2014-01-24 16:52:59.000000000 
+0100
@@ -1312,7 +1312,7 @@
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1326,7 +1326,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_i386"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64le-*linux*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1345,7 +1348,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
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/appdata-tools-0.1.6/missing new/appdata-tools-0.1.7/missing
--- old/appdata-tools-0.1.6/missing     2013-11-08 17:24:46.000000000 +0100
+++ new/appdata-tools-0.1.7/missing     2014-01-24 16:53:03.000000000 +0100
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
 
 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
@@ -160,7 +160,7 @@
       ;;
    autom4te*)
       echo "You might have modified some maintainer files that require"
-      echo "the 'automa4te' program to be rebuilt."
+      echo "the 'autom4te' program to be rebuilt."
       program_details 'autom4te'
       ;;
     bison*|yacc*)
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/appdata-tools-0.1.6/src/appdata-common.c 
new/appdata-tools-0.1.7/src/appdata-common.c
--- old/appdata-tools-0.1.6/src/appdata-common.c        2013-11-08 
16:43:09.000000000 +0100
+++ new/appdata-tools-0.1.7/src/appdata-common.c        2013-11-14 
12:31:07.000000000 +0100
@@ -135,29 +135,6 @@
        return NULL;
 }
 
-/**
- * appdata_add_problem:
- */
-static void
-appdata_add_problem (GList **problems, AppdataProblemKind kind, const gchar 
*str)
-{
-       GList *l;
-       AppdataProblem *problem;
-
-       /* find if it's already been added */
-       for (l = *problems; l != NULL; l = l->next) {
-               problem = l->data;
-               if (g_strcmp0 (str, problem->description) == 0)
-                       return;
-       }
-
-       /* add new problem to list */
-       problem = appdata_problem_new ();
-       problem->kind = kind;
-       problem->description = g_strdup (str);
-       *problems = g_list_prepend (*problems, problem);
-}
-
 typedef enum {
        APPDATA_KIND_UNKNOWN,
        APPDATA_KIND_DESKTOP,
@@ -168,6 +145,7 @@
 } AppdataKind;
 
 typedef struct {
+       GMarkupParseContext *context;
        AppdataSection   section;
        gchar           *id;
        AppdataKind      kind;
@@ -177,7 +155,7 @@
        gchar           *updatecontact;
        gchar           *project_group;
        gchar           *url;
-       GList           **problems;
+       GList           *problems;
        guint            number_paragraphs;
        gboolean         tag_translated;
        gboolean         previous_para_was_short;
@@ -198,6 +176,28 @@
 } AppdataHelper;
 
 /**
+ * appdata_add_problem:
+ */
+static void
+appdata_add_problem (AppdataHelper *helper,
+                    AppdataProblemKind kind,
+                    const gchar *str)
+{
+       AppdataProblem *problem;
+
+       /* add new problem to list */
+       problem = appdata_problem_new (kind);
+       problem->description = g_strdup (str);
+       g_markup_parse_context_get_position (helper->context,
+                                            &problem->line_number,
+                                            &problem->char_number);
+       g_debug ("Adding %s '%s', [%i,%i]",
+                appdata_problem_kind_to_string (kind),
+                str, problem->line_number, problem->char_number);
+       helper->problems = g_list_prepend (helper->problems, problem);
+}
+
+/**
  * appdata_id_type_from_string:
  */
 static gboolean
@@ -239,7 +239,7 @@
                if (g_strcmp0 (attribute_names[i], "xml:lang") == 0) {
                        tmp = attribute_values[i];
                        if (g_strcmp0 (tmp, "C") == 0) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                                     "xml:lang should never be 
'C'");
                        }
@@ -254,13 +254,17 @@
                }
        }
 
+       g_debug ("START\t<%s> (%s)",
+                element_name,
+                helper->tag_translated ? "translated" : "untranslated");
+
        /* unknown -> application */
        if (helper->section == APPDATA_SECTION_UNKNOWN) {
                if (new == APPDATA_SECTION_APPLICATION) {
                        /* valid */
                        helper->section = new;
                        if (helper->seen_application) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_MARKUP_INVALID,
                                                     "<application> used more 
than once");
                        }
@@ -287,13 +291,13 @@
                        }
                        if (tmp == NULL) {
                                helper->kind = APPDATA_KIND_DESKTOP;
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_ATTRIBUTE_MISSING,
                                                     "no type attribute in 
<id>");
                        } else {
                                helper->kind = appdata_id_type_from_string 
(tmp);
                                if (helper->kind == APPDATA_KIND_UNKNOWN) {
-                                       appdata_add_problem (helper->problems,
+                                       appdata_add_problem (helper,
                                                             
APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                                             "<id> has invalid 
type attribute");
                                }
@@ -309,12 +313,12 @@
                                }
                        }
                        if (tmp == NULL) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_ATTRIBUTE_MISSING,
                                                     "no type attribute in 
<url>");
                        }
                        if (g_strcmp0 (tmp, "homepage") != 0) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                                     "<url> has invalid type 
attribute");
                        }
@@ -363,17 +367,19 @@
                        helper->section = new;
 
                        /* previous paragraph wasn't long enough */
-                       if (helper->previous_para_was_short) {
-                               appdata_add_problem (helper->problems,
-                                                    
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
-                                                    "<p> is too short [p]");
+                       if (!helper->tag_translated) {
+                               if (helper->previous_para_was_short) {
+                                       appdata_add_problem (helper,
+                                                            
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
+                                                            "<p> is too short 
[p]");
+                               }
+                               helper->previous_para_was_short = FALSE;
                        }
-                       helper->previous_para_was_short = FALSE;
                        break;
                case APPDATA_SECTION_DESCRIPTION_UL:
                        /* ul without a leading para */
                        if (helper->number_paragraphs < 1) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                                     "<ul> cannot start a 
description");
                        }
@@ -383,7 +389,7 @@
                                                      NULL);
                        if (helper->para_chars_before_list != 0 &&
                            helper->para_chars_before_list < (guint) len) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                                     "Not enough <p> content 
before <ul>");
                        }
@@ -433,13 +439,13 @@
                                        helper->screenshot_width = atoi 
(attribute_values[i]);
                        }
                        if (tmp != NULL && g_strcmp0 (tmp, "default") != 0) {
-                               appdata_add_problem (helper->problems,
+                               appdata_add_problem (helper,
                                                     
APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                                     "<screenshot> has unknown 
type");
                        }
                        if (g_strcmp0 (tmp, "default") == 0) {
                                if (helper->has_default_screenshot) {
-                                       appdata_add_problem (helper->problems,
+                                       appdata_add_problem (helper,
                                                             
APPDATA_PROBLEM_KIND_MARKUP_INVALID,
                                                             "<screenshot> has 
more than one default");
                                }
@@ -473,6 +479,8 @@
        AppdataHelper *helper = (AppdataHelper *) user_data;
        AppdataSection new;
 
+       g_debug ("END\t<%s>", element_name);
+
        new = appdata_selection_from_string (element_name);
        if (helper->section == APPDATA_SECTION_APPLICATION) {
                if (new == APPDATA_SECTION_APPLICATION) {
@@ -533,7 +541,7 @@
 
                /* previous paragraph wasn't long enough */
                if (helper->previous_para_was_short) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<p> is too short");
                }
@@ -717,7 +725,7 @@
        base_uri = soup_uri_new (url);
        if (base_uri == NULL) {
                ret = FALSE;
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_URL_NOT_FOUND,
                                     "<screenshot> url not valid");
                goto out;
@@ -732,7 +740,7 @@
        status_code = soup_session_send_message (helper->session, msg);
        if (status_code != SOUP_STATUS_OK) {
                ret = FALSE;
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_URL_NOT_FOUND,
                                     "<screenshot> url not found");
                goto out;
@@ -741,7 +749,7 @@
        /* check if it's a zero sized file */
        if (msg->response_body->length == 0) {
                ret = FALSE;
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_FILE_INVALID,
                                     "<screenshot> url is a zero length file");
                goto out;
@@ -753,7 +761,7 @@
                                              NULL);
        if (stream == NULL) {
                ret = FALSE;
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_URL_NOT_FOUND,
                                     "<screenshot> failed to load data");
                goto out;
@@ -763,7 +771,7 @@
        pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, &error);
        if (pixbuf == NULL) {
                ret = FALSE;
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_FILE_INVALID,
                                     "<screenshot> failed to load image");
                goto out;
@@ -774,7 +782,7 @@
        screenshot_height = gdk_pixbuf_get_height (pixbuf);
        if (helper->screenshot_width != 0 &&
            helper->screenshot_width != screenshot_width) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                     "<screenshot> width did not match 
specified");
        }
@@ -782,7 +790,7 @@
        /* check height matches */
        if (helper->screenshot_height != 0 &&
            helper->screenshot_height != screenshot_height) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                     "<screenshot> height did not match 
specified");
        }
@@ -791,28 +799,28 @@
        policy = g_key_file_get_integer (helper->config, 
APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                         "ScreenshotSizeWidthMin", NULL);
        if (screenshot_width < policy) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                     "<screenshot> width was too small");
        }
        policy = g_key_file_get_integer (helper->config, 
APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                         "ScreenshotSizeHeightMin", NULL);
        if (screenshot_height < policy) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                     "<screenshot> height was too small");
        }
        policy = g_key_file_get_integer (helper->config, 
APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                         "ScreenshotSizeWidthMax", NULL);
        if (screenshot_width > policy) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                     "<screenshot> width was too large");
        }
        policy = g_key_file_get_integer (helper->config, 
APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                         "ScreenshotSizeHeightMax", NULL);
        if (screenshot_height > policy) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_ATTRIBUTE_INVALID,
                                     "<screenshot> height was too large");
        }
@@ -829,7 +837,7 @@
                if (ABS (screenshot_aspect - desired_aspect) > 0.1) {
                        g_debug ("got aspect %.2f, wanted %.2f",
                                 screenshot_aspect, desired_aspect);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_ASPECT_RATIO_INCORRECT,
                                             "<screenshot> aspect ratio was not 
16:9");
                }
@@ -874,7 +882,7 @@
                helper->id = g_strstrip (g_strndup (text, text_len));
                ret = appdata_check_id_for_kind (helper->id, helper->kind);
                if (!ret) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_MARKUP_INVALID,
                                             "<id> does not have correct 
extension for kind");
                }
@@ -882,7 +890,7 @@
        case APPDATA_SECTION_LICENCE:
                if (helper->licence != NULL) {
                        g_free (helper->licence);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TAG_DUPLICATED,
                                             "<licence> is duplicated");
                }
@@ -899,7 +907,7 @@
                        }
                }
                if (!valid) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             APPDATA_PROBLEM_KIND_TAG_INVALID,
                                             "<licence> is not valid");
                }
@@ -907,28 +915,28 @@
        case APPDATA_SECTION_URL:
                if (helper->url != NULL) {
                        g_free (helper->url);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TAG_DUPLICATED,
                                             "<url> is duplicated");
                }
                helper->url = g_strstrip (g_strndup (text, text_len));
                if (!g_str_has_prefix (helper->url, "http://";) &&
                    !g_str_has_prefix (helper->url, "https://";))
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             APPDATA_PROBLEM_KIND_TAG_INVALID,
                                             "<url> does not start with 
'http://'");
                break;
        case APPDATA_SECTION_UPDATECONTACT:
                if (helper->updatecontact != NULL) {
                        g_free (helper->updatecontact);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TAG_DUPLICATED,
                                             "<updatecontact> is duplicated");
                }
                helper->updatecontact = g_strstrip (g_strndup (text, text_len));
                if (g_strcmp0 (helper->updatecontact,
                               "someone_who_cares@upstream_project.org") == 0) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             APPDATA_PROBLEM_KIND_TAG_INVALID,
                                             "<updatecontact> is still set to a 
dummy value");
                }
@@ -936,7 +944,7 @@
                                              APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                              "LengthUpdatecontactMin", NULL);
                if (strlen (helper->updatecontact) < len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<updatecontact> is too short");
                }
@@ -944,7 +952,7 @@
        case APPDATA_SECTION_PROJECT_GROUP:
                if (helper->project_group != NULL) {
                        g_free (helper->project_group);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TAG_DUPLICATED,
                                             "<project_group> is duplicated");
                }
@@ -953,7 +961,7 @@
        case APPDATA_SECTION_NAME:
                if (helper->name != NULL) {
                        g_free (helper->name);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TAG_DUPLICATED,
                                             "<name> is duplicated");
                }
@@ -963,7 +971,7 @@
                                              "LengthNameMin", NULL);
                str_len = strlen (helper->name);
                if (str_len < len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<name> is too short");
                }
@@ -971,12 +979,12 @@
                                              APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                              "LengthNameMax", NULL);
                if (str_len > len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<name> is too long");
                }
                if (appdata_has_fullstop_ending (helper->name)) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<name> cannot end in '.'");
                }
@@ -984,7 +992,7 @@
        case APPDATA_SECTION_SUMMARY:
                if (helper->summary != NULL) {
                        g_free (helper->summary);
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TAG_DUPLICATED,
                                             "<summary> is duplicated");
                }
@@ -994,7 +1002,7 @@
                                              "LengthSummaryMin", NULL);
                str_len = strlen (helper->summary);
                if (str_len < len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<summary> is too short");
                }
@@ -1002,12 +1010,12 @@
                                              APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                              "LengthSummaryMax", NULL);
                if (str_len > len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<summary> is too long");
                }
                if (appdata_has_fullstop_ending (helper->summary)) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<summary> cannot end in '.'");
                }
@@ -1027,19 +1035,19 @@
                                              "LengthParaMax", NULL);
                str_len = strlen (temp);
                if (str_len > len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<p> is too long");
                }
                if (g_str_has_prefix (temp, "This application")) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<p> should not start with 'This 
application'");
                }
                if (temp[str_len - 1] != '.' &&
                    temp[str_len - 1] != '!' &&
                    temp[str_len - 1] != ':') {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<p> does not end in '.|:|!'");
                }
@@ -1054,7 +1062,7 @@
                                              "LengthListItemMin", NULL);
                str_len = strlen (temp);
                if (str_len < len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<li> is too short");
                }
@@ -1062,12 +1070,12 @@
                                              APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                              "LengthListItemMax", NULL);
                if (str_len > len) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<li> is too long");
                }
                if (appdata_has_fullstop_ending (temp)) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                             "<li> cannot end in '.'");
                }
@@ -1076,13 +1084,13 @@
        case APPDATA_SECTION_SCREENSHOT:
                temp = g_strstrip (g_strndup (text, text_len));
                if (strlen (temp) == 0) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             APPDATA_PROBLEM_KIND_VALUE_MISSING,
                                             "<screenshot> has no content");
                }
                ret = appdata_screenshot_already_exists (helper, temp);
                if (ret) {
-                       appdata_add_problem (helper->problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_DUPLICATE_DATA,
                                             "<screenshot> has duplicated 
data");
                } else {
@@ -1134,11 +1142,11 @@
                                 const gchar *filename)
 {
        AppdataHelper *helper = NULL;
+       AppdataProblem *problem;
        gboolean ret;
        gchar *data;
        GError *error = NULL;
        GList *problems = NULL;
-       GMarkupParseContext *context = NULL;
        gchar *original_filename = NULL;
        gsize data_len;
        guint len;
@@ -1154,9 +1162,9 @@
        /* open file */
        ret = g_file_get_contents (filename, &data, &data_len, &error);
        if (!ret) {
-               appdata_add_problem (&problems,
-                                    APPDATA_PROBLEM_KIND_FAILED_TO_OPEN,
-                                    error->message);
+               problem = appdata_problem_new 
(APPDATA_PROBLEM_KIND_FAILED_TO_OPEN);
+               problem->description = g_strdup (error->message);
+               problems = g_list_prepend (problems, problem);
                g_error_free (error);
                goto out;
        }
@@ -1170,14 +1178,14 @@
 
        /* check file has the correct ending */
        if (!g_str_has_suffix (original_filename, ".appdata.xml")) {
-               appdata_add_problem (&problems,
-                                    APPDATA_PROBLEM_KIND_FILENAME_INVALID,
-                                    "incorrect extension, expected 
'.appdata.xml'");
+               problem = appdata_problem_new 
(APPDATA_PROBLEM_KIND_FILENAME_INVALID);
+               problem->description = g_strdup ("incorrect extension, expected 
'.appdata.xml'");
+               problems = g_list_prepend (problems, problem);
        }
 
        /* parse */
        helper = g_new0 (AppdataHelper, 1);
-       helper->problems = &problems;
+       helper->problems = problems;
        helper->section = APPDATA_SECTION_UNKNOWN;
        helper->config = config;
        helper->screenshots = g_ptr_array_new_with_free_func (g_free);
@@ -1198,10 +1206,10 @@
                                                  
SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
        }
 
-       context = g_markup_parse_context_new (&parser, 0, helper, NULL);
-       ret = g_markup_parse_context_parse (context, data, data_len, &error);
+       helper->context = g_markup_parse_context_new (&parser, 0, helper, NULL);
+       ret = g_markup_parse_context_parse (helper->context, data, data_len, 
&error);
        if (!ret) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_MARKUP_INVALID,
                                     error->message);
                g_error_free (error);
@@ -1210,38 +1218,38 @@
 
        /* check for things that have to exist */
        if (helper->id == NULL) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_TAG_MISSING,
                                     "<id> is not present");
        }
        if (!helper->has_xml_header) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_MARKUP_INVALID,
                                     "<?xml> header not found");
        }
        ret = g_key_file_get_boolean (config, APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "RequireCopyright", NULL);
        if (ret && !helper->has_copyright_info) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_VALUE_MISSING,
                                     "<!-- Copyright [year] [name] --> is not 
present");
        }
        ret = g_key_file_get_boolean (config, APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "RequireContactdetails", NULL);
        if (ret && helper->updatecontact == NULL) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_TAG_MISSING,
                                     "<updatecontact> is not present");
        }
        ret = g_key_file_get_boolean (config, APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "RequireUrl", NULL);
        if (ret && helper->url == NULL) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_TAG_MISSING,
                                     "<url> is not present");
        }
        if (helper->licence == NULL) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_TAG_MISSING,
                                     "<licence> is not present");
        }
@@ -1249,7 +1257,7 @@
                                      APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "NumberParaMin", NULL);
        if (helper->number_paragraphs < len) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                     "Not enough <p> tags for a good 
description");
        }
@@ -1257,7 +1265,7 @@
                                      APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "NumberParaMax", NULL);
        if (helper->number_paragraphs > len) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                     "Too many <p> tags for a good 
description");
        }
@@ -1265,7 +1273,7 @@
                                      APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "NumberScreenshotsMin", NULL);
        if (helper->screenshots->len < len) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                     "Not enough <screenshot> tags");
        }
@@ -1273,18 +1281,18 @@
                                      APPDATA_TOOLS_VALIDATE_GROUP_NAME,
                                      "NumberScreenshotsMax", NULL);
        if (helper->screenshots->len > len) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                     "Too many <screenshot> tags");
        }
        if (helper->screenshots->len > 0 && !helper->has_default_screenshot) {
-               appdata_add_problem (helper->problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_MARKUP_INVALID,
                                     "<screenshots> has no default 
<screenshot>");
        }
        if (helper->summary != NULL && helper->name != NULL &&
            strlen (helper->summary) < strlen (helper->name)) {
-               appdata_add_problem (&problems,
+               appdata_add_problem (helper,
                                     APPDATA_PROBLEM_KIND_STYLE_INCORRECT,
                                     "<summary> is shorter than <name>");
        }
@@ -1293,25 +1301,26 @@
        if (ret) {
                if (helper->name != NULL &&
                    helper->translations_name == 0) {
-                       appdata_add_problem (&problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TRANSLATIONS_REQUIRED,
                                             "<name> has no translations");
                }
                if (helper->summary != NULL &&
                    helper->translations_summary == 0) {
-                       appdata_add_problem (&problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TRANSLATIONS_REQUIRED,
                                             "<summary> has no translations");
                }
                if (helper->number_paragraphs > 0 &&
                    helper->translations_description == 0) {
-                       appdata_add_problem (&problems,
+                       appdata_add_problem (helper,
                                             
APPDATA_PROBLEM_KIND_TRANSLATIONS_REQUIRED,
                                             "<description> has no 
translations");
                }
        }
 out:
        if (helper != NULL) {
+               problems = helper->problems;
                g_free (helper->id);
                g_free (helper->licence);
                g_free (helper->url);
@@ -1321,12 +1330,12 @@
                g_free (helper->project_group);
                if (helper->session != NULL)
                        g_object_unref (helper->session);
+               if (helper->context != NULL)
+                       g_markup_parse_context_unref (helper->context);
                g_ptr_array_unref (helper->screenshots);
        }
        g_free (helper);
        g_free (original_filename);
        g_free (data);
-       if (context != NULL)
-               g_markup_parse_context_unref (context);
        return problems;
 }
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/appdata-tools-0.1.6/src/appdata-problem.c 
new/appdata-tools-0.1.7/src/appdata-problem.c
--- old/appdata-tools-0.1.6/src/appdata-problem.c       2013-10-04 
12:06:47.000000000 +0200
+++ new/appdata-tools-0.1.7/src/appdata-problem.c       2013-11-14 
10:21:52.000000000 +0100
@@ -27,10 +27,11 @@
  * appdata_problem_new:
  */
 AppdataProblem *
-appdata_problem_new (void)
+appdata_problem_new (AppdataProblemKind kind)
 {
        AppdataProblem *problem;
        problem = g_slice_new0 (AppdataProblem);
+       problem->kind = kind;
        return problem;
 }
 
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/appdata-tools-0.1.6/src/appdata-problem.h 
new/appdata-tools-0.1.7/src/appdata-problem.h
--- old/appdata-tools-0.1.6/src/appdata-problem.h       2013-10-04 
12:06:50.000000000 +0200
+++ new/appdata-tools-0.1.7/src/appdata-problem.h       2013-11-14 
10:28:19.000000000 +0100
@@ -44,8 +44,10 @@
 typedef struct {
        AppdataProblemKind       kind;
        gchar                   *description;
+       gint                     line_number;
+       gint                     char_number;
 } AppdataProblem;
 
-AppdataProblem         *appdata_problem_new            (void);
+AppdataProblem         *appdata_problem_new            (AppdataProblemKind     
 kind);
 void                    appdata_problem_free           (AppdataProblem         
*problem);
 const gchar            *appdata_problem_kind_to_string (AppdataProblemKind     
 kind);
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/appdata-tools-0.1.6/src/appdata-self-test.c 
new/appdata-tools-0.1.7/src/appdata-self-test.c
--- old/appdata-tools-0.1.6/src/appdata-self-test.c     2013-11-08 
16:45:07.000000000 +0100
+++ new/appdata-tools-0.1.7/src/appdata-self-test.c     2013-11-14 
12:29:52.000000000 +0100
@@ -200,7 +200,6 @@
        g_assert (ensure_failure (list, "<licence> is not valid"));
        g_assert (ensure_failure (list, "<id> does not have correct extension 
for kind"));
        g_assert (ensure_failure (list, "<id> has invalid type attribute"));
-       g_assert (ensure_failure (list, "<p> is too short"));
        g_assert (ensure_failure (list, "Not enough <p> tags for a good 
description"));
        g_assert (ensure_failure (list, "<li> is too short"));
        g_assert (ensure_failure (list, "<ul> cannot start a description"));
@@ -290,7 +289,8 @@
                                "RequireTranslations", TRUE);
        filename = appdata_test_get_data_file ("translated.appdata.xml");
        list = appdata_check_file_for_problems (config, filename);
-       g_assert (ensure_failure (list, "Not enough <p> tags for a good 
description"));
+       print_failures (list);
+       g_assert (!ensure_failure (list, "<p> is too short [p]"));
        g_assert (!ensure_failure (list, "<name> is duplicated"));
        g_assert (!ensure_failure (list, "<name> has no translations"));
        g_assert (!ensure_failure (list, "<description> has no translations"));
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/appdata-tools-0.1.6/src/appdata-validate.c 
new/appdata-tools-0.1.7/src/appdata-validate.c
--- old/appdata-tools-0.1.6/src/appdata-validate.c      2013-11-08 
16:44:14.000000000 +0100
+++ new/appdata-tools-0.1.7/src/appdata-validate.c      2013-11-14 
10:32:02.000000000 +0100
@@ -106,7 +106,14 @@
                        gs_string_replace (tmp, "&", "&amp;");
                        gs_string_replace (tmp, "<", "[");
                        gs_string_replace (tmp, ">", "]");
-                       g_print ("<li>%s</li>\n", tmp->str);
+                       g_print ("<li>");
+                       g_print ("%s\n", tmp->str);
+                       if (problem->line_number > 0) {
+                               g_print (" (line %i, char %i)",
+                                        problem->line_number,
+                                        problem->char_number);
+                       }
+                       g_print ("</li>\n");
                        g_string_free (tmp, TRUE);
                }
                g_print ("</ul>\n");
@@ -135,9 +142,16 @@
                        gs_string_replace (tmp, "&", "&amp;");
                        gs_string_replace (tmp, "<", "");
                        gs_string_replace (tmp, ">", "");
-                       g_print ("    <problem type=\"%s\">%s</problem>\n",
-                                appdata_problem_kind_to_string (problem->kind),
-                                tmp->str);
+                       if (problem->line_number > 0) {
+                               g_print ("    <problem type=\"%s\" 
line=\"%i\">%s</problem>\n",
+                                        appdata_problem_kind_to_string 
(problem->kind),
+                                        problem->line_number,
+                                        tmp->str);
+                       } else {
+                               g_print ("    <problem 
type=\"%s\">%s</problem>\n",
+                                        appdata_problem_kind_to_string 
(problem->kind),
+                                        tmp->str);
+                       }
                        g_string_free (tmp, TRUE);
                }
                g_print ("  </problems>\n");
@@ -172,7 +186,14 @@
                g_print ("• %s ", tmp);
                for (i = strlen (tmp); i < 20; i++)
                        g_print (" ");
-               g_print (" : %s\n", problem->description);
+               if (problem->line_number > 0) {
+                       g_print (" : %s [ln:%i ch:%i]\n",
+                                problem->description,
+                                problem->line_number,
+                                problem->char_number);
+               } else {
+                       g_print (" : %s\n", problem->description);
+               }
        }
 }
 
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/appdata-tools-0.1.6/test-driver new/appdata-tools-0.1.7/test-driver
--- old/appdata-tools-0.1.6/test-driver 2013-11-08 17:24:46.000000000 +0100
+++ new/appdata-tools-0.1.7/test-driver 2014-01-24 16:53:03.000000000 +0100
@@ -1,7 +1,7 @@
 #! /bin/sh
 # test-driver - basic testsuite driver script.
 
-scriptversion=2012-06-27.10; # UTC
+scriptversion=2013-07-13.22; # UTC
 
 # Copyright (C) 2011-2013 Free Software Foundation, Inc.
 #
@@ -44,13 +44,12 @@
 Usage:
   test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
               [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
 END
 }
 
-# TODO: better error handling in option parsing (in particular, ensure
-# TODO: $log_file, $trs_file and $test_name are defined).
 test_name= # Used for reporting.
 log_file=  # Where to save the output of the test script.
 trs_file=  # Where to save the metadata of the test run.
@@ -69,10 +68,23 @@
   --enable-hard-errors) enable_hard_errors=$2; shift;;
   --) shift; break;;
   -*) usage_error "invalid option: '$1'";;
+   *) break;;
   esac
   shift
 done
 
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
 if test $color_tests = yes; then
   # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
   red='' # Red.

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to