common/desktop-exports: don't dereference target symlink on upgrades #7

Merged
merged 1 commit into from Sep 7, 2016

Conversation

Projects
None yet
2 participants
Contributor

jdstrand commented Aug 24, 2016

On install, $SNAP_USER_DATA/.themes is created and points to
$SNAP/usr/share/themes. On upgrade $SNAP_USER_DATA is copied from the previous
dir (eg, 'x1') to the new version (eg, 'x2') such that $SNAP_USER_DATA/.themes
points to the previous version's $SNAP/usr/share/themes. There is logic to
account for this in common/desktop-exports and it tries to:

ln -sf $SNAP/usr/share/themes $SNAP_USER_DATA/.themes

Because $SNAP_USER_DATA/.themes is a valid symlink, it is dereferenced and
tries to create $SNAP/usr/share/themes/themes, which is of course a readonly
directly and fails with:

ln: failed to create symbolic link '.../x2/.themes/themes': Read-only file
system

The script should instead use '-n' so that $SNAP_USER_DATA/.themes is updated
as intended.

common/desktop-exports: don't dereference target symlink on upgrades
On install, $SNAP_USER_DATA/.themes is created and points to
$SNAP/usr/share/themes. On upgrade $SNAP_USER_DATA is copied from the previous
dir (eg, 'x1') to the new version (eg, 'x2') such that $SNAP_USER_DATA/.themes
points to the previous version's $SNAP/usr/share/themes. There is logic to
account for this in common/desktop-exports and it tries to:

  ln -sf $SNAP/usr/share/themes $SNAP_USER_DATA/.themes

Because $SNAP_USER_DATA/.themes is a valid symlink, it is dereferenced and
tries to create $SNAP/usr/share/themes/themes, which is of course a readonly
directly and fails with:

  ln: failed to create symbolic link '.../x2/.themes/themes': Read-only file
  system

The script should instead use '-n' so that $SNAP_USER_DATA/.themes is updated
as intended.
Owner

didrocks commented Sep 7, 2016

That's indeed needed! Thanks a lot for the detailed description and patch!

@didrocks didrocks merged commit 30f0a5c into Ubuntu:master Sep 7, 2016

Contributor

jdstrand commented Sep 7, 2016

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment