Hello community,

here is the log from the commit of package krfb for openSUSE:Factory checked in 
at 2020-04-29 20:49:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/krfb (Old)
 and      /work/SRC/openSUSE:Factory/.krfb.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "krfb"

Wed Apr 29 20:49:46 2020 rev:90 rq:796990 version:20.04.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/krfb/krfb.changes        2020-03-12 
23:05:48.659170079 +0100
+++ /work/SRC/openSUSE:Factory/.krfb.new.2738/krfb.changes      2020-04-29 
20:50:41.432765353 +0200
@@ -1,0 +2,32 @@
+Thu Apr 23 12:22:49 UTC 2020 - Luca Beltrame <lbeltr...@kde.org>
+
+- Update to 20.04.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/releases/2020-04-apps-update
+- No code change since 20.03.90
+
+-------------------------------------------------------------------
+Sun Apr  5 20:30:24 UTC 2020 - Luca Beltrame <lbeltr...@kde.org>
+
+- Update to 20.03.90
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/releases/20.04-rc
+- No code change since 20.03.80
+
+-------------------------------------------------------------------
+Sun Mar 22 09:17:20 UTC 2020 - Luca Beltrame <lbeltr...@kde.org>
+
+- Update to 20.03.80
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/releases/20.04-beta
+- Changes since 19.12.3:
+  * appdata: remove duplicate <releases>
+  * unbreak appdata
+  * PW framebuffer: support upcoming PipeWire 0.3
+  * Use URLs with transport encryption
+- Drop checks for obsolete distribution versions
+
+-------------------------------------------------------------------

Old:
----
  krfb-19.12.3.tar.xz
  krfb-19.12.3.tar.xz.sig

New:
----
  krfb-20.04.0.tar.xz
  krfb-20.04.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ krfb.spec ++++++
--- /var/tmp/diff_new_pack.yx1TN5/_old  2020-04-29 20:50:42.296767332 +0200
+++ /var/tmp/diff_new_pack.yx1TN5/_new  2020-04-29 20:50:42.296767332 +0200
@@ -21,16 +21,12 @@
 %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print 
$1"."$2}')}
 %bcond_without lang
 Name:           krfb
-Version:        19.12.3
+Version:        20.04.0
 Release:        0
 Summary:        Screen sharing using the VNC/RFB protocol
 License:        GPL-2.0-or-later
 Group:          Productivity/Networking/Other
 Source:         
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz
-%if %{with lang}
-Source1:        
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
-Source2:        applications.keyring
-%endif
 BuildRequires:  LibVNCServer-devel
 BuildRequires:  extra-cmake-modules
 BuildRequires:  pipewire-devel
@@ -59,45 +55,26 @@
 BuildRequires:  pkgconfig(xdamage)
 BuildRequires:  pkgconfig(xt)
 BuildRequires:  pkgconfig(xtst)
-# Needed for 42.3
-%if 0%{?suse_version} < 1330
-# It does not build with the default compiler (GCC 4.8) on Leap 42.x
-%if 0%{?sle_version} < 120300
-BuildRequires:  gcc6-c++
-%else
-BuildRequires:  gcc7-c++
-%endif
-%endif
 %if %{with lang}
-Recommends:     %{name}-lang
+Source1:        
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
+Source2:        applications.keyring
 %endif
+Recommends:     %{name}-lang
 
 %description
 VNC-compatible server to share KDE desktops.
 
-%if %{with lang}
 %lang_package
-%endif
 
 %prep
 %setup -q
 
 %build
-%if 0%{?suse_version} < 1330
-  # It does not build with the default compiler (GCC 4.8) on Leap 42.x
-  %if 0%{?sle_version} < 120300
-    export CC=gcc-6
-    export CXX=g++-6
-  %else
-    export CC=gcc-7
-    export CXX=g++-7
-  %endif
-%endif
 %ifarch ppc ppc64
 export RPM_OPT_FLAGS="%{optflags} -mminimal-toc"
 %endif
   %cmake_kf5 -d build -- -DBUILD_EXPERIMENTAL_TUBES_SUPPORT="on"
-  make %{?_smp_mflags}
+  %cmake_build
 
 %install
   %make_install -C build


++++++ krfb-19.12.3.tar.xz -> krfb-20.04.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/CMakeLists.txt 
new/krfb-20.04.0/CMakeLists.txt
--- old/krfb-19.12.3/CMakeLists.txt     2020-03-03 01:29:39.000000000 +0100
+++ new/krfb-20.04.0/CMakeLists.txt     2020-04-17 02:36:39.000000000 +0200
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.0)
 
 # KDE Application Version, managed by release script
