public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: x11-misc/barrier/, x11-misc/barrier/files/
@ 2020-03-10 23:31 James Le Cuirot
  0 siblings, 0 replies; 4+ messages in thread
From: James Le Cuirot @ 2020-03-10 23:31 UTC (permalink / raw
  To: gentoo-commits

commit:     eaf2c3827ffcfe39e5e5eb7dbe13a653095ffdc7
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 10 23:30:59 2020 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Tue Mar 10 23:30:59 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eaf2c382

x11-misc/barrier: New package

Package-Manager: Portage-2.3.93, Repoman-2.3.20
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 x11-misc/barrier/Manifest                          |   1 +
 x11-misc/barrier/barrier-2.3.2.ebuild              |  73 +++++++++++++
 x11-misc/barrier/files/barrier-2.3.2-pthread.patch | 115 +++++++++++++++++++++
 x11-misc/barrier/metadata.xml                      |  11 ++
 4 files changed, 200 insertions(+)

diff --git a/x11-misc/barrier/Manifest b/x11-misc/barrier/Manifest
new file mode 100644
index 00000000000..7630b04f56f
--- /dev/null
+++ b/x11-misc/barrier/Manifest
@@ -0,0 +1 @@
+DIST barrier-2.3.2.tar.gz 7244128 BLAKE2B 263be99ffb692e5b8e3e3450565fbaf5c5e2f23beca4beaf5d699547933be1bcdcbf1ed6b9ce8bd53f2a5dbb1eba3fc06490620555520fcff0e8d34ff2ad52cb SHA512 0452244afc3294aaafd89f18d2472e24fb2fc62426e7be91ab4ffceca4697c7acb8f4438fc299835f1312f0ada83911679abe6b8e1268631130c5877e193ff83

diff --git a/x11-misc/barrier/barrier-2.3.2.ebuild b/x11-misc/barrier/barrier-2.3.2.ebuild
new file mode 100644
index 00000000000..e5595798265
--- /dev/null
+++ b/x11-misc/barrier/barrier-2.3.2.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop 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"
+
+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}
+	x11-base/xorg-proto
+"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-pthread.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_REVISION=00000000
+		-DBARRIER_VERSION_STAGE=gentoo
+	)
+
+	cmake_src_configure
+}
+
+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.2-pthread.patch b/x11-misc/barrier/files/barrier-2.3.2-pthread.patch
new file mode 100644
index 00000000000..d29844843e4
--- /dev/null
+++ b/x11-misc/barrier/files/barrier-2.3.2-pthread.patch
@@ -0,0 +1,115 @@
+From a0b3124f80f5696cbf070b3b714533ab4012398d Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Tue, 10 Mar 2020 21:10:48 +0000
+Subject: [PATCH] Use -pthread flag and simplify pthread build logic
+
+Sometimes -lpthread is not enough. This has caused build failures on
+Gentoo Linux in the past.
+
+The logic also seems needlessly complex. We check for HAVE_PTHREAD on
+UNIX platforms even though CMake errors out if pthreads are not
+found. Similarly, we have a fallback for HAVE_PTHREAD_SIGNAL being
+false even though we always set it to true.
+---
+ CMakeLists.txt                             | 11 ++++-------
+ res/config.h.in                            |  6 ------
+ src/lib/arch/Arch.h                        |  4 +---
+ src/lib/arch/unix/ArchMultithreadPosix.cpp | 13 -------------
+ 4 files changed, 5 insertions(+), 29 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8e10776e..ae7ccb21 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -123,12 +123,10 @@ if (UNIX)
+     check_type_size (short SIZEOF_SHORT)
+ 
+     # pthread is used on both Linux and Mac
+-    check_library_exists ("pthread" pthread_create "" HAVE_PTHREAD)
+-    if (HAVE_PTHREAD)
+-        list (APPEND libs pthread)
+-    else()
+-        message (FATAL_ERROR "Missing library: pthread")
+-    endif()
++    set (CMAKE_THREAD_PREFER_PTHREAD TRUE)
++    set (THREADS_PREFER_PTHREAD_FLAG TRUE)
++    find_package (Threads REQUIRED)
++    list (APPEND libs Threads::Threads)
+ 
+     # curl is used on both Linux and Mac
+     find_package (CURL)
+@@ -269,7 +267,6 @@ if (UNIX)
+     set (HAVE_CXX_EXCEPTIONS 1)
+     set (HAVE_CXX_MUTABLE 1)
+     set (HAVE_CXX_STDLIB 1)
+-    set (HAVE_PTHREAD_SIGNAL 1)
+     set (SELECT_TYPE_ARG1 int)
+     set (SELECT_TYPE_ARG234 " (fd_set *)")
+     set (SELECT_TYPE_ARG5 " (struct timeval *)")
+diff --git a/res/config.h.in b/res/config.h.in
+index f3a72449..2bd3b3bf 100644
+--- a/res/config.h.in
++++ b/res/config.h.in
+@@ -55,12 +55,6 @@
+ /* Define if you have a POSIX `sigwait` function. */
+ #cmakedefine HAVE_POSIX_SIGWAIT ${HAVE_POSIX_SIGWAIT}
+ 
+-/* Define if you have POSIX threads libraries and header files. */
+-#cmakedefine HAVE_PTHREAD ${HAVE_PTHREAD}
+-
+-/* Define if you have `pthread_sigmask` and `pthread_kill` functions. */
+-#cmakedefine HAVE_PTHREAD_SIGNAL ${HAVE_PTHREAD_SIGNAL}
+-
+ /* Define if your compiler defines socklen_t. */
+ #cmakedefine HAVE_SOCKLEN_T ${HAVE_SOCKLEN_T}
+ 
+diff --git a/src/lib/arch/Arch.h b/src/lib/arch/Arch.h
+index c062d6f3..940a2e3a 100644
+--- a/src/lib/arch/Arch.h
++++ b/src/lib/arch/Arch.h
+@@ -54,9 +54,7 @@
+ #    include "arch/unix/ArchConsoleUnix.h"
+ #    include "arch/unix/ArchDaemonUnix.h"
+ #    include "arch/unix/ArchLogUnix.h"
+-#    if HAVE_PTHREAD
+-#        include "arch/unix/ArchMultithreadPosix.h"
+-#    endif
++#    include "arch/unix/ArchMultithreadPosix.h"
+ #    include "arch/unix/ArchNetworkBSD.h"
+ #    include "arch/unix/ArchSleepUnix.h"
+ #    include "arch/unix/ArchStringUnix.h"
+diff --git a/src/lib/arch/unix/ArchMultithreadPosix.cpp b/src/lib/arch/unix/ArchMultithreadPosix.cpp
+index c9ddc6ce..4866edce 100644
+--- a/src/lib/arch/unix/ArchMultithreadPosix.cpp
++++ b/src/lib/arch/unix/ArchMultithreadPosix.cpp
+@@ -36,17 +36,6 @@
+ 
+ #define SIGWAKEUP SIGUSR1
+ 
+-#if !HAVE_PTHREAD_SIGNAL
+-    // boy, is this platform broken.  forget about pthread signal
+-    // handling and let signals through to every process.  barrier
+-    // will not terminate cleanly when it gets SIGTERM or SIGINT.
+-#    define pthread_sigmask sigprocmask
+-#    define pthread_kill(tid_, sig_) kill(0, (sig_))
+-#    define sigwait(set_, sig_)
+-#    undef HAVE_POSIX_SIGWAIT
+-#    define HAVE_POSIX_SIGWAIT 1
+-#endif
+-
+ static
+ void
+ setSignalSet(sigset_t* sigset)
+@@ -344,9 +333,7 @@ ArchMultithreadPosix::newThread(ThreadFunc func, void* data)
+     // can't tell the difference.
+     if (!m_newThreadCalled) {
+         m_newThreadCalled = true;
+-#if HAVE_PTHREAD_SIGNAL
+         startSignalHandler();
+-#endif
+     }
+ 
+     // note that the child thread will wait until we release this mutex
+-- 
+2.24.1
+

