#6 Replace WebKitGTK pacrunner backend with duktape
Merged 8 months ago by kalev. Opened 8 months ago by catanzaro.
rpms/ catanzaro/libproxy mcatanzaro/duktape  into  rawhide

file modified
+37 -36
@@ -1,10 +1,9 @@ 

  # When we are bootstrapping, we drop some dependencies.

- # Set this to 0 after bootstrapping.

- %{!?_with_bootstrap: %global bootstrap 0}

+ %bcond_with bootstrap

  

  Name:           libproxy

  Version:        0.4.18

- Release:        2%{?dist}

+ Release:        3%{?dist}

  Summary:        A library handling all the details of proxy configuration

  

  License:        LGPLv2+
@@ -13,28 +12,20 @@ 

  # Taken from the Debian package.

  Source1:        proxy.1

  

- Patch01:        webkitdep.patch

- 

  BuildRequires:  cmake >= 2.6.0

  BuildRequires:  gcc-c++

  

- %if ! 0%{?bootstrap}

+ %if %{without bootstrap}

  # gnome

  BuildRequires:  pkgconfig(gio-2.0) >= 2.26

  # NetworkManager

  BuildRequires:  pkgconfig(libnm)

- # pacrunner (and NetworkManager)

+ # ConnMan's pacrunner (and NetworkManager)

  BuildRequires:  pkgconfig(dbus-1)

- # webkit (gtk3)

- BuildRequires:  pkgconfig(javascriptcoregtk-4.1)

+ # for libproxy's duktape pacrunner

+ BuildRequires:  pkgconfig(duktape)

  # Python

  BuildRequires:  python3-devel

- %else

- # Obsoletes of disabled subpackages.

- Provides: %{name}-mozjs = %{version}-%{release}

- Obsoletes: %{name}-mozjs < %{version}-%{release}

- Provides: %{name}-webkitgtk4 = %{version}-%{release}

- Obsoletes: %{name}-webkitgtk4 < %{version}-%{release}

  %endif

  

  
@@ -44,7 +35,7 @@ 

      * extremely small core footprint (< 35K)

      * no external dependencies within libproxy core

        (libproxy plugins may have dependencies)

-     * only 3 functions in the stable external API

+     * only 4 functions in the stable external API

      * dynamic adjustment to changing network topology

      * a standard way of dealing with proxy settings across all scenarios

      * a sublime sense of joy and accomplishment
@@ -57,7 +48,7 @@ 

  %description    bin

  The %{name}-bin package contains the proxy binary for %{name}

  

- %if ! 0%{?bootstrap}

+ %if %{without bootstrap}

  %package -n     python3-%{name}

  Summary:        Binding for %{name} and python3

  Requires:       %{name} = %{version}-%{release}
@@ -92,15 +83,16 @@ 

  The %{name}-networkmanager package contains the %{name} plugin

  for networkmanager.

  

- %package        webkitgtk4

- Summary:        Plugin for %{name} and webkitgtk3

+ %package        duktape

+ Summary:        Plugin for %{name} and duktape

  Requires:       %{name}%{?_isa} = %{version}-%{release}

  Provides:       %{name}-pac = %{version}-%{release}

  Obsoletes:      %{name}-mozjs <= %{version}-%{release}

+ Obsoletes:      %{name}-webkitgtk4 <= %{version}-%{release}

  

- %description    webkitgtk4

- The %{name}-webkitgtk4 package contains the %{name} plugin for

- webkitgtk3.

+ %description    duktape

+ The %{name}-duktape package contains the %{name} plugin for

+ duktape.

  

  %package        pacrunner

  Summary:        Plugin for %{name} and PacRunner
@@ -110,7 +102,7 @@ 

  

  %description    pacrunner

  The %{name}-pacrunner package contains the %{name} plugin for

- PacRunner.

+ ConnMan's PacRunner.

  %endif

  

  
@@ -131,22 +123,28 @@ 

  %cmake \

    -DMODULE_INSTALL_DIR=%{_libdir}/%{name}/%{version}/modules \

    -DBIPR=OFF \

+   -DWITH_GNOME=OFF \

+   -DWITH_MOZJS=OFF \

+   -DWITH_PERL=OFF \

+   -DWITH_PYTHON2=OFF \

+   -DWITH_WEBKIT=OFF \

+   -DWITH_WEBKIT3=OFF \

+ %if %{without bootstrap}

+   -DWITH_DUKTAPE=ON \

+   -DWITH_GNOME3=ON \