-set (KDE_APPLICATIONS_VERSION_MAJOR "19")
-set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "3")
-set (KDE_APPLICATIONS_VERSION 
"${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
+set (RELEASE_SERVICE_VERSION_MAJOR "20")
+set (RELEASE_SERVICE_VERSION_MINOR "04")
+set (RELEASE_SERVICE_VERSION_MICRO "0")
+set (RELEASE_SERVICE_VERSION 
"${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
 
-project(krfb VERSION ${KDE_APPLICATIONS_VERSION})
+project(krfb VERSION ${RELEASE_SERVICE_VERSION})
 
 set(QT_MIN_VERSION 5.6.0)
 set(KF5_MIN_VERSION 5.31.0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/cmake/modules/FindPipeWire.cmake 
new/krfb-20.04.0/cmake/modules/FindPipeWire.cmake
--- old/krfb-19.12.3/cmake/modules/FindPipeWire.cmake   2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/cmake/modules/FindPipeWire.cmake   2020-04-15 
11:22:14.000000000 +0200
@@ -32,7 +32,7 @@
 #=============================================================================
 # Copyright 2014 Alex Merry <alex.me...@kde.org>
 # Copyright 2014 Martin Gräßlin <mgraess...@kde.org>
-# Copyright 2018 Jan Grulich <jgrul...@redhat.com>
+# Copyright 2018-2020 Jan Grulich <jgrul...@redhat.com>
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -61,9 +61,11 @@
 # Use pkg-config to get the directories and then use these values
 # in the FIND_PATH() and FIND_LIBRARY() calls
 find_package(PkgConfig QUIET)
-pkg_check_modules(PKG_PipeWire QUIET libpipewire-0.2 libpipewire-0.3)
 
-set(PipeWire_DEFINITIONS "${PKG_PipeWire_CFLAGS_OTHER}")
+pkg_search_module(PKG_PipeWire QUIET libpipewire-0.3 libpipewire-0.2)
+pkg_search_module(PKG_Spa QUIET libspa-0.2 libspa-0.1)
+
+set(PipeWire_DEFINITIONS "${PKG_PipeWire_CFLAGS}" "${PKG_Spa_CFLAGS}")
 set(PipeWire_VERSION "${PKG_PipeWire_VERSION}")
 
 find_path(PipeWire_INCLUDE_DIRS
@@ -71,13 +73,23 @@
         pipewire/pipewire.h
     HINTS
         ${PKG_PipeWire_INCLUDE_DIRS}
+        ${PKG_PipeWire_INCLUDE_DIRS}/pipewire-0.3
+)
+
+find_path(Spa_INCLUDE_DIRS
+    NAMES
+        spa/param/props.h
+    HINTS
+        ${PKG_Spa_INCLUDE_DIRS}
+        ${PKG_Spa_INCLUDE_DIRS}/spa-0.2
 )
 
 find_library(PipeWire_LIBRARIES
     NAMES
-        pipewire-0.2 pipewire-0.3
+        pipewire-0.3
+        pipewire-0.2
     HINTS
-        ${PKG_PipeWire_LIBRARIES_DIRS}
+        ${PKG_PipeWire_LIBRARY_DIRS}
 )
 
 include(FindPackageHandleStandardArgs)
@@ -87,6 +99,7 @@
     REQUIRED_VARS
         PipeWire_LIBRARIES
         PipeWire_INCLUDE_DIRS
+        Spa_INCLUDE_DIRS
     VERSION_VAR
         PipeWire_VERSION
 )
@@ -96,7 +109,7 @@
     set_target_properties(PipeWire::PipeWire PROPERTIES
         IMPORTED_LOCATION "${PipeWire_LIBRARIES}"
         INTERFACE_COMPILE_OPTIONS "${PipeWire_DEFINITIONS}"
-        INTERFACE_INCLUDE_DIRECTORIES "${PipeWire_INCLUDE_DIRS}"
+        INTERFACE_INCLUDE_DIRECTORIES 
"${PipeWire_INCLUDE_DIRS};${Spa_INCLUDE_DIRS}"
     )
 endif()
 
@@ -104,6 +117,6 @@
 
 include(FeatureSummary)
 set_package_properties(PipeWire PROPERTIES
-    URL "http://www.pipewire.org";
+    URL "https://www.pipewire.org";
     DESCRIPTION "PipeWire - multimedia processing"
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/events/x11/krfb_events_x11.desktop 
new/krfb-20.04.0/events/x11/krfb_events_x11.desktop
--- old/krfb-19.12.3/events/x11/krfb_events_x11.desktop 2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/events/x11/krfb_events_x11.desktop 2020-04-15 
11:22:14.000000000 +0200
@@ -56,6 +56,6 @@
 X-KDE-Library=krfb_events_x11
 X-KDE-PluginInfo-Name=x11
 X-KDE-PluginInfo-Version=0.1
-X-KDE-PluginInfo-Website=http://www.kde.org
+X-KDE-PluginInfo-Website=https://www.kde.org
 X-KDE-PluginInfo-License=GPL
 X-KDE-PluginInfo-EnabledByDefault=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/events/x11/krfb_events_x11.json 
new/krfb-20.04.0/events/x11/krfb_events_x11.json
--- old/krfb-19.12.3/events/x11/krfb_events_x11.json    2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/events/x11/krfb_events_x11.json    2020-04-15 
11:22:14.000000000 +0200
@@ -41,7 +41,6 @@
         "Name[fi]": "KRfb:n X11-tapahtumakäsittelijä",
         "Name[fr]": "Gestionnaire d'évènements X11 pour KRfb",
         "Name[gl]": "Xestor de eventos de X11 para KRfb",
-        "Name[ia]": "Gerente de evento de  X11 per KRfb",
         "Name[it]": "Gestore eventi X11 per KRfb",
         "Name[ko]": "KRfb X11 이벤트 핸들러",
         "Name[nl]": "Op X11 behandelaar van gebeurtenis voor KRfb",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/events/xdp/krfb_events_xdp.desktop 
new/krfb-20.04.0/events/xdp/krfb_events_xdp.desktop
--- old/krfb-19.12.3/events/xdp/krfb_events_xdp.desktop 2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/events/xdp/krfb_events_xdp.desktop 2020-04-15 
11:22:14.000000000 +0200
@@ -56,7 +56,7 @@
 X-KDE-Library=krfb_events_xdp
 X-KDE-PluginInfo-Name=xdp
 X-KDE-PluginInfo-Version=0.1
-X-KDE-PluginInfo-Website=http://www.kde.org
+X-KDE-PluginInfo-Website=https://www.kde.org
 X-KDE-PluginInfo-License=GPL
 X-KDE-PluginInfo-EnabledByDefault=true
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/krfb-19.12.3/framebuffers/pipewire/krfb_framebuffer_pw.json 
new/krfb-20.04.0/framebuffers/pipewire/krfb_framebuffer_pw.json
--- old/krfb-19.12.3/framebuffers/pipewire/krfb_framebuffer_pw.json     
2020-03-01 10:49:41.000000000 +0100
+++ new/krfb-20.04.0/framebuffers/pipewire/krfb_framebuffer_pw.json     
2020-04-15 11:22:14.000000000 +0200
@@ -14,7 +14,6 @@
         "Description[fi]": "KRfb:n PipeWire-pohjainen kehyspuskuri.",
         "Description[fr]": "Tampon d'images utilisant PipeWire pour KRfb.",
         "Description[gl]": "Búfer de fotograma para KRfb baseado en PipeWire.",
-        "Description[ia]": "Framebuffer basate sur PipeWire per KRfb",
         "Description[it]": "Framebuffer basato su PipeWire per KRfb.",
         "Description[ko]": "KRfb용 PipeWire 기반 프레임버퍼입니다.",
         "Description[nl]": "Op PipeWire gebaseerd framebuffer voor KRfb.",
@@ -45,7 +44,6 @@
         "Name[fi]": "KRfb:n PipeWire-kehyspuskuri",
         "Name[fr]": "Tampon d'images PipeWire pour KRfb",
         "Name[gl]": "Búfer de fotograma de PipeWire para KRfb",
-        "Name[ia]": "Framebuffer basate sur PipeWire per KRfb",
         "Name[it]": "Framebuffer PipeWire per KRfb",
         "Name[ko]": "KRfb용 PipeWire 프레임버퍼",
         "Name[nl]": "PipeWire-framebuffer voor KRfb",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/krfb-19.12.3/framebuffers/pipewire/pw_framebuffer.cpp 
new/krfb-20.04.0/framebuffers/pipewire/pw_framebuffer.cpp
--- old/krfb-19.12.3/framebuffers/pipewire/pw_framebuffer.cpp   2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/framebuffers/pipewire/pw_framebuffer.cpp   2020-04-15 
11:22:14.000000000 +0200
@@ -26,19 +26,15 @@
 // pipewire
 #include <pipewire/version.h>
 
-#if !PW_CHECK_VERSION(0, 2, 9)
-#include <spa/support/type-map.h>
-#include <spa/param/format-utils.h>
-#include <spa/param/video/format-utils.h>
-#include <spa/param/video/raw-utils.h>
+#if PW_CHECK_VERSION(0, 2, 90)
+#include <spa/utils/result.h>
 #endif
+
+#include <spa/param/format-utils.h>
 #include <spa/param/video/format-utils.h>
 #include <spa/param/props.h>
 
-#include <pipewire/factory.h>
 #include <pipewire/pipewire.h>
-#include <pipewire/remote.h>
-#include <pipewire/stream.h>
 
 #include <limits.h>
 
@@ -71,7 +67,7 @@
     return arg;
 }
 
-#if !PW_CHECK_VERSION(0, 2, 9)
+#if !PW_CHECK_VERSION(0, 2, 90)
 /**
  * @brief The PwType class - helper class to contain pointers to raw C 
pipewire media mappings
  */
@@ -96,14 +92,19 @@
 private:
     friend class PWFrameBuffer;
 
+#if PW_CHECK_VERSION(0, 2, 90)
+    static void onCoreError(void *data, uint32_t id, int seq, int res, const 
char *message);
+    static void onStreamParamChanged(void *data, uint32_t id, const struct 
spa_pod *format);
+#else
     static void onStateChanged(void *data, pw_remote_state old, 
pw_remote_state state, const char *error);
-    static void onStreamStateChanged(void *data, pw_stream_state old, 
pw_stream_state state, const char *error_message);
     static void onStreamFormatChanged(void *data, const struct spa_pod 
*format);
+#endif
+    static void onStreamStateChanged(void *data, pw_stream_state old, 
pw_stream_state state, const char *error_message);
     static void onStreamProcess(void *data);
 
     void initDbus();
     void initPw();
-#if !PW_CHECK_VERSION(0, 2, 9)
+#if !PW_CHECK_VERSION(0, 2, 90)
     void initializePwTypes();
 #endif
 
@@ -114,40 +115,45 @@
     void handleRemoteDesktopStarted(quint32 &code, QVariantMap &results);
 
     // pw handling
-    void createReceivingStream();
+    pw_stream *createReceivingStream();
     void handleFrame(pw_buffer *pwBuffer);
 
     // link to public interface
     PWFrameBuffer *q;
 
     // pipewire stuff
-#if PW_CHECK_VERSION(0, 2, 9)
+#if PW_CHECK_VERSION(0, 2, 90)
+    struct pw_context *pwContext = nullptr;
     struct pw_core *pwCore = nullptr;
-    struct pw_loop *pwLoop = nullptr;
     struct pw_stream *pwStream = nullptr;
-    struct pw_remote *pwRemote = nullptr;
     struct pw_thread_loop *pwMainLoop = nullptr;
+
+    // wayland-like listeners
+    // ...of events that happen in pipewire server
+    spa_hook coreListener = {};
+    spa_hook streamListener = {};
+
+    // event handlers
+    pw_core_events pwCoreEvents = {};
+    pw_stream_events pwStreamEvents = {};
 #else
     pw_core *pwCore = nullptr;
     pw_loop *pwLoop = nullptr;
+    pw_thread_loop *pwMainLoop = nullptr;
     pw_stream *pwStream = nullptr;
     pw_remote *pwRemote = nullptr;
-    pw_thread_loop *pwMainLoop = nullptr;
     pw_type *pwCoreType = nullptr;
     PwType *pwType = nullptr;
-#endif
 
-    uint pwStreamNodeId = 0;
+    spa_hook remoteListener = {};
+    spa_hook streamListener = {};
 
     // event handlers
     pw_remote_events pwRemoteEvents = {};
     pw_stream_events pwStreamEvents = {};
+#endif
 
-    // wayland-like listeners
-    // ...of events that happen in pipewire server
-    spa_hook remoteListener = {};
-    // ...of events that happen with the stream we consume
-    spa_hook streamListener = {};
+    uint pwStreamNodeId = 0;
 
     // negotiated video format
     spa_video_info_raw *videoFormat = nullptr;
@@ -177,6 +183,15 @@
 
 PWFrameBuffer::Private::Private(PWFrameBuffer *q) : q(q)
 {
+#if PW_CHECK_VERSION(0, 2, 90)
+    pwCoreEvents.version = PW_VERSION_CORE_EVENTS;
+    pwCoreEvents.error = &onCoreError;
+
+    pwStreamEvents.version = PW_VERSION_STREAM_EVENTS;
+    pwStreamEvents.state_changed = &onStreamStateChanged;
+    pwStreamEvents.param_changed = &onStreamParamChanged;
+    pwStreamEvents.process = &onStreamProcess;
+#else
     // initialize event handlers, remote end and stream-related
     pwRemoteEvents.version = PW_VERSION_REMOTE_EVENTS;
     pwRemoteEvents.state_changed = &onStateChanged;
@@ -185,6 +200,7 @@
     pwStreamEvents.state_changed = &onStreamStateChanged;
     pwStreamEvents.format_changed = &onStreamFormatChanged;
     pwStreamEvents.process = &onStreamProcess;
+#endif
 }
 
 /**
@@ -443,25 +459,43 @@
     // init pipewire (required)
     pw_init(nullptr, nullptr); // args are not used anyways
 
+#if PW_CHECK_VERSION(0, 2, 90)
+    pwMainLoop = pw_thread_loop_new("pipewire-main-loop", nullptr);
+    pwContext = pw_context_new(pw_thread_loop_get_loop(pwMainLoop), nullptr, 
0);
+    if (!pwContext) {
+        qWarning() << "Failed to create PipeWire context";
+        return;
+    }
+
+    pwCore = pw_context_connect(pwContext, nullptr, 0);
+    if (!pwCore) {
+        qWarning() << "Failed to connect PipeWire context";
+        return;
+    }
+
+    pw_core_add_listener(pwCore, &coreListener, &pwCoreEvents, this);
+
+    pwStream = createReceivingStream();
+    if (!pwStream) {
+        qWarning() << "Failed to create PipeWire stream";
+        return;
+    }
+#else
     // initialize our source
     pwLoop = pw_loop_new(nullptr);
     pwMainLoop = pw_thread_loop_new(pwLoop, "pipewire-main-loop");
-
     // create PipeWire core object (required)
     pwCore = pw_core_new(pwLoop, nullptr);
-#if !PW_CHECK_VERSION(0, 2, 9)
     pwCoreType = pw_core_get_type(pwCore);
 
-    // init type maps
     initializePwTypes();
-#endif
 
     // pw_remote should be initialized before type maps or connection error 
will happen
     pwRemote = pw_remote_new(pwCore, nullptr, 0);
-
     // init PipeWire remote, add listener to handle events
     pw_remote_add_listener(pwRemote, &remoteListener, &pwRemoteEvents, this);
     pw_remote_connect_fd(pwRemote, pipewireFd.fileDescriptor());
+#endif
 
     if (pw_thread_loop_start(pwMainLoop) < 0) {
         qWarning() << "Failed to start main PipeWire loop";
@@ -487,6 +521,18 @@
 }
 #endif
 
+
+#if PW_CHECK_VERSION(0, 2, 90)
+void PWFrameBuffer::Private::onCoreError(void *data, uint32_t id, int seq, int 
res, const char *message)
+{
+    Q_UNUSED(data);
+    Q_UNUSED(id);
+    Q_UNUSED(seq);
+    Q_UNUSED(res);
+
+    qInfo() << "core error: " << message;
+}
+#else
 /**
  * @brief PWFrameBuffer::Private::onStateChanged - global state tracking for 
pipewire connection
  * @param data pointer that you have set in pw_remote_add_listener call's last 
argument
@@ -504,13 +550,14 @@
         qWarning() << "remote error: " << error;
         break;
     case PW_REMOTE_STATE_CONNECTED:
-        d->createReceivingStream();
+        d->pwStream = d->createReceivingStream();
         break;
     default:
         qInfo() << "remote state: " << pw_remote_state_as_string(state);
         break;
     }
 }
+#endif
 
 /**
  * @brief PWFrameBuffer::Private::onStreamStateChanged - called whenever 
stream state changes on pipewire server
@@ -524,6 +571,20 @@
 
     auto *d = static_cast<PWFrameBuffer::Private *>(data);
 
+#if PW_CHECK_VERSION(0, 2, 90)
+    switch (state) {
+    case PW_STREAM_STATE_ERROR:
+        qWarning() << "pipewire stream error: " << error_message;
+        break;
+    case PW_STREAM_STATE_PAUSED:
+            pw_stream_set_active(d->pwStream, true);
+        break;
+    case PW_STREAM_STATE_STREAMING:
+    case PW_STREAM_STATE_UNCONNECTED:
+    case PW_STREAM_STATE_CONNECTING:
+        break;
+    }
+#else
     switch (state) {
     case PW_STREAM_STATE_ERROR:
         qWarning() << "pipewire stream error: " << error_message;
@@ -534,6 +595,7 @@
     default:
         break;
     }
+#endif
 }
 
 /**
@@ -542,24 +604,28 @@
  * @param data pointer that you have set in pw_stream_add_listener call's last 
argument
  * @param format format that's being proposed
  */
-#if defined(PW_API_PRE_0_2_0)
-void PWFrameBuffer::Private::onStreamFormatChanged(void *data, struct spa_pod 
*format)
+#if PW_CHECK_VERSION(0, 2, 90)
+void PWFrameBuffer::Private::onStreamParamChanged(void *data, uint32_t id, 
const struct spa_pod *format)
 #else
 void PWFrameBuffer::Private::onStreamFormatChanged(void *data, const struct 
spa_pod *format)
-#endif // defined(PW_API_PRE_0_2_0)
+#endif
 {
     qInfo() << "Stream format changed";
     auto *d = static_cast<PWFrameBuffer::Private *>(data);
 
     const int bpp = 4;
 
+#if PW_CHECK_VERSION(0, 2, 90)
+    if (!format || id != SPA_PARAM_Format) {
+#else
     if (!format) {
         pw_stream_finish_format(d->pwStream, 0, nullptr, 0);
+#endif
         return;
     }
 
     d->videoFormat = new spa_video_info_raw();
-#if PW_CHECK_VERSION(0, 2, 9)
+#if PW_CHECK_VERSION(0, 2, 90)
     spa_format_video_raw_parse(format, d->videoFormat);
 #else
     spa_format_video_raw_parse(format, d->videoFormat, 
&d->pwType->format_video);
@@ -575,17 +641,19 @@
     // setup buffers and meta header for new format
     const struct spa_pod *params[2];
 
-#if PW_CHECK_VERSION(0, 2, 9)
+#if PW_CHECK_VERSION(0, 2, 90)
     params[0] = reinterpret_cast<spa_pod 
*>(spa_pod_builder_add_object(&builder,
                 SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
-                ":", SPA_PARAM_BUFFERS_size, "i", size,
-                ":", SPA_PARAM_BUFFERS_stride, "i", stride,
-                ":", SPA_PARAM_BUFFERS_buffers, "?ri", SPA_CHOICE_RANGE(8, 1, 
32),
-                ":", SPA_PARAM_BUFFERS_align, "i", 16));
+                SPA_PARAM_BUFFERS_size, SPA_POD_Int(size),
+                SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride),
+                SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(8, 1, 32),
+                SPA_PARAM_BUFFERS_blocks, SPA_POD_Int(1),
+                SPA_PARAM_BUFFERS_align, SPA_POD_Int(16)));
     params[1] = reinterpret_cast<spa_pod 
*>(spa_pod_builder_add_object(&builder,
                 SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
-                ":", SPA_PARAM_META_type, "I", SPA_META_Header,
-                ":", SPA_PARAM_META_size, "i", sizeof(struct 
spa_meta_header)));
+                SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header),
+                SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct 
spa_meta_header))));
+    pw_stream_update_params(d->pwStream, params, 2);
 #else
     params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_object(&builder,
                 d->pwCoreType->param.idBuffers, 
d->pwCoreType->param_buffers.Buffers,
@@ -597,9 +665,8 @@
                 d->pwCoreType->param.idMeta, d->pwCoreType->param_meta.Meta,
                 ":", d->pwCoreType->param_meta.type, "I", 
d->pwCoreType->meta.Header,
                 ":", d->pwCoreType->param_meta.size, "i", sizeof(struct 
spa_meta_header)));
-#endif
-
     pw_stream_finish_format(d->pwStream, 0, params, 2);
