#!/bin/sh
#
# Copyright 2009 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This script is part of the vivaldi package.
#
# It creates the repository configuration file for package updates, since
# we cannot do this during the vivaldi installation since the repository
# is locked.
#
# This functionality can be controlled by creating the $DEFAULTS_FILE and
# setting "repo_add_once" to "true" or "false" as desired. An empty
# $DEFAULTS_FILE is the same as setting the value to "false".

# System-wide package configuration.
DEFAULTS_FILE="/etc/default/vivaldi"

# sources.list setting for vivaldi updates.
REPOCONFIG="https://repo.vivaldi.com/archive/rpm"
REPOCONFIGREGEX=""
# This file is automatically generated by update_key_include.py
# Do not edit this file directly.

# This is used as a priority value for the key file, so newer
# keyrings should always take priority.
PGP_KEY_VERSION=2

# pub   rsa4096 2016-04-12 [SC]
#       EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796
# uid           [ unknown] Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>
# sub   rsa4096 2024-01-30 [S] [expires: 2027-01-29]
# sub   rsa4096 2025-01-07 [S] [expires: 2028-01-07]
PGP_KEY_DATA=$(cat <<KEYDATA
mQINBFcMjNMBEAC6Wr5QuLIFgz1V1EFPlg8ty2TsjQEl4VWftUAqWlMevJFWvYEx
BOsOZ6kNFfBfjAxgJNWTkxZrHzDl74R7KW/nUx6X57bpFjUyRaB8F3/NpWKSeIGS
pJT+0m2SgUNhLAn1WY/iNJGNaMl7lgUnaP+/ZsSNT9hyTBiH3Ev5VvAtMGhVI/u8
P0EtTjXp4o2U+VqFTBGmZ6PJVhCFjZUeRByloHw8dGOshfXKgriebpioHvU8iQ2U
GV3WNIirB2Rq1wkKxXJ/9Iw+4l5m4GmXMs7n3XaYQoBj28H86YA1cYWSm5LR5iU2
TneI1fJ3vwF2vpSXVBUUDk67PZhg6ZwGRT7GFWskC0z8PsWd5jwK20mA8EVKq0vN
BFmMK6i4fJU+ux17Rgvnc9tDSCzFZ1/4f43EZ41uTmmNXIDsaPCqwjvSS5ICadt2
xeqTWDlzONUpOs5yBjF1cfJSdVxsfshvln2JXUwgIdKl4DLbZybuNFXnPffNLb2v
PtRJHO48O2UbeXS8n27PcuMoLRd7+r7TsqG2vBH4t/cB/1vsvWMbqnQlaJ5VsjeW
Tp8Gv9FJiKuU8PKiWsF4EGR/kAFyCB8QbJeQ6HrOT0CXLOaYHRu2TvJ4taY9doXn
98TgU03XTLcYoSp49cdkkis4K+9hd2dUqARVCG7UVd9PY60VVCKi47BVKQARAQAB
tFRHb29nbGUgSW5jLiAoTGludXggUGFja2FnZXMgU2lnbmluZyBBdXRob3JpdHkp
IDxsaW51eC1wYWNrYWdlcy1rZXltYXN0ZXJAZ29vZ2xlLmNvbT6JAk4EEwEIADgC
GwMCHgECF4AWIQTrTBv9TwQvbd3M7JF3IfY704tHlgUCVwyM0wULCQgHAgYVCgkI
CwIEFgIDAQAKCRB3IfY704tHlkGrD/9aIOPxoABbhHDa+GbM1XHSeV99q2UOIsYc
A5Jg3k2+Vbjr/006cL9Kk+rdbruZJtERo2z+HVVhkJisvySbsd0UbWfiY5AdHzNP
azpitbX9cNYi0ghDZsD5UgP3cWdx21BJPO0v9PBG9U4z1TQ+pmsQphtNzMC4tK+A
H/7WTXnVPzKXTYziIEIPgHeassSj7Yfwa8kLiBR5tAehHDNNMi/mMf4d6a+wO46x
hhRx/BLjoaIxsZw9f5VxDAqGbCrW8IccwJX8vTc89y+6vpzSurdqYrplZWGpcnfT
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
KEYDATA
)

PGP_KEY_CHECKSUM="=AcRC"

PGP_SUBKEYS="32EE5355A6BC6E42 FD533C07C264648F"


# import Vivaldi public key updates from Vivaldi repo
# Vivaldi public key updates

# Remove expired repository/package signing key (74C35BC8), if present.
remove_old_rpm_key() {
  rpm -q gpg-pubkey-74c35bC8 >/dev/null 2>&1
  if [ "$?" -eq "0" ]; then
    rpm -e gpg-pubkey-74c35bC8 >/dev/null 2>&1
  fi
}

