Building AWS client for Fedora 36
READ ME FIRST
There is a flatpak on flathub. At the time of writing this post, the version on flathub (4.3.0.1766) was behind what people were getting for Ubuntu (4.4.0.1808-2). Additionally, it looks like that flatpak is not maintained by AWS. From the FlatHub page:
NOTE: This wrapper is not verified by, affiliated with, or supported by Amazon.com, Inc
If software supply chain is important to you, this may or may not be the right choice based on your personal (or organizational) security posture.
Risk of maintaining your own package vs. depending on somebody else to do so (with all that that decision encompasses). The rest of this post will walk you through building your own RPM and using it.
Problem
I need to use AWS Workspaces for work. I run Fedora at home. AWS only releases Ubuntu packages for their Workspaces Client. The AWS Workstation web client doesn’t work if your workspace VM is linux based.
Assumptions
- You’re running Fedora 36 and have root access.
- You have an AWS workspace you want to connect to.
Disclaimer
This is basically a roll up of some collaboration on Reddit. With most of the credit going to pgn674 and Northern-Gannet-00. All credit goes to those in the reddit thread.
Additionally, This works for me, today, at the time of writing (see article date/time stamp). It may not work for you in the future, but hopefully offers some breadcrumbs.
Overview
Generally the process is going to be:
- Download the
.deb
- Use
alien
to convert the.deb
to a.rpm
- Edit the
.rpm
removing some dependencies/folder specifications usingrpmrebuild
- Install the resultant RPM
- Symlink a library (yuck)
Install some dependencies
You’ll need some tools, lets install them:
sudo dnf -y install rpmrebuild alien
Download the deb
You can download the deb directly from:
https://d3nt0h4h6pmmc4.cloudfront.net/workspacesclient_focal_amd64.deb
Note, that this link may change over time, it can be found at the bottom of the linux install page for AWS Workspaces under the section:
If you need to download and install the Amazon WorkSpaces Client directly, you can find the download here […]
Convert the deb
to an rpm
This ones pretty simple:
sudo alien --to-rpm workspacesclient_focal_amd64.deb
The output should be an RPM in the same directory:
workspacesclient-4.4.0.1808-2.x86_64.rpm
Tweak the rpmspec
We have to do a couple of things to get this compatible for Fedora systems. Run the following command, and it will drop you into your default editor with a generated RPM spec you can edit:
rpmrebuild --package --edit-spec workspacesclient-*.x86_64.rpm
Once the editor opens, remove the following lines:
- Requires: liblttng-ust.so.0()(64bit)
User Northern-Gannet-00 on reddit determined that this library is not needed as it was just a trace library and is only used for debugging.
Right above it, edit the following line:
- Requires: libhiredis.so.0.14()(64bit)
+ Requires: libhiredis.so.1.0.0()(64bit)
This allows you to use the dependency that Fedora 36 (at the time of writing) ships with: hiredis 1.0.0. We’ll have to do a symlink after install, but should work for now. Also, see warnings at the end of this post
As Northern-Gannet-00 also pointed out, Fedora and AWS disagree on the permissions for /usr/lib
, so remove the following line:
- %dir %attr(0755, root, root) "/usr/lib"
Once those changes are made, you can save and quit your editor. You’ll be prompted if you want to continue (defaults to ‘no’):
$ rpmrebuild --package --edit-spec workspacesclient-*.x86_64.rpm
(GenRpmQf) remove tag line ENHANCESFLAGS
(GenRpmQf) remove tag line ENHANCESNAME
(GenRpmQf) remove tag line ENHANCESVERSION
(GenRpmQf) remove tag line SUGGESTSFLAGS
(GenRpmQf) remove tag line SUGGESTSNAME
(GenRpmQf) remove tag line SUGGESTSVERSION
Do you want to continue ? (y/N) y
You’ll see some errors on the screen, they shouldn’t be anything to worry about.
Finally, you’ll be given an output dir:
result: /home/mike/rpmbuild/RPMS/x86_64/workspacesclient-4.4.0.1808-2.x86_64.rpm
Install the rpm
Install the rpm from the path it got dropped in:
# adjust path for your username
sudo dnf -y install /home/mike/rpmbuild/RPMS/x86_64/workspacesclient-4.4.0.1808-2.x86_64.rpm
Symlink a library and some warnings
So, because of a slight mis-match of the library versions, we need a symlink of what the workspaces client is looking for to the one we installed.
Disclaimer - This is dirty. Like, I’m not too proud of this. As I said in the reddit thread:
Warning - Understand what you’re doing here; you’re strapping in a newer version (major version num change) of a seemingly core library where APIs may have changed. Very well might break something. Caveat Emptor. Side effects may include Death, Disconnected Sessions, Loss of appetite.
By reading further, you understand what you’re doing. Create the symlink:
cd /usr/lib64
ln -s libhiredis.so.1.0.0 libhiredis.so.0.14
Success!
Now, like any natively installed GUI app, you should be able to launch the Workspaces Client and connect to your VDI!
Troubleshooting
Unable to connect
Assuming theres no other networking issues you would typically troubleshoot with accessing your workspace, this can arise if theres issues with libhiredis
. In my case, its because I was missing a symlink, but it could be version compatibility issues, etc.
References
Legal
All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.