Update freerdp2 to 2.7.0

Bug #1973229 reported by Jeremy Bícha
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
freerdp2 (Ubuntu)
Fix Released
Medium
Unassigned
Jammy
Incomplete
Medium
Unassigned

Bug Description

Impact
------
Ubuntu 22.04 LTS includes basically a git snapshot of freerdp2 as of April 11. freerdp 2.7.0 was released April 25 with a few more bug fixes.

https://github.com/FreeRDP/FreeRDP/commits/stable-2.0?after=f8a4c6a9fed51cacd7b75ca95e2fcb018f4ac5b8+46&branch=stable-2.0

From the NEWS file, the changes are
* Backported OpenSSL3 gateway support (#7822)
* Backported #7733: Support 10bit X11 color (BGRX32 only)
* Backported #7808: Disable websockets with /gt:rpc
* Backported #7815: RAIL expect LOGON_MSG_SESSION_CONTINUE

Also, this includes patches that the upstream gnome-remote-desktop maintainers believe fix LP: #1970994 I am not mentioning that bug number in the debian/changelog because I don't have a clear test case to reproduce that bug, which is needed for SRU verification to go smoothly.

Test Case #1
------------
Install all updates. Log out and log back in.
Open the Settings app to the Sharing page. Turn on Sharing and turn on Remote Desktop Sharing.
Turn it off then on because there may be a gnome-control-center bug with initial enabling.

From a second computer, connect to the first computer using Remmina.

The Remote Desktop page on the first computer provides the username and password to use. I wasn't able to get the "Remote Desktop Address" to work (maybe avahi doesn't work well?) so just use the first computer's IP address.

So something like:
RDP jeremy@192.168.1.1

Ensure that the connection works.

Then repeat the test after updating the second computer to use the updated freerdp2 since Remmina itself uses freerdp2. Basically we want to make sure things keep working after the update but also continue to work for connections between systems that aren't using the same version of freerdp2.

What Could Go Wrong
-------------------
RDP Sharing using freerdp2 is a new feature for Ubuntu 22.04 LTS as part of GNOME 42.

RDP Sharing can be used for providing remote support so it's important that this feature works well because it may be difficult for the remote admin to fix issues in person.

freerdp2 is also used by the Remmina and GNOME Connections apps as the "client" app for RDP Sharing. (The GNOME feature is the "server" side.)

Jeremy Bícha (jbicha)
Changed in freerdp2 (Ubuntu Jammy):
importance: Undecided → Medium
status: New → In Progress
Revision history for this message
Pascal Nowack (pnowack) wrote :

Note: 2.7.0 does **NOT** contain https://github.com/FreeRDP/FreeRDP/pull/7836 (which should fix https://bugs.launchpad.net/ubuntu/+source/gnome-remote-desktop/+bug/1970994), because 2.7.0 was released before that MR was created and merged.
So you have to either apply https://github.com/FreeRDP/FreeRDP/pull/7836 manually on top of the 2.7.0 build or build from the stable-2.0 branch at a recent commit, depending on what is more convenient for you.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

We will be manually applying 7836.

Changed in freerdp2 (Ubuntu Jammy):
status: In Progress → Triaged
Jeremy Bícha (jbicha)
Changed in freerdp2 (Ubuntu):
status: Fix Committed → Fix Released
Changed in freerdp2 (Ubuntu Jammy):
status: Triaged → In Progress
assignee: nobody → Jeremy Bicha (jbicha)
Revision history for this message
Robie Basak (racb) wrote (last edit ):

This request doesn't seem to fit SRU policy. Could you please provide specifics that explain why users need the update beyond "bug fixes", and a plan to test that the specific issues users are experiencing are fixed?

Further, I expect one bug per issue being fixed in the diff so they can be individually justified under SRU policy and verified before the SRU is released, and no other changes. To skip that, SRU policy details the conditions required at https://wiki.ubuntu.com/StableReleaseUpdates#New_upstream_microreleases. If this update will meet those conditions, please could you explain how?

If you're looking for a complete exception from the normal SRU requirements, then I think you need more justification then just "few more bug fixes". For example, is the package completely broken, and if so, how?

Jeremy Bícha (jbicha)
description: updated
Robie Basak (racb)
Changed in freerdp2 (Ubuntu Jammy):
status: In Progress → Incomplete
Jeremy Bícha (jbicha)
description: updated
Revision history for this message
Jeremy Bícha (jbicha) wrote :

Robie, thank you for taking the time to review this proposed stable release update. Let me try to provide more justification for this proposed update.

Yes, I am treating this as a microrelease update which according to my understanding will not require specific bug reports and verification for each patch but just an overall test case for the update.