# Install the repository/package signing key (16BD9233), if it isn't already.
install_rpm_key() {
  # Check to see if the key already exists.
  rpm -q gpg-pubkey-16bd9233 >/dev/null 2>&1
  if [ "$?" -eq "0" ]; then
    # Keys already exist
    return 0
  fi

  # RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
  TMPKEY=$(mktemp /tmp/vivaldi.sig.XXXXXX)
  if [ -n "$TMPKEY" ]; then
    cat > "$TMPKEY" <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
PZ2s3lTwkFW64dyrrmIWzspj0qSATQPm130tpeA=
=XSJ6
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
    rpm --import "$TMPKEY" >/dev/null 2>&1
    rc=$?
    rm -f "$TMPKEY"
    if [ "$rc" -eq "0" ]; then
      return 0
    fi
  fi
  return 1
}

# Install another key (5220E3E9), if it isn't already, for future use.
install_future_rpm_key() {
  # Check to see if the key already exists.
  rpm -q gpg-pubkey-5220e3e9 >/dev/null 2>&1
  if [ "$?" -eq "0" ]; then
    # Keys already exist
    return 0
  fi

  # RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
  TMPKEY=$(mktemp /tmp/vivaldi.sig.XXXXXX)
  if [ -n "$TMPKEY" ]; then
    cat > "$TMPKEY" <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
N34yugRNB8VjKLPki90Rr9IEF/Df0KCAghhDCjE=
=bSzL
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
    rpm --import "$TMPKEY" >/dev/null 2>&1
    rc=$?
    rm -f "$TMPKEY"
    if [ "$rc" -eq "0" ]; then
      return 0
    fi
  fi
  return 1
}

determine_rpm_package_manager() {
  local RELEASE

  # Modern method using os-release(5)
  if [ -f "/etc/os-release" ]; then
    RELEASE=$(. "/etc/os-release"; echo "$ID")
    case $RELEASE in
    "fedora"|"rhel"|"centos"|"amzn"|"mageia"|"openmandriva")
      PACKAGEMANAGERS=(yum)
      ;;
    "suse"|"sles"|"sled"|"opensuse"|"opensuse-leap"|"opensuse-tumbleweed"|"opensuse-slowroll")
      PACKAGEMANAGERS=(zypp)
      ;;
    esac
  fi

  if [ "$PACKAGEMANAGERS" ]; then
    return
  fi

  # Fallback method using lsb_release(1)
  LSB_RELEASE="$(command -v lsb_release 2> /dev/null)"
  if [ -x "$LSB_RELEASE" ]; then
    RELEASE=$(lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-)
    case $RELEASE in
    "Fedora"|"Amazon"|"Mageia"|"OpenMandrivaLinux")
      PACKAGEMANAGERS=(yum)
      ;;
    "SUSE LINUX"|"openSUSE")
      PACKAGEMANAGERS=(zypp)
      ;;
    esac
  fi

  if [ "$PACKAGEMANAGERS" ]; then
    return
  fi

  # Fallback methods that are probably unnecessary on modern systems.
  if [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then
    PACKAGEMANAGERS=(yum)
  elif [ -f "/etc/system-release" ] && grep -Fq "Amazon Linux" "/etc/system-release"; then
    PACKAGEMANAGERS=(yum)
  elif [ -f "/etc/SuSE-release" ]; then
    PACKAGEMANAGERS=(zypp)
  fi
}

DEFAULT_ARCH="x86_64"
YUM_REPO_FILE="/etc/yum.repos.d/vivaldi.repo"
ZYPPER_REPO_FILE="/etc/zypp/repos.d/vivaldi.repo"

install_yum() {
  install_rpm_key

  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  if [ -d "/etc/yum.repos.d" ]; then
cat > "$YUM_REPO_FILE" << REPOCONTENT
[vivaldi]
name=vivaldi
baseurl=$REPOCONFIG/$DEFAULT_ARCH
enabled=1
gpgcheck=1
gpgkey=https://repo.vivaldi.com/archive/linux_signing_key.pub
REPOCONTENT
  fi
}

install_zypp() {
  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  # Ideally, we would run: zypper addrepo -t YUM -f \
  # "$REPOCONFIG/$DEFAULT_ARCH" "vivaldi"
  # but that does not work when zypper is running.
  if [ -d "/etc/zypp/repos.d" ]; then
cat > "$ZYPPER_REPO_FILE" << REPOCONTENT
[vivaldi]
name=vivaldi
enabled=1
autorefresh=1
baseurl=$REPOCONFIG/$DEFAULT_ARCH
gpgcheck=1
gpgkey=https://repo.vivaldi.com/archive/linux_signing_key.pub
type=rpm-md
keeppackages=0
REPOCONTENT
  fi
}

