Microsoft Teams' bad arrogance on (Fedora) Linux

April 3, 2020

For reasons beyond the scope of this entry I'm going to need to use Microsoft Teams to participate in online video meetings every so often. Microsoft Teams has a 'public preview' for Linux, available (only) as a RPM or DEB package as far as I know (here). Because I would rather download an app to a somewhat expendable system (my work laptop) than go through the likely pain of getting video conferencing working in some browser, I tried it. It did not go entirely well.

My first tweet:

Oh how clever (not): the Microsoft Teams .rpm postinstall script queues an at job to install its GPG key into RPM ... using a temporary file name in /tmp that the key was written to by the postinstall script. -50 points; at least embed the GPG key in the at job.

Really, it does. Here's the relevant section of the script:

TMP=$(mktemp /tmp/teams.gpgsig.XXXXXX)
cat > "$TMP" <<KEY
[.. elided ..]
if [ -f "$TMP" ]
  service atd start
  echo "rpm --import $TMP" | at now + 2 minutes > /dev/null 2>&1

As you might suspect, this isn't the only thing that the postinstall script does. It also adds an enabled Microsoft package repository to your system (requiring signatures, at least, which is why they have to add their key). It's not documented that they'll do this, they certainly don't ask, all of this is done on the fly so the relevant yum.repos.d file isn't in the RPM's manifest, and I don't believe they restrict what packages can be installed from their repository (although from its URL it appears to be specific to Teams).

(Another fun thing that the RPM does is that it puts the actual Teams binary and its shared library .so files in /usr/share/teams. I do not know how to break it to Microsoft, but that is not what goes in /usr/share. Also, it is of course an Electron app.)

I started Teams once to make sure that I could use it and thought no more. Then today I needed to use my laptop again for a different purpose, started up the laptop, and discovered another obnoxious and arrogant Teams behavior:

So Microsoft Teams on Fedora feels free to add itself to your desktop startup after you run it just once (perhaps to try it out) and even throws up a big window when you log in. That's some arrogance, Microsoft. Not even Zoom goes that far.

To be clear here, I explicitly quit out of Teams (including its little applet window that it leaves behind when you close its regular windows) the first time I used Teams. It was entirely shut down before I logged out, and it really did add itself to my Cinnamon desktop's startup. And when it started it didn't just post up its applet; it threw up a splash screen and then its large main window, shoving that in front of everything on the desktop.

This is especially arrogant given that Microsoft itself spent literally years systematically removing the ability of programs installed on Windows to automatically add themselves to the Start menu and I believe launch themselves when you logged in, because they found that programs abused that left and right. But here is Microsoft deciding that they themselves are exempt from these best practices of not automatically throwing people into random programs when they log in.

I would like to say that this is how you ruin a platform, but of course Microsoft doesn't care about ruining Linux as a platform. The tiger does not really change its stripes, regardless of what noises it may make for strategic reasons.

PS: Zoom's RPM postinstall and postuninstall scripts contain their own horrors, but I don't think any of them are quite as bad as Teams. And, as mentioned, Zoom refrains from starting itself on login.

(Please do not suggest Jitsi. I am not the person making these choices, especially the ones related to Teams.)

Written on 03 April 2020.
« We may face some issues with the timing of Ubuntu 20.04 and its effects
Why it's very bad for applications to start themselves automatically »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Apr 3 22:08:24 2020
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.