From: "Raghav Gururajan" <raghavgururajan@disroot.org>
To: 40264@debbugs.gnu.org
Subject: [bug#40264] Linphone: 14-add-linphoneqt-v6
Date: Fri, 03 Apr 2020 23:47:51 +0000 [thread overview]
Message-ID: <c1a8272fa04d13d0bf8d4754f24cc33e@disroot.org> (raw)
In-Reply-To: <a3c3755c86e0d25ca3c4672b8865a9ed@disroot.org>
[-- Attachment #1: Type: text/plain, Size: 2 bytes --]
[-- Attachment #2: 14-add-linphoneqt-v6.patch --]
[-- Type: application/octet-stream, Size: 9012 bytes --]
From 08461b68154402e9fd26cc5e13b9b7b24c35a812 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Apr 2020 19:42:33 -0400
Subject: [PATCH 17/17] gnu: Add linphone-desktop
* gnu/packages/linphone.scm (linphone-desktop): New variable.
* gnu/packages/patches/linphone-desktop-mutex.patch: New patch file.
---
gnu/packages/linphone.scm | 60 +++++++++
.../patches/linphone-desktop-mutex.patch | 127 ++++++++++++++++++
2 files changed, 187 insertions(+)
create mode 100644 gnu/packages/patches/linphone-desktop-mutex.patch
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index b881a820ae..65ae41d361 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -24,6 +24,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -34,6 +35,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
@@ -439,3 +441,61 @@ Linphone application is based on, and that anyone can use to add audio
and video calls or instant messaging capabilities to an application.")
(home-page "https://gitlab.linphone.org/BC/public/liblinphone")
(license license:gpl2+)))
+
+(define-public linphone-desktop
+ (package
+ (name "linphoneqt")
+ (version "4.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://www.linphone.org/releases/sources/" name
+ "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1g2zrr9li0g1hgs6vys06vr98h5dx36z22hx7a6ry231536c002a"))
+ (patches
+ (list
+ ;; For fixing errors with signal handling.
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://gitlab.linphone.org/BC/public/linphone-desktop/commit/"
+ "9cf08623e3092fa19366e5c07fbe06898a59f039.diff"))
+ (file-name "linphone-desktop-socket.patch")
+ (sha256
+ (base32 "0cnn63n3rs5m0dbi1yzn33zpp38llh5lz286f2nraadnh7kddfm5")))
+ ;; For fixing errors with crash handling.
+ (search-patch "linphone-desktop-mutex.patch")))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No test target
+ #:phases
+ ;; For replacing undeclared variable.
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "src/app/AppController.cpp"
+ (("LINPHONE_QT_GIT_VERSION")
+ "\"4.1.1\""))
+ #t)))))
+ (native-inputs
+ `(("gcc" ,gcc-5))) ; Required for libstd.h
+ (inputs
+ `(("bctoolbox" ,bctoolbox)
+ ("belcard" ,belcard)
+ ("bellesip" ,belle-sip)
+ ("linphone" ,liblinphone)
+ ("mediastreamer2" ,mediastreamer)))
+ (propagated-inputs
+ `(("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtquickcontrols2" ,qtquickcontrols2)
+ ("qtsvg" ,qtsvg)
+ ("qttools" ,qttools)))
+ (synopsis "Belledonne Communications Softphone Application")
+ (description "Linphone is a softphone for voice and video over IP calling
+and instant messaging. It is fully SIP-based, for all calling, presence
+and IM features.")
+ (home-page "https://gitlab.linphone.org/BC/public/linphone-desktop")
+ (license license:gpl2+)))
diff --git a/gnu/packages/patches/linphone-desktop-mutex.patch b/gnu/packages/patches/linphone-desktop-mutex.patch
new file mode 100644
index 0000000000..29aef4b713
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-mutex.patch
@@ -0,0 +1,127 @@
+From 03bed40d638d09f36deb9e0ec3ad1fe1d10e139f Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Fri, 3 Apr 2020 17:13:20 -0400
+Subject: [PATCH] test 2
+
+---
+ .../single-application/SingleApplication.cpp | 63 ++-----------------
+ .../SingleApplicationPrivate.hpp | 3 -
+ 2 files changed, 5 insertions(+), 61 deletions(-)
+
+diff --git a/src/app/single-application/SingleApplication.cpp b/src/app/single-application/SingleApplication.cpp
+index 29538ae3..1e6ab396 100644
+--- a/src/app/single-application/SingleApplication.cpp
++++ b/src/app/single-application/SingleApplication.cpp
+@@ -35,7 +35,6 @@
+
+ #ifdef Q_OS_UNIX
+ #include <signal.h>
+- #include <unistd.h>
+ #endif // ifdef Q_OS_UNIX
+
+ #ifdef Q_OS_WIN
+@@ -135,10 +134,9 @@ void SingleApplicationPrivate::genBlockServerName (int timeout) {
+
+ void SingleApplicationPrivate::startPrimary (bool resetMemory) {
+ #ifdef Q_OS_UNIX
+- // Handle any further termination signals to ensure the
+- // QSharedMemory block is deleted even if the process crashes
+- crashHandler();
++ signal(SIGINT, SingleApplicationPrivate::terminate);
+ #endif // ifdef Q_OS_UNIX
++
+ // Successful creation means that no main process exists
+ // So we start a QLocalServer to listen for connections
+ QLocalServer::removeServer(blockServerName);
+@@ -178,9 +176,7 @@ void SingleApplicationPrivate::startPrimary (bool resetMemory) {
+
+ void SingleApplicationPrivate::startSecondary () {
+ #ifdef Q_OS_UNIX
+- // Handle any further termination signals to ensure the
+- // QSharedMemory block is deleted even if the process crashes
+- crashHandler();
++ signal(SIGINT, SingleApplicationPrivate::terminate);
+ #endif // ifdef Q_OS_UNIX
+ }
+
+@@ -222,60 +218,11 @@ void SingleApplicationPrivate::connectToPrimary (int msecs, char connectionType)
+ }
+
+ #ifdef Q_OS_UNIX
+- void SingleApplicationPrivate::crashHandler () {
+- // This guarantees the program will work even with multiple
+- // instances of SingleApplication in different threads.
+- // Which in my opinion is idiotic, but lets handle that too.
+- {
+- sharedMemMutex.lock();
+- sharedMem.append(this);
+- sharedMemMutex.unlock();
+- }
+-
+- // Handle any further termination signals to ensure the
+- // QSharedMemory block is deleted even if the process crashes
+- signal(SIGHUP, SingleApplicationPrivate::terminate); // 1
+- signal(SIGINT, SingleApplicationPrivate::terminate); // 2
+- signal(SIGQUIT, SingleApplicationPrivate::terminate); // 3
+- signal(SIGILL, SingleApplicationPrivate::terminate); // 4
+- signal(SIGABRT, SingleApplicationPrivate::terminate); // 6
+- signal(SIGFPE, SingleApplicationPrivate::terminate); // 8
+- signal(SIGBUS, SingleApplicationPrivate::terminate); // 10
+- signal(SIGSEGV, SingleApplicationPrivate::terminate); // 11
+- signal(SIGSYS, SingleApplicationPrivate::terminate); // 12
+- signal(SIGPIPE, SingleApplicationPrivate::terminate); // 13
+- signal(SIGALRM, SingleApplicationPrivate::terminate); // 14
+- signal(SIGTERM, SingleApplicationPrivate::terminate); // 15
+- signal(SIGXCPU, SingleApplicationPrivate::terminate); // 24
+- signal(SIGXFSZ, SingleApplicationPrivate::terminate); // 25
+- }
+
+ void SingleApplicationPrivate::terminate (int signum) {
+- if (signum == SIGINT) {
+- SingleApplication::instance()->quit();
+- return;
+- }
+-
+- // Dangerous signals. Exit directly after shared memory destruction.
+- // Don't touch sockets => avoid dead locks.
+- for (int crashSig : { SIGABRT, SIGBUS, SIGSEGV })
+- if (signum == crashSig) {
+- for (SingleApplicationPrivate *d : sharedMem)
+- delete d->memory;
+- goto forceExit;
+- }
+-
+- while (!sharedMem.empty()) {
+- delete sharedMem.back();
+- sharedMem.pop_back();
+- }
+-
+- forceExit:
+- ::exit(128 + signum);
++ Q_UNUSED(signum);
++ SingleApplication::instance()->quit();
+ }
+-
+- QList<SingleApplicationPrivate *> SingleApplicationPrivate::sharedMem;
+- QMutex SingleApplicationPrivate::sharedMemMutex;
+ #endif // ifdef Q_OS_UNIX
+
+ /**
+diff --git a/src/app/single-application/SingleApplicationPrivate.hpp b/src/app/single-application/SingleApplicationPrivate.hpp
+index d0dfc10e..db2d8cf5 100644
+--- a/src/app/single-application/SingleApplicationPrivate.hpp
++++ b/src/app/single-application/SingleApplicationPrivate.hpp
+@@ -59,10 +59,7 @@ public:
+ void connectToPrimary (int msecs, char connectionType);
+
+ #ifdef Q_OS_UNIX
+- void crashHandler ();
+ static void terminate (int signum);
+- static QList<SingleApplicationPrivate *> sharedMem;
+- static QMutex sharedMemMutex;
+ #endif // ifdef Q_OS_UNIX
+
+ QSharedMemory *memory;
+--
+2.17.1
+
--
2.26.0
next prev parent reply other threads:[~2020-04-03 23:48 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-27 23:10 [bug#40264] Linphone Raghav Gururajan
2020-03-27 23:13 ` [bug#40264] Linphone: 1-create-linphone-module Raghav Gururajan
2020-03-27 23:14 ` [bug#40264] Linphone: 2-update-linphone-module Raghav Gururajan
2020-03-27 23:15 ` [bug#40264] Linphone: 3-add-bcunit Raghav Gururajan
2020-04-01 2:46 ` Maxim Cournoyer
2020-03-27 23:21 ` [bug#40264] Linphone: 4-add-bctoolbox Raghav Gururajan
2020-03-28 18:40 ` [bug#40264] Linphone: 5-add-belr Raghav Gururajan
2020-03-28 19:40 ` [bug#40264] Linphone: 6-add-belcard Raghav Gururajan
2020-03-28 21:22 ` [bug#40264] Linphone: 7-add-bcmatroska2 Raghav Gururajan
2020-03-28 21:35 ` [bug#40264] Linphone: 8-add-bcg729 Raghav Gururajan
2020-03-28 22:14 ` [bug#40264] Linphone: 9-add-ortp Raghav Gururajan
2020-03-28 22:36 ` [bug#40264] Linphone: 10-add-bzrtp Raghav Gururajan
2020-03-29 8:58 ` [bug#40264] Linphone: 11-add-mediastreamer Raghav Gururajan
2020-03-30 2:45 ` [bug#40264] Linphone: 12-add-belle-sip Raghav Gururajan
2020-03-30 20:45 ` Danny Milosavljevic
2020-03-31 16:32 ` Raghav Gururajan
2020-04-01 2:38 ` Maxim Cournoyer
2020-03-30 9:47 ` [bug#40264] Linphone: 13-add-linphone Raghav Gururajan
2020-03-30 16:50 ` [bug#40264] Linphone: 14-add-linphoneqt Raghav Gururajan
2020-03-31 13:44 ` [bug#40264] Linphone: 15-add-msamr Raghav Gururajan
2020-03-31 14:12 ` [bug#40264] Linphone: 16-add-openh264 Raghav Gururajan
2020-03-31 14:31 ` [bug#40264] Linphone: 17-add-mssilk Raghav Gururajan
2020-03-31 14:50 ` [bug#40264] Linphone: 18-add-mswebrtc Raghav Gururajan
2020-04-01 20:21 ` [bug#40264] Linphone: 3-add-bcunit-v2 Raghav Gururajan
2020-04-03 10:51 ` Danny Milosavljevic
2020-04-01 22:13 ` [bug#40264] Linphone: 4-add-bctoolbox-v2 Raghav Gururajan
2020-04-03 10:52 ` Danny Milosavljevic
2020-04-01 22:20 ` [bug#40264] Linphone: 5-add-belr-v2 Raghav Gururajan
2020-04-03 10:52 ` Danny Milosavljevic
2020-04-01 22:32 ` [bug#40264] Linphone: 6-add-belcard-v2 Raghav Gururajan
2020-04-03 10:51 ` Danny Milosavljevic
2020-04-01 22:40 ` [bug#40264] Linphone: 7-add-bcmatroska2-v2 Raghav Gururajan
2020-04-03 10:52 ` Danny Milosavljevic
2020-04-01 22:46 ` [bug#40264] Linphone: 8-add-bcg729-v2 Raghav Gururajan
2020-04-03 11:01 ` Danny Milosavljevic
2020-04-01 22:56 ` [bug#40264] Linphone: 9-add-ortp-v2 Raghav Gururajan
2020-04-03 11:02 ` Danny Milosavljevic
2020-04-01 23:04 ` [bug#40264] Linphone: 10-add-bzrtp-v2 Raghav Gururajan
2020-04-03 11:09 ` Danny Milosavljevic
2020-04-02 0:20 ` [bug#40264] Linphone: 11-add-mediastreamer-v2 Raghav Gururajan
2020-04-03 11:38 ` Danny Milosavljevic
2020-04-03 14:30 ` Raghav Gururajan
2020-04-05 4:08 ` maxim.cournoyer
2020-04-05 4:16 ` maxim.cournoyer
2020-04-05 7:29 ` Raghav Gururajan
2020-04-02 0:44 ` [bug#40264] Linphone: 12-add-belle-sip-v2 Raghav Gururajan
2020-04-02 11:24 ` Danny Milosavljevic
2020-04-02 16:33 ` Raghav Gururajan
2020-04-02 17:19 ` Raghav Gururajan
2020-04-03 11:34 ` Danny Milosavljevic
2020-04-04 17:36 ` Maxim Cournoyer
2020-04-04 18:18 ` Raghav Gururajan
2020-04-05 4:18 ` maxim.cournoyer
2020-04-05 19:06 ` Danny Milosavljevic
2020-04-02 1:20 ` [bug#40264] Linphone: 13-add-linphone-v2 Raghav Gururajan
2020-04-05 19:49 ` Danny Milosavljevic
2020-04-05 19:57 ` Danny Milosavljevic
2020-04-05 22:54 ` Raghav Gururajan
2020-04-05 22:55 ` Raghav Gururajan
2020-04-02 1:47 ` [bug#40264] Linphone: 14-add-linphoneqt-v2 Raghav Gururajan
2020-04-02 2:06 ` [bug#40264] Linohone: 15-add-msamr-v2 Raghav Gururajan
2020-04-06 0:03 ` Danny Milosavljevic
2020-04-02 2:55 ` [bug#40264] Linphone: 16-add-msopenh264-v2 Raghav Gururajan
2020-04-05 23:05 ` Danny Milosavljevic
2020-04-02 3:00 ` [bug#40264] Linphone: 17-add-mssilk-v2 Raghav Gururajan
2020-04-05 23:06 ` Danny Milosavljevic
2020-04-02 3:06 ` [bug#40264] Linphone: 18-add-mswebrtc-v2 Raghav Gururajan
2020-04-05 23:06 ` Danny Milosavljevic
2020-04-02 8:56 ` [bug#40264] Linphone: 14-add-linphoneqt-v3 Raghav Gururajan
2020-04-02 16:27 ` Raghav Gururajan
2020-04-02 20:56 ` Raghav Gururajan
2020-04-03 23:50 ` Raghav Gururajan
2020-04-02 20:53 ` [bug#40264] Linphone: 14-add-linphoneqt-v4 Raghav Gururajan
2020-04-02 23:19 ` [bug#40264] Linphone: 13-add-linphone-v3 Raghav Gururajan
2020-04-05 20:05 ` Danny Milosavljevic
2020-04-03 0:24 ` [bug#40264] Linphone: 14-add-linphoneqt-v5 Raghav Gururajan
2020-04-03 23:47 ` Raghav Gururajan [this message]
2020-04-05 20:19 ` [bug#40264] Linphone: 14-add-linphoneqt-v6 Danny Milosavljevic
2020-04-06 3:01 ` Raghav Gururajan
2020-04-06 5:56 ` Raghav Gururajan
2020-04-05 7:28 ` [bug#40264] Linphone: 11-add-mediastreamer-v3 Raghav Gururajan
2020-04-05 15:02 ` maxim.cournoyer
2020-04-05 18:29 ` Danny Milosavljevic
2020-04-05 19:41 ` Danny Milosavljevic
2020-04-05 22:52 ` Raghav Gururajan
2020-04-06 0:14 ` Danny Milosavljevic
2020-04-06 0:28 ` Raghav Gururajan
2020-04-06 2:40 ` maxim.cournoyer
2020-04-06 4:04 ` [bug#40264] Linphone: 14-add-linphoneqt-v7 Raghav Gururajan
2020-04-10 21:47 ` Danny Milosavljevic
2020-04-10 23:50 ` Danny Milosavljevic
2020-04-15 2:50 ` Maxim Cournoyer
2020-04-15 4:36 ` Maxim Cournoyer
2020-04-15 6:13 ` Maxim Cournoyer
2020-04-12 3:55 ` Raghav Gururajan
2020-04-08 7:01 ` [bug#40264] Replace source URI with mirror Raghav Gururajan
2020-04-08 7:29 ` [bug#40264] Mirror and Formatting Raghav Gururajan
2020-04-16 4:49 ` bug#40264: " maxim.cournoyer
2020-04-15 2:07 ` [bug#40264] Replace source URI with mirror Maxim Cournoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c1a8272fa04d13d0bf8d4754f24cc33e@disroot.org \
--to=raghavgururajan@disroot.org \
--cc=40264@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.