summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-misc')
-rw-r--r--x11-misc/barrier/Manifest1
-rw-r--r--x11-misc/barrier/barrier-2.3.3.ebuild83
-rw-r--r--x11-misc/barrier/files/barrier-2.3.3-gtest.patch116
-rw-r--r--x11-misc/barrier/files/barrier-2.3.3-tests.patch150
4 files changed, 350 insertions, 0 deletions
diff --git a/x11-misc/barrier/Manifest b/x11-misc/barrier/Manifest
index 7630b04f56f7..8870062b2d6c 100644
--- a/x11-misc/barrier/Manifest
+++ b/x11-misc/barrier/Manifest
@@ -1 +1,2 @@
DIST barrier-2.3.2.tar.gz 7244128 BLAKE2B 263be99ffb692e5b8e3e3450565fbaf5c5e2f23beca4beaf5d699547933be1bcdcbf1ed6b9ce8bd53f2a5dbb1eba3fc06490620555520fcff0e8d34ff2ad52cb SHA512 0452244afc3294aaafd89f18d2472e24fb2fc62426e7be91ab4ffceca4697c7acb8f4438fc299835f1312f0ada83911679abe6b8e1268631130c5877e193ff83
+DIST barrier-2.3.3.tar.gz 5465909 BLAKE2B 3f881526f53113e48f1ea2e1592ebf2e932a8296fcba331243678963945001e7700dddc3bf8957f85285aec02c3d3700d31786cef291862a9b21780ee9e96cd6 SHA512 1ac945ce090d5bbdae7bab7d4ca802cc2d54c1644a12088203b240e38078d32d3b30ae2f764ba27d66c9d709e430b0eb1b4576314d99dd6177d8b88d19b89777
diff --git a/x11-misc/barrier/barrier-2.3.3.ebuild b/x11-misc/barrier/barrier-2.3.3.ebuild
new file mode 100644
index 000000000000..502083619611
--- /dev/null
+++ b/x11-misc/barrier/barrier-2.3.3.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop virtualx xdg cmake
+
+DESCRIPTION="Share a mouse and keyboard between computers (fork of Synergy)"
+HOMEPAGE="https://github.com/debauchee/barrier"
+SRC_URI="https://github.com/debauchee/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="gui libressl test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ net-misc/curl
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ net-dns/avahi[mdnsresponder-compat]
+ )
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/gtest
+ x11-base/xorg-proto
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-tests.patch
+ "${FILESDIR}"/${P}-gtest.patch
+)
+
+DOCS=(
+ ChangeLog
+ README.md
+ doc/${PN}.conf.example{,-advanced,-basic}
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBARRIER_BUILD_GUI=$(usex gui)
+ -DBARRIER_BUILD_INSTALLER=OFF
+ -DBARRIER_BUILD_TESTS=$(usex test)
+ -DBARRIER_REVISION=00000000
+ -DBARRIER_USE_EXTERNAL_GTEST=ON
+ -DBARRIER_VERSION_STAGE=gentoo
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ "${BUILD_DIR}"/bin/unittests || die
+ virtx "${BUILD_DIR}"/bin/integtests || die
+}
+
+src_install() {
+ cmake_src_install
+ einstalldocs
+ doman doc/${PN}{c,s}.1
+
+ if use gui; then
+ doicon -s scalable res/${PN}.svg
+ doicon -s 256 res/${PN}.png
+ make_desktop_entry ${PN} Barrier ${PN} Utility
+ fi
+}
diff --git a/x11-misc/barrier/files/barrier-2.3.3-gtest.patch b/x11-misc/barrier/files/barrier-2.3.3-gtest.patch
new file mode 100644
index 000000000000..363f8c2c02c0
--- /dev/null
+++ b/x11-misc/barrier/files/barrier-2.3.3-gtest.patch
@@ -0,0 +1,116 @@
+From bd1db368b333783697d686c82c42e48c4bec8b9e Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Fri, 21 Aug 2020 23:13:58 +0100
+Subject: [PATCH] Add BARRIER_USE_EXTERNAL_GTEST CMake option to use external
+ GTest
+
+---
+ CMakeLists.txt | 1 +
+ src/test/CMakeLists.txt | 38 ++++++++++++++++++++----------
+ src/test/integtests/CMakeLists.txt | 4 +---
+ src/test/unittests/CMakeLists.txt | 4 +---
+ 4 files changed, 29 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4947d20f..18b242db 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,6 +21,7 @@ project (barrier C CXX)
+ option (BARRIER_BUILD_GUI "Build the GUI" ON)
+ option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
+ option (BARRIER_BUILD_TESTS "Build the tests" ON)
++option (BARRIER_USE_EXTERNAL_GTEST "Use external installation of Google Test framework" OFF)
+
+ set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
+ set (CMAKE_CXX_STANDARD 14)
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index daecb317..4a50e701 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -14,19 +14,33 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+-include_directories(
+- ../../ext/gtest
+- ../../ext/gtest/include
+- ../../ext/gmock
+- ../../ext/gmock/include)
+-
+-add_library(gtest STATIC ../../ext/gtest/src/gtest-all.cc)
+-add_library(gmock STATIC ../../ext/gmock/src/gmock-all.cc)
++if (BARRIER_USE_EXTERNAL_GTEST)
++ include (FindPkgConfig)
++ find_package(GTest REQUIRED)
++ pkg_check_modules(GMOCK REQUIRED gmock)
++ include_directories(
++ ${GTEST_INCLUDE_DIRS}
++ ${GMOCK_INCLUDE_DIRS}
++ )
++else()
++ include_directories(
++ ../../ext/gtest
++ ../../ext/gtest/include
++ ../../ext/gmock
++ ../../ext/gmock/include
++ )
+
+-if (UNIX)
+- # ignore warnings in gtest and gmock
+- set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w")
+- set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w")
++ add_library(gtest STATIC ../../ext/gtest/src/gtest-all.cc)
++ add_library(gmock STATIC ../../ext/gmock/src/gmock-all.cc)
++
++ set(GTEST_LIBRARIES gtest)
++ set(GMOCK_LIBRARIES gmock)
++
++ if (UNIX)
++ # ignore warnings in gtest and gmock
++ set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w")
++ set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w")
++ endif()
+ endif()
+
+ add_subdirectory(integtests)
+diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt
+index 0460d8df..9ef875bd 100644
+--- a/src/test/integtests/CMakeLists.txt
++++ b/src/test/integtests/CMakeLists.txt
+@@ -68,8 +68,6 @@ endif()
+
+ include_directories(
+ ../../
+- ../../../ext/gtest/include
+- ../../../ext/gmock/include
+ )
+
+ if (UNIX)
+@@ -80,4 +78,4 @@ endif()
+
+ add_executable(integtests ${sources})
+ target_link_libraries(integtests
+- arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS})
++ arch base client common io ipc mt net platform server synlib ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} ${libs} ${OPENSSL_LIBS})
+diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt
+index c46375ce..61a0d35f 100644
+--- a/src/test/unittests/CMakeLists.txt
++++ b/src/test/unittests/CMakeLists.txt
+@@ -50,8 +50,6 @@ list(APPEND headers ${platform_sources})
+
+ include_directories(
+ ../../
+- ../../../ext/gtest/include
+- ../../../ext/gmock/include
+ ../../../ext
+ )
+
+@@ -67,4 +65,4 @@ endif()
+
+ add_executable(unittests ${sources})
+ target_link_libraries(unittests
+- arch base client server common io net platform server synlib mt ipc gtest gmock ${libs} ${OPENSSL_LIBS})
++ arch base client server common io net platform server synlib mt ipc ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} ${libs} ${OPENSSL_LIBS})
+--
+2.26.2
+
diff --git a/x11-misc/barrier/files/barrier-2.3.3-tests.patch b/x11-misc/barrier/files/barrier-2.3.3-tests.patch
new file mode 100644
index 000000000000..a4cc0d665a07
--- /dev/null
+++ b/x11-misc/barrier/files/barrier-2.3.3-tests.patch
@@ -0,0 +1,150 @@
+From 4a031b8ce538af0c15857c37c1964bf144d5bc38 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Fri, 21 Aug 2020 22:22:48 +0100
+Subject: [PATCH] Add BARRIER_BUILD_TESTS CMake option to make tests optional
+
+---
+ CMakeLists.txt | 2 +-
+ src/CMakeLists.txt | 5 ++++-
+ src/lib/barrier/KeyMap.h | 4 ++++
+ src/test/unittests/barrier/KeyMapTests.cpp | 2 ++
+ 4 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6a377c04..4947d20f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,7 @@ project (barrier C CXX)
+
+ option (BARRIER_BUILD_GUI "Build the GUI" ON)
+ option (BARRIER_BUILD_INSTALLER "Build the installer" ON)
++option (BARRIER_BUILD_TESTS "Build the tests" ON)
+
+ set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
+ set (CMAKE_CXX_STANDARD 14)
+@@ -49,7 +50,6 @@ else()
+ endif()
+
+ set (libs)
+-include_directories (BEFORE SYSTEM ./ext/gtest/include)
+
+ if (UNIX)
+ if (NOT APPLE)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 55aad09d..c3dea51f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -19,7 +19,10 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}/lib)
+
+ add_subdirectory(lib)
+ add_subdirectory(cmd)
+-add_subdirectory(test)
++
++if (BARRIER_BUILD_TESTS)
++ add_subdirectory(test)
++endif()
+
+ if (BARRIER_BUILD_GUI)
+ add_subdirectory(gui)
+diff --git a/src/lib/barrier/KeyMap.h b/src/lib/barrier/KeyMap.h
+index b6eb8658..812b4d26 100644
+--- a/src/lib/barrier/KeyMap.h
++++ b/src/lib/barrier/KeyMap.h
+@@ -24,7 +24,9 @@
+ #include "common/stdset.h"
+ #include "common/stdvector.h"
+
++#ifdef TEST_ENV
+ #include <gtest/gtest_prod.h>
++#endif
+
+ namespace barrier {
+
+@@ -327,6 +329,7 @@ public:
+ //@}
+
+ private:
++#ifdef TEST_ENV
+ FRIEND_TEST(KeyMapTests,
+ findBestKey_requiredDown_matchExactFirstItem);
+ FRIEND_TEST(KeyMapTests,
+@@ -340,6 +343,7 @@ private:
+ FRIEND_TEST(KeyMapTests,
+ findBestKey_onlyOneRequiredDown_matchTwoRequiredChangesItem);
+ FRIEND_TEST(KeyMapTests, findBestKey_noRequiredDown_cannotMatch);
++#endif
+
+ private:
+ //! Ways to synthesize a key
+diff --git a/src/test/unittests/barrier/KeyMapTests.cpp b/src/test/unittests/barrier/KeyMapTests.cpp
+index 59806339..c0832199 100644
+--- a/src/test/unittests/barrier/KeyMapTests.cpp
++++ b/src/test/unittests/barrier/KeyMapTests.cpp
+@@ -15,6 +15,8 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
++#define TEST_ENV
++
+ #include "barrier/KeyMap.h"
+
+ #include "test/global/gtest.h"
+--
+2.26.2
+
+From 19e020080cb3f54befb504abc48cf304ab42f23e Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 22 Aug 2020 11:46:25 +0100
+Subject: [PATCH] Respect DISPLAY environment variable in XWindows tests
+
+XWindowsScreenTests was failing under Gentoo's package manager. I have
+also addressed this in XWindowsScreenSaverTests, which is currently
+unused.
+---
+ src/test/integtests/platform/XWindowsScreenSaverTests.cpp | 7 ++++++-
+ src/test/integtests/platform/XWindowsScreenTests.cpp | 7 ++++++-
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/src/test/integtests/platform/XWindowsScreenSaverTests.cpp b/src/test/integtests/platform/XWindowsScreenSaverTests.cpp
+index c6a2710c..1ee273ed 100644
+--- a/src/test/integtests/platform/XWindowsScreenSaverTests.cpp
++++ b/src/test/integtests/platform/XWindowsScreenSaverTests.cpp
+@@ -30,7 +30,12 @@ using ::testing::_;
+ // TODO: not working on build machine for some reason
+ TEST(CXWindowsScreenSaverTests, activate_defaultScreen_todo)
+ {
+- Display* display = XOpenDisplay(":0.0");
++ const char* displayName = getenv("DISPLAY");
++ if (displayName == NULL) {
++ displayName = ":0.0";
++ }
++
++ Display* display = XOpenDisplay(displayName);
+ Window window = DefaultRootWindow(display);
+ MockEventQueue eventQueue;
+ EXPECT_CALL(eventQueue, removeHandler(_, _)).Times(1);
+diff --git a/src/test/integtests/platform/XWindowsScreenTests.cpp b/src/test/integtests/platform/XWindowsScreenTests.cpp
+index d8f75e15..97358197 100644
+--- a/src/test/integtests/platform/XWindowsScreenTests.cpp
++++ b/src/test/integtests/platform/XWindowsScreenTests.cpp
+@@ -25,11 +25,16 @@ using ::testing::_;
+
+ TEST(CXWindowsScreenTests, fakeMouseMove_nonPrimary_getCursorPosValuesCorrect)
+ {
++ const char* displayName = getenv("DISPLAY");
++ if (displayName == NULL) {
++ displayName = ":0.0";
++ }
++
+ MockEventQueue eventQueue;
+ EXPECT_CALL(eventQueue, adoptHandler(_, _, _)).Times(2);
+ EXPECT_CALL(eventQueue, adoptBuffer(_)).Times(2);
+ EXPECT_CALL(eventQueue, removeHandler(_, _)).Times(2);
+- XWindowsScreen screen(new XWindowsImpl(), ":0.0", false, false, 0, &eventQueue);
++ XWindowsScreen screen(new XWindowsImpl(), displayName, false, false, 0, &eventQueue);
+
+ screen.fakeMouseMove(10, 20);
+
+--
+2.26.2
+