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 ..]
KEY
if [ -f "$TMP" ]
then
  service atd start
  echo "rpm --import $TMP" | at now + 2 minutes > /dev/null 2>&1
fi

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.)


Comments on this page:

By barthalion at 2020-04-04 06:38:43:

Teams is also available on Flathub, so that’s at least one way to use it without experienci scriplets abuse.

By sdk at 2020-04-04 07:43:31:

Opera web browser in its DEB does the same arrogant thing with repositories, it adds a cron job that adds Opera's APT repository and GPG key your system and then maybe updates the browser, if you chose to auto-update. Yes, adding the repository is unconditional.

I pretty much never trust packages coming from software vendors, they're either poorly built crap (Elasticsearch, Grafana) or are user-hostile (Opera, Microsoft). If I need the binaries from inside, I always repack the package and serve it from my own repository, often a file:///... one.

Software vendors just can't properly package their products.

By seth at 2020-04-04 10:54:34:

I've had success with the chromium-browser-privacy package from rpmfusion. It has the right codecs provided and works with a camera and desktop/window sharing -- neither of which the Teams client could do.

By Ruben Greg at 2020-04-04 15:37:48:

Is there a reason you want to install it in your main production machine? I gave up and bought a older macmini. Just a stock macOS highsierra inside + Skype (still in use at our Uni). Make a clean copy with rsync to external hdd. Now from cool kids to old farts (Profs -even the nice ones) are using Zoom (I mean who doesn't). Yes, I will install zoom or whatever - every few months - I rsync the clean backup. Additional chore but... device isolation seems to be the best way to (kind of) protect oneself. (or at least feel that way).

(PS: with macmini - I can still work with my pajamas - no webcam)

By cks at 2020-04-04 16:00:40:

My work laptop fortunately isn't my main machine (either at work or now that we're all working from home), but it is the only good choice I have that has a microphone and a video camera. That it's basically a secondary machine is part of why I was willing to install Teams (and Zoom) in the first place; if they blew the system up, I could recover or live with it.

By James (trs80) at 2020-04-05 13:21:43:

Since it is, you know, an Electron app, the video conferencing works perfectly well in Chrom(e|ium).

My complaint is actually about the converse behaviour - when it autoupdates while running, it doesn't restore the window.

By Daniel at 2020-04-30 03:18:21:

We are supposed to use MS's Skype4Business, which seems a sort of precursor to MS Teams, but is apparently totally different from both MS Teams and Skype. It doesn't even work on Linux at all, so I see Teams as a tiny step up.

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, View Normal, Add Comment.
Search:
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.