diff --git a/x11-misc/barrier/metadata.xml b/x11-misc/barrier/metadata.xml
new file mode 100644
index 00000000000..4ec6c623e4b
--- /dev/null
+++ b/x11-misc/barrier/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>chewi@gentoo.org</email>
+		<name>James Le Cuirot</name>
+	</maintainer>
+	<upstream>
+		<remote-id type="github">debauchee/barrier</remote-id>
+	</upstream>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/barrier/, x11-misc/barrier/files/
@ 2020-03-11 23:20 James Le Cuirot
  0 siblings, 0 replies; 4+ messages in thread
From: James Le Cuirot @ 2020-03-11 23:20 UTC (permalink / raw
  To: gentoo-commits

commit:     a70bd894c4d44702fd4631669ef7326f5901d0d3
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 11 23:19:18 2020 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Wed Mar 11 23:20:31 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a70bd894

x11-misc/barrier: Patch around USE=-gui and infinite loop issues

These patches are already merged upstream.

Closes: https://bugs.gentoo.org/712140
Package-Manager: Portage-2.3.93, Repoman-2.3.20
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 ...arrier-2.3.2.ebuild => barrier-2.3.2-r1.ebuild} |   2 +
 .../barrier/files/barrier-2.3.2-inf-loop.patch     | 132 +++++++++++++++++++++
 .../barrier/files/barrier-2.3.2-no-avahi.patch     |  25 ++++
 3 files changed, 159 insertions(+)

