Amazon workspaces (installing from deb)

I find myself being obliged to install and use Amazon Workspaces [within the next 48 hours, only having access to a machine running NixOS, but that’s my personal problem].

For installation on Linux, the only option provided is a .deb.

I have two questions related to this:

  1. What is the quickest way to get this deb installed and working properly on my NixOS?

  2. Should I expect a significant difference in effort between getting it working on my machine, and creating a PR for addition of an Amazon Workspaces Client package to Nixpkgs?

Quickest is probably to boot a VM with Debian or Ubuntu. Long-term, you would probably want a Nix package. Making it for yourself is a good first step. Getting it into Nixpkgs does not have to me much more work, but it can be, depending on the quality of the initial expression.

1 Like

I’m trying to make a Nix package for Amazon Workspaces. So far I’ve got

{ curl
, dpkg
, fetchurl
, icu
, krb5
, lib
, libpulseaudio
, lttng-ust
, stdenv
, systemd
, autoPatchelfHook
, zlib

stdenv.mkDerivation {

  pname = "amazon-workspacesclient";
  version = "dunno-yet";

  src = fetchurl {
    url = "";
    sha256 = "0n7jq1ajdvhqby6mylzxbkahd8w4hv6l5nbb5gn43ha9b7wshgc0";

  unpackCmd = ''
    mkdir ./unpack
    ${dpkg}/bin/dpkg-deb -x $curSrc ./unpack

  nativeBuildInputs = [

  buildInputs = [

  runtimeDependencies = [

  installPhase = ''
    mkdir -p $out
    mv usr $out/usr
    mv opt $out/opt

  meta = {
    homepage = "";
    description = "Portable desktop";
    platforms = [ "x86_64-linux" ];
    license = lib.licenses.unfree;

which builds succesfully with

nix-build -E '((import <nixpkgs> {}).callPackage) ./default.nix {}'

but execution with


crashes with the output

Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
   at System.Environment.FailFast(System.String)
   at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
   at System.Globalization.GlobalizationMode..cctor()
   at System.Globalization.CultureData.CreateCultureWithInvariantData()
   at System.Globalization.CultureData.get_Invariant()
   at System.Globalization.CultureInfo..cctor()
   at System.Resources.ManifestBasedResourceGroveler.GetNeutralResourcesLanguage(System.Reflection.Assembly, System.Resources.UltimateResourceFallbackLocation ByRef)
   at System.Resources.ResourceManager.CommonAssemblyInit()
   at System.Resources.ResourceManager..ctor(System.Type)
   at System.SR.get_ResourceManager()
   at System.SR.InternalGetResourceString(System.String)
   at System.SR.GetResourceString(System.String, System.String)
   at System.TypeInitializationException..ctor(System.String, System.Exception)
   at Gtk.Application.Init()
   at WorkSpacesClient.Gtk.Program.Initialize()
   at WorkSpacesClient.Gtk.Program.Main(System.String[])
[1]    5310 abort (core dumped)  result/opt/workspacesclient/workspacesclient

I’m guessing that this is because the executable is expecting to find ICU in FHS locations.

I am aware that pkgs.buildFHSUserEnv exists, but it’s not clear to me how to combine it with the above.

Any suggestions?

Alternatively, there’s also a flatpak package for it on flathub. You may want to consider enabling flatpak support and using that package for now.

At first blush, the flatpak approach seems to be working: an “Enter your registration code” screen pops up. As I don’t have a registration code available yet, this means I cannot go any further, which leaves me with absolutely no confidence that some missing/misplaced/misconfigured run-time dependency won’t make the whole thing crash as soon as I’m asked to do something serious on this client.

Nevertheless, it looks promising so far, and it was very easy to get this far, so thanks for the tip.

However, having installed something in a non-declarative, stateful way on my machine for the first time in over a year, makes me feel … uncomfortable. Yuk!

1 Like

I just ran this through flatpak as well and it seems to work well. Here are the steps:

Add this to your configuration.nix:

services.flatpak.enable = true;

Then do:

sudo nixos-rebuild switch
flatpak remote-add --if-not-exists flathub
flatpak install flathub
flatpak run