orca-slicer, wxGTK31: remove dependency on libsoup2 (#430171)

authored by Sandro and committed by GitHub 5efd679a 29484ab6

+332 -9
+3
pkgs/applications/misc/prusa-slicer/super-slicer.nix
··· 32 32 hash = "sha256-xGL5I2+bPjmZGSTYe1L7VAmvLHbwd934o/cxg9baEvQ="; 33 33 fetchSubmodules = true; 34 34 }; 35 + patches = [ 36 + ../../../by-name/wx/wxGTK31/0001-fix-assertion-using-hide-in-destroy.patch 37 + ]; 35 38 }); 36 39 37 40 versions = {
+2 -2
pkgs/by-name/or/orca-slicer/package.nix
··· 35 35 pcre, 36 36 systemd, 37 37 tbb_2021, 38 - webkitgtk_4_0, 38 + webkitgtk_4_1, 39 39 wxGTK31, 40 40 xorg, 41 41 libnoise, ··· 112 112 openvdb 113 113 pcre 114 114 tbb_2021 115 - webkitgtk_4_0 115 + webkitgtk_4_1 116 116 wxGTK' 117 117 xorg.libX11 118 118 opencv.cxxdev
+318
pkgs/by-name/wx/wxGTK31/0002-support-webkitgtk-41.patch
··· 1 + diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake 2 + index 3ff14ab91f..e47e9b0ceb 100644 3 + --- a/build/cmake/init.cmake 4 + +++ b/build/cmake/init.cmake 5 + @@ -429,15 +429,21 @@ if(wxUSE_GUI) 6 + if(wxUSE_WEBVIEW) 7 + if(WXGTK) 8 + if(wxUSE_WEBVIEW_WEBKIT) 9 + - find_package(LIBSOUP) 10 + + set(WEBKIT_LIBSOUP_VERSION 2.4) 11 + if(WXGTK2) 12 + find_package(WEBKIT 1.0) 13 + elseif(WXGTK3) 14 + - find_package(WEBKIT2) 15 + + find_package(WEBKIT2 4.1) 16 + + if(WEBKIT2_FOUND) 17 + + set(WEBKIT_LIBSOUP_VERSION 3.0) 18 + + else() 19 + + find_package(WEBKIT2 4.0) 20 + + endif() 21 + if(NOT WEBKIT2_FOUND) 22 + find_package(WEBKIT 3.0) 23 + endif() 24 + endif() 25 + + find_package(LIBSOUP ${WEBKIT_LIBSOUP_VERSION}) 26 + endif() 27 + set(wxUSE_WEBVIEW_WEBKIT OFF) 28 + set(wxUSE_WEBVIEW_WEBKIT2 OFF) 29 + diff --git a/build/cmake/modules/FindLIBSOUP.cmake b/build/cmake/modules/FindLIBSOUP.cmake 30 + index cbfba1cf93..2433d141ea 100644 31 + --- a/build/cmake/modules/FindLIBSOUP.cmake 32 + +++ b/build/cmake/modules/FindLIBSOUP.cmake 33 + @@ -31,19 +31,27 @@ 34 + # LibSoup does not provide an easy way to retrieve its version other than its 35 + # .pc file, so we need to rely on PC_LIBSOUP_VERSION and REQUIRE the .pc file 36 + # to be found. 37 + +SET(LIBSOUP_VERSION 2.4) 38 + +if(DEFINED LIBSOUP_FIND_VERSION) 39 + + SET(LIBSOUP_VERSION ${LIBSOUP_FIND_VERSION}) 40 + +endif() 41 + + 42 + +set(LIBSOUP_INCLUDE_DIRS LIBSOUP_INCLUDE_DIRS-NOTFOUND) 43 + +set(LIBSOUP_LIBRARIES LIBSOUP_LIBRARIES-NOTFOUND) 44 + + 45 + FIND_PACKAGE(PkgConfig) 46 + -PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-2.4) 47 + +PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-${LIBSOUP_VERSION}) 48 + 49 + if(PC_LIBSOUP_FOUND) 50 + FIND_PATH(LIBSOUP_INCLUDE_DIRS 51 + NAMES libsoup/soup.h 52 + HINTS ${PC_LIBSOUP_INCLUDEDIR} 53 + ${PC_LIBSOUP_INCLUDE_DIRS} 54 + - PATH_SUFFIXES libsoup-2.4 55 + + PATH_SUFFIXES libsoup-${LIBSOUP_VERSION} 56 + ) 57 + 58 + FIND_LIBRARY(LIBSOUP_LIBRARIES 59 + - NAMES soup-2.4 60 + + NAMES soup-${LIBSOUP_VERSION} 61 + HINTS ${PC_LIBSOUP_LIBDIR} 62 + ${PC_LIBSOUP_LIBRARY_DIRS} 63 + ) 64 + diff --git a/build/cmake/modules/FindWEBKIT2.cmake b/build/cmake/modules/FindWEBKIT2.cmake 65 + index 133e7a4563..e39077ac4a 100644 66 + --- a/build/cmake/modules/FindWEBKIT2.cmake 67 + +++ b/build/cmake/modules/FindWEBKIT2.cmake 68 + @@ -5,7 +5,10 @@ 69 + # WEBKIT2_LIBRARIES - List of libraries when using Webkit2. 70 + # WEBKIT2_FOUND - True if Webkit2 found. 71 + 72 + -SET( WEBKIT2_VERSION 4.0) 73 + +SET(WEBKIT2_VERSION 4.0) 74 + +if(DEFINED WEBKIT2_FIND_VERSION) 75 + + SET(WEBKIT2_VERSION ${WEBKIT2_FIND_VERSION}) 76 + +endif() 77 + 78 + set(WEBKIT2_INCLUDE_DIR WEBKIT2_INCLUDE_DIR-NOTFOUND) 79 + set(WEBKIT2_LIBRARY WEBKIT2_LIBRARY-NOTFOUND) 80 + diff --git a/configure b/configure 81 + index 41e811071d..2f3ad0113e 100755 82 + --- a/configure 83 + +++ b/configure 84 + @@ -1047,7 +1047,6 @@ infodir 85 + docdir 86 + oldincludedir 87 + includedir 88 + -runstatedir 89 + localstatedir 90 + sharedstatedir 91 + sysconfdir 92 + @@ -1495,7 +1494,6 @@ datadir='${datarootdir}' 93 + sysconfdir='${prefix}/etc' 94 + sharedstatedir='${prefix}/com' 95 + localstatedir='${prefix}/var' 96 + -runstatedir='${localstatedir}/run' 97 + includedir='${prefix}/include' 98 + oldincludedir='/usr/include' 99 + docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' 100 + @@ -1748,15 +1746,6 @@ do 101 + | -silent | --silent | --silen | --sile | --sil) 102 + silent=yes ;; 103 + 104 + - -runstatedir | --runstatedir | --runstatedi | --runstated \ 105 + - | --runstate | --runstat | --runsta | --runst | --runs \ 106 + - | --run | --ru | --r) 107 + - ac_prev=runstatedir ;; 108 + - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ 109 + - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ 110 + - | --run=* | --ru=* | --r=*) 111 + - runstatedir=$ac_optarg ;; 112 + - 113 + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) 114 + ac_prev=sbindir ;; 115 + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ 116 + @@ -1894,7 +1883,7 @@ fi 117 + for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ 118 + datadir sysconfdir sharedstatedir localstatedir includedir \ 119 + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ 120 + - libdir localedir mandir runstatedir 121 + + libdir localedir mandir 122 + do 123 + eval ac_val=\$$ac_var 124 + # Remove trailing slashes. 125 + @@ -2047,7 +2036,6 @@ Fine tuning of the installation directories: 126 + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] 127 + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 128 + --localstatedir=DIR modifiable single-machine data [PREFIX/var] 129 + - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] 130 + --libdir=DIR object code libraries [EPREFIX/lib] 131 + --includedir=DIR C header files [PREFIX/include] 132 + --oldincludedir=DIR C header files for non-gcc [/usr/include] 133 + @@ -41677,6 +41665,86 @@ pkg_failed=no 134 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT" >&5 135 + $as_echo_n "checking for WEBKIT... " >&6; } 136 + 137 + +if test -n "$PKG_CONFIG"; then 138 + + if test -n "$WEBKIT_CFLAGS"; then 139 + + pkg_cv_WEBKIT_CFLAGS="$WEBKIT_CFLAGS" 140 + + else 141 + + if test -n "$PKG_CONFIG" && \ 142 + + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.1\""; } >&5 143 + + ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.1") 2>&5 144 + + ac_status=$? 145 + + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 146 + + test $ac_status = 0; }; then 147 + + pkg_cv_WEBKIT_CFLAGS=`$PKG_CONFIG --cflags "webkit2gtk-4.1" 2>/dev/null` 148 + +else 149 + + pkg_failed=yes 150 + +fi 151 + + fi 152 + +else 153 + + pkg_failed=untried 154 + +fi 155 + +if test -n "$PKG_CONFIG"; then 156 + + if test -n "$WEBKIT_LIBS"; then 157 + + pkg_cv_WEBKIT_LIBS="$WEBKIT_LIBS" 158 + + else 159 + + if test -n "$PKG_CONFIG" && \ 160 + + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.1\""; } >&5 161 + + ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.1") 2>&5 162 + + ac_status=$? 163 + + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 164 + + test $ac_status = 0; }; then 165 + + pkg_cv_WEBKIT_LIBS=`$PKG_CONFIG --libs "webkit2gtk-4.1" 2>/dev/null` 166 + +else 167 + + pkg_failed=yes 168 + +fi 169 + + fi 170 + +else 171 + + pkg_failed=untried 172 + +fi 173 + + 174 + + 175 + + 176 + +if test $pkg_failed = yes; then 177 + + 178 + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 179 + + _pkg_short_errors_supported=yes 180 + +else 181 + + _pkg_short_errors_supported=no 182 + +fi 183 + + if test $_pkg_short_errors_supported = yes; then 184 + + WEBKIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "webkit2gtk-4.1"` 185 + + else 186 + + WEBKIT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "webkit2gtk-4.1"` 187 + + fi 188 + + # Put the nasty error message in config.log where it belongs 189 + + echo "$WEBKIT_PKG_ERRORS" >&5 190 + + 191 + + 192 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&5 193 + +$as_echo "$as_me: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&2;} 194 + + 195 + +elif test $pkg_failed = untried; then 196 + + 197 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&5 198 + +$as_echo "$as_me: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&2;} 199 + + 200 + +else 201 + + WEBKIT_CFLAGS=$pkg_cv_WEBKIT_CFLAGS 202 + + WEBKIT_LIBS=$pkg_cv_WEBKIT_LIBS 203 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 204 + +$as_echo "yes" >&6; } 205 + + 206 + + USE_WEBVIEW_WEBKIT2=1 207 + + CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" 208 + + EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" 209 + + 210 + +fi 211 + + if test "$USE_WEBVIEW_WEBKIT2" = 0; then 212 + + 213 + +pkg_failed=no 214 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT" >&5 215 + +$as_echo_n "checking for WEBKIT... " >&6; } 216 + + 217 + if test -n "$PKG_CONFIG"; then 218 + if test -n "$WEBKIT_CFLAGS"; then 219 + pkg_cv_WEBKIT_CFLAGS="$WEBKIT_CFLAGS" 220 + @@ -41732,13 +41800,13 @@ fi 221 + echo "$WEBKIT_PKG_ERRORS" >&5 222 + 223 + 224 + - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk not found, falling back to webkitgtk" >&5 225 + -$as_echo "$as_me: WARNING: webkit2gtk not found, falling back to webkitgtk" >&2;} 226 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&5 227 + +$as_echo "$as_me: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&2;} 228 + 229 + elif test $pkg_failed = untried; then 230 + 231 + - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk not found, falling back to webkitgtk" >&5 232 + -$as_echo "$as_me: WARNING: webkit2gtk not found, falling back to webkitgtk" >&2;} 233 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&5 234 + +$as_echo "$as_me: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&2;} 235 + 236 + else 237 + WEBKIT_CFLAGS=$pkg_cv_WEBKIT_CFLAGS 238 + @@ -41746,11 +41814,12 @@ else 239 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 240 + $as_echo "yes" >&6; } 241 + 242 + - USE_WEBVIEW_WEBKIT2=1 243 + - CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" 244 + - EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" 245 + + USE_WEBVIEW_WEBKIT2=1 246 + + CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" 247 + + EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" 248 + 249 + fi 250 + + fi 251 + fi 252 + if test "$USE_WEBVIEW_WEBKIT2" = 0; then 253 + webkitgtk=webkit-1.0 254 + diff --git a/configure.in b/configure.in 255 + index 41c4813def..a964272d51 100644 256 + --- a/configure.in 257 + +++ b/configure.in 258 + @@ -7474,15 +7474,27 @@ if test "$wxUSE_WEBVIEW" = "yes"; then 259 + if test "$wxUSE_GTK" = 1; then 260 + if test "$WXGTK3" = 1; then 261 + PKG_CHECK_MODULES([WEBKIT], 262 + - [webkit2gtk-4.0], 263 + + [webkit2gtk-4.1], 264 + [ 265 + USE_WEBVIEW_WEBKIT2=1 266 + CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" 267 + EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" 268 + ], 269 + [ 270 + - AC_MSG_WARN([webkit2gtk not found, falling back to webkitgtk]) 271 + + AC_MSG_WARN([webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0]) 272 + ]) 273 + + if test "$USE_WEBVIEW_WEBKIT2" = 0; then 274 + + PKG_CHECK_MODULES([WEBKIT], 275 + + [webkit2gtk-4.0], 276 + + [ 277 + + USE_WEBVIEW_WEBKIT2=1 278 + + CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS" 279 + + EXTRALIBS_WEBVIEW="$WEBKIT_LIBS" 280 + + ], 281 + + [ 282 + + AC_MSG_WARN([webkit2gtk-4.0 not found, falling back to webkitgtk]) 283 + + ]) 284 + + fi 285 + fi 286 + if test "$USE_WEBVIEW_WEBKIT2" = 0; then 287 + webkitgtk=webkit-1.0 288 + diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp 289 + index a0161243f9..0fb9e823ca 100644 290 + --- a/src/gtk/webview_webkit2.cpp 291 + +++ b/src/gtk/webview_webkit2.cpp 292 + @@ -166,15 +166,18 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *, 293 + { 294 + switch (error->code) 295 + { 296 + +#if SOUP_MAJOR_VERSION < 3 297 + case SOUP_STATUS_CANCELLED: 298 + type = wxWEBVIEW_NAV_ERR_USER_CANCELLED; 299 + break; 300 + 301 + case SOUP_STATUS_CANT_RESOLVE: 302 + +#endif 303 + case SOUP_STATUS_NOT_FOUND: 304 + type = wxWEBVIEW_NAV_ERR_NOT_FOUND; 305 + break; 306 + 307 + +#if SOUP_MAJOR_VERSION < 3 308 + case SOUP_STATUS_CANT_RESOLVE_PROXY: 309 + case SOUP_STATUS_CANT_CONNECT: 310 + case SOUP_STATUS_CANT_CONNECT_PROXY: 311 + @@ -186,6 +189,7 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *, 312 + case SOUP_STATUS_MALFORMED: 313 + type = wxWEBVIEW_NAV_ERR_REQUEST; 314 + break; 315 + +#endif 316 + 317 + case SOUP_STATUS_BAD_REQUEST: 318 + type = wxWEBVIEW_NAV_ERR_REQUEST;
+6 -3
pkgs/by-name/wx/wxGTK31/package.nix
··· 21 21 withEGL ? true, 22 22 withMesa ? !stdenv.hostPlatform.isDarwin, 23 23 withWebKit ? stdenv.hostPlatform.isDarwin, 24 - webkitgtk_4_0, 24 + webkitgtk_4_1, 25 25 libpng, 26 26 }: 27 27 ··· 39 39 40 40 patches = [ 41 41 # https://github.com/wxWidgets/wxWidgets/issues/17942 42 - ./patches/0001-fix-assertion-using-hide-in-destroy.patch 42 + ./0001-fix-assertion-using-hide-in-destroy.patch 43 + # Add support for libwebkit2gtk-4.1 and libsoup-3.0, cherry-picked from 44 + # https://github.com/SoftFever/Orca-deps-wxWidgets/commit/1b8664426603376b68f8ca3c54de97ec630e5940 45 + ./0002-support-webkitgtk-41.patch 43 46 ]; 44 47 45 48 nativeBuildInputs = [ pkg-config ]; ··· 58 61 ] 59 62 ++ lib.optional withCurl curl 60 63 ++ lib.optional withMesa libGLU 61 - ++ lib.optional (withWebKit && !stdenv.hostPlatform.isDarwin) webkitgtk_4_0 64 + ++ lib.optional (withWebKit && !stdenv.hostPlatform.isDarwin) webkitgtk_4_1 62 65 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 63 66 libpng 64 67 ];
pkgs/by-name/wx/wxGTK31/patches/0001-fix-assertion-using-hide-in-destroy.patch pkgs/by-name/wx/wxGTK31/0001-fix-assertion-using-hide-in-destroy.patch