The GNOME Remote Desktop maintainer has strongly and repeatedly urged distros to take the freerdp2 2.7.0 release. GNOME 42 is the first GNOME release to offer RDP Sharing and there are several bugfixes and crashes fixed in the new freerdp2 version. Since GNOME Remote Desktop sharing is the primary usecase for freerdp2 in Ubuntu 22.04 LTS, I think the opinion of the upstream maintainers carries some weight here. The secondary usecase is the remote desktop client Remmina so that's why the manual test plan tests that feature too.

To try to minimize the change needed for this SRU, we cherry-picked 23 non-changelog commits from 2.7.0 to Ubuntu 22.04 LTS already. This proposed SRU adds the 8 remaining commits. I believe that for users seeking support upstream, it will be easier if they can report that they are using 2.7.0 rather than effectively a git snapshot especially since the git snapshot isn't obvious from the Ubuntu version number (you'd have to read debian/changelog to know this).

I understand that the packaging update is really noisy because of so many patches dropped. Therefore, I am attaching a diff of the code change now for the patched source (excluding the debian/ directory). Or you can browse the git commit log linked in the bug description for commits after April 11.

The 2.7.0 update is an update from freerdp2's stable branch. The changes are all limited backports from the main trunk development branch.

The final change is backporting another patch set (from the stable branch after the 2.7.0 release). That change is difficult to verify with our usual SRU procedures. It fixes a crash that we don't know how to reliably reproduce. The easiest verification that the patch works is to monitor errors.ubuntu.com to make sure that the crash reports stop. But you can't really do that until the updated version is pushed to jammy-updates, right?

Changed in freerdp2 (Ubuntu Jammy):
status: Incomplete → In Progress
Revision history for this message
Robie Basak (racb) wrote :

For reference, here's what I see with some of the noise removed:

1001_keep-symbol-DumpThreadHandles-if-debugging-is-disabled.patch is carried forward. The change to winpr/libwinpr/thread/thread.c is now gone. The change to winpr/include/winpr/thread.h remains.

All other patches previously present are adopted in the new upstream version exactly.

The new upstream version brings in the following 13 additional changes:

 -: --------- > 27: 572c63a9f Supports 10bit X11 color (BGRX32 only)
 -: --------- > 28: 62937807e Changelog
 -: --------- > 29: 0f9efe197 Fixed /gt:xxx settings
 -: --------- > 30: 0a6b999c5 Updated Changelog
 -: --------- > 31: f773d9759 Update header with missing flag
 -: --------- > 32: 66ff8cf2a Added support for AUDIO_PLAYBACK_DVC
 -: --------- > 33: 4308d8e91 fix x11 black RAIL window when connect to server 2019
 -: --------- > 34: e8010231c Changelog
 -: --------- > 35: 70bd7f010 Update default android build config
 -: --------- > 36: 52f3e5139 Cleaned up ntlm_fetch_ntlm_v2_hash
 -: --------- > 38: c263ff19e Updated changelog
 -: --------- > 39: 32b8db302 Added missing WINPR_API
 -: --------- > 40: 40ee5d3bc Updated for 2.7.0 release

Of these, the changes mentioning the changelog can be discounted from concern as they definitely don't contain any functional changes. Also the final change "Updated for 2.7.0 release" contains only the metadata change for the version number. That leaves 8 commits being brought in here.

Also there is the new patchset being cherry-picked from upstream commit after they tagged 2.7.0:

0001-Refactor-thread-condition-logic.patch
0002-Do-not-mark-WinPR-implementation-of-ExitThread-as-no.patch
0003-Fixed-leak-in-TestPipeCreateNamedPipeOverlapped.patch
0004-Cleaned-up-NamedPipeOverlapped-test.patch

On the packaging side, some new symbols are added against 2.7.0+dfsg1.

Revision history for this message
Robie Basak (racb) wrote :

Thank you for the further details Jeremy.

Seb, Jeremy and I discussed this more out of band, with me wearing my TB hat as this request matches "other cases where such upstream automatic testing is not available, exceptions must still be approved by at least one member of the Ubuntu Technical Board" according to https://wiki.ubuntu.com/StableReleaseUpdates#New_upstream_microreleases.

IMHO, I think we need to work on the test plan to meet the spirit of the requirements set by the TB previously in that paragraph, so Jeremy will work on that with me and then we'll update the bug.

Changed in freerdp2 (Ubuntu Jammy):
status: In Progress → Incomplete
Revision history for this message
Jeremy Bícha (jbicha) wrote :

Robie, for now, we are just cherrypicking the more urgent fix. I've uploaded to the jammy Unapproved queue. Feel free to reject the freerdp2 2.7.0 upload for now.

Changed in freerdp2 (Ubuntu Jammy):
assignee: Jeremy Bicha (jbicha) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.