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]