%global debug_package %{nil} %global __brp_strip %{nil} %global __brp_strip_comment_note %{nil} %global __brp_strip_lto %{nil} %global __brp_strip_static_archive %{nil} Name: teams-for-linux Version: 2.18.1 Release: 1%{?dist} Summary: Teams for Linux License: GPL-3.0-or-later URL: https://github.com/IsmaelMartinez/teams-for-linux AutoReq: no %ifarch x86_64 Requires: (libXtst or libXtst6) Requires: (libuuid or libuuid1) Requires: /bin/sh Requires: /bin/sh Requires: at-spi2-core Requires: gtk3 Requires: libXScrnSaver Requires: libnotify Requires: nss Requires: xdg-utils %endif %ifarch aarch64 Requires: (libXtst or libXtst6) Requires: (libuuid or libuuid1) Requires: /bin/sh Requires: /bin/sh Requires: at-spi2-core Requires: gtk3 Requires: libXScrnSaver Requires: libnotify Requires: nss Requires: xdg-utils %endif Source0: teams-for-linux-2.18.1.tar.gz %description Repackaged upstream GitHub release for IsmaelMartinez/teams-for-linux. %prep %setup -q -n teams-for-linux-2.18.1 %build %install rm -rf %{buildroot} %ifarch x86_64 cp -a payloads/x86_64/root/. %{buildroot}/ %endif %ifarch aarch64 cp -a payloads/aarch64/root/. %{buildroot}/ %endif %files %ifarch x86_64 /opt/teams-for-linux/LICENSE.electron.txt /opt/teams-for-linux/LICENSES.chromium.html /opt/teams-for-linux/chrome-sandbox /opt/teams-for-linux/chrome_100_percent.pak /opt/teams-for-linux/chrome_200_percent.pak /opt/teams-for-linux/chrome_crashpad_handler /opt/teams-for-linux/icudtl.dat /opt/teams-for-linux/libEGL.so /opt/teams-for-linux/libGLESv2.so /opt/teams-for-linux/libffmpeg.so /opt/teams-for-linux/libvk_swiftshader.so /opt/teams-for-linux/libvulkan.so.1 /opt/teams-for-linux/locales/af.pak /opt/teams-for-linux/locales/am.pak /opt/teams-for-linux/locales/ar.pak /opt/teams-for-linux/locales/bg.pak /opt/teams-for-linux/locales/bn.pak /opt/teams-for-linux/locales/ca.pak /opt/teams-for-linux/locales/cs.pak /opt/teams-for-linux/locales/da.pak /opt/teams-for-linux/locales/de.pak /opt/teams-for-linux/locales/el.pak /opt/teams-for-linux/locales/en-GB.pak /opt/teams-for-linux/locales/en-US.pak /opt/teams-for-linux/locales/es-419.pak /opt/teams-for-linux/locales/es.pak /opt/teams-for-linux/locales/et.pak /opt/teams-for-linux/locales/fa.pak /opt/teams-for-linux/locales/fi.pak /opt/teams-for-linux/locales/fil.pak /opt/teams-for-linux/locales/fr.pak /opt/teams-for-linux/locales/gu.pak /opt/teams-for-linux/locales/he.pak /opt/teams-for-linux/locales/hi.pak /opt/teams-for-linux/locales/hr.pak /opt/teams-for-linux/locales/hu.pak /opt/teams-for-linux/locales/id.pak /opt/teams-for-linux/locales/it.pak /opt/teams-for-linux/locales/ja.pak /opt/teams-for-linux/locales/kn.pak /opt/teams-for-linux/locales/ko.pak /opt/teams-for-linux/locales/lt.pak /opt/teams-for-linux/locales/lv.pak /opt/teams-for-linux/locales/ml.pak /opt/teams-for-linux/locales/mr.pak /opt/teams-for-linux/locales/ms.pak /opt/teams-for-linux/locales/nb.pak /opt/teams-for-linux/locales/nl.pak /opt/teams-for-linux/locales/pl.pak /opt/teams-for-linux/locales/pt-BR.pak /opt/teams-for-linux/locales/pt-PT.pak /opt/teams-for-linux/locales/ro.pak /opt/teams-for-linux/locales/ru.pak /opt/teams-for-linux/locales/sk.pak /opt/teams-for-linux/locales/sl.pak /opt/teams-for-linux/locales/sr.pak /opt/teams-for-linux/locales/sv.pak /opt/teams-for-linux/locales/sw.pak /opt/teams-for-linux/locales/ta.pak /opt/teams-for-linux/locales/te.pak /opt/teams-for-linux/locales/th.pak /opt/teams-for-linux/locales/tr.pak /opt/teams-for-linux/locales/uk.pak /opt/teams-for-linux/locales/ur.pak /opt/teams-for-linux/locales/vi.pak /opt/teams-for-linux/locales/zh-CN.pak /opt/teams-for-linux/locales/zh-TW.pak /opt/teams-for-linux/resources.pak /opt/teams-for-linux/resources/app-update.yml /opt/teams-for-linux/resources/app.asar /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/index.js /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.abi137.glibc.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.abi137.musl.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.napi.glibc.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.napi.musl.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/package.json /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/LICENSE /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/bin/download-prebuilds.js /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/build/Release/extract.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/index.js /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/package.json /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/src/extract.cpp /opt/teams-for-linux/resources/apparmor-profile /opt/teams-for-linux/resources/assets/sounds/meeting_started.wav /opt/teams-for-linux/resources/assets/sounds/new_message.wav /opt/teams-for-linux/resources/package-type /opt/teams-for-linux/snapshot_blob.bin /opt/teams-for-linux/teams-for-linux /opt/teams-for-linux/v8_context_snapshot.bin /opt/teams-for-linux/vk_swiftshader_icd.json /usr/share/applications/teams-for-linux.desktop /usr/share/icons/hicolor/1024x1024/apps/teams-for-linux.png /usr/share/icons/hicolor/128x128/apps/teams-for-linux.png /usr/share/icons/hicolor/16x16/apps/teams-for-linux.png /usr/share/icons/hicolor/24x24/apps/teams-for-linux.png /usr/share/icons/hicolor/256x256/apps/teams-for-linux.png /usr/share/icons/hicolor/32x32/apps/teams-for-linux.png /usr/share/icons/hicolor/48x48/apps/teams-for-linux.png /usr/share/icons/hicolor/512x512/apps/teams-for-linux.png /usr/share/icons/hicolor/64x64/apps/teams-for-linux.png /usr/share/icons/hicolor/96x96/apps/teams-for-linux.png %endif %ifarch aarch64 /opt/teams-for-linux/LICENSE.electron.txt /opt/teams-for-linux/LICENSES.chromium.html /opt/teams-for-linux/chrome-sandbox /opt/teams-for-linux/chrome_100_percent.pak /opt/teams-for-linux/chrome_200_percent.pak /opt/teams-for-linux/chrome_crashpad_handler /opt/teams-for-linux/icudtl.dat /opt/teams-for-linux/libEGL.so /opt/teams-for-linux/libGLESv2.so /opt/teams-for-linux/libffmpeg.so /opt/teams-for-linux/libvk_swiftshader.so /opt/teams-for-linux/libvulkan.so.1 /opt/teams-for-linux/locales/af.pak /opt/teams-for-linux/locales/am.pak /opt/teams-for-linux/locales/ar.pak /opt/teams-for-linux/locales/bg.pak /opt/teams-for-linux/locales/bn.pak /opt/teams-for-linux/locales/ca.pak /opt/teams-for-linux/locales/cs.pak /opt/teams-for-linux/locales/da.pak /opt/teams-for-linux/locales/de.pak /opt/teams-for-linux/locales/el.pak /opt/teams-for-linux/locales/en-GB.pak /opt/teams-for-linux/locales/en-US.pak /opt/teams-for-linux/locales/es-419.pak /opt/teams-for-linux/locales/es.pak /opt/teams-for-linux/locales/et.pak /opt/teams-for-linux/locales/fa.pak /opt/teams-for-linux/locales/fi.pak /opt/teams-for-linux/locales/fil.pak /opt/teams-for-linux/locales/fr.pak /opt/teams-for-linux/locales/gu.pak /opt/teams-for-linux/locales/he.pak /opt/teams-for-linux/locales/hi.pak /opt/teams-for-linux/locales/hr.pak /opt/teams-for-linux/locales/hu.pak /opt/teams-for-linux/locales/id.pak /opt/teams-for-linux/locales/it.pak /opt/teams-for-linux/locales/ja.pak /opt/teams-for-linux/locales/kn.pak /opt/teams-for-linux/locales/ko.pak /opt/teams-for-linux/locales/lt.pak /opt/teams-for-linux/locales/lv.pak /opt/teams-for-linux/locales/ml.pak /opt/teams-for-linux/locales/mr.pak /opt/teams-for-linux/locales/ms.pak /opt/teams-for-linux/locales/nb.pak /opt/teams-for-linux/locales/nl.pak /opt/teams-for-linux/locales/pl.pak /opt/teams-for-linux/locales/pt-BR.pak /opt/teams-for-linux/locales/pt-PT.pak /opt/teams-for-linux/locales/ro.pak /opt/teams-for-linux/locales/ru.pak /opt/teams-for-linux/locales/sk.pak /opt/teams-for-linux/locales/sl.pak /opt/teams-for-linux/locales/sr.pak /opt/teams-for-linux/locales/sv.pak /opt/teams-for-linux/locales/sw.pak /opt/teams-for-linux/locales/ta.pak /opt/teams-for-linux/locales/te.pak /opt/teams-for-linux/locales/th.pak /opt/teams-for-linux/locales/tr.pak /opt/teams-for-linux/locales/uk.pak /opt/teams-for-linux/locales/ur.pak /opt/teams-for-linux/locales/vi.pak /opt/teams-for-linux/locales/zh-CN.pak /opt/teams-for-linux/locales/zh-TW.pak /opt/teams-for-linux/resources.pak /opt/teams-for-linux/resources/app-update.yml /opt/teams-for-linux/resources/app.asar /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/index.js /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.abi137.glibc.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.abi137.musl.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.napi.glibc.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/node.napi.musl.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/@cbor-extract/cbor-extract-linux-x64/package.json /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/LICENSE /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/bin/download-prebuilds.js /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/build/Release/extract.node /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/index.js /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/package.json /opt/teams-for-linux/resources/app.asar.unpacked/node_modules/cbor-extract/src/extract.cpp /opt/teams-for-linux/resources/apparmor-profile /opt/teams-for-linux/resources/assets/sounds/meeting_started.wav /opt/teams-for-linux/resources/assets/sounds/new_message.wav /opt/teams-for-linux/resources/package-type /opt/teams-for-linux/snapshot_blob.bin /opt/teams-for-linux/teams-for-linux /opt/teams-for-linux/v8_context_snapshot.bin /opt/teams-for-linux/vk_swiftshader_icd.json /usr/share/applications/teams-for-linux.desktop /usr/share/icons/hicolor/1024x1024/apps/teams-for-linux.png /usr/share/icons/hicolor/128x128/apps/teams-for-linux.png /usr/share/icons/hicolor/16x16/apps/teams-for-linux.png /usr/share/icons/hicolor/24x24/apps/teams-for-linux.png /usr/share/icons/hicolor/256x256/apps/teams-for-linux.png /usr/share/icons/hicolor/32x32/apps/teams-for-linux.png /usr/share/icons/hicolor/48x48/apps/teams-for-linux.png /usr/share/icons/hicolor/512x512/apps/teams-for-linux.png /usr/share/icons/hicolor/64x64/apps/teams-for-linux.png /usr/share/icons/hicolor/96x96/apps/teams-for-linux.png %endif %post %ifarch x86_64 aarch64 #!/bin/bash if type update-alternatives >/dev/null 2>&1; then # Remove previous link if it doesn't use update-alternatives if [ -L '/usr/bin/teams-for-linux' -a -e '/usr/bin/teams-for-linux' -a "`readlink '/usr/bin/teams-for-linux'`" != '/etc/alternatives/teams-for-linux' ]; then rm -f '/usr/bin/teams-for-linux' fi update-alternatives --install '/usr/bin/teams-for-linux' 'teams-for-linux' '/opt/teams-for-linux/teams-for-linux' 100 || ln -sf '/opt/teams-for-linux/teams-for-linux' '/usr/bin/teams-for-linux' else ln -sf '/opt/teams-for-linux/teams-for-linux' '/usr/bin/teams-for-linux' fi # Check if user namespaces are supported by the kernel and working with a quick test: if ! { [[ -L /proc/self/ns/user ]] && unshare --user true; }; then # Use SUID chrome-sandbox only on systems without user namespaces: chmod 4755 '/opt/teams-for-linux/chrome-sandbox' || true else chmod 0755 '/opt/teams-for-linux/chrome-sandbox' || true fi if hash update-mime-database 2>/dev/null; then update-mime-database /usr/share/mime || true fi if hash update-desktop-database 2>/dev/null; then update-desktop-database /usr/share/applications || true fi # Install apparmor profile. (Ubuntu 24+) # First check if the version of AppArmor running on the device supports our profile. # This is in order to keep backwards compatibility with Ubuntu 22.04 which does not support abi/4.0. # In that case, we just skip installing the profile since the app runs fine without it on 22.04. # # Those apparmor_parser flags are akin to performing a dry run of loading a profile. # https://wiki.debian.org/AppArmor/HowToUse#Dumping_profiles # # Unfortunately, at the moment AppArmor doesn't have a good story for backwards compatibility. # https://askubuntu.com/questions/1517272/writing-a-backwards-compatible-apparmor-profile if apparmor_status --enabled > /dev/null 2>&1; then APPARMOR_PROFILE_SOURCE='/opt/teams-for-linux/resources/apparmor-profile' APPARMOR_PROFILE_TARGET='/etc/apparmor.d/teams-for-linux' if apparmor_parser --skip-kernel-load --debug "$APPARMOR_PROFILE_SOURCE" > /dev/null 2>&1; then cp -f "$APPARMOR_PROFILE_SOURCE" "$APPARMOR_PROFILE_TARGET" # Updating the current AppArmor profile is not possible and probably not meaningful in a chroot'ed environment. # Use cases are for example environments where images for clients are maintained. # There, AppArmor might correctly be installed, but live updating makes no sense. if ! { [ -x '/usr/bin/ischroot' ] && /usr/bin/ischroot; } && hash apparmor_parser 2>/dev/null; then # Extra flags taken from dh_apparmor: # > By using '-W -T' we ensure that any abstraction updates are also pulled in. # https://wiki.debian.org/AppArmor/Contribute/FirstTimeProfileImport apparmor_parser --replace --write-cache --skip-read-cache "$APPARMOR_PROFILE_TARGET" fi else echo "Skipping the installation of the AppArmor profile as this version of AppArmor does not seem to support the bundled profile" fi fi %endif %postun %ifarch x86_64 aarch64 #!/bin/bash # Delete the link to the binary # update-alternatives --remove : 'path' must be the registered alternative binary, # not the generic symlink — see https://man7.org/linux/man-pages/man1/update-alternatives.1.html if type update-alternatives >/dev/null 2>&1; then update-alternatives --remove 'teams-for-linux' '/opt/teams-for-linux/teams-for-linux' else rm -f '/usr/bin/teams-for-linux' fi APPARMOR_PROFILE_DEST='/etc/apparmor.d/teams-for-linux' # Remove and unload apparmor profile. if [ -f "$APPARMOR_PROFILE_DEST" ]; then # Unload the profile from the running kernel before deleting the file so the # policy is not left enforced until the next reboot. Mirror the chroot guard # used in the after-install script — live AppArmor operations are not # meaningful inside a chroot. # https://wiki.debian.org/AppArmor/HowToUse if apparmor_status --enabled > /dev/null 2>&1; then if ! { [ -x '/usr/bin/ischroot' ] && /usr/bin/ischroot; } && hash apparmor_parser 2>/dev/null; then apparmor_parser --remove "$APPARMOR_PROFILE_DEST" || true fi fi rm -f "$APPARMOR_PROFILE_DEST" fi %endif