+#endif
 }
 
 /**
@@ -647,7 +714,7 @@
  *        and copy the framebuffer to the existing image that we track. The 
state of the stream and configuration
  *        are later handled by the corresponding listener.
  */
-void PWFrameBuffer::Private::createReceivingStream()
+pw_stream *PWFrameBuffer::Private::createReceivingStream()
 {
     spa_rectangle pwMinScreenBounds = SPA_RECTANGLE(1, 1);
     spa_rectangle pwMaxScreenBounds = SPA_RECTANGLE(screenGeometry.width, 
screenGeometry.height);
@@ -655,22 +722,31 @@
     spa_fraction pwFramerateMin = SPA_FRACTION(0, 1);
     spa_fraction pwFramerateMax = SPA_FRACTION(60, 1);
 
-    auto reuseProps = pw_properties_new("pipewire.client.reuse", "1", 
nullptr); // null marks end of varargs
-    pwStream = pw_stream_new(pwRemote, "krfb-fb-consume-stream", reuseProps);
+#if PW_CHECK_VERSION(0, 2, 90)
+    auto stream = pw_stream_new_simple(pw_thread_loop_get_loop(pwMainLoop), 
"krfb-fb-consume-stream",
+                                       pw_properties_new(PW_KEY_MEDIA_TYPE, 
"Video",
+                                                         
PW_KEY_MEDIA_CATEGORY, "Capture",
+                                                         PW_KEY_MEDIA_ROLE, 
"Screen",
+                                                         nullptr),
+                                       &pwStreamEvents, this);
 
+#else
+    auto reuseProps = pw_properties_new("pipewire.client.reuse", "1", 
nullptr); // null marks end of varargs
+    auto stream = pw_stream_new(pwRemote, "krfb-fb-consume-stream", 
reuseProps);
+#endif
     uint8_t buffer[1024] = {};
     const spa_pod *params[1];
     auto builder = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
 
-#if PW_CHECK_VERSION(0, 2, 9)
+#if PW_CHECK_VERSION(0, 2, 90)
     params[0] = reinterpret_cast<spa_pod 
*>(spa_pod_builder_add_object(&builder,
                 SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
-                ":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_video,
-                ":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
-                ":", SPA_FORMAT_VIDEO_format, "I", SPA_VIDEO_FORMAT_RGBx,
-                ":", SPA_FORMAT_VIDEO_size, "?rR", 
SPA_CHOICE_RANGE(&pwMaxScreenBounds, &pwMinScreenBounds, &pwMaxScreenBounds),
-                ":", SPA_FORMAT_VIDEO_framerate, "F", &pwFramerateMin,
-                ":", SPA_FORMAT_VIDEO_maxFramerate, "?rF", 
SPA_CHOICE_RANGE(&pwFramerateMax, &pwFramerateMin, &pwFramerateMax)));
+                SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video),
+                SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
+                SPA_FORMAT_VIDEO_format, SPA_POD_Id(SPA_VIDEO_FORMAT_RGBx),
+                SPA_FORMAT_VIDEO_size, 
SPA_POD_CHOICE_RANGE_Rectangle(&pwMaxScreenBounds, &pwMinScreenBounds, 
&pwMaxScreenBounds),
+                SPA_FORMAT_VIDEO_framerate, SPA_POD_Fraction(&pwFramerateMin),
+                SPA_FORMAT_VIDEO_maxFramerate, 
SPA_POD_CHOICE_RANGE_Fraction(&pwFramerateMax, &pwFramerateMin, 
&pwFramerateMax)));
 #else
     params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_object(&builder,
                 pwCoreType->param.idEnumFormat, pwCoreType->spa_format,
@@ -680,18 +756,20 @@
                 ":", pwType->format_video.size, "Rru", &pwMaxScreenBounds, 
SPA_POD_PROP_MIN_MAX(&pwMinScreenBounds, &pwMaxScreenBounds),
                 ":", pwType->format_video.framerate, "F", &pwFramerateMin,
                 ":", pwType->format_video.max_framerate, "Fru", 
&pwFramerateMax, 2, &pwFramerateMin, &pwFramerateMax));
+    pw_stream_add_listener(stream, &streamListener, &pwStreamEvents, this);
 #endif
 
