mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
add: gtk4 (#463)
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
From 5f5fd77f096174c45f8335afe6efd6745796d9a5 Mon Sep 17 00:00:00 2001
|
||||
From: Kalev Lember <klember@redhat.com>
|
||||
Date: Mon, 25 Jul 2022 16:21:50 +0200
|
||||
Subject: [PATCH] Revert "Meson: Simplify pkgconfig file generator"
|
||||
|
||||
Temporarily revert this until we figure out how to best restore
|
||||
private requires that are needed for rpm automatic dep extraction.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4756
|
||||
|
||||
This reverts commit 802bf4199911c811938b0454a876089bafa97dba.
|
||||
---
|
||||
meson.build | 47 +++++++++++++++++++++++++++++++++--------------
|
||||
1 file changed, 33 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 1b8f2d0248..4fc808dbd4 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -471,6 +471,9 @@ if not os_win32
|
||||
endif
|
||||
endif
|
||||
|
||||
+
|
||||
+pc_gdk_extra_libs = []
|
||||
+
|
||||
cairo_backends = []
|
||||
foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled],
|
||||
['cairo-win32', cairo_req, win32_enabled],
|
||||
@@ -601,14 +604,26 @@ if x11_enabled
|
||||
cdata.set('HAVE_RANDR15', xrandr15_dep.found())
|
||||
endif
|
||||
|
||||
+if broadway_enabled
|
||||
+ pc_gdk_extra_libs += ['-lz']
|
||||
+endif
|
||||
+
|
||||
+if macos_enabled
|
||||
+ pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon']
|
||||
+endif
|
||||
+
|
||||
extra_demo_ldflags = []
|
||||
if win32_enabled
|
||||
+ pc_gdk_extra_libs += ['-lgdi32', '-limm32', '-lshell32', '-lole32']
|
||||
if cc.get_id() == 'msvc'
|
||||
# Since the demo programs are now built as pure GUI programs, we
|
||||
# need to pass in /entry:mainCRTStartup so that they will properly
|
||||
# link on Visual Studio builds
|
||||
extra_demo_ldflags = ['/entry:mainCRTStartup']
|
||||
+ else
|
||||
+ pc_gdk_extra_libs += ['-Wl,-luuid']
|
||||
endif
|
||||
+ pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32', '-lhid']
|
||||
|
||||
# Check whether libepoxy is built with EGL support on Windows
|
||||
endif
|
||||
@@ -826,7 +841,16 @@ gsk_private_packages = [] # all already in gdk_private_packages
|
||||
pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : []
|
||||
gtk_private_packages = pangoft2_pkgs
|
||||
|
||||
-pkgs = []
|
||||
+gdk_extra_libs = pc_gdk_extra_libs
|
||||
+gsk_extra_libs = []
|
||||
+gtk_extra_libs = []
|
||||
+
|
||||
+gdk_extra_cflags = []
|
||||
+gsk_extra_cflags = []
|
||||
+gtk_extra_cflags = []
|
||||
+
|
||||
+pkgs = [ 'gtk4' ]
|
||||
+
|
||||
pkg_targets = []
|
||||
display_backends = []
|
||||
foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ]
|
||||
@@ -843,23 +867,18 @@ common_pc_variables = [
|
||||
'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME
|
||||
]
|
||||
|
||||
-pkg_config.generate(libgtk,
|
||||
- filebase: 'gtk4',
|
||||
- unescaped_variables: common_pc_variables,
|
||||
- name: 'GTK',
|
||||
- description: 'GTK Graphical UI Library',
|
||||
- requires: gdk_packages + gsk_packages + gtk_packages,
|
||||
- subdirs: ['gtk-@0@'.format(gtk_api_version)],
|
||||
-)
|
||||
-meson.override_dependency('gtk4', libgtk_dep)
|
||||
-
|
||||
foreach pkg: pkgs
|
||||
pkg_config.generate(
|
||||
filebase: pkg,
|
||||
unescaped_variables: common_pc_variables,
|
||||
name: 'GTK',
|
||||
description: 'GTK Graphical UI Library',
|
||||
- requires: 'gtk4',
|
||||
+ requires: gdk_packages + gsk_packages + gtk_packages,
|
||||
+ requires_private: gdk_private_packages + gsk_private_packages + gtk_private_packages,
|
||||
+ libraries: ['-L${libdir}', '-lgtk-4'],
|
||||
+ libraries_private: gdk_extra_libs + gsk_extra_libs + gtk_extra_libs,
|
||||
+ subdirs: ['gtk-@0@'.format(gtk_api_version)],
|
||||
+ extra_cflags: gdk_extra_cflags + gsk_extra_cflags + gtk_extra_cflags,
|
||||
)
|
||||
meson.override_dependency(pkg, libgtk_dep)
|
||||
endforeach
|
||||
@@ -870,10 +889,10 @@ if os_unix
|
||||
unescaped_variables: common_pc_variables,
|
||||
name: 'GTK',
|
||||
description: 'GTK Unix print support',
|
||||
- requires: 'gtk4',
|
||||
+ requires: ['gtk4'] + gtk_packages,
|
||||
+ libraries: [],
|
||||
subdirs: ['gtk-@0@/unix-print'.format(gtk_api_version)],
|
||||
)
|
||||
- meson.override_dependency('gtk4-unix-print', libgtk_dep)
|
||||
endif
|
||||
|
||||
subdir('po')
|
||||
--
|
||||
2.37.1
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "terra-gtk4.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
[Settings]
|
||||
gtk-hint-font-metrics=1
|
||||
@@ -0,0 +1,245 @@
|
||||
# mado: ref https://src.fedoraproject.org/rpms/gtk4/c/016dd18e8025372e85ffd732ff58f46d9b3bf642?branch=rawhide
|
||||
%if 0%{?fedora}
|
||||
%global with_broadway 1
|
||||
%endif
|
||||
|
||||
%global glib2_version 2.72.0
|
||||
%global pango_version 1.50.0
|
||||
%global cairo_version 1.14.0
|
||||
%global gdk_pixbuf_version 2.30.0
|
||||
%global wayland_protocols_version 1.31
|
||||
%global wayland_version 1.21.0
|
||||
%global epoxy_version 1.4
|
||||
|
||||
%global bin_version 4.0.0
|
||||
|
||||
# Filter provides for private modules
|
||||
%global __provides_exclude_from ^%{_libdir}/gtk-4.0
|
||||
|
||||
Name: terra-gtk4
|
||||
Version: 4.11.2
|
||||
Release: %autorelease
|
||||
Summary: GTK graphical user interface library
|
||||
|
||||
License: LGPL-2.0-or-later
|
||||
URL: https://www.gtk.org
|
||||
Source0: https://gitlab.gnome.org/GNOME/gtk/-/archive/%version/gtk-%version.tar.gz
|
||||
Source1: settings.ini
|
||||
# Temporarily revert this until we figure out how to best restore
|
||||
# private requires that are needed for rpm automatic dep extraction.
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4756
|
||||
Patch0: 0001-Revert-Meson-Simplify-pkgconfig-file-generator.patch
|
||||
|
||||
BuildRequires: cups-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: docbook-style-xsl
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gettext
|
||||
BuildRequires: gi-docgen
|
||||
BuildRequires: meson
|
||||
BuildRequires: python3-gobject
|
||||
BuildRequires: pkgconfig(avahi-gobject)
|
||||
BuildRequires: pkgconfig(cairo) >= %{cairo_version}
|
||||
BuildRequires: pkgconfig(cairo-gobject) >= %{cairo_version}
|
||||
BuildRequires: pkgconfig(colord)
|
||||
BuildRequires: pkgconfig(egl)
|
||||
BuildRequires: pkgconfig(epoxy)
|
||||
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version}
|
||||
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
||||
BuildRequires: pkgconfig(graphene-gobject-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-player-1.0)
|
||||
BuildRequires: pkgconfig(json-glib-1.0)
|
||||
BuildRequires: pkgconfig(libjpeg)
|
||||
BuildRequires: pkgconfig(libpng)
|
||||
BuildRequires: pkgconfig(libtiff-4)
|
||||
BuildRequires: pkgconfig(pango) >= %{pango_version}
|
||||
BuildRequires: pkgconfig(sysprof-4)
|
||||
BuildRequires: pkgconfig(sysprof-capture-4)
|
||||
BuildRequires: pkgconfig(tracker-sparql-3.0)
|
||||
BuildRequires: pkgconfig(wayland-client) >= %{wayland_version}
|
||||
BuildRequires: pkgconfig(wayland-cursor) >= %{wayland_version}
|
||||
BuildRequires: pkgconfig(wayland-egl) >= %{wayland_version}
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= %{wayland_protocols_version}
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
BuildRequires: pkgconfig(xcursor)
|
||||
BuildRequires: pkgconfig(xdamage)
|
||||
BuildRequires: pkgconfig(xfixes)
|
||||
BuildRequires: pkgconfig(xi)
|
||||
BuildRequires: pkgconfig(xinerama)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(xrandr)
|
||||
BuildRequires: pkgconfig(xrender)
|
||||
BuildRequires: /usr/bin/rst2man
|
||||
BuildRequires: sassc
|
||||
|
||||
# standard icons
|
||||
Requires: adwaita-icon-theme
|
||||
# required for icon theme apis to work
|
||||
Requires: hicolor-icon-theme
|
||||
# split out in a subpackage
|
||||
Requires: gtk-update-icon-cache
|
||||
|
||||
Requires: cairo%{?_isa} >= %{cairo_version}
|
||||
Requires: cairo-gobject%{?_isa} >= %{cairo_version}
|
||||
Requires: glib2%{?_isa} >= %{glib2_version}
|
||||
Requires: libepoxy%{?_isa} >= %{epoxy_version}
|
||||
Requires: libwayland-client%{?_isa} >= %{wayland_version}
|
||||
Requires: libwayland-cursor%{?_isa} >= %{wayland_version}
|
||||
Requires: pango%{?_isa} >= %{pango_version}
|
||||
|
||||
# required to support all the different image formats
|
||||
Requires: gdk-pixbuf2-modules%{?_isa}
|
||||
|
||||
# make sure we have a reasonable gsettings backend
|
||||
Recommends: dconf%{?_isa}
|
||||
|
||||
Provides: gtk4%?_isa = %version-%release
|
||||
Conflicts: gtk4
|
||||
|
||||
%description
|
||||
GTK is a multi-platform toolkit for creating graphical user
|
||||
interfaces. Offering a complete set of widgets, GTK is suitable for
|
||||
projects ranging from small one-off tools to complete application
|
||||
suites.
|
||||
|
||||
This package contains latest version 4 of GTK as tracked in Terra.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for GTK
|
||||
Requires: terra-gtk4%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
This package contains the libraries and header files that are needed
|
||||
for writing applications with version 4 of the GTK widget toolkit.
|
||||
|
||||
%package devel-docs
|
||||
Summary: Developer documentation for GTK
|
||||
BuildArch: noarch
|
||||
Requires: terra-gtk4 = %{version}-%{release}
|
||||
|
||||
%description devel-docs
|
||||
This package contains developer documentation for version 4 of the GTK
|
||||
widget toolkit.
|
||||
|
||||
%package devel-tools
|
||||
Summary: Developer tools for GTK
|
||||
Requires: terra-gtk4%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel-tools
|
||||
This package contains helpful applications for developers using GTK.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n gtk-%{version}
|
||||
|
||||
%build
|
||||
export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT %optflags'
|
||||
%meson \
|
||||
%if 0%{?with_broadway}
|
||||
-Dbroadway-backend=true \
|
||||
%endif
|
||||
-Dsysprof=enabled \
|
||||
-Dtracker=enabled \
|
||||
-Dcolord=enabled \
|
||||
-Dgtk_doc=true \
|
||||
-Dman-pages=true
|
||||
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%find_lang gtk40
|
||||
|
||||
%if !0%{?with_broadway}
|
||||
rm $RPM_BUILD_ROOT%{_mandir}/man1/gtk4-broadwayd.1*
|
||||
%endif
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-4.0
|
||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/modules
|
||||
|
||||
install -p %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/gtk-4.0/
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
%files -f gtk40.lang
|
||||
%license COPYING
|
||||
%doc AUTHORS NEWS README.md
|
||||
%{_bindir}/gtk4-launch
|
||||
%{_bindir}/gtk4-update-icon-cache
|
||||
%{_libdir}/libgtk-4.so.1*
|
||||
%dir %{_libdir}/gtk-4.0
|
||||
%dir %{_libdir}/gtk-4.0/%{bin_version}
|
||||
%{_libdir}/gtk-4.0/%{bin_version}/media/
|
||||
%{_libdir}/gtk-4.0/%{bin_version}/printbackends/
|
||||
%{_libdir}/gtk-4.0/modules
|
||||
%{_libdir}/girepository-1.0
|
||||
%{_mandir}/man1/gtk4-launch.1*
|
||||
%{_mandir}/man1/gtk4-update-icon-cache.1*
|
||||
%{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
|
||||
%dir %{_datadir}/gtk-4.0
|
||||
%{_datadir}/gtk-4.0/emoji/
|
||||
%{_datadir}/gtk-4.0/settings.ini
|
||||
%if 0%{?with_broadway}
|
||||
%{_bindir}/gtk4-broadwayd
|
||||
%{_mandir}/man1/gtk4-broadwayd.1*
|
||||
%endif
|
||||
|
||||
%files devel
|
||||
%{_libdir}/libgtk-4.so
|
||||
%{_includedir}/*
|
||||
%{_libdir}/pkgconfig/*
|
||||
%{_bindir}/gtk4-builder-tool
|
||||
%{_bindir}/gtk4-encode-symbolic-svg
|
||||
%{_bindir}/gtk4-query-settings
|
||||
%{_datadir}/gettext/
|
||||
%{_datadir}/gir-1.0
|
||||
%{_datadir}/gtk-4.0/gtk4builder.rng
|
||||
%{_datadir}/gtk-4.0/valgrind/
|
||||
%{_mandir}/man1/gtk4-builder-tool.1*
|
||||
%{_mandir}/man1/gtk4-encode-symbolic-svg.1*
|
||||
%{_mandir}/man1/gtk4-query-settings.1*
|
||||
|
||||
%files devel-docs
|
||||
%{_datadir}/doc/gdk4/
|
||||
%{_datadir}/doc/gdk4-wayland/
|
||||
%{_datadir}/doc/gdk4-x11/
|
||||
%{_datadir}/doc/gsk4/
|
||||
%{_datadir}/doc/gtk4/
|
||||
|
||||
%files devel-tools
|
||||
%{_bindir}/gtk4-demo
|
||||
%{_bindir}/gtk4-demo-application
|
||||
%{_bindir}/gtk4-icon-browser
|
||||
%{_bindir}/gtk4-node-editor
|
||||
%{_bindir}/gtk4-print-editor
|
||||
%{_bindir}/gtk4-widget-factory
|
||||
%{_datadir}/applications/org.gtk.gtk4.NodeEditor.desktop
|
||||
%{_datadir}/applications/org.gtk.Demo4.desktop
|
||||
%{_datadir}/applications/org.gtk.IconBrowser4.desktop
|
||||
%{_datadir}/applications/org.gtk.PrintEditor4.desktop
|
||||
%{_datadir}/applications/org.gtk.WidgetFactory4.desktop
|
||||
%{_datadir}/icons/hicolor/*/apps/org.gtk.gtk4.NodeEditor*.svg
|
||||
%{_datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.svg
|
||||
%{_datadir}/icons/hicolor/*/apps/org.gtk.IconBrowser4*.svg
|
||||
%{_datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.svg
|
||||
%{_datadir}/icons/hicolor/*/apps/org.gtk.WidgetFactory4*.svg
|
||||
%{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
|
||||
%{_metainfodir}/org.gtk.gtk4.NodeEditor.appdata.xml
|
||||
%{_metainfodir}/org.gtk.Demo4.appdata.xml
|
||||
%{_metainfodir}/org.gtk.IconBrowser4.appdata.xml
|
||||
%{_metainfodir}/org.gtk.PrintEditor4.appdata.xml
|
||||
%{_metainfodir}/org.gtk.WidgetFactory4.appdata.xml
|
||||
%{_mandir}/man1/gtk4-demo.1*
|
||||
%{_mandir}/man1/gtk4-demo-application.1*
|
||||
%{_mandir}/man1/gtk4-icon-browser.1*
|
||||
%{_mandir}/man1/gtk4-node-editor.1*
|
||||
%{_mandir}/man1/gtk4-widget-factory.1*
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -0,0 +1,3 @@
|
||||
let txt = get("https://gitlab.gnome.org/api/v4/projects/665/releases/");
|
||||
let ver = txt.json_arr()[0].tag_name;
|
||||
rpm.version(ver);
|
||||
Reference in New Issue
Block a user