# Check if the automatic repository configuration is done, so we know when to
# stop trying.
verify_install() {
  # It's probably enough to see that the repo configs have been created. If they
  # aren't configured properly, update_bad_repo should catch that when it's run.
  case $1 in
  "yum")
    [ -f "$YUM_REPO_FILE" ]
    ;;
  "zypp")
    [ -f "$ZYPPER_REPO_FILE" ]
    ;;
  esac
}

# Update the Google repository if it's not set correctly.
update_bad_repo() {
  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  determine_rpm_package_manager

  for PACKAGEMANAGER in ${PACKAGEMANAGERS[*]}
  do
    case $PACKAGEMANAGER in
    "yum")
      update_repo_file "$YUM_REPO_FILE"
      ;;
    "zypp")
      update_repo_file "$ZYPPER_REPO_FILE"
      ;;
    esac
  done
}

update_repo_file() {
  REPO_FILE="$1"

  # Don't do anything if the file isn't there, since that probably means the
  # user disabled it.
  if [ ! -r "$REPO_FILE" ]; then
    return 0
  fi

  # Check if the correct repository configuration is in there.
  REPOMATCH=$(grep "^baseurl=$REPOCONFIG/$DEFAULT_ARCH" "$REPO_FILE" \
    2>/dev/null)
  # If it's there, nothing to do
  if [ "$REPOMATCH" ]; then
    return 0
  fi

  # Check if it's there but disabled by commenting out (as opposed to using the
  # 'enabled' setting).
  MATCH_DISABLED=$(grep "^[[:space:]]*#.*baseurl=$REPOCONFIG/$DEFAULT_ARCH" \
    "$REPO_FILE" 2>/dev/null)
  if [ "$MATCH_DISABLED" ]; then
    # It's OK for it to be disabled, as long as nothing bogus is enabled in its
    # place.
    ACTIVECONFIGS=$(grep "^baseurl=.*" "$REPO_FILE" 2>/dev/null)
    if [ ! "$ACTIVECONFIGS" ]; then
      return 0
    fi
  fi

  # If we get here, the correct repository wasn't found, or something else is
  # active, so fix it. This assumes there is a 'baseurl' setting, but if not,
  # then that's just another way of disabling, so we won't try to add it.
  sed -i -e "s,^baseurl=.*,baseurl=$REPOCONFIG/$DEFAULT_ARCH," "$REPO_FILE"
}

# We only remove the repository configuration during a purge. Since RPM has
# no equivalent to dpkg --purge, the code below is actually never used. We
# keep it only for reference purposes, should we ever need it.
#
#remove_yum() {
#  rm -f "$YUM_REPO_FILE"
#}
#
#remove_zypp() {
#  # Ideally, we would run: zypper removerepo "vivaldi"
#  # but that does not work when zypper is running.
#  rm -f /etc/zypp/repos.d/vivaldi.repo
#}

DEFAULT_ARCH="x86_64"

get_lib_dir() {
  if [ "$DEFAULT_ARCH" = "i386" ] || [ "$DEFAULT_ARCH" = "armhf" ] || \
      [ "$DEFAULT_ARCH" = "mipsel" ]; then
    LIBDIR=lib
  elif [ "$DEFAULT_ARCH" = "x86_64" ] || [ "$DEFAULT_ARCH" = "aarch64" ] || \
        [ "$DEFAULT_ARCH" = "mips64el" ]; then
    LIBDIR=lib64
  else
    echo Unknown CPU Architecture: "$DEFAULT_ARCH"
    exit 1
  fi
}

## MAIN ##
if [ -r "$DEFAULTS_FILE" ]; then
  . "$DEFAULTS_FILE"
fi

remove_old_rpm_key
install_rpm_key
install_future_rpm_key

if [ "$repo_add_once" = "true" ]; then
  determine_rpm_package_manager

  # Let's run through this for each supported package manager as detected...
  for PACKAGEMANAGER in ${PACKAGEMANAGERS[*]}
  do
    # The initial install happens in the post-install scripts, but there have been
    # reports of configuration problems, so just verify that everything looks
    # good, and if not, try to install again.
    verify_install $PACKAGEMANAGER
    if [ $? -ne 0 ]; then
      install_${PACKAGEMANAGER}
    fi
  done

  if [ $? -eq 0 ]; then
    # Do this for each supported package manager...
    for PACKAGEMANAGER in ${PACKAGEMANAGERS[*]}
    do
      # Before we quit auto-configuration, check that everything looks sane, since
      # part of this happened during package install and we don't have the return
      # value of that process.
      verify_install $PACKAGEMANAGER
      if [ $? -eq 0 ]; then
        sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' \
          "$DEFAULTS_FILE"
      fi
    done
  fi
else
  update_bad_repo
fi