+   -DWITH_PYTHON3=ON \

  %if 0%{?fedora}

    -DWITH_KDE=ON \

  %else

    -DWITH_KDE=OFF \

  %endif

-   -DWITH_MOZJS=OFF \

-   -DWITH_PERL=OFF \

- %if ! 0%{?bootstrap}

-   -DWITH_GNOME3=ON \

-   -DWITH_PYTHON2=OFF \

-   -DWITH_PYTHON3=ON \

-   -DWITH_WEBKIT3=ON

  %else

-   -DWITH_PYTHON2=OFF \

-   -DWITH_PYTHON3=OFF

+   -DWITH_DUKTAPE=OFF \

+   -DWITH_KDE=OFF \

+   -DWITH_GNOME3=OFF \

+   -DWITH_PYTHON3=OFF \

  %endif

+   %{nil}

  %cmake_build

  

  
@@ -178,11 +176,14 @@ 

  %{_bindir}/proxy

  %{_mandir}/man1/proxy.1*

  

- %if ! 0%{?bootstrap}

+ %if %{without bootstrap}

  %files -n python3-%{name}

  %{python3_sitelib}/__pycache__/*

  %{python3_sitelib}/%{name}.*

  

+ %files duktape

+ %{_libdir}/%{name}/%{version}/modules/pacrunner_duktape.so

+ 

  %files gnome

  %{_libdir}/%{name}/%{version}/modules/config_gnome3.so

  %{_libexecdir}/pxgsettings
@@ -195,9 +196,6 @@ 

  %files networkmanager

  %{_libdir}/%{name}/%{version}/modules/network_networkmanager.so

  

- %files webkitgtk4

- %{_libdir}/%{name}/%{version}/modules/pacrunner_webkit.so

- 

  %files pacrunner

  %{_libdir}/%{name}/%{version}/modules/config_pacrunner.so

  %endif
@@ -210,6 +208,9 @@ 

  

  

  %changelog

+ * Wed Jul 20 2022 Michael Catanzaro <mcatanzaro@redhat.com> - 0.4.18-3

+ - Replace WebKitGTK pacrunner backend with duktape

+ 

  * Tue Jul 19 2022 Milan Crha <mcrha@redhat.com> - 0.4.18-2

  - Change WebKitGTK API dependency to 4.1 (using libsoup3)

  

file removed
-21
@@ -1,21 +0,0 @@ 

- diff -up libproxy-0.4.18/libproxy/cmake/modules/pacrunner_webkit.cmk.1 libproxy-0.4.18/libproxy/cmake/modules/pacrunner_webkit.cmk

- --- libproxy-0.4.18/libproxy/cmake/modules/pacrunner_webkit.cmk.1	2022-07-19 15:50:24.029762425 +0200

- +++ libproxy-0.4.18/libproxy/cmake/modules/pacrunner_webkit.cmk	2022-07-19 15:50:27.977762571 +0200

- @@ -13,11 +13,14 @@ elseif(APPLE)

-    endif()

-  else()

-    if(WITH_WEBKIT3)

- -    px_check_modules(WEBKIT "javascriptcoregtk-4.0")

- +    px_check_modules(WEBKIT "javascriptcoregtk-4.1")

-      if(NOT WEBKIT_LIBRARIES)

- -      px_check_modules(WEBKIT "javascriptcoregtk-3.0 >= 1.5.0")

- +      px_check_modules(WEBKIT "javascriptcoregtk-4.0")

-        if(NOT WEBKIT_LIBRARIES)

- -        px_check_modules(WEBKIT "webkitgtk-3.0 < 1.5.0")

- +        px_check_modules(WEBKIT "javascriptcoregtk-3.0 >= 1.5.0")

- +        if(NOT WEBKIT_LIBRARIES)

- +          px_check_modules(WEBKIT "webkitgtk-3.0 < 1.5.0")

- +        endif(NOT WEBKIT_LIBRARIES)

-        endif(NOT WEBKIT_LIBRARIES)

-      endif(NOT WEBKIT_LIBRARIES)

-    else(WITH_WEBKIT)

Like the mozjs pacrunner backend before it, the WebKitGTK pacrunner backend is no longer safe. See https://github.com/libproxy/libproxy/issues/81#issuecomment-1190806506 for explanation.

This commit also simplifies the bootstrap conditionals a bit, as well as the build flags.

I do not know libproxy at all, not sure why I'm CC-ed here. Maybe you meant @kalev instead?

+1 from me, makes sense.

Pull-Request has been merged by kalev

8 months ago
Metadata