diff --git a/x11-misc/barrier/barrier-2.3.2.ebuild b/x11-misc/barrier/barrier-2.3.2-r1.ebuild
similarity index 95%
rename from x11-misc/barrier/barrier-2.3.2.ebuild
rename to x11-misc/barrier/barrier-2.3.2-r1.ebuild
index e5595798265..4b553a9888e 100644
--- a/x11-misc/barrier/barrier-2.3.2.ebuild
+++ b/x11-misc/barrier/barrier-2.3.2-r1.ebuild
@@ -40,6 +40,8 @@ DEPEND="
 "
 
 PATCHES=(
+	"${FILESDIR}"/${P}-inf-loop.patch
+	"${FILESDIR}"/${P}-no-avahi.patch
 	"${FILESDIR}"/${P}-pthread.patch
 )
 

diff --git a/x11-misc/barrier/files/barrier-2.3.2-inf-loop.patch b/x11-misc/barrier/files/barrier-2.3.2-inf-loop.patch
new file mode 100644
index 00000000000..125b903e58e
--- /dev/null
+++ b/x11-misc/barrier/files/barrier-2.3.2-inf-loop.patch
@@ -0,0 +1,132 @@
+From c79120c049d825fedeed70d5a1a9dc64d17ce9f0 Mon Sep 17 00:00:00 2001
+From: Vasily Galkin <galkin-vv@ya.ru>
+Date: Sun, 9 Feb 2020 23:27:26 +0300
+Subject: [PATCH] Fix infinite loop on fast TCP disconnection
+
+The commit a841b28 changed the condition for removing job from processing.
+New flag MultiplexerJobStatus::continue_servicing become used
+instead of checking pointer for NULL.
+However for cases when TCPSocket::newJob() returns nullptr
+the behaviour changed: earlier the job was removed, but after change
+it is called again, since MultiplexerJobStatus equal to {true, nullptr}
+means "run this job again".
+
+This leads to problem with eating CPU and RAM on linux
+https://github.com/debauchee/barrier/issues/470
+
+There is similar windows problem, but not sure it is related.
+https://github.com/debauchee/barrier/issues/552
+
+Since it looks that the goal of a841b28 was only clarifying
+object ownership and not changing job deletion behaviour,
+this commit tries to get original behaviour and fix the bugs above
+by returning {false, nullptr} instead of {true, nullptr}
+when TCPSocket::newJob() returns nullptr.
+---
+ src/lib/net/SecureSocket.cpp |  4 ++--
+ src/lib/net/TCPSocket.cpp    | 25 +++++++++++++------------
+ src/lib/net/TCPSocket.h      |  3 ++-
+ 3 files changed, 17 insertions(+), 15 deletions(-)
+
+diff --git a/src/lib/net/SecureSocket.cpp b/src/lib/net/SecureSocket.cpp
+index 99f626e8..92abea3c 100644
+--- a/src/lib/net/SecureSocket.cpp
++++ b/src/lib/net/SecureSocket.cpp
+@@ -761,7 +761,7 @@ MultiplexerJobStatus SecureSocket::serviceConnect(ISocketMultiplexerJob* job,
+     // If status > 0, success
+     if (status > 0) {
+         sendEvent(m_events->forIDataSocket().secureConnected());
+-        return {true, newJob()};
++        return newJobOrStopServicing();
+     }
+ 
+     // Retry case
+@@ -793,7 +793,7 @@ MultiplexerJobStatus SecureSocket::serviceAccept(ISocketMultiplexerJob* job,
+     // If status > 0, success
+     if (status > 0) {
+         sendEvent(m_events->forClientListener().accepted());
+-        return {true, newJob()};
++        return newJobOrStopServicing();
+     }
+ 
+     // Retry case
+diff --git a/src/lib/net/TCPSocket.cpp b/src/lib/net/TCPSocket.cpp
+index 4f4251ad..09a8f17e 100644
+--- a/src/lib/net/TCPSocket.cpp
++++ b/src/lib/net/TCPSocket.cpp
+@@ -403,6 +403,15 @@ void TCPSocket::setJob(std::unique_ptr<ISocketMultiplexerJob>&& job)
+     }
+ }
+ 
++MultiplexerJobStatus TCPSocket::newJobOrStopServicing()
++{
++    auto new_job = newJob();
++    if (new_job)
++        return {true, std::move(new_job)};
++    else
++        return {false, {}};
++}
++
+ std::unique_ptr<ISocketMultiplexerJob> TCPSocket::newJob()
+ {
+     // note -- must have m_mutex locked on entry
+@@ -519,22 +528,14 @@ MultiplexerJobStatus TCPSocket::serviceConnecting(ISocketMultiplexerJob* job, bo
+         catch (XArchNetwork& e) {
+             sendConnectionFailedEvent(e.what());
+             onDisconnected();
+-            auto new_job = newJob();
+-            if (new_job)
+-                return {true, std::move(new_job)};
+-            else
+-                return {false, {}};
++            return newJobOrStopServicing();
+         }
+     }
+ 
+     if (write) {
+         sendEvent(m_events->forIDataSocket().connected());
+         onConnected();
+-        auto new_job = newJob();
+-        if (new_job)
+-            return {true, std::move(new_job)};
+-        else
+-            return {false, {}};
++        return newJobOrStopServicing();
+     }
+ 
+     return {true, {}};
+@@ -548,7 +549,7 @@ MultiplexerJobStatus TCPSocket::serviceConnected(ISocketMultiplexerJob* job,
+     if (error) {
+         sendEvent(m_events->forISocket().disconnected());
+         onDisconnected();
+-        return {true, newJob()};
++        return newJobOrStopServicing();
+     }
+ 
+     EJobResult writeResult = kRetry;
+@@ -603,7 +604,7 @@ MultiplexerJobStatus TCPSocket::serviceConnected(ISocketMultiplexerJob* job,
+     if (writeResult == kBreak || readResult == kBreak) {
+         return {false, {}};
+     } else if (writeResult == kNew || readResult == kNew) {
+-        return {true, newJob()};
++        return newJobOrStopServicing();
+     } else {
+         return {true, {}};
+     }
+diff --git a/src/lib/net/TCPSocket.h b/src/lib/net/TCPSocket.h
+index 28891353..0b988886 100644
+--- a/src/lib/net/TCPSocket.h
++++ b/src/lib/net/TCPSocket.h
+@@ -76,7 +76,8 @@ protected:
+ 
+     void removeJob();
+     void setJob(std::unique_ptr<ISocketMultiplexerJob>&& job);
+-    
++    MultiplexerJobStatus newJobOrStopServicing();
++
+     bool                isReadable() { return m_readable; }
+     bool                isWritable() { return m_writable; }
+ 
+-- 
+2.24.1
+

diff --git a/x11-misc/barrier/files/barrier-2.3.2-no-avahi.patch b/x11-misc/barrier/files/barrier-2.3.2-no-avahi.patch
new file mode 100644
index 00000000000..481a23a2d70
--- /dev/null
+++ b/x11-misc/barrier/files/barrier-2.3.2-no-avahi.patch
@@ -0,0 +1,25 @@
+From 93a4035409ed5a4349c9848c3dae3ec670884ee0 Mon Sep 17 00:00:00 2001
+From: Tetja Rediske <tetja+gitlab@tetja.de~>
+Date: Sat, 19 Oct 2019 00:28:13 +0200
+Subject: [PATCH] make non-gui variants build without avahi
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7f9efac8..8e10776e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -175,7 +175,7 @@ if (UNIX)
+             link_directories("/usr/X11R6/lib")
+         endif()
+ 
+-        if (${PKG_CONFIG_FOUND})
++        if (BARRIER_BUILD_GUI AND ${PKG_CONFIG_FOUND})
+             pkg_check_modules (AVAHI_COMPAT REQUIRED avahi-compat-libdns_sd)
+             include_directories (BEFORE SYSTEM ${AVAHI_COMPAT_INCLUDE_DIRS})
+             set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${AVAHI_COMPAT_INCLUDE_DIRS}")
+-- 
+2.24.1
+


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/barrier/, x11-misc/barrier/files/
@ 2020-08-22 15:53 James Le Cuirot
  0 siblings, 0 replies; 4+ messages in thread
From: James Le Cuirot @ 2020-08-22 15:53 UTC (permalink / raw
  To: gentoo-commits

commit:     ebd3037d307585561792b7527ff3050f193fc88e
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 22 15:51:10 2020 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sat Aug 22 15:53:25 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebd3037d

x11-misc/barrier: Version bump to 2.3.3

Closes: https://bugs.gentoo.org/736814
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 x11-misc/barrier/Manifest                        |   1 +
 x11-misc/barrier/barrier-2.3.3.ebuild            |  83 +++++++++++++
 x11-misc/barrier/files/barrier-2.3.3-gtest.patch | 116 ++++++++++++++++++
 x11-misc/barrier/files/barrier-2.3.3-tests.patch | 150 +++++++++++++++++++++++
 4 files changed, 350 insertions(+)

diff --git a/x11-misc/barrier/Manifest b/x11-misc/barrier/Manifest
index 7630b04f56f..8870062b2d6 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 00000000000..50208361961
--- /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 00000000000..363f8c2c02c
--- /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 00000000000..a4cc0d665a0
--- /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
+


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/barrier/, x11-misc/barrier/files/
@ 2023-03-17 23:56 Sam James
  0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2023-03-17 23:56 UTC (permalink / raw
  To: gentoo-commits

commit:     08d877a77504fcaebc4653dbd4988c6ea9d1bd17
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 17 22:45:41 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Mar 17 23:56:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08d877a7

x11-misc/barrier: fix build w/ gcc 13

Closes: https://bugs.gentoo.org/895088
Signed-off-by: Sam James <sam <AT> gentoo.org>

 x11-misc/barrier/barrier-2.4.0.ebuild             |  3 +-
 x11-misc/barrier/files/barrier-2.4.0-gcc-13.patch | 38 +++++++++++++++++++++++
 2 files changed, 40 insertions(+), 1 deletion(-)

diff --git a/x11-misc/barrier/barrier-2.4.0.ebuild b/x11-misc/barrier/barrier-2.4.0.ebuild
index f086465e0601..0c587b0c8a91 100644
--- a/x11-misc/barrier/barrier-2.4.0.ebuild
+++ b/x11-misc/barrier/barrier-2.4.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -43,6 +43,7 @@ DEPEND="
 
 PATCHES=(
 	"${FILESDIR}"/${P}-includes.patch
+	"${FILESDIR}"/${P}-gcc-13.patch
 )
 
 DOCS=(

diff --git a/x11-misc/barrier/files/barrier-2.4.0-gcc-13.patch b/x11-misc/barrier/files/barrier-2.4.0-gcc-13.patch
new file mode 100644
index 000000000000..5b1759049143
--- /dev/null
+++ b/x11-misc/barrier/files/barrier-2.4.0-gcc-13.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/895088
+https://github.com/debauchee/barrier/pull/1886
+
+From d376d23d534e053a160c32ee1170d237a2f3d6bd Mon Sep 17 00:00:00 2001
+From: "Benjamin A. Beasley" <code@musicinmybrain.net>
+Date: Thu, 26 Jan 2023 09:25:59 -0500
+Subject: [PATCH] Add missing #include directives needed for GCC 13
+
+---
+ src/lib/base/String.h         | 1 +
+ src/lib/net/FingerprintData.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/lib/base/String.h b/src/lib/base/String.h
+index 9c5a53bac4..fa37f8f0dc 100644
+--- a/src/lib/base/String.h
++++ b/src/lib/base/String.h
+@@ -18,6 +18,7 @@
+ 
+ #pragma once
+ 
++#include <cstdint>
+ #include "common/common.h"
+ #include "common/stdstring.h"
+ 
+diff --git a/src/lib/net/FingerprintData.h b/src/lib/net/FingerprintData.h
+index 938a69538d..522a481353 100644
+--- a/src/lib/net/FingerprintData.h
++++ b/src/lib/net/FingerprintData.h
+@@ -18,6 +18,7 @@
+ #ifndef BARRIER_LIB_NET_FINGERPRINT_DATA_H
+ #define BARRIER_LIB_NET_FINGERPRINT_DATA_H
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-17 23:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-11 23:20 [gentoo-commits] repo/gentoo:master commit in: x11-misc/barrier/, x11-misc/barrier/files/ James Le Cuirot
  -- strict thread matches above, loose matches on Subject: below --
2023-03-17 23:56 Sam James
2020-08-22 15:53 James Le Cuirot
2020-03-10 23:31 James Le Cuirot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox