blob: 08c402caa958d069c2dc7581ddcd97bc7111dd4b [file] [log] [blame]
#------------------------------------------------------------------------------
# chrome.spec
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Prologue information
#------------------------------------------------------------------------------
Summary : @@MENUNAME@@
License : Multiple, see @@PRODUCTURL@@
Name : @@PACKAGE_FILENAME@@
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@@
%ghost %attr(755,root,root) /usr/bin/google-chrome
/usr/bin/@@USR_BIN_SYMLINK_NAME@@
/usr/share/applications/@@PACKAGE@@.desktop
/usr/share/gnome-control-center/default-apps/@@PACKAGE@@.xml
%docdir /usr/share/man/man1
/usr/share/man/man1/@@PACKAGE@@.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
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