Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37519616
en ru br
Репозитории ALT

Группа :: Система/Библиотеки
Пакет: libwebkitgtk2

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define optflags_lto %nil

%define _gtk_docdir %_datadir/gtk-doc/html
%define _libexecdir %_prefix/libexec
%define api_ver 1.0
%define gtk_ver 2.0

%define _name webkitgtk
# none/opengl/cairo/clutter
%define acceleration_backend opengl
%def_disable introspection
%def_enable geolocation
%def_enable web_audio
%def_disable media_stream
%def_enable spellcheck
%ifarch ppc64le loongarch64
%def_disable jit
%endif
%def_enable rsvg
%def_disable check

%define smp %__nprocs

Name: libwebkitgtk2
Version: 2.4.11
Release: alt14

Summary: Web browser engine
License: LGPL-2.0 and LGPL-2.1 and BSD-2-Clause
Group: System/Libraries
Url: http://www.webkitgtk.org/

Source: http://webkitgtk.org/releases/webkitgtk-%version.tar.xz
Patch: webkitgtk-2.1.92-alt-gtk2_compatibility.patch
Patch3: webkitgtk-2.4.0-alt-link.patch
Patch4: webkitgtk-2.4.9-fc-abs.patch
# https://bugs.webkit.org/show_bug.cgi?id=171612
Patch5: webkitgtk-2.4.11-icu59.patch
# https://bugs.webkit.org/show_bug.cgi?id=126985
Patch6: webkitgtk-x86-assembler-fix.patch
Patch7: webkitgtk-2.4.10-suse-aarch64.patch
Patch8: webkitgtk-2.4.11-alt-build.patch
# python->python2
Patch9: webkitgtk-2.4.11-alt-python2.patch
# workaround for bison-3.7.x
Patch10: webkitgtk-2.4.11-alt-bison-3.7-workaround.patch
# https://aur.archlinux.org/cgit/aur.git/tree/icu68.patch?h=webkitgtk
Patch11: webkitgtk-2.4.11-arch-icu68.patch
Patch12: webkitgtk-2.4.11-arch-glib-2.68.0.patch
Patch13: webkitgtk-2.4.11-arch-volatile.patch
# based on https://trac.webkit.org/changeset/238805/webkit
Patch14: webkitgtk-2.4.11-alt-SoupSession.patch

Patch3500: webkitgtk-loongarch64.patch

Requires: libjavascriptcoregtk2 = %version-%release
%{?_enable_geolocation:Requires: geoclue2}

Provides: webkitgtk = %version-%release
Provides: libwebkit-gtk = %version-%release
Provides: libwebkit = %version-%release
Obsoletes: libwebkit-gtk < %version
Obsoletes: libwebkit < %version
Obsoletes: %name-webinspector
Provides: %name-webinspector = %EVR

BuildRequires(pre): rpm-build-licenses rpm-build-gir
BuildRequires: gcc-c++ libicu-devel bison perl-Switch zlib-devel
BuildRequires: flex >= 2.5.33
BuildRequires: gperf libjpeg-devel libpng-devel libwebp-devel
BuildRequires: libxml2-devel >= 2.6
BuildRequires: libXt-devel
BuildRequires: libgtk+2-devel >= 2.24.10
BuildRequires: libgail-devel >= 1.8
BuildRequires: libenchant-devel >= 0.22
BuildRequires: libsqlite3-devel >= 3.0
BuildRequires: libxslt-devel >= 1.1.7
BuildRequires: gstreamer1.0-devel >= 1.0.3 gst-plugins1.0-devel >= 1.0.3
%if_enabled rsvg
BuildRequires: librsvg-devel >= 2.2.0
%endif
BuildRequires: gtk-doc >= 1.10
BuildRequires: libsoup-devel >= 2.42.0
BuildRequires: libsecret-devel
BuildRequires: libpango-devel >= 1.30.0 libcairo-devel >= 1.10 libcairo-gobject-devel
BuildRequires: fontconfig-devel >= 2.5 libfreetype-devel libharfbuzz-devel >= 0.9.7
BuildRequires: libgio-devel >= 2.25.0
BuildRequires: /usr/bin/python2 python-modules-json
BuildRequires: ruby ruby-stdlibs

