Accepting request 72629 from GNOME:Factory
Only provide the typelib() symbol... do not yet require any OBS-URL: https://build.opensuse.org/request/show/72629 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gobject-introspection?expand=0&rev=23
This commit is contained in:
commit
b70ecc09ab
@ -8,10 +8,13 @@
|
|||||||
|
|
||||||
function split_name_version {
|
function split_name_version {
|
||||||
base=$1
|
base=$1
|
||||||
symbol=${base%-*}
|
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#*-}
|
version=${base#*-}
|
||||||
# In case there is no '-' in the filename, then the split above 'fails' and version == symbol (thus: no version specified)
|
# In case there is no '-' in the filename, then the split above 'fails' and version == symbol (thus: no version specified)
|
||||||
if [ "$symbol" = "$version" ]; then
|
if [ "$tsymbol" = "$version" ]; then
|
||||||
unset version
|
unset version
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -28,7 +31,7 @@ fi
|
|||||||
function find_provides {
|
function find_provides {
|
||||||
while read file; do
|
while read file; do
|
||||||
case $file in
|
case $file in
|
||||||
/usr/lib[^/]*/girepository-1.0/*.typelib)
|
*.typelib)
|
||||||
split_name_version $(basename $file | sed 's,.typelib$,,')
|
split_name_version $(basename $file | sed 's,.typelib$,,')
|
||||||
print_req_prov
|
print_req_prov
|
||||||
;;
|
;;
|
||||||
@ -56,13 +59,13 @@ function find_requires {
|
|||||||
while read file; do
|
while read file; do
|
||||||
case $file in
|
case $file in
|
||||||
*.js)
|
*.js)
|
||||||
for module in $(grep -h -P -o "imports.gi.([^\s;]+)" $file | grep -v "imports.gi.version" | sed 's,imports.gi.,,'); do
|
for module in $(grep -h -P -o "imports.gi.([^\s'\";]+)" $file | grep -v "imports.gi.version" | sed 's,imports.gi.,,'); do
|
||||||
split_name_version $module
|
split_name_version $module
|
||||||
print_req_prov
|
print_req_prov
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
*.py)
|
*.py)
|
||||||
for module in $(grep -h -P "from gi.repository import (\w+)" $file | sed -e 's,from gi.repository import,,' -r -e 's:\s+as\s+\w+::g' -e 's:,::g'); do
|
for module in $(grep -h -P "from gi.repository import (\w+)" $file | sed 's:#.*::' | sed -e 's,from gi.repository import,,' -r -e 's:\s+as\s+\w+::g' -e 's:,::g'); do
|
||||||
split_name_version $module
|
split_name_version $module
|
||||||
print_req_prov
|
print_req_prov
|
||||||
done
|
done
|
||||||
|
16
gobject-introspection-typelib.template
Normal file
16
gobject-introspection-typelib.template
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
typelib(DBus) = 1.0
|
||||||
|
typelib(DBusGLib) = 1.0
|
||||||
|
typelib(GIRepository) = 2.0
|
||||||
|
typelib(GL) = 1.0
|
||||||
|
typelib(GLib) = 2.0
|
||||||
|
typelib(GModule) = 2.0
|
||||||
|
typelib(GObject) = 2.0
|
||||||
|
typelib(Gio) = 2.0
|
||||||
|
typelib(cairo) = 1.0
|
||||||
|
typelib(fontconfig) = 2.0
|
||||||
|
typelib(freetype2) = 2.0
|
||||||
|
typelib(libxml2) = 2.0
|
||||||
|
typelib(xfixes) = 4.0
|
||||||
|
typelib(xft) = 2.0
|
||||||
|
typelib(xlib) = 2.0
|
||||||
|
typelib(xrandr) = 1.3
|
@ -1,3 +1,39 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 3 13:02:55 UTC 2011 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
- Currently only add typelib() Provides symbol to make sure we do
|
||||||
|
not break entire Factory.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat May 28 15:41:02 UTC 2011 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
- Minor fixes on gi-find-deps.sh:
|
||||||
|
+ Quotes are not allowed symbols in an import name. Fixes for
|
||||||
|
example gnome-shell Requiring typelib(').
|
||||||
|
+ The typelib symbol is not supposed to contain a dot [.]. Should
|
||||||
|
we find a Requires / Provides that does, then we know we were
|
||||||
|
caught in some code using it direcly as an object. The typelib
|
||||||
|
symbol in this case is the first token before the first dot.
|
||||||
|
+ Ignore anything after # in python parsing (it's a comment).
|
||||||
|
- Provide the template-based typelib() versioned.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 27 10:07:14 UTC 2011 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
- Manually provide the typelib() symbols for libgirepository-1_0-1.
|
||||||
|
The rpm magic is not yet in place and can thus not automatically
|
||||||
|
detect the symbols.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 17 09:06:56 UTC 2011 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
- Add gobjectintrospection.attr: install rpm reqprov plugin
|
||||||
|
handler, benefitting from the new rpm 4.9 infrastructure.
|
||||||
|
- Move the rpm helpers to the main package: this is really what is
|
||||||
|
used to build with gobject-introspection, while the devel
|
||||||
|
subpackage is mostly needed if building against
|
||||||
|
libgirepository-1.0.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 27 09:16:02 UTC 2011 - dimstar@opensuse.org
|
Wed Apr 27 09:16:02 UTC 2011 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@ Group: Development/Libraries/GNOME
|
|||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
# gi-find-deps.sh is a rpm helper for Provides and Requires. Script creates typelib()-style Provides/Requires.
|
# gi-find-deps.sh is a rpm helper for Provides and Requires. Script creates typelib()-style Provides/Requires.
|
||||||
Source1: gi-find-deps.sh
|
Source1: gi-find-deps.sh
|
||||||
|
Source2: gobjectintrospection.attr
|
||||||
|
Source3: gobject-introspection-typelib.template
|
||||||
Source99: %{name}-rpmlintrc
|
Source99: %{name}-rpmlintrc
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -53,6 +55,9 @@ a uniform, machine readable format.
|
|||||||
License: LGPLv2.1+
|
License: LGPLv2.1+
|
||||||
Summary: GObject Introspection Library
|
Summary: GObject Introspection Library
|
||||||
Group: Development/Libraries/GNOME
|
Group: Development/Libraries/GNOME
|
||||||
|
# Provide typelib() symbols based on gobject-introspection-typelib.template
|
||||||
|
# The template is checked during install if it matches the installed *.typelib files.
|
||||||
|
%(cat %{S:3} | awk '{ print "Provides: " $0}')
|
||||||
|
|
||||||
%description -n libgirepository-1_0-1
|
%description -n libgirepository-1_0-1
|
||||||
The goal of the project is to describe the APIs and collect them in
|
The goal of the project is to describe the APIs and collect them in
|
||||||
@ -83,12 +88,16 @@ a uniform, machine readable format.
|
|||||||
--enable-gtk-doc \
|
--enable-gtk-doc \
|
||||||
%endif
|
%endif
|
||||||
--disable-static
|
--disable-static
|
||||||
%__make %{?jobs:-j%jobs} V=1
|
%__make %{?_smp_mflags} V=1
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%makeinstall
|
%makeinstall
|
||||||
find %{buildroot} -type f -name "*.la" -delete -print
|
find %{buildroot} -type f -name "*.la" -delete -print
|
||||||
install -D %{S:1} %{buildroot}%{_prefix}/lib/rpm/gi-find-deps.sh
|
install -D %{S:1} %{buildroot}%{_rpmconfigdir}/gi-find-deps.sh
|
||||||
|
install -D %{S:2} -m 0644 %{buildroot}%{_rpmconfigdir}/fileattrs/gobjectintrospection.attr
|
||||||
|
# comparing, if we provide all the symbols expected.
|
||||||
|
ls %{buildroot}%{_libdir}/girepository-1.0/*.typelib | sh %{S:1} -P > gobject-introspection-typelib.installed
|
||||||
|
diff -s %{S:3} gobject-introspection-typelib.installed
|
||||||
%fdupes %{buildroot}
|
%fdupes %{buildroot}
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
@ -121,6 +130,8 @@ rm -rf %{buildroot}
|
|||||||
%{_datadir}/gobject-introspection-1.0/Makefile.introspection
|
%{_datadir}/gobject-introspection-1.0/Makefile.introspection
|
||||||
%{_datadir}/gobject-introspection-1.0/tests/
|
%{_datadir}/gobject-introspection-1.0/tests/
|
||||||
%{_datadir}/gobject-introspection-1.0/gdump.c
|
%{_datadir}/gobject-introspection-1.0/gdump.c
|
||||||
|
%{_rpmconfigdir}/gi-find-deps.sh
|
||||||
|
%{_rpmconfigdir}/fileattrs/gobjectintrospection.attr
|
||||||
|
|
||||||
%files -n libgirepository-1_0-1
|
%files -n libgirepository-1_0-1
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
@ -139,6 +150,5 @@ rm -rf %{buildroot}
|
|||||||
# FIXME: those two files should be moved to the main package when bgo#629930 gets fixed
|
# FIXME: those two files should be moved to the main package when bgo#629930 gets fixed
|
||||||
%{_libdir}/pkgconfig/gobject-introspection-1.0.pc
|
%{_libdir}/pkgconfig/gobject-introspection-1.0.pc
|
||||||
%{_libdir}/pkgconfig/gobject-introspection-no-export-1.0.pc
|
%{_libdir}/pkgconfig/gobject-introspection-no-export-1.0.pc
|
||||||
%{_prefix}/lib/rpm/gi-find-deps.sh
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
2
gobjectintrospection.attr
Normal file
2
gobjectintrospection.attr
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
%__gobjectintrospection_provides %{_rpmconfigdir}/gi-find-deps.sh -P
|
||||||
|
%__gobjectintrospection_path ^(%{_libdir}/.*\.typelib)|(.*\.py)|(.*\.js)$
|
Loading…
x
Reference in New Issue
Block a user