Commit e479f0fc authored by Evangelos Ribeiro Tzaras's avatar Evangelos Ribeiro Tzaras
Browse files

Merge branch 'rel_44a0' into 'debian/master'

Document and release 44~alpha.0-1

See merge request DebianOnMobile-team/gnome-calls!28
parents 546045f1 db6cb1af
......@@ -11,7 +11,7 @@ stages:
variables:
L5_DOCKER_IMAGE: debian:bookworm
DEBIAN_IMAGE: $CI_REGISTRY/gnome/calls/debian:v0.0.20220817
DEBIAN_IMAGE: $CI_REGISTRY/gnome/calls/debian:v0.0.20221117
GIT_SUBMODULE_STRATEGY: normal
build:native:
......@@ -77,17 +77,51 @@ package:deb-pureos-byzantium:arm64:
- aarch64
extends: .l5-build-debian-package
flatpak:main:
extends: .flatpak
stage: package
allow_failure: true
.vars-devel:
variables:
MANIFEST_PATH: "org.gnome.Calls.json"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
FLATPAK_MODULE: "calls"
MESON_ARGS: ""
APP_ID: "org.gnome.Calls"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
BUNDLE: "calls.flatpak"
CONFIG_OPTS: >-
-Dmanpages=false
TEST_RUN_ARGS: >-
"calls:Validate desktop file"
"calls:Validate daemon desktop file"
calls:util
calls:settings
calls:origin
calls:provider
calls:call
calls:plugins
calls:contacts
calls:ui-call
calls:manager
calls:ringer
calls:media
calls:srtp
calls:sdp-crypto
# Disable test because it fails in flatpak
#calls:sip
# Build Flatpak for x86_64
flatpak@x86_64:
extends: ['.flatpak@x86_64', '.vars-devel']
# Build Flatpak for aarch64
flatpak@aarch64:
extends: ['.flatpak@aarch64', '.vars-devel']
# Publish Flatpak for x86_64
nightly@x86_64:
extends: '.publish_nightly'
needs: ['flatpak@x86_64']
# Publish Flatpak for aarch64
nightly@aarch64:
extends: '.publish_nightly'
needs: ['flatpak@aarch64']
pages:
stage: deploy
......
......@@ -107,6 +107,7 @@ if [ $build == 1 ]; then
${CMD} build \
${format} \
--volume "$(pwd)/..:/home/user/app" \
--no-cache \
--build-arg HOST_USER_ID="$UID" \
--tag "${TAG}" \
--file "${base}.Dockerfile" .
......
Calls 44.alpha.0
----------------
Released: 3 December 2022
New features:
=============
None
Maybe noteworthy:
=================
* Fixed rare endless ringing bug (requires feedbackd 0.0.1)
* SIP: Honour remote port in INVITE
* SIP: Reenable G722 codec
* Shuts down gracefully on SIGTERM/SIGINT
* Flatpak build improvements
Code contributions:
===================
- Evangelos Ribeiro Tzaras
- Julian Sparber
- Дилян Палаузов
Translation updates:
====================
- Czech (Daniel Rusek)
- Hungarian (Balázs Úr)
- Ukrainian (Yuri Chornoivan)
- Georgian (Zurab Kargareteli)
- Swedish (Anders Jonsson)
- Polish (Piotr Drąg)
- Romanian (Daniel Șerbănescu)
- Italian (Vittorio Monti)
- Hebrew (Yosef Or Boczko)
- Portuguese (Hugo Carvalho)
- Finnish (Jiri Grönroos)
- Russian (Aleksandr Melman)
- Indonesian (Kukuh Syafaat)
- Basque (asier Sarasua Garmendia)
- Chinese (Boyuan Yang)
The detailed changes can be found in debian/changelog
Calls 43.0
----------
Released: 19 September 2022
......
From 5b34d5883d1c7fc9d306491a0823badcaf03bdda Mon Sep 17 00:00:00 2001
From: Julian Sparber <julian@sparber.net>
Date: Fri, 8 Nov 2019 16:44:18 +0100
Subject: [PATCH] Remove java dep, and fix build issue in libphonenumber
Java is used only for generating the metadata which is already included
in the git repo. Related upstream MR: https://github.com/google/libphonenumber/pull/2363
---
cpp/CMakeLists.txt | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 38ce1f50..b5e2770b 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -130,9 +130,6 @@ endif ()
find_required_program (PROTOC protoc
"Google Protocol Buffers compiler (protoc)")
-find_required_program (JAVA java
- "Java Runtime Environment")
-
if (APPLE)
FIND_LIBRARY (COREFOUNDATION_LIB CoreFoundation)
FIND_LIBRARY (FOUNDATION_LIB Foundation)
@@ -268,13 +265,10 @@ function (add_metadata_gen_target TARGET_NAME
set (METADATA_SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/phonenumbers")
set (GEN_OUTPUT "${METADATA_SOURCE_DIR}/${METADATA_TYPE}.cc"
"${METADATA_SOURCE_DIR}/${METADATA_HEADER}.h")
- set (JAR_PATH "${CMAKE_SOURCE_DIR}/../tools/java/cpp-build/target")
- set (JAR_PATH "${JAR_PATH}/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar")
-
add_custom_command (
- COMMAND ${JAVA_BIN} -jar
- ${JAR_PATH} BuildMetadataCppFromXml ${XML_FILE}
- ${CMAKE_SOURCE_DIR}/src/phonenumbers ${METADATA_TYPE}
+ COMMAND echo "skip metadata generation from"
+ ${XML_FILE} "to"
+ ${CMAKE_SOURCE_DIR}/src/phonenumbers ${METADATA_TYPE}
OUTPUT ${GEN_OUTPUT}
DEPENDS ${XML_FILE}
@@ -314,7 +308,7 @@ add_metadata_gen_target (
${TEST_METADATA_TARGET}
"${RESOURCES_DIR}/PhoneNumberMetadataForTesting.xml"
"test_metadata"
- "metadata"
+ "test_metadata"
)
list (APPEND TESTING_LIBRARY_SOURCES "src/phonenumbers/test_metadata.cc")
--
2.20.1
......@@ -11,7 +11,7 @@ desktop_file = i18n.merge_file(
install_dir : join_paths(datadir, 'applications')
)
desktop_file = i18n.merge_file(
desktop_daemon_file = i18n.merge_file(
input : 'org.gnome.Calls-daemon.desktop.in',
output : 'org.gnome.Calls-daemon.desktop',
type : 'desktop',
......@@ -35,16 +35,27 @@ configure_file(
desktop_utils = find_program('desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file', desktop_utils,
args: [join_paths(meson.current_build_dir(),
'org.gnome.Calls.desktop')
])
test('Validate daemon desktop file', desktop_utils,
args: [join_paths(meson.current_build_dir(),
'org.gnome.Calls-daemon.desktop')
])
test('Validate desktop file',
desktop_utils,
args: [
desktop_file.full_path()
],
depends: [
desktop_file,
],
)
test('Validate daemon desktop file',
desktop_utils,
args: [
desktop_daemon_file.full_path()
],
depends: [
desktop_daemon_file,
],
)
endif
# Metainfo file
install_data('org.gnome.Calls.metainfo.xml',
install_dir: join_paths(datadir, 'metainfo'),
......
gnome-calls (43.0-3) UNRELEASED; urgency=medium
gnome-calls (44~alpha.0-1) unstable; urgency=medium
[ Debian Janitor ]
* Update lintian override info to new format on line 2.
* Set upstream metadata fields: Bug-Database, Bug-Submit, Repository-Browse.
-- Debian Janitor <janitor@jelmer.uk> Fri, 28 Oct 2022 05:18:20 -0000
[ Evangelos Ribeiro Tzaras ]
* d/upstream/metadata: Add "Repository" field
* d/patches: Remove patches applied in new upstream release
-- Evangelos Ribeiro Tzaras <devrtz-debian@fortysixandtwo.eu> Tue, 06 Dec 2022 11:52:56 +0100
gnome-calls (43.0-2) unstable; urgency=medium
......
......@@ -13,7 +13,7 @@ Build-Depends:
gtk-doc-tools <!nodoc>,
libcallaudio-dev (>= 0.0.5),
libebook-contacts1.2-dev,
libfeedback-dev,
libfeedback-dev (>= 0.0.1),
libfolks-dev,
libgom-1.0-dev,
libgsound-dev,
......
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Tue, 20 Sep 2022 13:27:47 +0200
Subject: application: Don't return value in start_proper()
It never returned FALSE, so change function prototype accordingly.
---
src/calls-application.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/calls-application.c b/src/calls-application.c
index 8ce0ec3..bde75be 100644
--- a/src/calls-application.c
+++ b/src/calls-application.c
@@ -74,7 +74,7 @@ struct _CallsApplication {
G_DEFINE_TYPE (CallsApplication, calls_application, GTK_TYPE_APPLICATION);
-static gboolean start_proper (CallsApplication *self);
+static void start_proper (CallsApplication *self);
static gboolean
@@ -534,13 +534,13 @@ notify_window_visible_cb (GtkWidget *window,
}
-static gboolean
+static void
start_proper (CallsApplication *self)
{
GtkApplication *gtk_app;
if (self->main_window) {
- return TRUE;
+ return;
}
gtk_app = GTK_APPLICATION (self);
@@ -566,10 +566,9 @@ start_proper (CallsApplication *self)
"notify::visible",
G_CALLBACK (notify_window_visible_cb),
self);
-
- return TRUE;
}
+
static void
activate (GApplication *application)
{
@@ -581,10 +580,7 @@ activate (GApplication *application)
if (self->main_window) {
present = TRUE;
} else {
- gboolean ok = start_proper (self);
- if (!ok)
- return;
-
+ start_proper (self);
present = !self->daemon;
}
@@ -604,6 +600,7 @@ activate (GApplication *application)
g_clear_pointer (&self->uri, g_free);
}
+
static void
app_open (GApplication *application,
GFile **files,
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Tue, 20 Sep 2022 13:35:12 +0200
Subject: application: Don't show application window if started as daemon
If calls was already running as a daemon it and were invoked again with
`--daemon` it ended up showing the UI.
Now we always set the `daemon` variable and simplify activation logic as
a side effect.
Fixes #500
---
src/calls-application.c | 28 ++++++++++------------------
1 file changed, 10 insertions(+), 18 deletions(-)
diff --git a/src/calls-application.c b/src/calls-application.c
index bde75be..0a58b59 100644
--- a/src/calls-application.c
+++ b/src/calls-application.c
@@ -186,16 +186,12 @@ set_daemon_action (GSimpleAction *action,
gpointer user_data)
{
CallsApplication *self = CALLS_APPLICATION (user_data);
+ gboolean daemon = g_variant_get_boolean (parameter);
- if (self->main_window) {
- g_warning ("Cannot set application as a daemon"
- " because application is already started");
- return;
- }
+ self->daemon = daemon;
- self->daemon = TRUE;
-
- g_debug ("Application marked as daemon");
+ g_debug ("Application %smarked as daemon",
+ daemon ? "" : "not ");
}
@@ -390,7 +386,7 @@ static const GActionEntry actions[] =
{
{ "set-provider-names", set_provider_names_action, "as" },
{ "set-default-providers", set_default_providers_action, NULL },
- { "set-daemon", set_daemon_action, NULL },
+ { "set-daemon", set_daemon_action, "b" },
{ "dial", dial_action, "s" },
{ "copy-number", copy_number, "s" },
/* TODO About dialog { "about", show_about, NULL}, */
@@ -484,9 +480,9 @@ calls_application_command_line (GApplication *application,
NULL);
}
- if (g_variant_dict_contains (options, "daemon"))
- g_action_group_activate_action (G_ACTION_GROUP (application),
- "set-daemon", NULL);
+ g_action_group_activate_action (G_ACTION_GROUP (application),
+ "set-daemon",
+ g_variant_new_boolean (g_variant_dict_contains (options, "daemon")));
if (g_variant_dict_lookup (options, "dial", "&s", &arg))
g_action_group_activate_action (G_ACTION_GROUP (application),
@@ -577,12 +573,8 @@ activate (GApplication *application)
g_debug ("Activated");
- if (self->main_window) {
- present = TRUE;
- } else {
- start_proper (self);
- present = !self->daemon;
- }
+ start_proper (self);
+ present = !self->daemon;
if (present || self->uri) {
gtk_window_present (GTK_WINDOW (self->main_window));
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Tue, 11 Oct 2022 13:10:19 +0200
Subject: media-pipeline: Bind to the unspecified IPv6 address
IPv4 keeps working through the magic of IPv4 mapped IPv6 addresses.
Without this change errors about invalid address family will be raised
when trying to connect to a IPv6 host.
Bail out! CallsSipMediaPipeline-FATAL-WARNING: Error on the message bus: Could not get/set settings from/on resource. (../gst/udp/gstmultiudpsink.c(1228): gst_multiudpsink_configure_client (): /GstPipeline:media-pipeline/GstUDPSink:rtcp-udp-sink:
Invalid address family (got 10))
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019292
Can be dropped with the next upstream release.
---
plugins/provider/sip/calls-sip-media-pipeline.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/provider/sip/calls-sip-media-pipeline.c b/plugins/provider/sip/calls-sip-media-pipeline.c
index 47abc1b..e96cc68 100644
--- a/plugins/provider/sip/calls-sip-media-pipeline.c
+++ b/plugins/provider/sip/calls-sip-media-pipeline.c
@@ -690,9 +690,9 @@ pipeline_init (CallsSipMediaPipeline *self,
MAKE_ELEMENT (rtcp_sink, "udpsink", "rtcp-udp-sink");
/* port 0 means letting the OS allocate */
- g_object_set (self->rtp_src, "port", 0, NULL);
+ g_object_set (self->rtp_src, "port", 0, "address", "::", NULL);
- g_object_set (self->rtcp_src, "port", 0, NULL);
+ g_object_set (self->rtcp_src, "port", 0, "address", "::", NULL);
g_object_set (self->rtp_sink, "async", FALSE, "sync", FALSE, NULL);
g_object_set (self->rtcp_sink, "async", FALSE, "sync", FALSE, NULL);
From: Evangelos Ribeiro Tzaras <evangelos.tzaras@puri.sm>
Date: Mon, 8 Aug 2022 21:21:53 +0200
Subject: Revert "Disable g722 to avoid test failure with ffmpeg
5.0/gst-libav"
This reverts commit 857c375ab9532d18fc61732931d122a19ef28c85.
The failure to register types due to invalid type names seems to be
resolved, so let's revert to reenable g722 codecs.
Can be dropped with the next upstream release.
---
plugins/provider/sip/gst-rfc3551.c | 2 +-
plugins/provider/tests/test-media.c | 12 +++---------
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/plugins/provider/sip/gst-rfc3551.c b/plugins/provider/sip/gst-rfc3551.c
index f59f4db..d052b01 100644
--- a/plugins/provider/sip/gst-rfc3551.c
+++ b/plugins/provider/sip/gst-rfc3551.c
@@ -34,7 +34,7 @@ static MediaCodecInfo gst_codecs[] = {
{8, "PCMA", 8000, 1, "rtppcmapay", "rtppcmadepay", "alawenc", "alawdec", "libgstalaw.so"},
{0, "PCMU", 8000, 1, "rtppcmupay", "rtppcmudepay", "mulawenc", "mulawdec", "libgstmulaw.so"},
{3, "GSM", 8000, 1, "rtpgsmpay", "rtpgsmdepay", "gsmenc", "gsmdec", "libgstgsm.so"},
- /* {9, "G722", 8000, 1, "rtpg722pay", "rtpg722depay", "avenc_g722", "avdec_g722", "libgstlibav.so"}, */
+ {9, "G722", 8000, 1, "rtpg722pay", "rtpg722depay", "avenc_g722", "avdec_g722", "libgstlibav.so"},
{4, "G723", 8000, 1, "rtpg723pay", "rtpg723depay", "avenc_g723_1", "avdec_g723_1", "libgstlibav.so"}, // does not seem to work
};
diff --git a/plugins/provider/tests/test-media.c b/plugins/provider/tests/test-media.c
index 888c60a..874d7df 100644
--- a/plugins/provider/tests/test-media.c
+++ b/plugins/provider/tests/test-media.c
@@ -85,7 +85,6 @@ test_sip_media_manager_caps (void)
g_debug ("PCMA SRTP test OK");
/* G722 RTP */
- /*
codecs = g_list_append (NULL, media_codec_by_name ("G722"));
sdp_message =
@@ -103,10 +102,9 @@ test_sip_media_manager_caps (void)
g_free (sdp_message);
g_debug ("G722 RTP test OK");
- */
/* G722 PCMU PCMA RTP (in this order) */
- /* codecs = g_list_append (NULL, media_codec_by_name ("G722")); */
+ codecs = g_list_append (NULL, media_codec_by_name ("G722"));
codecs = g_list_append (codecs, media_codec_by_name ("PCMU"));
codecs = g_list_append (codecs, media_codec_by_name ("PCMA"));
@@ -115,11 +113,9 @@ test_sip_media_manager_caps (void)
g_assert_true (sdp_message);
g_assert_true (find_string_in_sdp_message (sdp_message,
- "m=audio 33340 RTP/AVP 0 8"));
- /*
+ "m=audio 33340 RTP/AVP 9 0 8"));
g_assert_true (find_string_in_sdp_message (sdp_message,
"a=rtpmap:9 G722/8000"));
- */
g_assert_true (find_string_in_sdp_message (sdp_message,
"a=rtpmap:0 PCMU/8000"));
g_assert_true (find_string_in_sdp_message (sdp_message,
@@ -133,9 +129,7 @@ test_sip_media_manager_caps (void)
/* GSM PCMA G722 PCMU SRTP (in this order) */
codecs = g_list_append (NULL, media_codec_by_name ("GSM"));
codecs = g_list_append (codecs, media_codec_by_name ("PCMA"));
- /*
codecs = g_list_append (codecs, media_codec_by_name ("G722"));
- */
codecs = g_list_append (codecs, media_codec_by_name ("PCMU"));
sdp_message =
@@ -143,7 +137,7 @@ test_sip_media_manager_caps (void)
g_assert_true (sdp_message);
g_assert_true (find_string_in_sdp_message (sdp_message,
- "m=audio 18098 RTP/SAVP 3 8 0"));
+ "m=audio 18098 RTP/SAVP 3 8 9 0"));
g_clear_pointer (&codecs, g_list_free);
g_free (sdp_message);
application-do-not-return-bool-start-proper.patch
application-do-not-show-app-window-daemon.patch
media_pipeline_bind_unspecified_ip6.patch
reenable_g722.patch
......@@ -2,3 +2,4 @@
Bug-Database: https://gitlab.gnome.org/GNOME/calls/-/issues
Bug-Submit: https://gitlab.gnome.org/GNOME/calls/-/issues/new
Repository-Browse: https://gitlab.gnome.org/GNOME/calls
Repository: https://gitlab.gnome.org/GNOME/calls.git
exclude = src/dbus
exclude = subprojects/
\ No newline at end of file
exclude = subprojects/
# exclude calls-dummy-provider.c and calls-sip-provider.c as
# gcovr currently can't handle having the same function name twice on different lines:
# #ifdef FOR_TESTING switches between G_DEFINE_TYPE and a G_DEFINE_DYNAMIC_TYPE
# see https://github.com/gcovr/gcovr/issues/586
exclude = plugins/provider/dummy/calls-dummy-provider.c
exclude = plugins/provider/sip/calls-sip-provider.c
......@@ -22,7 +22,7 @@
project(
'calls',
'c', 'vala',
version: '43.0',
version: '44.alpha.0',
license: 'GPLv3+',
meson_version: '>= 0.56.0',
default_options: [
......@@ -47,8 +47,6 @@ full_servicedir = join_paths(prefix, get_option('datadir'), 'dbus-1', 'services'
localedir = get_option('localedir')
full_localedir = join_paths(prefix, localedir)
full_calls_plugin_libdir = join_paths(prefix, libdir, calls_name, 'plugins')
# Path to plugins inside the build dir, used for testing
full_calls_plugin_builddir = join_paths(builddir, 'plugins')
libcall_ui_dep = dependency('call-ui',
fallback: ['libcall-ui', 'libcall_ui_dep'],
......@@ -132,8 +130,8 @@ add_project_arguments(
subdir('po')
subdir('src')
subdir('tests')
subdir('plugins')
subdir('tests')
subdir('doc')
subdir('data')
......
......@@ -16,7 +16,9 @@
"--talk-name=im.pidgin.purple.PurpleService",
"--talk-name=org.gnome.evolution.dataserver.Subprocess.Backend.*",
"--talk-name=org.mobian_project.CallAudio",
"--talk-name=org.sigxcpu.Feedback"
"--talk-name=org.sigxcpu.Feedback",
"--talk-name=org.gtk.vfs.*",
"--filesystem=xdg-run/gvfsd"
],
"cleanup" : [
"/include",
......@@ -49,125 +51,92 @@
}
]
},
{
"name" : "gsound",
"buildsystem" : "meson",
"sources" : [
{
"type" : "archive",
"url" : "https://download.gnome.org/sources/gsound/1.0/gsound-1.0.3.tar.xz",
"sha256" : "ca2d039e1ebd148647017a7f548862350bc9af01986d39f10cfdc8e95f07881a"
}
],
"modules": [
{
"name" : "libcanberra",
"sources" : [
{
"type" : "archive",
"url" : "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz",
"sha256" : "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
}
],
"config-opts" : [
"--disable-alsa",
"--disable-null",
"--disable-oss"
]
}
]
},
{
"name" : "libpeas",
"buildsystem" : "meson",
"sources" : [
{
"type" : "archive",
"url" : "https://download.gnome.org/sources/libpeas/1.30/libpeas-1.30.0.tar.xz",
"sha256": "0bf5562e9bfc0382a9dcb81f64340787542568762a3a367d9d90f6185898b9a3"
}
]
},
{
"name" : "boost",
"buildsystem" : "simple",
"sources" : [