Hello community,

here is the log from the commit of package gobject-introspection for 
openSUSE:Factory checked in at 2013-08-16 12:20:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gobject-introspection (Old)
 and      /work/SRC/openSUSE:Factory/.gobject-introspection.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gobject-introspection"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gobject-introspection/gobject-introspection.changes  
    2013-07-16 15:29:44.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.gobject-introspection.new/gobject-introspection.changes
 2013-08-16 12:20:39.000000000 +0200
@@ -1,0 +2,18 @@
+Thu Aug 15 06:56:37 UTC 2013 - [email protected]
+
+- Modify gi-find-deps.sh: the js package filter function seems to
+  have some issues in transfering variables (we might hit some
+  limits: the script works fine when directly invoked). Currently
+  we just specify the extracted list from gnome-weather as FILTER.
+
+-------------------------------------------------------------------
+Fri Aug  9 20:49:53 UTC 2013 - [email protected]
+
+- Enhance gi-find-deps.sh: gnome-weather came up with a nice idea
+  of specifying all dependencies in a pkg.requires(..) list
+  (hopefully this counts as standardized). Enhance the scanner to
+  identify this listing method of dependencies (bnc#811652).
+- Add pcre-tools Requires to the main package: gi-find-deps.sh uses
+  pcregrep for multi line matching.
+
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ gobject-introspection.spec ++++++
--- /var/tmp/diff_new_pack.21QKt9/_old  2013-08-16 12:20:40.000000000 +0200
+++ /var/tmp/diff_new_pack.21QKt9/_new  2013-08-16 12:20:40.000000000 +0200
@@ -49,6 +49,8 @@
 # gi-find-deps makes use of 'file' to identify the types.
 Requires:       file
 Requires:       libgirepository-1_0-1 = %{version}
+# gi-find-deps uses the enhanced grep variant in order to do multi-line 
matching (for pkg.requires(..))
+Requires:       pcre-tools
 Requires:       python-xml
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 

++++++ gi-find-deps.sh ++++++
--- /var/tmp/diff_new_pack.21QKt9/_old  2013-08-16 12:20:40.000000000 +0200
+++ /var/tmp/diff_new_pack.21QKt9/_new  2013-08-16 12:20:40.000000000 +0200
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Automatically find Provides and Requires for typelib() gobject-introspection 
bindings.
 # can be started with -R (Requires) and -P (Provides)
@@ -19,6 +19,11 @@
 fi
 }
 
+function split_name_version2 {
+  symbol=$(echo $1 | awk -F: '{print $1}' | sed "s:[' ]::g")
+  version=$(echo $1 | awk -F: '{print $2}' | sed "s:[' ]::g")
+}
+
 function print_req_prov {
 echo -n "typelib($symbol)"
 if [ ! -z "$version" ]; then
@@ -62,6 +67,59 @@
                split_name_version $module
                print_req_prov
        done
+       # Remember files which contain a pkg.require() call
+       if pcregrep -M "pkg.require\\(([^;])*" $1 > /dev/null; then
+               # the file contains a pkg.require(..) list... let's remember th 
is file for the in-depth scanner
+               if [ -n "$jspkg" ]; then
+                       jspkg=$1:${jspkg}
+               else
+                       jspkg=$1
+               fi
+       fi
+       # remember files which contain exlucde filters used against 
pkg.require()
+       if pcregrep -M "const RECOGNIZED_MODULE_NAMES =([^;])*" $1 > /dev/null; 
then
+               # the file contains RECOGNIZED_MODULE_NAMES list. We remember 
the file name for the follow up filtering
+               if [ -n "$jspkgfilt" ]; then
+                       jspkgfilt=$1:${jspkgfilt}
+               else
+                       jspkgfilt=$1
+               fi
+       fi
+
+}
+
+function javascript_pkg_filter {
+# For now this is a dummy function based on gnome-weather information
+#for file in $jspkgfilt; do
+#      FILTER=($(pcregrep -M "const RECOGNIZED_MODULE_NAMES =([^;])*" $file | 
grep -o "'.*'" | sed "s:'::g"))
+#done
+  FILTER=('Lang' 'Mainloop' 'Signals' 'System' 'Params')
+}
+
+function javascript_pkg_requires {
+# javascript files were found which specify pkg.require('..': '..'[,'..': 
'']); list
+# This is used in some apps in order to have a 'centralized' point to specify 
all package dependencies.
+# once we reach this function, we already know which file(s) contain the 
pkg.require(..) list.
+oldIFS=$IFS
+IFS=:
+for file in "$jspkg"; do
+       IFS=$'\n'
+       PKGS=$(pcregrep -M "pkg.require\\(([^;])*" $file | grep -o "'.*': '.*'")
+       for pkg in $PKGS; do
+               split_name_version2 $pkg
+               found=0
+               for (( i=0 ; i<${#FILTER[@]} ; i++ )); do
+                       if [ "$symbol" = "${FILTER[$i]}" ]; then
+                               found=1
+                       fi
+               done
+               if [ $found -eq 0 ]; then
+                       print_req_prov
+               fi
+       done
+       IFS=:
+done
+IFS=$oldIFS
 
 }
 
@@ -119,6 +177,14 @@
                        ;;
        esac
 done
+# The pkg filter is a place holder. This should read the filter from the 
javascript files.
+#if [ -n "$jspkgfilt" ]; then
+javascript_pkg_filter
+#fi
+# in case the javascript parser above detected files which specify 
pkg.require, we enter the more in-depth scanning scheme for those files.
+if [ -n "$jspkg" ]; then
+       javascript_pkg_requires
+fi
 }
 
 function inList() {

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to