Steve Langasek <[EMAIL PROTECTED]> wrote: > On Wed, Feb 21, 2007 at 12:54:38PM +0100, Frank Küster wrote: >> To me that looks a bit more complicated than one would like, but still >> quite manageable, and acceptable for fixing a RC bug in etch. > >> What do you think? > > It's at least an order of magnitude more complicated (=error-prone) than the > solution Romain has implemented,
That's correct, not solving the FHS violation is simpler than doing it. > and it still doesn't address the FHS > requirement for the actual configuration to be stored under /etc, so I don't > see the point. Then we misunderstood each other. I'm always talking about moving the actual configuration (LocalSettings.php and AdminSettings.php) to /etc/mediawiki1.7. The old package does not ship any of these files. They are created by a menu-driven php script, and the local admin is instructed to put the created files into /var/lib/mediawiki1.7. The new package would instruct the local admin to put them in /etc/mediawiki1.7, it would ship symlinks in /var/lib/mediawiki1.7/ so that they are found, and add a one-line patch to the templates for each of these files to get the internal path information right. So far, so simple. The only complicated bit is the transition, it would look like I've written (but not tested) below. Regards, Frank ******* preinst ******* etcdir=/etc/mediawiki1.7 vardir=/var/lib/mediawiki1.7 movext=".moved-by-preinst" for file in LocalSettings.php AdminSettings.php; do etcfile=$etcdir/$file # there might already be a symlink in $vardir, but to a non-default location if [ -L $vardir/$file ]; then # register that $etcdir is a good default touch $etcfile.etcdefault linkdest="`readlink $vardir/file`" if [ ! "$etcfile" = "$linkdest" ]; then if [ -e "$linkdest" ]; then mv $linkdest $etcfile chmod --reference $linkdest $etcfile chown --reference $linkdest $etcfile cat > $linkdest <<EOF This file has been moved to $etcfile by mediawiki1.7's maintainer scripts EOF fi # still a symlink from old install? No longer needed if [ -L $etcfile ]; then rm $etcfile; fi # can we move the file from $vardir to its new location at once? if [ -e $etcfile ]; then destfile=$etcdir/$file$movext else destfile=$etcdir/$file fi if [ -f $vardir/$file ]; then # ordinary file, move to $etcdir mv $vardir/$file $destfile # else # Nothing, I assume dpkg will change the symlink dest itself fi done ******* preinst ******* ******* config ******* movext=".moved-by-preinst" for file in LocalSettings.php AdminSettings.php; do if [ -e $etcdir/$file$movext* ]; then if [ -f $etcdir/$file.etcdefault ]; then db_set mediawiki/FHSmove$file $etcdir fi db_input low mediawiki/FHSmove$file || true fi done db_go || true ******* config ******* ******* postinst ******* etcdir=/etc/mediawiki1.7 vardir=/var/lib/mediawiki1.7 movext=".moved-by-preinst" for file in LocalSettings.php AdminSettings.php; do etcfile=$etcdir/$file if [ -e "$etcfile$movext" ]; then db_get mediawiki/FHSmove$file || true which="$RET" # can be /etc/mediawiki1.7 or /var/lib/mediawiki1.7 if [ "$which" = "/var/lib/mediawiki1.7" ]; then test ! -e $etcfile || mv $etcfile $etcfile/$file.moved-by-postiinst mv $etcfile.movext $etcfile sed -i '[EMAIL PROTECTED]@pattern_depends_on_PHP_patch@' $etcfile else mv $etcfile.movext $etcfile.moved-from-var-directory fi rm $etcfile.etcdefault 2>/dev/null || true fi done ******* postinst ******* ******* templates ******* Template: mediawiki/FHSmoveLocalSettings.php Type: select Choices: /etc/mediawiki1.7, /var/lib/mediawiki1.7 Default: /var/lib/mediawiki1.7 Description_: Which of two mediawiki1.7 configuration files should be used? In older versions, mediawiki1.7 kept the configuration file LocalSettings.php in its data directory, /var/lib/mediawiki1.7, but now it will be searched for in /etc/mediawiki1.7. The system has detected that you already have this file in /etc, too. . From which location should the new configuration file be taken? . If your installation of Mediawiki worked as intended in the past, it is safe to take the default. [repeat the same for AminSettings.php] ******* templates ******* -- Dr. Frank Küster Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich Debian Developer (teTeX/TeXLive)