# fix brp-python-bytecompile "invalid syntax" %define __python %{__python3} %define api 1.0 %define major 1 %define libname %mklibname girepository %{api} %{major} %define develname %mklibname girepository -d %define url_ver %{lua: ver = rpm.expand("%{version}"); majmin, count1 = string.gsub(ver, "^([0123456789]+%.[0123456789]+).*", "%1", 1); if count1 == 0 then print(ver); return; end; maj, count2 = string.gsub(majmin, "^([0123456789]+).*", "%1", 1); if count2 == 0 then print(majmin) elseif tonumber(majmin) < 40 then print(majmin) else print(maj) end} %global glib2_version 2.78.0 Name: gobject-introspection Version: 1.80.1 Release: %mkrel 1 Summary: Introspection system for GObject-based libraries License: GPLv2+ and LGPLv2+ Group: Development/C URL: https://wiki.gnome.org/Projects/GObjectIntrospection Source0: https://download.gnome.org/sources/%{name}/%{url_ver}/%{name}-%{version}.tar.xz Patch0: 0001-Fix-linking-against-python3.8.patch # Workaround for Python 3.12 compatibility # https://bugzilla.redhat.com/show_bug.cgi?id=2208966 Patch1: workaround.patch BuildRequires: meson BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(cairo-gobject) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(glib-2.0) >= %glib2_version BuildRequires: pkgconfig(gmodule-2.0) BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gthread-2.0) BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(python3) BuildRequires: python3dist(mako) BuildRequires: python3dist(markdown) BuildRequires: python3dist(pygments) BuildRequires: flex BuildRequires: bison BuildRequires: gnome-common BuildRequires: libtool BuildRequires: gtk-doc %description The goal of the project is to describe the APIs and collect them in a uniform, machine readable format. %package -n %{libname} Group: System/Libraries Summary: GObject Introspection shared library Conflicts: %{name} < 1.64-2 # We don't need this in minimal environments... Recommends: %{name} >= %{version}-%{release} %description -n %{libname} The goal of the project is to describe the APIs and collect them in a uniform, machine readable format. #--------------------------------------------------------------- %if "%{_lib}" == "lib64" %define mark64 ()(64bit) %else %define mark64 %nil %endif #--------------------------------------------------------------- %define girdbusname %mklibname dbus-gir 1.0 %package -n %{girdbusname} Summary: GObject Introspection interface description for dbus Group: System/Libraries Requires: libdbus-1.so.3%{mark64} %description -n %{girdbusname} GObject Introspection interface description for dbus. %files -n %{girdbusname} %{_libdir}/girepository-1.0/DBus-1.0.typelib #--------------------------------------------------------------- %define girdbusglibname %mklibname dbusglib-gir 1.0 %package -n %{girdbusglibname} Summary: GObject Introspection interface description for dbusglib Group: System/Libraries Requires: libdbus-glib-1.so.2%{mark64} %description -n %{girdbusglibname} GObject Introspection interface description for dbusglib. %files -n %{girdbusglibname} %{_libdir}/girepository-1.0/DBusGLib-1.0.typelib #--------------------------------------------------------------- %define girgirepositoryname %mklibname girepository-gir 2.0 %package -n %{girgirepositoryname} Summary: GObject Introspection interface description for girepository Group: System/Libraries Requires: %{libname} = %{version}-%{release} %description -n %{girgirepositoryname} GObject Introspection interface description for girepository. %files -n %{girgirepositoryname} %{_libdir}/girepository-1.0/GIRepository-2.0.typelib #--------------------------------------------------------------- %define girglname %mklibname gl-gir 1.0 %package -n %{girglname} Summary: GObject Introspection interface description for OpenGL Group: System/Libraries Requires: libGL.so.1%{mark64} %description -n %{girglname} GObject Introspection interface description for OpenGL. %files -n %{girglname} %{_libdir}/girepository-1.0/GL-1.0.typelib #--------------------------------------------------------------- %define girvulkanname %mklibname vulkan-gir 1.0 %package -n %{girvulkanname} Summary: GObject Introspection interface description for OpenGL Group: System/Libraries Requires: libGL.so.1%{mark64} %description -n %{girvulkanname} GObject Introspection interface description for OpenGL. %files -n %{girvulkanname} %{_libdir}/girepository-1.0/Vulkan-1.0.typelib #--------------------------------------------------------------- %define gircaironame %mklibname cairo-gir 1.0 %package -n %{gircaironame} Summary: GObject Introspection interface description for cairo Group: System/Libraries Requires: libcairo.so.2%{mark64} %description -n %{gircaironame} GObject Introspection interface description for cairo. %files -n %{gircaironame} %{_libdir}/girepository-1.0/cairo-1.0.typelib #--------------------------------------------------------------- %define girfontconfigname %mklibname fontconfig-gir 2.0 %package -n %{girfontconfigname} Summary: GObject Introspection interface description for fontconfig Group: System/Libraries Requires: libfontconfig.so.1%{mark64} %description -n %{girfontconfigname} GObject Introspection interface description for fontconfig. %files -n %{girfontconfigname} %{_libdir}/girepository-1.0/fontconfig-2.0.typelib #--------------------------------------------------------------- %define girfreetypename %mklibname freetype-gir 2.0 %package -n %{girfreetypename} Summary: GObject Introspection interface description for freetype Group: System/Libraries Requires: libfreetype.so.6%{mark64} %description -n %{girfreetypename} GObject Introspection interface description for freetype. %files -n %{girfreetypename} %{_libdir}/girepository-1.0/freetype2-2.0.typelib #--------------------------------------------------------------- %define girlibxml2name %mklibname xml2-gir 2.0 %package -n %{girlibxml2name} Summary: GObject Introspection interface description for libxml2 Group: System/Libraries Requires: libxml2.so.2%{mark64} %description -n %{girlibxml2name} GObject Introspection interface description for libxml2. %files -n %{girlibxml2name} %{_libdir}/girepository-1.0/libxml2-2.0.typelib #--------------------------------------------------------------- %define girxfixesname %mklibname xfixes-gir 4.0 %package -n %{girxfixesname} Summary: GObject Introspection interface description for xfixes Group: System/Libraries Requires: libXfixes.so.3%{mark64} %description -n %{girxfixesname} GObject Introspection interface description for xfixes. %files -n %{girxfixesname} %{_libdir}/girepository-1.0/xfixes-4.0.typelib #--------------------------------------------------------------- %define girxftname %mklibname xft-gir 2.0 %package -n %{girxftname} Summary: GObject Introspection interface description for xft Group: System/Libraries Requires: libXft.so.2%{mark64} %description -n %{girxftname} GObject Introspection interface description for xft. %files -n %{girxftname} %{_libdir}/girepository-1.0/xft-2.0.typelib #--------------------------------------------------------------- %define girxlibname %mklibname xlib-gir 2.0 %package -n %{girxlibname} Summary: GObject Introspection interface description for xlib Group: System/Libraries Requires: libX11.so.6%{mark64} %description -n %{girxlibname} GObject Introspection interface description for xlib. %files -n %{girxlibname} %{_libdir}/girepository-1.0/xlib-2.0.typelib #--------------------------------------------------------------- %define girxrandrname %mklibname xrandr-gir 1.3 %package -n %{girxrandrname} Summary: GObject Introspection interface description for xrandr Group: System/Libraries Requires: libXrandr.so.2%{mark64} %description -n %{girxrandrname} GObject Introspection interface description for xrandr. %files -n %{girxrandrname} %{_libdir}/girepository-1.0/xrandr-1.3.typelib #--------------------------------------------------------------- %define girwin32name %mklibname win32-gir 1.0 %package -n %{girwin32name} Summary: GObject Introspection interface description for win32 Group: System/Libraries %description -n %{girwin32name} GObject Introspection interface description for win32. %files -n %{girwin32name} %{_libdir}/girepository-1.0/win32-1.0.typelib #--------------------------------------------------------------- %package -n %{develname} Group: Development/C Summary: GObject Introspection development libraries Requires: %{libname} = %{version}-%{release} Requires: %{girdbusname} = %{version}-%{release} Requires: %{girdbusglibname} = %{version}-%{release} Requires: %{girgirepositoryname} = %{version}-%{release} Requires: %{girglname} = %{version}-%{release} Requires: %{girvulkanname} = %{version}-%{release} Requires: %{gircaironame} = %{version}-%{release} Requires: %{girfontconfigname} = %{version}-%{release} Requires: %{girfreetypename} = %{version}-%{release} Requires: %{girlibxml2name} = %{version}-%{release} Requires: %{girxfixesname} = %{version}-%{release} Requires: %{girxftname} = %{version}-%{release} Requires: %{girxlibname} = %{version}-%{release} Requires: %{girxrandrname} = %{version}-%{release} Requires: %{girwin32name} = %{version}-%{release} Provides: libgirepository-devel = %{version}-%{release} Provides: %{name}-devel = %{version}-%{release} #gw /usr/bin/libtool is called in giscanner Requires: libtool %description -n %{develname} The goal of the project is to describe the APIs and collect them in a uniform, machine readable format. #--------------------------------------------------------------- %prep %autosetup -p1 mv giscanner/ast.py giscanner/gio_ast.py %build %meson \ -Ddoctool=enabled \ -Dgtk_doc=true \ -Dpython=%{__python3} %meson_build %install %meson_install # tool was renamed ln -s g-ir-inspect %{buildroot}%{_bindir}/g-ir-dep-tool %check # Needed due to https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/458 %ifnarch %{arm} %meson_test %endif %files %doc README.rst %license COPYING %dir %{_libdir}/%{name}/ %{_libdir}/%{name}/giscanner/ %{_bindir}/g-ir-* %{_datadir}/%{name}-%{api}/ %{_mandir}/man1/g-ir-* %files -n %{libname} %license COPYING.* %dir %{_libdir}/girepository-%{api} %{_libdir}/libgirepository-%{api}.so.%{major}{,.*} %files -n %{develname} %doc NEWS %{_libdir}/libgirepository-%{api}.so %{_libdir}/pkgconfig/gobject-introspection-%{api}.pc %{_libdir}/pkgconfig/gobject-introspection-no-export-%{api}.pc %{_includedir}/%{name}-%{api} %{_datadir}/aclocal/*.m4 %dir %{_datadir}/gir-%{api} %{_datadir}/gir-%{api}/DBus-1.0.gir %{_datadir}/gir-%{api}/DBusGLib-1.0.gir %{_datadir}/gir-%{api}/GIRepository-2.0.gir %{_datadir}/gir-%{api}/GL-1.0.gir %{_datadir}/gir-%{api}/Vulkan-1.0.gir %{_datadir}/gir-%{api}/cairo-1.0.gir %{_datadir}/gir-%{api}/fontconfig-2.0.gir %{_datadir}/gir-%{api}/freetype2-2.0.gir %{_datadir}/gir-%{api}/libxml2-2.0.gir %{_datadir}/gir-%{api}/xfixes-4.0.gir %{_datadir}/gir-%{api}/xft-2.0.gir %{_datadir}/gir-%{api}/xlib-2.0.gir %{_datadir}/gir-%{api}/xrandr-1.3.gir %{_datadir}/gir-%{api}/win32-1.0.gir %{_datadir}/gir-%{api}/gir-1.2.rnc %{_datadir}/gtk-doc/html/gi/