[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

X Strike Force XFree86 SVN commit: r1757 - trunk/debian



Author: branden
Date: 2004-08-28 01:40:48 -0500 (Sat, 28 Aug 2004)
New Revision: 1757

Modified:
   trunk/debian/CHANGESETS
Log:
Add missing changeset entry for the app-defaults/xkb migration merge.
Thanks to Fabio for noticing that I overlooked it.


Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS	2004-08-28 05:49:17 UTC (rev 1756)
+++ trunk/debian/CHANGESETS	2004-08-28 06:40:48 UTC (rev 1757)
@@ -435,4 +435,50 @@
   xserver-xfree86 (<< 4.3.0.dfsg.1-7)'!"
     1746, 1747, 1748, 1749, 1750
 
+Rewrite migration of app-defaults (in libxt6) and xkb (in libx11-6)
+directories.
++ Enhance the shell libary with new functions:
+  - Implement check_symlink() and change check_symlinks_and_warn() and
+    check_symlinks_and_bomb() to use it.
+  - Implement make_symlink_sane().  Ensure that the specified symbolic
+    link symlink exists, and points to the specified target.  If symlink
+    does not exist, create it and point it at target.  If symlink exists
+    but is not a symbolic link, back it up.  If symlink exists, is a
+    symbolic link, but points to the wrong location, fix it.  If symlink
+    exists, is a symbolic link, and already points to target, do nothing.
+    This function wouldn't be needed if ln had an -I, --idempotent option.
+  - Implement migrate_dir_to_symlink().  Per Debian Policy section 6.5.4,
+    "A directory will never be replaced by a symbolic link to a directory
+    or vice versa; instead, the existing state (symlink or not) will be
+    left alone and dpkg will follow the symlink if there is one."  We have
+    to do it ourselves.  This function moves the contents of old_location,
+    a directory, into new_location, a directory, then makes old_location a
+    symbolic link to new_location.  old_location need not exist, but if it
+    does, it must be a directory (or a symlink to a directory).  If it is
+    not, it is backed up.  If new_location exists already and is not a
+    directory, it is backed up.
++ Add config scripts for libx11-6 and libxt6, which detect if
+  /usr/X11R6/lib/X11/{app-defaults,xkb} is a directory but not a symlink,
+  and use debconf to prompt the user (at low priority) whether the
+  directories should be moved.  If the user says no, abort the script.  If
+  the user says yes (default), start the migration with
+  migrate_dir_to_symlink().
++ Update preinst scripts to use debconf as the configs script do; this is
+  unusual but necessary because if we're going to do the migration we need
+  to start before any other packages (which may use the old directories)
+  are unpacked.
++ In the preinst scripts, call check_symlink(), and if that fails, call
+  make_symlink_sane().  Stop calling check_symlinks_and_warn().
++ Update postinst scripts to indicate that migration is completed.
++ Update postrm scripts to run migration in reverse if it had been started
+  and the package installation or upgrade is aborted.
++ We keep shipping /etc/X11/{app-defaults,xkb} symlinks as part of the
+  package payloads, because manipulating them in the preinst isn't enough
+  -- dpkg will remove "disappearing" files from the system *after* the
+  preinst runs but before the postinst does, leaving a window for packages
+  using the legacy paths to unpack to the old location with no symlink to
+  redirect them, which is precisely what we don't want (see section 6.5 of
+  the Debian Policy Manual).
+    1753, 1757
+
 vim:set ai et sts=4 sw=4 tw=80:



Reply to: