summaryrefslogtreecommitdiffstats
path: root/devel/python/UP_TRIGGERS
blob: 90c2dfacff51d6b7c45cc625e48c8c0854abe708 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# up_trigger everything on minor version updates
# dispel every spell before casting python again

local OLD_SPELL_VERSION
if spell_ok $SPELL; then
  OLD_SPELL_VERSION="$(installed_version $SPELL)"
  if test "${VERSION:2:1}" != "${OLD_SPELL_VERSION:2:1}"; then
    message "This is a possibly incompatible update of python..."
  fi
  message "Figuring out what spells need to be recast, this may take a while."
  for each in $(show_up_depends $SPELL); do
    # Check in the install logs if python packages has been installed
    if gaze install $each | grep -q "$TRACK_ROOT/usr/lib/python${OLD_SPELL_VERSION:0:3}/site-packages"; then
      up_trigger $each cast_self
      dispel --notriggers $each
    else
    # Check if the binaries link against libpython.so
      if gaze install $each | xargs readelf -d 2> /dev/null |
	grep -q "NEEDED.*libpython${OLD_SPELL_VERSION:0:3}"; then
	up_trigger $each cast_self
	dispel --notriggers $each
      fi
    fi
  done
fi