diff options
author | Renato Botelho <renato@netgate.com> | 2016-04-04 12:15:01 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-04-04 12:15:09 -0300 |
commit | 78aee67a9e8ddb40d10c965ee8ce1ad1389d25f6 (patch) | |
tree | a40f6c351a51f354b8d59c7c8fa1122f24286705 /src/usr/local | |
parent | 3f8cea5eff83e55da1b8af4e6f896c2dbf445c3a (diff) | |
download | pfsense-78aee67a9e8ddb40d10c965ee8ce1ad1389d25f6.zip pfsense-78aee67a9e8ddb40d10c965ee8ce1ad1389d25f6.tar.gz |
Make sure repo metadata is updated before any other package when repo conf changes. Fixes #6052
Diffstat (limited to 'src/usr/local')
-rwxr-xr-x | src/usr/local/sbin/pfSense-upgrade | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/usr/local/sbin/pfSense-upgrade b/src/usr/local/sbin/pfSense-upgrade index 5d90748..2c8159c 100755 --- a/src/usr/local/sbin/pfSense-upgrade +++ b/src/usr/local/sbin/pfSense-upgrade @@ -292,6 +292,29 @@ pkg_upgrade() { pkg_update force fi + if is_pkg_installed ${product}-repo-devel; then + local _repo_pkg="${product}-repo-devel" + else + local _repo_pkg="${product}-repo" + fi + + if [ "$(compare_pkg_version ${_repo_pkg})" = "<" ]; then + cp /usr/local/etc/pkg/repos/${product}.conf \ + /tmp/${product}.conf.copy + _exec "pkg upgrade ${_repo_pkg}" "Upgrading ${_repo_pkg}" mute + # If conf differs, for an update + if ! cmp -s /usr/local/etc/pkg/repos/${product}.conf /tmp/${product}.conf.copy; then + pkg_update force + + # New repo may contain newer pkg + if [ "$(compare_pkg_version pkg)" = "<" ]; then + _exec "pkg upgrade pkg" "Upgrading pkg" mute + pkg_update force + fi + fi + rm -f /tmp/${product}.conf.copy + fi + if [ $(pkg upgrade -nq | wc -l) -le 1 ]; then _echo "Your packages are up to date" _exit 0 |