$ rpm -q yandex-browser-beta --scripts
preinstall scriptlet (using /bin/sh):
exit 0
#------------------------------------------------------------------------------
# Post install script
#------------------------------------------------------------------------------
postinstall scriptlet (using /bin/sh):
# Add icons to the system icons
XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
if [ ! -x "$XDG_ICON_RESOURCE" ]; then
echo "Error: Could not find xdg-icon-resource" >&2
exit 1
fi
for icon in "/opt/yandex/browser-beta/product_logo_"*.png; do
size="${icon##*/product_logo_}"
"$XDG_ICON_RESOURCE" install --size "${size%.png}" "$icon" "yandex-browser-beta"
done
UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
if [ -x "$UPDATE_MENUS" ]; then
update-menus
fi
# Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
update-desktop-database > /dev/null 2>&1 || true
# Updates defaults.list file if present.
update_defaults_list() {
# $1: name of the .desktop file
local DEFAULTS_FILE="/usr/share/applications/defaults.list"
if [ ! -f "${DEFAULTS_FILE}" ]; then
return
fi
# Split key-value pair out of MimeType= line from the .desktop file,
# then split semicolon-separated list of mime types (they should not contain
# spaces).
mime_types="$(grep MimeType= /usr/share/applications/${1} |
cut -d '=' -f 2- |
tr ';' ' ')"
for mime_type in ${mime_types}; do
if egrep -q "^${mime_type}=" "${DEFAULTS_FILE}"; then
if ! egrep -q "^${mime_type}=.*${1}" "${DEFAULTS_FILE}"; then
default_apps="$(grep ${mime_type}= "${DEFAULTS_FILE}" |
cut -d '=' -f 2-)"
egrep -v "^${mime_type}=" "${DEFAULTS_FILE}" > "${DEFAULTS_FILE}.new"
echo "${mime_type}=${default_apps};${1}" >> "${DEFAULTS_FILE}.new"
mv "${DEFAULTS_FILE}.new" "${DEFAULTS_FILE}"
fi
else
# If there's no mention of the mime type in the file, add it.
echo "${mime_type}=${1};" >> "${DEFAULTS_FILE}"
fi
done
}
update_defaults_list "yandex-browser-beta.desktop"
# This function uses sed to insert the contents of one file into another file,
# after the first line matching a given regular expression. If there is no
# matching line, then the file is unchanged.
insert_after_first_match() {
# $1: file to update
# $2: regular expression
# $3: file to insert
sed -i -e "1,/$2/ {
/$2/ r $3
}" "$1"
}
# If /usr/share/gnome-control-center/default-apps/gnome-default-applications.xml
# exists, it may need to be updated to add ourselves to the default applications
# list. If we find the file and it does not seem to contain our patch already
# (the patch is safe to leave even after uninstall), update it.
GNOME_DFL_APPS=/usr/share/gnome-control-center/default-apps/gnome-default-applications.xml
if [ -f "$GNOME_DFL_APPS" ]; then
# Conditionally insert the contents of the file "default-app-block" after the
# first "<web-browsers>" line we find in gnome-default-applications.xml
fgrep -q "Yandex Browser (beta)" "$GNOME_DFL_APPS" || insert_after_first_match \
"$GNOME_DFL_APPS" \
"^[ ]*<web-browsers>[ ]*$" \
"/opt/yandex/browser-beta/default-app-block"
fi
# System-wide package configuration.
DEFAULTS_FILE="/etc/default/yandex-browser-beta"
# sources.list setting for yandex-browser-beta updates.
REPOCONFIG="
http://repo.yandex.ru/yandex-browser/rpm/beta"
REPOCONFIGREGEX=""
# Install the repository signing key
install_rpm_key() {
# Check to see if key already exists.
rpm -q gpg-pubkey-cc5fdb34-540dae43 > /dev/null 2>&1
if [ "$?" -eq "0" ]; then
# Key already exists
return 0
fi
# RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
TMPKEY=$(mktemp /tmp/yandex.sig.XXXXXX)
if [ -n "$TMPKEY" ]; then
cat > "$TMPKEY" <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)
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
/cAWQBPychi5yutrZ8INB1UppITOLQv+
=OuZx
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
rpm --import "$TMPKEY"
rc=$?
rm -f "$TMPKEY"
if [ "$rc" -eq "0" ]; then
return 0
fi
fi
return 1
}
determine_rpm_package_manager() {
local RELEASE
LSB_RELEASE="$(which 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")
PACKAGEMANAGER=yum
;;
"Mageia"|"MandrivaLinux")
PACKAGEMANAGER=urpmi
;;
"SUSE LINUX")
PACKAGEMANAGER=yast
;;
esac
fi
if [ "$PACKAGEMANAGER" ]; then
return
fi
# Fallback methods that are probably unnecessary on modern systems.
if [ -f "/etc/lsb-release" ]; then
# file missing on Fedora, does not contain DISTRIB_ID on OpenSUSE.
eval $(sed -e '/DISTRIB_ID/!d' /etc/lsb-release)
case $DISTRIB_ID in
MandrivaLinux)
PACKAGEMANAGER=urpmi
;;
esac
fi
if [ "$PACKAGEMANAGER" ]; then
return
fi
if [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then
PACKAGEMANAGER=yum
elif [ -f "/etc/SuSE-release" ]; then
PACKAGEMANAGER=yast
elif [ -f "/etc/mandriva-release" ]; then
PACKAGEMANAGER=urpmi
fi
}
DEFAULT_ARCH="x86_64"
YUM_REPO_FILE="/etc/yum.repos.d/yandex-browser-beta.repo"
ZYPPER_REPO_FILE="/etc/zypp/repos.d/yandex-browser-beta.repo"
URPMI_REPO_FILE="/etc/urpmi/urpmi.cfg"
install_yum() {
install_rpm_key
if [ ! "$REPOCONFIG" ]; then
return 0
fi
if [ -d "/etc/yum.repos.d" ]; then
cat > "$YUM_REPO_FILE" << REPOCONTENT
[yandex-browser-beta]
name=yandex-browser-beta
baseurl=$REPOCONFIG/$DEFAULT_ARCH
enabled=1
gpgcheck=1
gpgkey=
https://repo.yandex.ru/yandex-browser/Y ... ER-KEY.GPG
REPOCONTENT
fi
}
# This is called by the cron job, rather than in the RPM postinstall.
# We cannot do this during the install when urpmi is running due to
# database locking. We also need to enable the repository, and we can
# only do that while we are online.
# see:
https://qa.mandriva.com/show_bug.cgi?id=31893
configure_urpmi() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
urpmq --list-media | grep -q -s "^yandex-browser-beta$"
if [ "$?" -eq "0" ]; then
# Repository already configured
return 0
fi
urpmi.addmedia --update \
"yandex-browser-beta" "$REPOCONFIG/$DEFAULT_ARCH"
}
install_urpmi() {
# urpmi not smart enough to pull media_info/pubkey from the repository?
install_rpm_key
# Defer urpmi.addmedia to configure_urpmi() in the cron job.
# See comment there.
#
# urpmi.addmedia --update \
# "yandex-browser-beta" "$REPOCONFIG/$DEFAULT_ARCH"
}
install_yast() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
# We defer adding the key to later. See comment in the cron job.
# Ideally, we would run: zypper addrepo -t YUM -f \
# "$REPOCONFIG/$DEFAULT_ARCH" "yandex-browser-beta"
# but that does not work when zypper is running.
if [ -d "/etc/zypp/repos.d" ]; then
cat > "$ZYPPER_REPO_FILE" << REPOCONTENT
[yandex-browser-beta]
name=yandex-browser-beta
enabled=1
autorefresh=1
baseurl=$REPOCONFIG/$DEFAULT_ARCH
type=rpm-md
keeppackages=0
gpgcheck=1
gpgkey=
https://repo.yandex.ru/yandex-browser/Y ... ER-KEY.GPG
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" ]
;;
"yast")
[ -f "$ZYPPER_REPO_FILE" ]
;;
"urpmi")
urpmq --list-url | grep -q -s "\byandex-browser-beta\b"
;;
esac
}
# Update the Google repository if it's not set correctly.
update_bad_repo() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
determine_rpm_package_manager
case $PACKAGEMANAGER in
"yum")
update_repo_file "$YUM_REPO_FILE"
;;
"yast")
update_repo_file "$ZYPPER_REPO_FILE"
;;
"urpmi")
update_urpmi_cfg
;;
esac
}
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"
}
update_urpmi_cfg() {
REPOCFG=$(urpmq --list-url | grep "\byandex-browser-beta\b")
if [ ! "$REPOCFG" ]; then
# Don't do anything if the repo isn't there, since that probably means the
# user deleted it.
return 0
fi
# See if it's the right repo URL
REPOMATCH=$(echo "$REPOCFG" | grep "\b$REPOCONFIG/$DEFAULT_ARCH\b")
# If so, nothing to do
if [ "$REPOMATCH" ]; then
return 0
fi
# Looks like it's the wrong URL, so recreate it.
urpmi.removemedia "yandex-browser-beta" && \
urpmi.addmedia --update "yandex-browser-beta" "$REPOCONFIG/$DEFAULT_ARCH"
}
# 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_urpmi() {
# # Ideally, we would run: urpmi.removemedia "yandex-browser-beta"
# # but that does not work when urpmi is running.
# # Sentinel comment text does not work either because urpmi.update removes
# # all comments. So we just delete the entry that matches what we originally
# # inserted. If such an entry was added manually, that's tough luck.
# if [ -f "$URPMI_REPO_FILE" ]; then
# sed -i '\_^yandex-browser-beta $REPOCONFIG/$DEFAULT_ARCH {$_,/^}$/d' "$URPMI_REPO_FILE"
# fi
#}
#
#remove_yast() {
# # Ideally, we would run: zypper removerepo "yandex-browser-beta"
# # but that does not work when zypper is running.
# rm -f /etc/zypp/repos.d/yandex-browser-beta.repo
#}
DEFAULT_ARCH="x86_64"
get_lib_dir() {
if [ "$DEFAULT_ARCH" = "i386" ]; then
LIBDIR=lib
elif [ "$DEFAULT_ARCH" = "x86_64" ]; then
LIBDIR=lib64
else
echo Unknown CPU Architecture: "$DEFAULT_ARCH"
exit 1
fi
}
NSS_FILES="libnspr4.so.0d libplds4.so.0d libplc4.so.0d libssl3.so.1d \
libnss3.so.1d libsmime3.so.1d libnssutil3.so.1d"
add_nss_symlinks() {
get_lib_dir
for f in $NSS_FILES
do
target=$(echo $f | sed 's/\.[01]d$//')
if [ -f "/$LIBDIR/$target" ]; then
ln -snf "/$LIBDIR/$target" "/opt/yandex/browser-beta/$f"
elif [ -f "/usr/$LIBDIR/$target" ]; then
ln -snf "/usr/$LIBDIR/$target" "/opt/yandex/browser-beta/$f"
else
echo $f not found in "/$LIBDIR/$target" or "/usr/$LIBDIR/$target".
exit 1
fi
done
}
remove_nss_symlinks() {
for f in $NSS_FILES
do
rm -rf "/opt/yandex/browser-beta/$f"
done
}
remove_udev_symlinks() {
rm -rf "/opt/yandex/browser-beta/libudev.so.0"
}
remove_nss_symlinks
add_nss_symlinks
remove_udev_symlinks
DEFAULTS_FILE="/etc/default/yandex-browser-beta"
if [ ! -e "$DEFAULTS_FILE" ]; then
echo 'repo_add_once="true"' > "$DEFAULTS_FILE"
fi
. "$DEFAULTS_FILE"
if [ "$repo_add_once" = "true" ]; then
determine_rpm_package_manager
case $PACKAGEMANAGER in
"yum")
install_yum
;;
"urpmi")
install_urpmi
;;
"yast")
install_yast
;;
esac
fi
# Some package managers have locks that prevent everything from being
# configured at install time, so wait a bit then kick the cron job to do
# whatever is left. Probably the db will be unlocked by then, but if not, the
# cron job will keep retrying.
# Do this with 'at' instead of a backgrounded shell because zypper waits on all
# sub-shells to finish before it finishes, which is exactly the opposite of
# what we want here. Also preemptively start atd because for some reason it's
# not always running, which kind of defeats the purpose of having 'at' as a
# required LSB command.
service atd start
echo "sh /etc/cron.daily/yandex-browser-beta" | at now + 2 minute > /dev/null 2>&1
CHANNEL=beta
case $CHANNEL in
stable )
PRIORITY=40
;;
beta )
PRIORITY=40
;;
unstable )
PRIORITY=40
;;
* )
PRIORITY=0
;;
esac
/usr/sbin/update-alternatives --install /usr/bin/yandex-browser yandex-browser \
/usr/bin/yandex-browser-beta $PRIORITY
exit 0
#------------------------------------------------------------------------------
# Pre uninstallation script
#------------------------------------------------------------------------------
preuninstall scriptlet (using /bin/sh):
if [ "$1" -eq "0" ]; then
mode="uninstall"
elif [ "$1" -eq "1" ]; then
mode="upgrade"
fi
# System-wide package configuration.
DEFAULTS_FILE="/etc/default/yandex-browser-beta"
# sources.list setting for yandex-browser-beta updates.
REPOCONFIG="
http://repo.yandex.ru/yandex-browser/rpm/beta"
REPOCONFIGREGEX=""
# Install the repository signing key
install_rpm_key() {
# Check to see if key already exists.
rpm -q gpg-pubkey-cc5fdb34-540dae43 > /dev/null 2>&1
if [ "$?" -eq "0" ]; then
# Key already exists
return 0
fi
# RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
TMPKEY=$(mktemp /tmp/yandex.sig.XXXXXX)
if [ -n "$TMPKEY" ]; then
cat > "$TMPKEY" <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)
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
/cAWQBPychi5yutrZ8INB1UppITOLQv+
=OuZx
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
rpm --import "$TMPKEY"
rc=$?
rm -f "$TMPKEY"
if [ "$rc" -eq "0" ]; then
return 0
fi
fi
return 1
}
determine_rpm_package_manager() {
local RELEASE
LSB_RELEASE="$(which 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")
PACKAGEMANAGER=yum
;;
"Mageia"|"MandrivaLinux")
PACKAGEMANAGER=urpmi
;;
"SUSE LINUX")
PACKAGEMANAGER=yast
;;
esac
fi
if [ "$PACKAGEMANAGER" ]; then
return
fi
# Fallback methods that are probably unnecessary on modern systems.
if [ -f "/etc/lsb-release" ]; then
# file missing on Fedora, does not contain DISTRIB_ID on OpenSUSE.
eval $(sed -e '/DISTRIB_ID/!d' /etc/lsb-release)
case $DISTRIB_ID in
MandrivaLinux)
PACKAGEMANAGER=urpmi
;;
esac
fi
if [ "$PACKAGEMANAGER" ]; then
return
fi
if [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then
PACKAGEMANAGER=yum
elif [ -f "/etc/SuSE-release" ]; then
PACKAGEMANAGER=yast
elif [ -f "/etc/mandriva-release" ]; then
PACKAGEMANAGER=urpmi
fi
}
DEFAULT_ARCH="x86_64"
YUM_REPO_FILE="/etc/yum.repos.d/yandex-browser-beta.repo"
ZYPPER_REPO_FILE="/etc/zypp/repos.d/yandex-browser-beta.repo"
URPMI_REPO_FILE="/etc/urpmi/urpmi.cfg"
install_yum() {
install_rpm_key
if [ ! "$REPOCONFIG" ]; then
return 0
fi
if [ -d "/etc/yum.repos.d" ]; then
cat > "$YUM_REPO_FILE" << REPOCONTENT
[yandex-browser-beta]
name=yandex-browser-beta
baseurl=$REPOCONFIG/$DEFAULT_ARCH
enabled=1
gpgcheck=1
gpgkey=
https://repo.yandex.ru/yandex-browser/Y ... ER-KEY.GPG
REPOCONTENT
fi
}
# This is called by the cron job, rather than in the RPM postinstall.
# We cannot do this during the install when urpmi is running due to
# database locking. We also need to enable the repository, and we can
# only do that while we are online.
# see:
https://qa.mandriva.com/show_bug.cgi?id=31893
configure_urpmi() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
urpmq --list-media | grep -q -s "^yandex-browser-beta$"
if [ "$?" -eq "0" ]; then
# Repository already configured
return 0
fi
urpmi.addmedia --update \
"yandex-browser-beta" "$REPOCONFIG/$DEFAULT_ARCH"
}
install_urpmi() {
# urpmi not smart enough to pull media_info/pubkey from the repository?
install_rpm_key
# Defer urpmi.addmedia to configure_urpmi() in the cron job.
# See comment there.
#
# urpmi.addmedia --update \
# "yandex-browser-beta" "$REPOCONFIG/$DEFAULT_ARCH"
}
install_yast() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
# We defer adding the key to later. See comment in the cron job.
# Ideally, we would run: zypper addrepo -t YUM -f \
# "$REPOCONFIG/$DEFAULT_ARCH" "yandex-browser-beta"
# but that does not work when zypper is running.
if [ -d "/etc/zypp/repos.d" ]; then
cat > "$ZYPPER_REPO_FILE" << REPOCONTENT
[yandex-browser-beta]
name=yandex-browser-beta
enabled=1
autorefresh=1
baseurl=$REPOCONFIG/$DEFAULT_ARCH
type=rpm-md
keeppackages=0
gpgcheck=1
gpgkey=
https://repo.yandex.ru/yandex-browser/Y ... ER-KEY.GPG
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" ]
;;
"yast")
[ -f "$ZYPPER_REPO_FILE" ]
;;
"urpmi")
urpmq --list-url | grep -q -s "\byandex-browser-beta\b"
;;
esac
}
# Update the Google repository if it's not set correctly.
update_bad_repo() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
determine_rpm_package_manager
case $PACKAGEMANAGER in
"yum")
update_repo_file "$YUM_REPO_FILE"
;;
"yast")
update_repo_file "$ZYPPER_REPO_FILE"
;;
"urpmi")
update_urpmi_cfg
;;
esac
}
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"
}
update_urpmi_cfg() {
REPOCFG=$(urpmq --list-url | grep "\byandex-browser-beta\b")
if [ ! "$REPOCFG" ]; then
# Don't do anything if the repo isn't there, since that probably means the
# user deleted it.
return 0
fi
# See if it's the right repo URL
REPOMATCH=$(echo "$REPOCFG" | grep "\b$REPOCONFIG/$DEFAULT_ARCH\b")
# If so, nothing to do
if [ "$REPOMATCH" ]; then
return 0
fi
# Looks like it's the wrong URL, so recreate it.
urpmi.removemedia "yandex-browser-beta" && \
urpmi.addmedia --update "yandex-browser-beta" "$REPOCONFIG/$DEFAULT_ARCH"
}
# 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_urpmi() {
# # Ideally, we would run: urpmi.removemedia "yandex-browser-beta"
# # but that does not work when urpmi is running.
# # Sentinel comment text does not work either because urpmi.update removes
# # all comments. So we just delete the entry that matches what we originally
# # inserted. If such an entry was added manually, that's tough luck.
# if [ -f "$URPMI_REPO_FILE" ]; then
# sed -i '\_^yandex-browser-beta $REPOCONFIG/$DEFAULT_ARCH {$_,/^}$/d' "$URPMI_REPO_FILE"
# fi
#}
#
#remove_yast() {
# # Ideally, we would run: zypper removerepo "yandex-browser-beta"
# # but that does not work when zypper is running.
# rm -f /etc/zypp/repos.d/yandex-browser-beta.repo
#}
DEFAULT_ARCH="x86_64"
get_lib_dir() {
if [ "$DEFAULT_ARCH" = "i386" ]; then
LIBDIR=lib
elif [ "$DEFAULT_ARCH" = "x86_64" ]; then
LIBDIR=lib64
else
echo Unknown CPU Architecture: "$DEFAULT_ARCH"
exit 1
fi
}
NSS_FILES="libnspr4.so.0d libplds4.so.0d libplc4.so.0d libssl3.so.1d \
libnss3.so.1d libsmime3.so.1d libnssutil3.so.1d"
add_nss_symlinks() {
get_lib_dir
for f in $NSS_FILES
do
target=$(echo $f | sed 's/\.[01]d$//')
if [ -f "/$LIBDIR/$target" ]; then
ln -snf "/$LIBDIR/$target" "/opt/yandex/browser-beta/$f"
elif [ -f "/usr/$LIBDIR/$target" ]; then
ln -snf "/usr/$LIBDIR/$target" "/opt/yandex/browser-beta/$f"
else
echo $f not found in "/$LIBDIR/$target" or "/usr/$LIBDIR/$target".
exit 1
fi
done
}
remove_nss_symlinks() {
for f in $NSS_FILES
do
rm -rf "/opt/yandex/browser-beta/$f"
done
}
remove_udev_symlinks() {
rm -rf "/opt/yandex/browser-beta/libudev.so.0"
}
# Only remove menu items and symlinks on uninstall. When upgrading,
# old_pkg's %preun runs after new_pkg's %post.
if [ "$mode" = "uninstall" ]; then
# Remove icons from the system icons
XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
if [ ! -x "$XDG_ICON_RESOURCE" ]; then
echo "Error: Could not find xdg-icon-resource" >&2
exit 1
fi
for icon in "/opt/yandex/browser-beta/product_logo_"*.png; do
size="${icon##*/product_logo_}"
"$XDG_ICON_RESOURCE" uninstall --size "${size%.png}" "yandex-browser-beta"
done
UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
if [ -x "$UPDATE_MENUS" ]; then
update-menus
fi
# Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
update-desktop-database > /dev/null 2>&1 || true
remove_nss_symlinks
remove_udev_symlinks
/usr/sbin/update-alternatives --remove yandex-browser \
/usr/bin/yandex-browser-beta
fi
# On Debian we only remove when we purge. However, RPM has no equivalent to
# dpkg --purge, so this is all disabled.
#
#determine_rpm_package_manager
#
#case $PACKAGEMANAGER in
#"yum")
# remove_yum
# ;;
#"urpmi")
# remove_urpmi
# ;;
#"yast")
# remove_yast
# ;;
#esac
exit 0
#------------------------------------------------------------------------------
# Post uninstallation script
#------------------------------------------------------------------------------
postuninstall scriptlet (using /bin/sh):
exit 0