# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

abi <abi/3.0>,

include <tunables/global>

@{arch} = amd64 i386
@{runtime} = SteamLinuxRuntime_sniper
@{share_dirs} = @{user_share_dirs}/Steam @{HOME}/.steam/debian-installation
@{lib_dirs} = @{share_dirs}/ubuntu@{int2}_{32,64} @{share_dirs}/linux{32,64}
@{runtime_dirs} = @{lib_dirs}/steam-runtime{,-sniper}
@{app_dirs} = @{share_dirs}/steamapps/common/

@{exec_path} = @{bin}/steam @{bin}/steam-runtime
profile steam-launch @{exec_path} {
  include <abstractions/base>
  include <abstractions/python>

  network unix stream,

  @{exec_path} mr,

  @{sh_path}         rix,
  @{bin}/cp          rix,
  @{bin}/dirname     rix,
  @{bin}/env         rix,
  @{bin}/id          rix,
  @{bin}/readlink    rix,

  @{lib}/steam/steam         rix,
  @{lib}/steam/bin_steam.sh  rix,
  @{share_dirs}/steam.sh     rPx,

  /usr/ r,
  /usr/local/ r,

  owner @{share_dirs}/bootstrap.tar.xz rw,

  /dev/tty rw,

  deny /opt/** r,

  include if exists <local/steam-launch>
}

# vim:syntax=apparmor