%if %acceleration_backend == opengl
BuildRequires: libGL-devel libXcomposite-devel libXdamage-devel
%endif

%{?_enable_introspection:BuildRequires: gobject-introspection-devel >= 1.32.0 libgtk+2-gir-devel libsoup-gir-devel}
%{?_enable_geolocation:BuildRequires: geoclue2-devel}
%{?_enable_spellcheck:BuildRequires: libenchant-devel}
%{?_enable_media_stream:BuildRequires: farstream0.2-devel}
%{?_enable_check:BuildRequires: xvfb-run python-module-pygobject3}

%description
WebKit is an open source web browser engine.
The GTK+ port of WebKit is intended to provide a browser component
primarily for users of the portable GTK+ UI toolkit on platforms like
Linux.

%package devel
Summary: Development files for WebKit GTK+ port
Group: Development/GNOME and GTK+
Requires: %name = %version-%release
Requires: libjavascriptcoregtk2-devel = %version-%release
Provides: webkitgtk-devel = %version-%release
Provides: libwebkit-gtk-devel = %version-%release
Provides: libwebkit-devel = %version-%release
Obsoletes: libwebkit-gtk-devel < %version
Obsoletes: libwebkit-devel < %version

%description devel
The GTK+ port of WebKit is intended to provide a browser component
primarily for users of the portable GTK+ UI toolkit on platforms like
Linux. This package contains development headers.

%package devel-doc
Summary: Development documentation for %name
Group: Development/Documentation
BuildArch: noarch
Conflicts: %name < %version-%release

%description devel-doc
The GTK+ port of WebKit is intended to provide a browser component
primarily for users of the portable GTK+ UI toolkit on platforms like
Linux.

This package provides development documentation for %name.

%package -n libjavascriptcoregtk2
Summary: GTK+2 version of the JavaScriptCore engine
Group: System/Libraries

%description -n libjavascriptcoregtk2
This package provides GTK+2 version of the JavaScriptCore engine from
WebKit package.

%package -n libjavascriptcoregtk2-devel
Summary: Development files for JavaScriptCore library
Group: Development/GNOME and GTK+
Requires: libjavascriptcoregtk2 = %version-%release

%description -n libjavascriptcoregtk2-devel
This package provides development files for GTK+2 version of the
JavaScriptCore engine.

%package jsc
Summary: JavaScriptCore shell for WebKit GTK+
Group: Development/GNOME and GTK+
Requires: libjavascriptcoregtk2 = %version-%release
Provides: libwebkit-jsc = %version-%release
Obsoletes: libwebkit-jsc < %version

%description jsc
jsc is a shell for JavaScriptCore, WebKit's JavaScript engine. It
allows you to interact with the JavaScript engine directly.

%package gir
Summary: GObject introspection data for the WebkitGTK library
Group: System/Libraries
Requires: %name = %version-%release
Requires: libjavascriptcoregtk2 = %version-%release
Requires: libjavascriptcoregtk2-gir  = %version-%release
Provides: libwebkit-gir = %version-%release
Obsoletes: libwebkit-gir < %version

%description gir
GObject introspection data for the WebkitGTK library

%package gir-devel
Summary: GObject introspection devel data for the WebkitGTK library
Group: Development/GNOME and GTK+
BuildArch: noarch
Requires: %name-gir = %version-%release
Requires: libjavascriptcoregtk2-gir = %version-%release
Requires: libjavascriptcoregtk2-devel = %version-%release
Requires: libjavascriptcoregtk2-gir-devel = %version-%release
Provides: libwebkit-gir-devel = %version-%release
Obsoletes: libwebkit-gir-devel < %version

%description gir-devel
GObject introspection devel data for the WebkitGTK library

%package -n libjavascriptcoregtk2-gir
Summary: GObject introspection data for the JavaScriptCore library
Group: System/Libraries
Requires: libjavascriptcoregtk2 = %version-%release

%description -n libjavascriptcoregtk2-gir
GObject introspection data for the JavaScriptCore library

