Touch the application's bundle directory on Mac OS X after installing updates.

This is necessary so that Launch Services in OS X picks up changes
to the Info.plist file describing various aspects of the application.

See https://bugzilla.mozilla.org/show_bug.cgi?id=600098 for an example
of the kind of issue that failure to do this can lead to.
This commit is contained in:
Robert Knight 2011-08-29 22:53:19 +01:00
parent c20c452e98
commit faddccc763
2 changed files with 15 additions and 0 deletions

View file

@ -146,6 +146,8 @@ void UpdateInstaller::run() throw ()
LOG(Info,"Removing backups");
removeBackups();
postInstallUpdate();
}
catch (const FileUtils::IOException& exception)
{
@ -354,3 +356,15 @@ void UpdateInstaller::restartMainApp()
}
}
void UpdateInstaller::postInstallUpdate()
{
// perform post-install actions
#ifdef PLATFORM_MAC
// touch the application's bundle directory so that
// OS X' Launch Services notices any changes in the application's
// Info.plist file.
FileUtils::touch(m_installDir.c_str());
#endif
}

View file

@ -48,6 +48,7 @@ class UpdateInstaller
void installFile(const UpdateScriptFile& file);
void backupFile(const std::string& path);
void reportError(const std::string& error);
void postInstallUpdate();
std::list<std::string> updaterArgs() const;