summaryrefslogtreecommitdiff
path: root/freefilesync/debian/patches/ffs_devuan_gtk3.patch
blob: 3559261a5e77430e7d0d15bc8dd23286e5b5cd5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Author: B Stack
Source: Original research
Date: 2020-03-18
Message: Main patch to compile on Devuan using GTK3. BROKEN for FreeFileSync 10.21!
This reintroduces the gtk-3 usage, because Debian/Devuan stopped packaging libwxgtk3.0-dev (which used gtk2) and only does libwxgtk3.0-gtk3-dev. However, by reintroducing the gtk3, it brings back the old gtk3 instability from my previous packaging effort: https://freefilesync.org/forum/viewtopic.php?t=4918. /mnt/public/packages/old/freefilesync/freefilesync-9.7-1.master.tgz. Upstream never replied, but did note in the source that gtk3 is inherently unstable.
diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/Makefile 10.18-1/FreeFileSync/Source/Makefile
--- 10.11-0/FreeFileSync/Source/Makefile	2019-04-12 08:05:57.000000000 -0400
+++ 10.18-1/FreeFileSync/Source/Makefile	2019-11-21 09:42:57.408243242 -0500
@@ -16,9 +16,10 @@
 cxxFlags  += `pkg-config --cflags libssh2`
 linkFlags += `pkg-config --libs   libssh2`
 
-cxxFlags  += `pkg-config --cflags gtk+-2.0`
+cxxFlags  += `pkg-config --cflags gtk+-3.0`
+linkFlags += `pkg-config --libs   gtk+-3.0`
 #treat as system headers so that warnings are hidden:
-cxxFlags  += -isystem/usr/include/gtk-2.0
+cxxFlags  += -isystem/usr/include/gtk-3.0
 
 #support for SELinux (optional)
 SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES)
diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile
--- 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile	2020-05-17 18:30:59.289498093 -0400
+++ 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile	2020-05-17 19:32:59.791394275 -0400
@@ -7,9 +7,10 @@
 linkFlags += -s `wx-config --libs std, aui --debug=no` -lz -pthread
 
 #Gtk - support "no button border"
-cxxFlags  += `pkg-config --cflags gtk+-2.0`
+cxxFlags  += `pkg-config --cflags gtk+-3.0`
+linkFlags += `pkg-config --libs   gtk+-3.0`
 #treat as system headers so that warnings are hidden:
-cxxFlags  += -isystem/usr/include/gtk-2.0
+cxxFlags  += -isystem/usr/include/gtk-3.0
 
 cppFiles=
 cppFiles+=application.cpp
diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/wx+/dc.h 10.18-1/wx+/dc.h
--- 10.18-0/wx+/dc.h	2019-11-21 08:24:23.967769384 -0500
+++ 10.18-1/wx+/dc.h	2019-11-21 09:42:12.779786504 -0500
@@ -54,7 +54,7 @@
 #ifdef wxHAVE_DPI_INDEPENDENT_PIXELS //pulled from wx/window.h: https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/window.h#L2029
     return d; //e.g. macOS, GTK3
 #else //https://github.com/wxWidgets/wxWidgets/blob/master/src/common/wincmn.cpp#L2865
-    static_assert(GTK_MAJOR_VERSION == 2);
+    static_assert(GTK_MAJOR_VERSION == 3);
     //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
     //=> requires general fix at wxWidgets-level
     assert(wxTheApp); //only call after wxWidgets was initalized!
diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 10.18-1/FreeFileSync/Source/base/icon_loader.cpp
--- 10.18-0/FreeFileSync/Source/base/icon_loader.cpp	2019-11-21 08:24:23.955769262 -0500
+++ 10.18-1/FreeFileSync/Source/base/icon_loader.cpp	2019-11-21 09:42:15.439813730 -0500
@@ -18,7 +18,7 @@
 
 namespace
 {
-static_assert(GTK_MAJOR_VERSION == 2, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3.");
+static_assert(GTK_MAJOR_VERSION == 3, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3.");
 //gdk_threads_enter(); + ZEN_ON_SCOPE_EXIT(::gdk_threads_leave); is NOT enough; e.g. GTK3 + openSuse still crashes with:
 //  Gtk:ERROR:gtkicontheme.c:4026:proxy_pixbuf_destroy: assertion failed: (icon_info->proxy_pixbuf != NULL)
 //GTK icon theme internals: https://github.com/GNOME/gtk/blob/master/gtk/gtkicontheme.c
bgstack15