%package -n libjavascriptcoregtk2-gir-devel
Summary: GObject introspection devel data for the JavaScriptCore library
Group: Development/GNOME and GTK+
BuildArch: noarch
Requires: libjavascriptcoregtk2-gir = %version-%release
Requires: libjavascriptcoregtk2-devel = %version-%release

%description -n libjavascriptcoregtk2-gir-devel
GObject introspection devel data for the JavaScriptCore library

%prep
%setup -n webkitgtk-%version
%patch
%patch3
%patch4 -p1
%patch5
%patch6 -p2
%patch7 -p1
%patch8 -b .orig
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1 -b .glib-2.68
%patch13 -p1 -b .volatile
%patch14 -p1 -b .SoupSession
%patch3500 -p1 -b .la64

# fix build translations

%__subst 's|^all-local:|all-local: stamp-po|' GNUmakefile.am
rm -f Source/autotools/{compile,config.guess,config.sub,depcomp,install-sh,ltmain.sh,missing,libtool.m4,ltoptions.m4,ltsugar.m4,ltversion.m4,lt~obsolete.m4,gsettings.m4,gtk-doc.m4}

%build
%ifarch ppc64le loongarch64
%add_optflags -DENABLE_YARR_JIT=0
%endif
%add_optflags -Wno-expansion-to-defined -Wno-implicit-fallthrough -Wno-class-memaccess -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36
# Use linker flags to reduce memory consumption
%add_optflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads

# Build with -g1 on all platforms to avoid running into 4 GB ar format limit

# https://bugs.webkit.org/show_bug.cgi?id=91154
%define optflags_debug -g1

echo "GTK_DOC_CHECK([1.10])" >> configure.ac
gtkdocize --copy
export PYTHON=python2
%autoreconf -I Source/autotools
%configure \
--enable-video \
--with-acceleration-backend=%acceleration_backend \
--enable-webgl \
%{subst_enable introspection} \
%{subst_enable geolocation} \
%{?_enable_web_audio:--enable-web-audio} \
%{?_enable_media_stream:--enable-media-stream} \
--with-gtk=%gtk_ver \
--disable-webkit2 \
%{subst_enable jit} \
PYTHON=%_bindir/python2

mkdir -p DerivedSources/webkit
mkdir -p DerivedSources/ANGLE
mkdir -p DerivedSources/WebKit2/webkit2gtk/webkit2
mkdir -p DerivedSources/InjectedBundle
mkdir -p DerivedSources/webkitdom
mkdir -p DerivedSources/Platform
mkdir -p Programs/resources

n=%smp
%make -j $n

%install
%makeinstall_std

#cleanup

rm -rf %buildroot%_includedir/webkitgtk-1.0/webkit2

%find_lang WebKitGTK-2.0

%check
xvfb-run make check

%files -f WebKitGTK-2.0.lang
%_libdir/lib%_name-%api_ver.so.*
%dir %_datadir/%_name-%api_ver
%_datadir/%_name-%api_ver/images
%_datadir/%_name-%api_ver/resources

%files devel
%_libdir/lib%_name-%api_ver.so
%dir %_includedir/%_name-%api_ver
%_includedir/%_name-%api_ver/webkit/
%_includedir/%_name-%api_ver/webkitdom/
%_pkgconfigdir/webkit-%api_ver.pc

%files devel-doc
%_gtk_docdir/*

%files -n libjavascriptcoregtk2
%_libdir/libjavascriptcoregtk-%api_ver.so.*

%files -n libjavascriptcoregtk2-devel
%_includedir/%_name-%api_ver/JavaScriptCore/
%_libdir/libjavascriptcoregtk-%api_ver.so
%_pkgconfigdir/javascriptcoregtk-%api_ver.pc

%files jsc
%_bindir/jsc*

%if_enabled introspection
%files gir
%_typelibdir/WebKit-%api_ver.typelib

%files gir-devel
%_girdir/WebKit-%api_ver.gir

%files -n libjavascriptcoregtk2-gir
%_typelibdir/JavaScriptCore-%api_ver.typelib

%files -n libjavascriptcoregtk2-gir-devel
%_girdir/JavaScriptCore-%api_ver.gir
%endif

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin