2008年5月31日 星期六

portupgrade failed on gnome-applet

Phenomenon:

main.c:20:40: error: libgweather/gweather-gconf.h: No such file or directory
main.c:21:40: error: libgweather/gweather-prefs.h: No such file or directory
In file included from main.c:23:
gweather.h:31: error: expected specifier-qualifier-list before 'WeatherInfo'
main.c: In function 'gweather_applet_new':
main.c:41: error: 'GWeatherApplet' has no member named 'gweather_info'
main.c:42: error: 'GWeatherApplet' has no member named 'gconf'
main.c:46: error: 'GWeatherApplet' has no member named 'gweather_pref'
main.c:46: error: 'GWeatherApplet' has no member named 'gconf'
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.32262.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=gnome-applets-2.20.0 UPGRADE_PORT_VER=2.20.0 make reinstall

Solution:

pkg_delete -f gnome-applet\*

portupgrade -f libgweather

portinstall gnome-applet

Reason:

libgweather was extracted from gnome-applet as a separate package somewhere between gnome 2.20 and 2.22.

portupgrade upgrades dependent ports first. So when upgrading gnome from 2.20 to 2.22, it installs libgweather first, then upgrade gnome-applet. In the process of upgrading gnome-applet by deinstalling and reinstalling it, the new libgweather header files, which were originally part of gnome-applet, will be mistakenly removed. as a result when reinstall new version of gnome-applet, it fails to find the header files spawned into libgweather.

In fact these steps were documented in /usr/ports/UPDATING, just I forgot to read it again when upgrading ports of an amd64 installation. <faint>

20080323:
  AFFECTS: All GNOME users and ports depend on gnomehier
  AUTHOR: gnome@FreeBSD.org

  GNOME has been updated to 2.22.0.  You have to deinstall a few ports first
  before using portupgrade or portmaster in order to successfully upgrade
  your GNOME installation.

  Portupgrade users:
    # pkgdb -Ff
    # pkg_deinstall -fO gnome-applets\* totem\* gnome-control-center\*
    # portupgrade -aOW

  Portmaster users:
    # pkg_delete -f gnome-applets\* totem\* gnome-control-center\* \
       gnome-keyring-manager\*
    # portmaster -a

  Be sure to read in our known issues and solutions:

    http://www.freebsd.org/gnome/docs/faq222.html#q4

1 則留言: