diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2014-09-08 15:16:23 +0200 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2014-09-12 22:29:39 +0200 |
commit | 06efb215c18a0f7225f636c953f7d6bced24eee8 (patch) | |
tree | 8c77c9c5c48fb6a0ab149f2085a4c94f0a54e029 /gi-find-deps.sh.in | |
parent | 895ea9ff8be3fffcb38b37a18662c58a928ddbb3 (diff) | |
download | rpm-setup-06efb215c18a0f7225f636c953f7d6bced24eee8.tar rpm-setup-06efb215c18a0f7225f636c953f7d6bced24eee8.tar.gz rpm-setup-06efb215c18a0f7225f636c953f7d6bced24eee8.tar.bz2 rpm-setup-06efb215c18a0f7225f636c953f7d6bced24eee8.tar.xz rpm-setup-06efb215c18a0f7225f636c953f7d6bced24eee8.zip |
gstreamer/haskell/ruby/typelib will be managed elsewhere
we backported the needed .(attr|prov|req) files from FC/SuSe
Diffstat (limited to 'gi-find-deps.sh.in')
-rwxr-xr-x | gi-find-deps.sh.in | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/gi-find-deps.sh.in b/gi-find-deps.sh.in deleted file mode 100755 index 60d8355..0000000 --- a/gi-find-deps.sh.in +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh - -# Automatically find Provides and Requires for typelib() gobject-introspection bindings. -# can be started with -R (Requires) and -P (Provides) - -# Copyright 2011 by Dominique Leuenberger, Amsterdam, Netherlands (dimstar [at] opensuse.org) -# This file is released under the GPLv2 or later. - -function split_name_version { -base=$1 -tsymbol=${base%-*} -# Sometimes we get a Requires on Gdk.Settings.foo, bebause you can directly use imports.gi.Gdk.Settings.Foo in Javascript. -# We know that the symbol in this case is call Gdk, so we cut everything after the . away. -symbol=$(echo $tsymbol | awk -F. '{print $1}') -version=${base#*-} -# In case there is no '-' in the filename, then the split above 'fails' and version == symbol (thus: no version specified) -if [ "$tsymbol" = "$version" ]; then - unset version -fi -} - -function print_req_prov { -echo -n "typelib($symbol)" -if [ ! -z "$version" ]; then - echo " = ${version}" -else - echo "" -fi -} - -function find_provides { -while read file; do - case $file in - *.typelib) - split_name_version $(basename $file | sed 's,.typelib$,,') - print_req_prov - ;; - esac -done -} - -function javascript_requires { - for module in $(grep -h -P -o "imports\.gi\.([^\s'\";]+)" $1 | grep -v "imports\.gi\.version" | sed -r -e 's,\s+$,,g' -e 's,imports.gi.,,'); do - split_name_version $module - print_req_prov - done - for module in $(grep -h -P -o "imports\.gi\.versions.([^\s'\";]+)\s*=\s*['\"].+['\"]" $1 | \ - sed -e 's:imports.gi.versions.::' -e "s:['\"]::g" -e 's:=:-:' -e 's: ::g'); do - split_name_version $module - print_req_prov - done -} - -function python_requires { - for module in $(grep -h -P "from gi\.repository import (\w+)" $1 | sed 's:#.*::' | sed -e 's,.*from gi.repository import,,' -r -e 's:\s+as\s+\w+::g' -e 's:\s*,\s*: :g' -e 's:\s[0-9]+\s: :g' -e 's:[^A-Za-z0-9\.\-]: :g'); do - split_name_version $module - print_req_prov - # Temporarly disabled... this is not true if the python code is written for python3... And there seems no real 'way' to identify this. - #echo "python-gi >= 2.90.2" - done - for module in $(grep -h -P -o "(gi\.require_version\(['\"][^'\"]+['\"],\s*['\"][^'\"]+['\"]\))" $1 | sed -e 's:gi.require_version::' -e "s:[()\"' ]::g" -e 's:,:-:'); do - split_name_version $module - print_req_prov - done -} - -function typelib_requires { - for module in $(@RPMVENDORDIR@/g-ir-extract-deps $1 | tr '|' ' '); do - split_name_version $module - print_req_prov - done -} - -function find_requires { -# Currently, we detect: -# - in python: -# . from gi.repository import foo [Unversioned requirement of 'foo'] -# . from gi.repository import foo-1.0 [versioned requirement] -# . gi.require_version('Gtk', '3.0') (To specify a version.. there is still an import needed) -# . And we do not stumble over: -# from gi.repository import foo as _bar -# from gi.repository import foo, bar -# - in JS: -# . imports.gi.foo; [unversioned requirement of 'foo'] -# . imports.gi.goo-1.0; [versioned requirement] -# . imports.gi.versions.Gtk = '3.0'; -# . The imports can be listed on one line, and we catch them. - -while read file; do - case $file in - *.js) - javascript_requires "$file" - ;; - *.py) - python_requires "$file" - ;; - *.typelib) - typelib_requires "$file" - ;; - *) - case $(file -b $file) in - Python\ script*) - python_requires "$file" - ;; - esac - ;; - esac -done -} - -case $1 in - -P) - find_provides - ;; - -R) - find_requires - ;; -esac |