#------------------------------------------------------------------------------
#   chrome.spec
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
#   Prologue information
#------------------------------------------------------------------------------
Summary         : @@MENUNAME@@
License         : Multiple, see @@PRODUCTURL@@
Name            : @@PACKAGE@@-@@CHANNEL@@
Version         : @@VERSION@@
Release         : @@PACKAGE_RELEASE@@
Group           : Applications/Internet
Vendor          : @@COMPANY_FULLNAME@@
Url             : @@PRODUCTURL@@
Packager        : @@MAINTNAME@@ <@@MAINTMAIL@@>

Provides        : @@PROVIDES@@ = %{version}
Requires        : @@DEPENDS@@
Requires(post)  : %{_sbindir}/update-alternatives
Requires(preun) : %{_sbindir}/update-alternatives
Autoreqprov     : No
Conflicts       : @@REPLACES@@

BuildRoot       : %{_tmppath}/%{name}-%{version}-root

# The prefix is pretty important; RPM uses this to figure out
# how to make a package relocatable
prefix          : /opt

#------------------------------------------------------------------------------
#   Description
#------------------------------------------------------------------------------
%Description
@@SHORTDESC@@

@@FULLDESC@@

#------------------------------------------------------------------------------
#   Build rule - How to make the package
#------------------------------------------------------------------------------
%build

#------------------------------------------------------------------------------
#       Installation rule - how to install it (note that it
#   gets installed into a temp directory given by $RPM_BUILD_ROOT)
#------------------------------------------------------------------------------
%install
rm -rf "$RPM_BUILD_ROOT"

if [ -z "@@STAGEDIR@@" -o ! -d "@@STAGEDIR@@" ] ; then
    echo "@@STAGEDIR@@ appears to be incorrectly set - aborting"
    exit 1
fi

if [ -z "@@INSTALLDIR@@" -o ! -d "@@STAGEDIR@@/@@INSTALLDIR@@" ] ; then
    echo "@@INSTALLDIR@@ appears to be incorrectly set - aborting"
    exit 1
fi

install -m 755 -d \
  "$RPM_BUILD_ROOT/etc" \
  "$RPM_BUILD_ROOT/opt" \
  "$RPM_BUILD_ROOT/usr"
# This is hard coded for now
cp -a "@@STAGEDIR@@/etc/" "$RPM_BUILD_ROOT/"
cp -a "@@STAGEDIR@@/opt/" "$RPM_BUILD_ROOT/"
cp -a "@@STAGEDIR@@/usr/" "$RPM_BUILD_ROOT/"

#------------------------------------------------------------------------------
#   Rule to clean up a build
#------------------------------------------------------------------------------
%clean
rm -rf "$RPM_BUILD_ROOT"

#------------------------------------------------------------------------------
#   Files listing.
#------------------------------------------------------------------------------
%files
%defattr(-,root,root)
#%doc README

# We cheat and just let RPM figure it out for us; everything we install
# should go under this prefix anyways.
@@INSTALLDIR@@

# Be explicit about the files we scatter throughout the system we don't
# accidentally "own" stuff that's not ours (crbug.com/123990).
/etc/cron.daily/@@PACKAGE_FILENAME@@
%ghost %attr(755,root,root) /usr/bin/google-chrome
/usr/bin/@@USR_BIN_SYMLINK_NAME@@
/usr/share/applications/@@PACKAGE_FILENAME@@.desktop
/usr/share/gnome-control-center/default-apps/@@PACKAGE_FILENAME@@.xml
%docdir /usr/share/man/man1
/usr/share/man/man1/@@PACKAGE_FILENAME@@.1

#------------------------------------------------------------------------------
#   Pre install script
#------------------------------------------------------------------------------
%pre

exit 0




#------------------------------------------------------------------------------
#   Post install script
#------------------------------------------------------------------------------
%post

@@include@@../common/postinst.include

@@include@@../common/rpm.include

@@include@@../common/symlinks.include

remove_nss_symlinks
add_nss_symlinks

remove_udev_symlinks
add_udev_symlinks

DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
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/@@PACKAGE@@" | at now + 2 minute > /dev/null 2>&1

CHANNEL=@@CHANNEL@@
case $CHANNEL in
  stable )
    PRIORITY=200
    ;;
  beta )
    PRIORITY=150
    ;;
  unstable )
    PRIORITY=120
    ;;
  * )
    PRIORITY=0
    ;;
esac

%{_sbindir}/update-alternatives --install /usr/bin/google-chrome google-chrome \
  /usr/bin/@@USR_BIN_SYMLINK_NAME@@ $PRIORITY

exit 0


#------------------------------------------------------------------------------
#   Pre uninstallation script
#------------------------------------------------------------------------------
%preun

if [ "$1" -eq "0" ]; then
  mode="uninstall"
elif [ "$1" -eq "1" ]; then
  mode="upgrade"
fi

@@include@@../common/rpm.include

@@include@@../common/symlinks.include

# Only remove menu items and symlinks on uninstall. When upgrading,
# old_pkg's %preun runs after new_pkg's %post.
if [ "$mode" = "uninstall" ]; then
@@include@@../common/prerm.include
  remove_nss_symlinks
  remove_udev_symlinks

  %{_sbindir}/update-alternatives --remove google-chrome \
    /usr/bin/@@USR_BIN_SYMLINK_NAME@@
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
#------------------------------------------------------------------------------
%postun

exit 0