mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-12 02:40:31 +08:00
orca-slicer, wxGTK31: remove dependency on libsoup2 (#430171)
This commit is contained in:
@@ -32,6 +32,9 @@ let
|
||||
hash = "sha256-xGL5I2+bPjmZGSTYe1L7VAmvLHbwd934o/cxg9baEvQ=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
patches = [
|
||||
../../../by-name/wx/wxGTK31/0001-fix-assertion-using-hide-in-destroy.patch
|
||||
];
|
||||
});
|
||||
|
||||
versions = {
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
pcre,
|
||||
systemd,
|
||||
tbb_2021,
|
||||
webkitgtk_4_0,
|
||||
webkitgtk_4_1,
|
||||
wxGTK31,
|
||||
xorg,
|
||||
libnoise,
|
||||
@@ -112,7 +112,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
openvdb
|
||||
pcre
|
||||
tbb_2021
|
||||
webkitgtk_4_0
|
||||
webkitgtk_4_1
|
||||
wxGTK'
|
||||
xorg.libX11
|
||||
opencv.cxxdev
|
||||
|
||||
@@ -20,15 +20,14 @@ index 9c5cb96..e92a0e3 100644
|
||||
@@ -175,6 +175,11 @@ if (WIN32)
|
||||
target_link_libraries(BambuStudio_app_gui PRIVATE boost_headeronly)
|
||||
endif ()
|
||||
|
||||
|
||||
+# We link against webkit2gtk symbols in src/slic3r/GUI/Widgets/WebView.cpp
|
||||
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
+ target_link_libraries(libslic3r_gui "-lwebkit2gtk-4.0")
|
||||
+ target_link_libraries(libslic3r_gui "-lwebkit2gtk-4.1")
|
||||
+endif ()
|
||||
+
|
||||
# Link the resources dir to where Slic3r GUI expects it
|
||||
set(output_dlls_Release "")
|
||||
set(output_dlls_Debug "")
|
||||
--
|
||||
--
|
||||
2.38.1
|
||||
|
||||
|
||||
318
pkgs/by-name/wx/wxGTK31/0002-support-webkitgtk-41.patch
Normal file
318
pkgs/by-name/wx/wxGTK31/0002-support-webkitgtk-41.patch
Normal file
@@ -0,0 +1,318 @@
|
||||
diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake
|
||||
index 3ff14ab91f..e47e9b0ceb 100644
|
||||
--- a/build/cmake/init.cmake
|
||||
+++ b/build/cmake/init.cmake
|
||||
@@ -429,15 +429,21 @@ if(wxUSE_GUI)
|
||||
if(wxUSE_WEBVIEW)
|
||||
if(WXGTK)
|
||||
if(wxUSE_WEBVIEW_WEBKIT)
|
||||
- find_package(LIBSOUP)
|
||||
+ set(WEBKIT_LIBSOUP_VERSION 2.4)
|
||||
if(WXGTK2)
|
||||
find_package(WEBKIT 1.0)
|
||||
elseif(WXGTK3)
|
||||
- find_package(WEBKIT2)
|
||||
+ find_package(WEBKIT2 4.1)
|
||||
+ if(WEBKIT2_FOUND)
|
||||
+ set(WEBKIT_LIBSOUP_VERSION 3.0)
|
||||
+ else()
|
||||
+ find_package(WEBKIT2 4.0)
|
||||
+ endif()
|
||||
if(NOT WEBKIT2_FOUND)
|
||||
find_package(WEBKIT 3.0)
|
||||
endif()
|
||||
endif()
|
||||
+ find_package(LIBSOUP ${WEBKIT_LIBSOUP_VERSION})
|
||||
endif()
|
||||
set(wxUSE_WEBVIEW_WEBKIT OFF)
|
||||
set(wxUSE_WEBVIEW_WEBKIT2 OFF)
|
||||
diff --git a/build/cmake/modules/FindLIBSOUP.cmake b/build/cmake/modules/FindLIBSOUP.cmake
|
||||
index cbfba1cf93..2433d141ea 100644
|
||||
--- a/build/cmake/modules/FindLIBSOUP.cmake
|
||||
+++ b/build/cmake/modules/FindLIBSOUP.cmake
|
||||
@@ -31,19 +31,27 @@
|
||||
# LibSoup does not provide an easy way to retrieve its version other than its
|
||||
# .pc file, so we need to rely on PC_LIBSOUP_VERSION and REQUIRE the .pc file
|
||||
# to be found.
|
||||
+SET(LIBSOUP_VERSION 2.4)
|
||||
+if(DEFINED LIBSOUP_FIND_VERSION)
|
||||
+ SET(LIBSOUP_VERSION ${LIBSOUP_FIND_VERSION})
|
||||
+endif()
|
||||
+
|
||||
+set(LIBSOUP_INCLUDE_DIRS LIBSOUP_INCLUDE_DIRS-NOTFOUND)
|
||||
+set(LIBSOUP_LIBRARIES LIBSOUP_LIBRARIES-NOTFOUND)
|
||||
+
|
||||
FIND_PACKAGE(PkgConfig)
|
||||
-PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-2.4)
|
||||
+PKG_CHECK_MODULES(PC_LIBSOUP QUIET libsoup-${LIBSOUP_VERSION})
|
||||
|
||||
if(PC_LIBSOUP_FOUND)
|
||||
FIND_PATH(LIBSOUP_INCLUDE_DIRS
|
||||
NAMES libsoup/soup.h
|
||||
HINTS ${PC_LIBSOUP_INCLUDEDIR}
|
||||
${PC_LIBSOUP_INCLUDE_DIRS}
|
||||
- PATH_SUFFIXES libsoup-2.4
|
||||
+ PATH_SUFFIXES libsoup-${LIBSOUP_VERSION}
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LIBSOUP_LIBRARIES
|
||||
- NAMES soup-2.4
|
||||
+ NAMES soup-${LIBSOUP_VERSION}
|
||||
HINTS ${PC_LIBSOUP_LIBDIR}
|
||||
${PC_LIBSOUP_LIBRARY_DIRS}
|
||||
)
|
||||
diff --git a/build/cmake/modules/FindWEBKIT2.cmake b/build/cmake/modules/FindWEBKIT2.cmake
|
||||
index 133e7a4563..e39077ac4a 100644
|
||||
--- a/build/cmake/modules/FindWEBKIT2.cmake
|
||||
+++ b/build/cmake/modules/FindWEBKIT2.cmake
|
||||
@@ -5,7 +5,10 @@
|
||||
# WEBKIT2_LIBRARIES - List of libraries when using Webkit2.
|
||||
# WEBKIT2_FOUND - True if Webkit2 found.
|
||||
|
||||
-SET( WEBKIT2_VERSION 4.0)
|
||||
+SET(WEBKIT2_VERSION 4.0)
|
||||
+if(DEFINED WEBKIT2_FIND_VERSION)
|
||||
+ SET(WEBKIT2_VERSION ${WEBKIT2_FIND_VERSION})
|
||||
+endif()
|
||||
|
||||
set(WEBKIT2_INCLUDE_DIR WEBKIT2_INCLUDE_DIR-NOTFOUND)
|
||||
set(WEBKIT2_LIBRARY WEBKIT2_LIBRARY-NOTFOUND)
|
||||
diff --git a/configure b/configure
|
||||
index 41e811071d..2f3ad0113e 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1047,7 +1047,6 @@ infodir
|
||||
docdir
|
||||
oldincludedir
|
||||
includedir
|
||||
-runstatedir
|
||||
localstatedir
|
||||
sharedstatedir
|
||||
sysconfdir
|
||||
@@ -1495,7 +1494,6 @@ datadir='${datarootdir}'
|
||||
sysconfdir='${prefix}/etc'
|
||||
sharedstatedir='${prefix}/com'
|
||||
localstatedir='${prefix}/var'
|
||||
-runstatedir='${localstatedir}/run'
|
||||
includedir='${prefix}/include'
|
||||
oldincludedir='/usr/include'
|
||||
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
||||
@@ -1748,15 +1746,6 @@ do
|
||||
| -silent | --silent | --silen | --sile | --sil)
|
||||
silent=yes ;;
|
||||
|
||||
- -runstatedir | --runstatedir | --runstatedi | --runstated \
|
||||
- | --runstate | --runstat | --runsta | --runst | --runs \
|
||||
- | --run | --ru | --r)
|
||||
- ac_prev=runstatedir ;;
|
||||
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
|
||||
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
|
||||
- | --run=* | --ru=* | --r=*)
|
||||
- runstatedir=$ac_optarg ;;
|
||||
-
|
||||
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||
ac_prev=sbindir ;;
|
||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||
@@ -1894,7 +1883,7 @@ fi
|
||||
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||
- libdir localedir mandir runstatedir
|
||||
+ libdir localedir mandir
|
||||
do
|
||||
eval ac_val=\$$ac_var
|
||||
# Remove trailing slashes.
|
||||
@@ -2047,7 +2036,6 @@ Fine tuning of the installation directories:
|
||||
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
||||
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||
--includedir=DIR C header files [PREFIX/include]
|
||||
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||
@@ -41677,6 +41665,86 @@ pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT" >&5
|
||||
$as_echo_n "checking for WEBKIT... " >&6; }
|
||||
|
||||
+if test -n "$PKG_CONFIG"; then
|
||||
+ if test -n "$WEBKIT_CFLAGS"; then
|
||||
+ pkg_cv_WEBKIT_CFLAGS="$WEBKIT_CFLAGS"
|
||||
+ else
|
||||
+ if test -n "$PKG_CONFIG" && \
|
||||
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.1\""; } >&5
|
||||
+ ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.1") 2>&5
|
||||
+ ac_status=$?
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
+ test $ac_status = 0; }; then
|
||||
+ pkg_cv_WEBKIT_CFLAGS=`$PKG_CONFIG --cflags "webkit2gtk-4.1" 2>/dev/null`
|
||||
+else
|
||||
+ pkg_failed=yes
|
||||
+fi
|
||||
+ fi
|
||||
+else
|
||||
+ pkg_failed=untried
|
||||
+fi
|
||||
+if test -n "$PKG_CONFIG"; then
|
||||
+ if test -n "$WEBKIT_LIBS"; then
|
||||
+ pkg_cv_WEBKIT_LIBS="$WEBKIT_LIBS"
|
||||
+ else
|
||||
+ if test -n "$PKG_CONFIG" && \
|
||||
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.1\""; } >&5
|
||||
+ ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.1") 2>&5
|
||||
+ ac_status=$?
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
+ test $ac_status = 0; }; then
|
||||
+ pkg_cv_WEBKIT_LIBS=`$PKG_CONFIG --libs "webkit2gtk-4.1" 2>/dev/null`
|
||||
+else
|
||||
+ pkg_failed=yes
|
||||
+fi
|
||||
+ fi
|
||||
+else
|
||||
+ pkg_failed=untried
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+
|
||||
+if test $pkg_failed = yes; then
|
||||
+
|
||||
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
+ _pkg_short_errors_supported=yes
|
||||
+else
|
||||
+ _pkg_short_errors_supported=no
|
||||
+fi
|
||||
+ if test $_pkg_short_errors_supported = yes; then
|
||||
+ WEBKIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "webkit2gtk-4.1"`
|
||||
+ else
|
||||
+ WEBKIT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "webkit2gtk-4.1"`
|
||||
+ fi
|
||||
+ # Put the nasty error message in config.log where it belongs
|
||||
+ echo "$WEBKIT_PKG_ERRORS" >&5
|
||||
+
|
||||
+
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&5
|
||||
+$as_echo "$as_me: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&2;}
|
||||
+
|
||||
+elif test $pkg_failed = untried; then
|
||||
+
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&5
|
||||
+$as_echo "$as_me: WARNING: webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0" >&2;}
|
||||
+
|
||||
+else
|
||||
+ WEBKIT_CFLAGS=$pkg_cv_WEBKIT_CFLAGS
|
||||
+ WEBKIT_LIBS=$pkg_cv_WEBKIT_LIBS
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
+$as_echo "yes" >&6; }
|
||||
+
|
||||
+ USE_WEBVIEW_WEBKIT2=1
|
||||
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
|
||||
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
|
||||
+
|
||||
+fi
|
||||
+ if test "$USE_WEBVIEW_WEBKIT2" = 0; then
|
||||
+
|
||||
+pkg_failed=no
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT" >&5
|
||||
+$as_echo_n "checking for WEBKIT... " >&6; }
|
||||
+
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
if test -n "$WEBKIT_CFLAGS"; then
|
||||
pkg_cv_WEBKIT_CFLAGS="$WEBKIT_CFLAGS"
|
||||
@@ -41732,13 +41800,13 @@ fi
|
||||
echo "$WEBKIT_PKG_ERRORS" >&5
|
||||
|
||||
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk not found, falling back to webkitgtk" >&5
|
||||
-$as_echo "$as_me: WARNING: webkit2gtk not found, falling back to webkitgtk" >&2;}
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&5
|
||||
+$as_echo "$as_me: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&2;}
|
||||
|
||||
elif test $pkg_failed = untried; then
|
||||
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk not found, falling back to webkitgtk" >&5
|
||||
-$as_echo "$as_me: WARNING: webkit2gtk not found, falling back to webkitgtk" >&2;}
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&5
|
||||
+$as_echo "$as_me: WARNING: webkit2gtk-4.0 not found, falling back to webkitgtk" >&2;}
|
||||
|
||||
else
|
||||
WEBKIT_CFLAGS=$pkg_cv_WEBKIT_CFLAGS
|
||||
@@ -41746,11 +41814,12 @@ else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
|
||||
- USE_WEBVIEW_WEBKIT2=1
|
||||
- CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
|
||||
- EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
|
||||
+ USE_WEBVIEW_WEBKIT2=1
|
||||
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
|
||||
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
|
||||
|
||||
fi
|
||||
+ fi
|
||||
fi
|
||||
if test "$USE_WEBVIEW_WEBKIT2" = 0; then
|
||||
webkitgtk=webkit-1.0
|
||||
diff --git a/configure.in b/configure.in
|
||||
index 41c4813def..a964272d51 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -7474,15 +7474,27 @@ if test "$wxUSE_WEBVIEW" = "yes"; then
|
||||
if test "$wxUSE_GTK" = 1; then
|
||||
if test "$WXGTK3" = 1; then
|
||||
PKG_CHECK_MODULES([WEBKIT],
|
||||
- [webkit2gtk-4.0],
|
||||
+ [webkit2gtk-4.1],
|
||||
[
|
||||
USE_WEBVIEW_WEBKIT2=1
|
||||
CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
|
||||
EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
|
||||
],
|
||||
[
|
||||
- AC_MSG_WARN([webkit2gtk not found, falling back to webkitgtk])
|
||||
+ AC_MSG_WARN([webkit2gtk-4.1 not found, falling back to webkit2gtk-4.0])
|
||||
])
|
||||
+ if test "$USE_WEBVIEW_WEBKIT2" = 0; then
|
||||
+ PKG_CHECK_MODULES([WEBKIT],
|
||||
+ [webkit2gtk-4.0],
|
||||
+ [
|
||||
+ USE_WEBVIEW_WEBKIT2=1
|
||||
+ CXXFLAGS="$CXXFLAGS $WEBKIT_CFLAGS"
|
||||
+ EXTRALIBS_WEBVIEW="$WEBKIT_LIBS"
|
||||
+ ],
|
||||
+ [
|
||||
+ AC_MSG_WARN([webkit2gtk-4.0 not found, falling back to webkitgtk])
|
||||
+ ])
|
||||
+ fi
|
||||
fi
|
||||
if test "$USE_WEBVIEW_WEBKIT2" = 0; then
|
||||
webkitgtk=webkit-1.0
|
||||
diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp
|
||||
index a0161243f9..0fb9e823ca 100644
|
||||
--- a/src/gtk/webview_webkit2.cpp
|
||||
+++ b/src/gtk/webview_webkit2.cpp
|
||||
@@ -166,15 +166,18 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *,
|
||||
{
|
||||
switch (error->code)
|
||||
{
|
||||
+#if SOUP_MAJOR_VERSION < 3
|
||||
case SOUP_STATUS_CANCELLED:
|
||||
type = wxWEBVIEW_NAV_ERR_USER_CANCELLED;
|
||||
break;
|
||||
|
||||
case SOUP_STATUS_CANT_RESOLVE:
|
||||
+#endif
|
||||
case SOUP_STATUS_NOT_FOUND:
|
||||
type = wxWEBVIEW_NAV_ERR_NOT_FOUND;
|
||||
break;
|
||||
|
||||
+#if SOUP_MAJOR_VERSION < 3
|
||||
case SOUP_STATUS_CANT_RESOLVE_PROXY:
|
||||
case SOUP_STATUS_CANT_CONNECT:
|
||||
case SOUP_STATUS_CANT_CONNECT_PROXY:
|
||||
@@ -186,6 +189,7 @@ wxgtk_webview_webkit_load_failed(WebKitWebView *,
|
||||
case SOUP_STATUS_MALFORMED:
|
||||
type = wxWEBVIEW_NAV_ERR_REQUEST;
|
||||
break;
|
||||
+#endif
|
||||
|
||||
case SOUP_STATUS_BAD_REQUEST:
|
||||
type = wxWEBVIEW_NAV_ERR_REQUEST;
|
||||
@@ -21,7 +21,7 @@
|
||||
withEGL ? true,
|
||||
withMesa ? !stdenv.hostPlatform.isDarwin,
|
||||
withWebKit ? stdenv.hostPlatform.isDarwin,
|
||||
webkitgtk_4_0,
|
||||
webkitgtk_4_1,
|
||||
libpng,
|
||||
}:
|
||||
|
||||
@@ -39,7 +39,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
patches = [
|
||||
# https://github.com/wxWidgets/wxWidgets/issues/17942
|
||||
./patches/0001-fix-assertion-using-hide-in-destroy.patch
|
||||
./0001-fix-assertion-using-hide-in-destroy.patch
|
||||
# Add support for libwebkit2gtk-4.1 and libsoup-3.0, cherry-picked from
|
||||
# https://github.com/SoftFever/Orca-deps-wxWidgets/commit/1b8664426603376b68f8ca3c54de97ec630e5940
|
||||
./0002-support-webkitgtk-41.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
@@ -58,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||
]
|
||||
++ lib.optional withCurl curl
|
||||
++ lib.optional withMesa libGLU
|
||||
++ lib.optional (withWebKit && !stdenv.hostPlatform.isDarwin) webkitgtk_4_0
|
||||
++ lib.optional (withWebKit && !stdenv.hostPlatform.isDarwin) webkitgtk_4_1
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
libpng
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user