-    pw_stream_add_listener(pwStream, &streamListener, &pwStreamEvents, this);
     auto flags = static_cast<pw_stream_flags>(PW_STREAM_FLAG_AUTOCONNECT | 
PW_STREAM_FLAG_INACTIVE | PW_STREAM_FLAG_MAP_BUFFERS);
-#if PW_CHECK_VERSION(0, 2, 9)
-    if (pw_stream_connect(pwStream, PW_DIRECTION_INPUT, pwStreamNodeId, flags, 
params, 1) != 0) {
+#if PW_CHECK_VERSION(0, 2, 90)
+    if (pw_stream_connect(stream, PW_DIRECTION_INPUT, PW_ID_ANY, flags, 
params, 1) != 0) {
 #else
-    if (pw_stream_connect(pwStream, PW_DIRECTION_INPUT, nullptr, flags, 
params, 1) != 0) {
+    if (pw_stream_connect(stream, PW_DIRECTION_INPUT, nullptr, flags, params, 
1) != 0) {
 #endif
         qWarning() << "Could not connect receiving stream";
         isValid = false;
     }
+
+    return stream;
 }
 
 PWFrameBuffer::Private::~Private()
@@ -710,20 +788,36 @@
         pw_stream_destroy(pwStream);
     }
 
+#if !PW_CHECK_VERSION(0, 2, 90)
     if (pwRemote) {
         pw_remote_destroy(pwRemote);
     }
+#endif
+
+#if PW_CHECK_VERSION(0, 2, 90)
+    if (pwCore) {
+        pw_core_disconnect(pwCore);
+    }
 
-    if (pwCore)
+    if (pwContext) {
+        pw_context_destroy(pwContext);
+    }
+#else
+    if (pwCore) {
         pw_core_destroy(pwCore);
+    }
+#endif
 
     if (pwMainLoop) {
         pw_thread_loop_destroy(pwMainLoop);
     }
 
+#if !PW_CHECK_VERSION(0, 2, 90)
     if (pwLoop) {
+        pw_loop_leave(pwLoop);
         pw_loop_destroy(pwLoop);
     }
+#endif
 }
 
 PWFrameBuffer::PWFrameBuffer(WId winid, QObject *parent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/framebuffers/pipewire/pw_framebuffer.h 
new/krfb-20.04.0/framebuffers/pipewire/pw_framebuffer.h
--- old/krfb-19.12.3/framebuffers/pipewire/pw_framebuffer.h     2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/framebuffers/pipewire/pw_framebuffer.h     2020-04-15 
11:22:14.000000000 +0200
@@ -1,6 +1,6 @@
 /* This file is part of the KDE project
    Copyright (C) 2018 Oleg Chernovskiy <kaned...@xaker.ru>
-   Copyright (C) 2018 Jan Grulich <jgrul...@redhat.com>
+   Copyright (C) 2018-2020 Jan Grulich <jgrul...@redhat.com>
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/krfb/krfb-events.desktop 
new/krfb-20.04.0/krfb/krfb-events.desktop
--- old/krfb-19.12.3/krfb/krfb-events.desktop   2020-03-01 10:49:41.000000000 
+0100
+++ new/krfb-20.04.0/krfb/krfb-events.desktop   2020-04-15 11:22:14.000000000 
+0200
@@ -15,7 +15,6 @@
 Comment[fi]=KRfb:n tapahtumaliitännäinen
 Comment[fr]=Modules externes d'événements pour Krfb
 Comment[gl]=Complementos de eventos para KRfb
-Comment[ia]=Plug-ins de evento per KRfb
 Comment[it]=Estensioni degli eventi per KRfb
 Comment[ko]=KRfb 이벤트 플러그인
 Comment[nl]=Plug-ins voor gebeurtenis voor KRfb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/krfb/krfb-events.json 
new/krfb-20.04.0/krfb/krfb-events.json
--- old/krfb-19.12.3/krfb/krfb-events.json      2020-03-01 10:49:41.000000000 
+0100
+++ new/krfb-20.04.0/krfb/krfb-events.json      2020-04-15 11:22:14.000000000 
+0200
@@ -13,7 +13,6 @@
         "Description[fi]": "KRfb:n tapahtumaliitännäinen",
         "Description[fr]": "Modules externes d'évènements pour KRfb",
         "Description[gl]": "Complementos de eventos para KRfb",
-        "Description[ia]": "Plug-ins de eventos per KRfb",
         "Description[it]": "Estensioni degli eventi per KRfb",
         "Description[ko]": "KRfb 이벤트 플러그인",
         "Description[nl]": "Plug-ins voor gebeurtenis voor KRfb",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/krfb/org.kde.krfb.appdata.xml 
new/krfb-20.04.0/krfb/org.kde.krfb.appdata.xml
--- old/krfb-19.12.3/krfb/org.kde.krfb.appdata.xml      2020-03-01 
10:49:41.000000000 +0100
+++ new/krfb-20.04.0/krfb/org.kde.krfb.appdata.xml      2020-04-15 
11:22:14.000000000 +0200
@@ -150,9 +150,9 @@
   </provides>
   <project_group>KDE</project_group>
   <releases>
+    <release version="20.04.0" date="2020-04-23"/>
     <release version="19.12.3" date="2020-03-05"/>
     <release version="19.12.2" date="2020-02-06"/>
     <release version="19.12.1" date="2020-01-09"/>
-    <release version="19.12.0" date="2019-12-12"/>
   </releases>
 </component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/da/krfb.po 
new/krfb-20.04.0/po/da/krfb.po
--- old/krfb-19.12.3/po/da/krfb.po      2020-03-03 01:29:36.000000000 +0100
+++ new/krfb-20.04.0/po/da/krfb.po      2020-04-17 02:36:38.000000000 +0200
@@ -2,22 +2,23 @@
 # Danish translation of krfb
 # Copyright (C)
 # Erik Kjær Pedersen <e...@binghamton.edu>, 2002, 2003, 2004, 2005.
-# Martin Schlander <mschlan...@opensuse.org>, 2008, 2009, 2010, 2013, 2014, 
2015, 2016.
+# Martin Schlander <mschlan...@opensuse.org>, 2008, 2009, 2010, 2013, 2014, 
2015, 2016, 2020.
 # scootergrisen, 2017, 2019.
 msgid ""
 msgstr ""
 "Project-Id-Version: krfb\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
-"PO-Revision-Date: 2019-03-02 13:47+0200\n"
-"Last-Translator: scootergrisen\n"
-"Language-Team: Danish\n"
+"PO-Revision-Date: 2020-04-08 19:22+0200\n"
+"Last-Translator: Martin Schlander <mschlan...@opensuse.org>\n"
+"Language-Team: Danish <kde-i18n-...@kde.org>\n"
 "Language: da\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Project-Style: kde\n"
+"X-Generator: Lokalize 18.12.3\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
@@ -244,6 +245,8 @@
 "Desktop Sharing is not running under an X11 Server or Wayland.\n"
 "Other display servers are currently not supported."
 msgstr ""
+"Skrivebordsdeling kører ikke under en X11-server eller Wayland.\n"
+"Andre display-servere er ikke understøttet i øjeblikket."
 
 #: mainwindow.cpp:54
 #, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/de/docs/krfb/index.docbook 
new/krfb-20.04.0/po/de/docs/krfb/index.docbook
--- old/krfb-19.12.3/po/de/docs/krfb/index.docbook      2020-03-03 
01:29:38.000000000 +0100
+++ new/krfb-20.04.0/po/de/docs/krfb/index.docbook      2020-04-17 
02:36:39.000000000 +0200
@@ -390,8 +390,7 @@
 >Deutsche Übersetzung: Frank Schütte <email
 >f.schue...@t-online.de</email
 ></para
-> 
-&underFDL; &underGPL; </chapter>
+> &underFDL; &underGPL; </chapter>
 
 &documentation.index;
 </book>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/en_GB/krfb.po 
new/krfb-20.04.0/po/en_GB/krfb.po
--- old/krfb-19.12.3/po/en_GB/krfb.po   2020-03-03 01:29:36.000000000 +0100
+++ new/krfb-20.04.0/po/en_GB/krfb.po   2020-04-17 02:36:38.000000000 +0200
@@ -11,7 +11,7 @@
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
 "PO-Revision-Date: 2019-08-03 16:33+0100\n"
 "Last-Translator: Steve Allewell <steve.allew...@gmail.com>\n"
-"Language-Team: British English <kde-i18n-...@kde.org>\n"
+"Language-Team: British English <kde-l10n-en...@kde.org>\n"
 "Language: en_GB\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/ia/krfb.po 
new/krfb-20.04.0/po/ia/krfb.po
--- old/krfb-19.12.3/po/ia/krfb.po      2020-03-03 01:29:36.000000000 +0100
+++ new/krfb-20.04.0/po/ia/krfb.po      2020-04-17 02:36:38.000000000 +0200
@@ -1,20 +1,20 @@
 # Copyright (C) YEAR This_file_is_part_of_KDE
 # This file is distributed under the same license as the PACKAGE package.
 #
-# g.sora <g.s...@tiscali.it>, 2011, 2012, 2013, 2014, 2020.
+# g.sora <g.s...@tiscali.it>, 2011, 2012, 2013, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
-"PO-Revision-Date: 2020-01-18 23:50+0100\n"
-"Last-Translator: Giovanni Sora <g.s...@tiscali.it>\n"
-"Language-Team: Interlingua <kde-i18n-...@kde.org>\n"
+"PO-Revision-Date: 2014-05-07 13:59+0200\n"
+"Last-Translator: G.Sora <g.s...@tiscali.it>\n"
+"Language-Team: Interlingua <kde-l10n...@kde.org>\n"
 "Language: ia\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 2.0\n"
+"X-Generator: Lokalize 1.5\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #, kde-format
@@ -114,9 +114,10 @@
 msgstr "Preferite Plugin Buffer de quadro"
 
 #: main.cpp:41
-#, kde-format
+#, fuzzy, kde-format
+#| msgid "VNC-compatible server to share KDE desktops"
 msgid "VNC-compatible server to share desktops"
-msgstr "Servitor compatibile de VNC pro compartir scriptorios"
+msgstr "Servitor compatibile con VNC pro compartir scriptorios de KDE"
 
 #: main.cpp:51
 #, kde-format
@@ -378,9 +379,10 @@
 
 #. i18n: ectx: property (text), widget (QLabel, label)
 #: ui/configframebuffer.ui:22
-#, kde-format
+#, fuzzy, kde-format
+#| msgid "Preferred Frame Buffer Plugin"
 msgid "Preferred frameb&uffer plugin:"
-msgstr "Preferite Plugin  de quadro de b&uffer (framebuffer):"
+msgstr "Preferite Plugin Buffer de quadro"
 
 #. i18n: ectx: property (text), widget (QLabel, helpText)
 #: ui/configframebuffer.ui:47
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/it/docs/krfb/index.docbook 
new/krfb-20.04.0/po/it/docs/krfb/index.docbook
--- old/krfb-19.12.3/po/it/docs/krfb/index.docbook      2020-03-03 
01:29:38.000000000 +0100
+++ new/krfb-20.04.0/po/it/docs/krfb/index.docbook      2020-04-17 
02:36:39.000000000 +0200
@@ -15,6 +15,20 @@
 >&Brad.Hards; &Brad.Hards.mail; </author>
 <othercredit role="translator"
 ><firstname
+>Vincenzo</firstname
+><surname
+>Reale</surname
+><affiliation
+><address
+><email
+>smart2...@baslug.org</email
+></address
+></affiliation
+><contrib
+>Traduzione</contrib
+></othercredit
+><othercredit role="translator"
+><firstname
 >Luciano</firstname
 ><surname
 >Montanaro</surname
@@ -27,7 +41,7 @@
 ><contrib
 >Traduzione</contrib
 ></othercredit
-> <othercredit role="translator"
+><othercredit role="translator"
 ><firstname
 >Daniele</firstname
 ><surname
@@ -373,7 +387,11 @@
 >La documentazione è copyright &copy; 2003 &Brad.Hards; &Brad.Hards.mail; 
 ></para>
 
 <para
->Traduzione di Luciano Montanaro <email
+>Traduzione: Vincenzo Reale <email
+>smart2...@baslug.org</email
+></para
+><para
+>Traduzione: Luciano Montanaro <email
 >mikel...@cirulla.net</email
 ></para
 > &underFDL; &underGPL; </chapter>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/ko/krfb.po 
new/krfb-20.04.0/po/ko/krfb.po
--- old/krfb-19.12.3/po/ko/krfb.po      2020-03-03 01:29:37.000000000 +0100
+++ new/krfb-20.04.0/po/ko/krfb.po      2020-04-17 02:36:39.000000000 +0200
@@ -1,14 +1,14 @@
 # Translation of krfb to Korean.
 # Copyright (C) 2007-2008 This_file_is_part_of_KDE
 # This file is distributed under the same license as the kdenetwork package.
-# Shinjo Park <k...@peremen.name>, 2007, 2008, 2009, 2011, 2013, 2014, 2015, 
2017, 2019.
+# Shinjo Park <k...@peremen.name>, 2007, 2008, 2009, 2011, 2013, 2014, 2015, 
2017, 2019, 2020.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: krfb\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
-"PO-Revision-Date: 2019-07-18 23:24+0200\n"
+"PO-Revision-Date: 2020-04-05 12:24+0200\n"
 "Last-Translator: Shinjo Park <k...@peremen.name>\n"
 "Language-Team: Korean <kde...@kde.org>\n"
 "Language: ko\n"
@@ -16,7 +16,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 18.12.3\n"
+"X-Generator: Lokalize 19.04.3\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
@@ -117,7 +117,7 @@
 #: main.cpp:41
 #, kde-format
 msgid "VNC-compatible server to share desktops"
-msgstr "데스크톱을 공유하기 위한 VNC 호환 서버"
+msgstr "데스크톱을 공유하는 VNC 호환 서버"
 
 #: main.cpp:51
 #, kde-format
@@ -235,7 +235,7 @@
 #: main.cpp:128
 #, kde-format
 msgid "Do not show the invitations management dialog at startup"
-msgstr "시작할 때 초대장 관리 대화상자 보이지 않기"
+msgstr "시작할 때 초대장 관리 대화 상자 보이지 않기"
 
 #: main.cpp:150
 #, kde-format
@@ -280,11 +280,11 @@
 "If your computer is behind a firewall it may have a different address or be "
 "unreachable for other computers."
 msgstr ""
-"이 필드는 쌍점(:)으로 구분된 이 컴퓨터의 주소와 디스플레이 번호를 포함합니"
-"다.\n"
+"이 필드에는 쌍점(:)으로 구분된 이 컴퓨터의 주소와 디스플레이 번호가 들어 있습"
+"니다.\n"
 "\n"
-"주소는 참고를 위해 나타나 있으며, 이 컴퓨터에 접근할 수 있는 임의의 주소를 사"
-"용할 수 있습니다.\n"
+"주소는 참고 목적으로 나타나 있으며, 이 컴퓨터에 접근할 수 있는 임의의 주소를 "
+"사용할 수 있습니다.\n"
 "\n"
 "데스크톱 공유는 네트워크 설정에서 이 컴퓨터의 주소를 추측하지만 항상 성공하지"
 "는 않습니다.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/ml/krfb.po 
new/krfb-20.04.0/po/ml/krfb.po
--- old/krfb-19.12.3/po/ml/krfb.po      2020-03-03 01:29:37.000000000 +0100
+++ new/krfb-20.04.0/po/ml/krfb.po      2020-04-17 02:36:39.000000000 +0200
@@ -10,7 +10,7 @@
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
 "PO-Revision-Date: 2009-01-26 03:03-0800\n"
 "Last-Translator: Praveen Arimbrathodiyil <prav...@gmail.com>\n"
-"Language-Team: Malayalam <smc-disc...@googlegroups.com>\n"
+"Language-Team: SMC <smc.org.in>\n"
 "Language: ml\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/nb/krfb.po 
new/krfb-20.04.0/po/nb/krfb.po
--- old/krfb-19.12.3/po/nb/krfb.po      2020-03-03 01:29:37.000000000 +0100
+++ new/krfb-20.04.0/po/nb/krfb.po      2020-04-17 02:36:39.000000000 +0200
@@ -10,7 +10,7 @@
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
 "PO-Revision-Date: 2014-04-28 18:28+0200\n"
 "Last-Translator: Bjørn Steensrud <bjor...@skogkatt.homelinux.org>\n"
-"Language-Team: Norwegian Bokmål <i18n...@lister.ping.uio.no>\n"
+"Language-Team: Norwegian Bokmål <l10n...@lister.huftis.org>\n"
 "Language: nb\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/nl/krfb.po 
new/krfb-20.04.0/po/nl/krfb.po
--- old/krfb-19.12.3/po/nl/krfb.po      2020-03-03 01:29:37.000000000 +0100
+++ new/krfb-20.04.0/po/nl/krfb.po      2020-04-17 02:36:39.000000000 +0200
@@ -7,20 +7,20 @@
 # Tom Albers <tomalb...@kde.nl>, 2004.
 # Rinse de Vries <rinsedevr...@kde.nl>2003, 2004, 2005, 2007, 2008.
 # Freek de Kruijf <f.de.kru...@hetnet.nl>, 2009.
-# Freek de Kruijf <freekdekru...@kde.nl>, 2009, 2010, 2013, 2014, 2015, 2017, 
2019.
+# Freek de Kruijf <freekdekru...@kde.nl>, 2009, 2010, 2013, 2014, 2015, 2017, 
2019, 2020.
 msgid ""
 msgstr ""
 "Project-Id-Version: krfb\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
-"PO-Revision-Date: 2019-07-08 13:46+0200\n"
+"PO-Revision-Date: 2020-01-19 19:46+0100\n"
 "Last-Translator: Freek de Kruijf <freekdekru...@kde.nl>\n"
 "Language-Team: Dutch <kde-i18n...@kde.org>\n"
 "Language: nl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 19.04.2\n"
+"X-Generator: Lokalize 19.12.1\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #, kde-format
@@ -28,7 +28,7 @@
 msgid "Your names"
 msgstr ""
 "Rinse de Vries - 2003 tot 2007,Wilbert Berendsen - 2003,Bram Schoenmakers - "
-"2004; 2005,Tom Albers - 2004,Freek de Kruijf - 2013; 2017 t/m 2019"
+"2004; 2005,Tom Albers - 2004,Freek de Kruijf - 2013; 2017 t/m 2020"
 
 #, kde-format
 msgctxt "EMAIL OF TRANSLATORS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/nn/krfb.po 
new/krfb-20.04.0/po/nn/krfb.po
--- old/krfb-19.12.3/po/nn/krfb.po      2020-03-03 01:29:37.000000000 +0100
+++ new/krfb-20.04.0/po/nn/krfb.po      2020-04-17 02:36:39.000000000 +0200
@@ -9,7 +9,7 @@
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
 "PO-Revision-Date: 2018-11-10 14:26+0100\n"
 "Last-Translator: Karl Ove Hufthammer <k...@huftis.org>\n"
-"Language-Team: Norwegian Nynorsk <i18n...@lister.ping.uio.no>\n"
+"Language-Team: Norwegian Nynorsk <l10n...@lister.huftis.org>\n"
 "Language: nn\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/krfb-19.12.3/po/zh_CN/krfb.po 
new/krfb-20.04.0/po/zh_CN/krfb.po
--- old/krfb-19.12.3/po/zh_CN/krfb.po   2020-03-03 01:29:38.000000000 +0100
+++ new/krfb-20.04.0/po/zh_CN/krfb.po   2020-04-17 02:36:39.000000000 +0200
@@ -12,7 +12,7 @@
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-08-11 02:53+0200\n"
-"PO-Revision-Date: 2020-01-20 21:56\n"
+"PO-Revision-Date: 2020-03-25 19:57\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"


Reply via email to