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

Bug#582612: prompting due to modified conffiles which where not modified by the user



On Tue, May 25, 2010 at 03:20:35PM +0200, Agustin Martin wrote:
> I am attaching a first cut of a patch to care of this. Instead of directly
> modifying wdm-config itself, a new detached file is used to hold that info.
> That file is automatically regenerated on each wdm start/stop and loaded
> from wdm-config. Sysadmins can override automatic selection by setting that
> value again after that file is loaded, as pointed out in directions added to
> wdm-config.
> 
> This will not prevent prompting when upgrading from previous versions, but
> should leave this problem addressed for the future.

Hi,

Seems my tests are working properly, so I have prepared an upload. I finally
prepared it it as a QA upload.

Besides support for using new detached file, I have also improved copyright
notices under debian/. They still referred to unversioned GPL when code was
GPL2+.

I'd like to upload fixed package around next Monday with 0-day delay, unless
someone complains. Current patch is attached.

Cheers,

-- 
Agustin
diff --git a/debian/changelog b/debian/changelog
index aa4dd85..6a12c35 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+wdm (1.28-4) unstable; urgency=low
+
+  * QA upload.
+  * Move 'DisplayManager*wdmWm' automatic regeneration to a separate
+    file, so wdm-config conffile is not automatically changed
+    (Closes: #582612).
+  * Clarify copyright notices.
+
+ -- Agustin Martin Domingo <agmartin@debian.org>  Thu, 27 May 2010 13:30:21 +0200
+
 wdm (1.28-3.5) unstable; urgency=low
 
   * Non-maintainer upload.
diff --git a/debian/config/wdm-config b/debian/config/wdm-config
index 987e4ef..06c2f3d 100644
--- a/debian/config/wdm-config
+++ b/debian/config/wdm-config
@@ -33,10 +33,6 @@ DisplayManager*wdmLogin:        /usr/bin/wdmLogin
 DisplayManager*wdmBg:           solid:Gray85
 ! DisplayManager*wdmLogo:       /usr/share/pixmaps/gnuLogo.xpm
 DisplayManager*wdmLogo:		/usr/share/pixmaps/wdmDebianSwirl.xpm
-! BEWARE: the wdmWm setting will be overwritten on every wdm (re)start
-!         and reload.  Please see wdm.options(5) for info on disabling
-!         this behavior if you want to specify the list manually.
-! DisplayManager*wdmWm:         twm:wmaker:afterstep
 DisplayManager*wdmReboot:       /sbin/reboot
 DisplayManager*wdmHalt:         /sbin/halt
 DisplayManager*wdmVerify:       true
@@ -46,3 +42,16 @@ DisplayManager*wdmLoginConfig:  /etc/X11/wdm/wdmlogin.conf
 DisplayManager*useSyslog:	true
 DisplayManager*syslogFacility:	LOG_AUTHPRIV
 DisplayManager*terminateServer: true
+
+! Load wm list from file auto-generated by update_wdm_wmlist
+
+#include "wdm.wmlist"
+
+! BEWARE: the wdmWm setting in that file will be overwritten on every wdm
+!   (re)start and reload. If you want to hardcode your choice, uncomment the
+!   line below and set your choice, to be processed after previous automatic
+!   definition.
+
+! DisplayManager*wdmWm:         twm:wmaker:afterstep
+
+! Please see wdm.options(5) for info on disabling automatic generation.
diff --git a/debian/copyright b/debian/copyright
index 342cf21..090dda5 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -2,21 +2,31 @@ This package is maintained by Noah Meyerhans <noahm@debian.org>
 
 It was previously maintained by Bas Zoetekouw <bas@debian.org>.
 
-It was originally debianized by Marcelo E. Magallon 
+It was originally debianized by Marcelo E. Magallon
 mmagallo@debian.org on Sat, 15 Aug 1998 19:55:35 -0600.
 
 It was downloaded from http://voins.program.ru/wdm/
 
-Upstream maintainer for wdm is voins@voins.program.ru
+Upstream maintainer for wdm is Alexey Voinov, voins@voins.program.ru
 
-Modifications for Debian Linux Copyright (C) 1998 Marcelo Magallon.
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
 
- wdm is distributed under the terms and conditions of the GPL, the text
- of which can be found in /usr/share/common-licenses/GPL. wdm derived
- from work by Tom Rothamel (external greeter for xdm, also under the
- GPL) and xdm itself, which is copyright (C) 1988, 1989, 1990, 1991,
- 1994 X Consortium. The relevant X Consortium's and XFree86's licenses
- follows:
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  On Debian GNU/Linux systems, the complete text of the GNU General
+  Public License can be found in `/usr/share/common-licenses/GPL-2'.
+
+wdm is derived from work by Tom Rothamel (external greeter for xdm, also
+under the GPL) and xdm itself, which is copyright (C) 1988, 1989, 1990,
+1991, 1994 X Consortium.
+
+  The relevant X Consortium's and XFree86's licenses follows:
 
   1.  XFree86 Copyright
 
@@ -94,7 +104,26 @@ the FAQ: http://nssdc.gsfc.nasa.gov/photo_gallery/photogallery-faq.html),
 see the file NASA_image_guideline.html; the Earth picture was taken by
 GOES8.
 
-Changes made by Jerome Alet <alet@unice.fr> are under the GPL.
-Changes made by Bas Zoetekouw <bas@debian.org> are under the GPL.
-Changes made by Noah Meyerhans <noahm@debian.org> are under the GPL.
-Changes made by Vladimir Shakhov <lumpen.intellectual@gmail.org> are under the GPL.
+Changes made by Jerome Alet <alet@unice.fr> are released under the same
+conditions as the main program (GNU General Public License (GPL) either
+version 2 of the License, or (at your option) any later version.).
+
+Debian packaging copyright:
+
+ Copyright (C) 1998-1999 Marcelo Magallon <mmagallo@debian.org>
+ Copyright (C) 1999      Daniel Patterson <danpat@debian.org>
+ Copyright (C) 2000      Bas Zoetekouw <bas@debian.org>
+ Copyright (C) 2001-2005 Noah Meyerhans <noahm@debian.org>
+ Copyright (C) 2005-2008 Vlad Shakhov <lumpen.intellectual@gmail.com>
+ Copyright (C) 2009-2010 Agustin Martin Domingo <agmartin@debian.org>
+
+ Changes for Debian packaging may be redistributed and/or modified
+ under the terms of the GNU General Public License (GPL) as
+ published by the Free Software Foundation; either version 2 of
+ the License, or (at your option) any later version.
+
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License version 2 can be found in
+ `/usr/share/common-licenses/GPL-2'.
+
+
diff --git a/debian/update_wdm_wmlist b/debian/update_wdm_wmlist
index 3e795d6..ca2e032 100644
--- a/debian/update_wdm_wmlist
+++ b/debian/update_wdm_wmlist
@@ -1,52 +1,66 @@
 #!/usr/bin/perl -w
 #
-# update_wdm_wmlist, (c) 1998 Marcelo Magallón <mmagallo@debian.org>
-# rewriten to use the x-window-manager alternative
-# modified to also use the x-session-manager alternative by Arthur Korn
-# Copyright 2000 Wichert Akkerman <wakkerma@debian.org>
+# update_wdm_wmlist,
 #
 # This script will read the list of installed window managers from
 # the update-alternatives output for the x-window-manager alternative
-# and update the DisplayManager*wdmWm resource in /etc/X11/wdm/wdm-config.
+# and update the DisplayManager*wdmWm resource in $wdm_list_file (see below).
 # BEWARE: It doesn't ask any questions about this. It just does it. It
 # takes an optional list of window managers.
+#
+# Original program:
+#    Copyright (C) 1998 Marcelo Magallón <mmagallo@debian.org>
+# Rewriten to use the x-window-manager alternative.
+#    Copyright (C) 2000 Wichert Akkerman <wakkerma@debian.org>
+# Modified to also use x-session-manager alternative.
+#    Copyright (C) 2001 Arthur Korn.
+# Modified to write output to a separate file.
+#    Copyright (C) 2010 Agustin Martin Domingo <agmartin@debian.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
 
 use strict;
 
-my $wm_list='';
-
-unless (@ARGV) {
-    my @wm_list = ('default');
-    foreach my $alternative ( qw(x-window-manager x-session-manager) ) {
-	open(WINDOW_MANAGERS, "update-alternatives --display $alternative |")
-	    or die "Can't run update-alternatives: $!";
-	
-	while (<WINDOW_MANAGERS>) {
-	    push(@wm_list, $1) if ( m,^/.*/([^/]+) - ,);
-	}
-	
-	close(WINDOW_MANAGERS);
-    }
-    
-    $wm_list = join (':', sort @wm_list);
-} else {
-    $wm_list = join (':', sort @ARGV);
-}
+my %wm_list         = ();
+my $wdm_list_string = '';
+my $wdm_list_file   = "/etc/X11/wdm/wdm.wmlist";
 
-open (WDM_CONFIG_FILE, '</etc/X11/wdm/wdm-config')
-    or die "Can't open /etc/X11/wdm/wdm-config for reading: $!";
-open (NEW_WDM_CONFIG_FILE, '>/etc/X11/wdm/wdm-config.new')
-    or die "Can't open /etc/X11/wdm/wdm-config.new for writing: $!";
+if (@ARGV) {
+  # Use provided list of window managers as is, with no extra sorting
+  $wdm_list_string = join (':',@ARGV);
+} else {
+  foreach my $alternative ( qw(x-window-manager x-session-manager) ) {
+    open(WINDOW_MANAGERS, "update-alternatives --display $alternative |")
+      or die "Can't run update-alternatives: $!";
 
-while (<WDM_CONFIG_FILE>) {
-    s|^!?\s*(.*wdmWm:\s*).*|$1$wm_list|;
-    print NEW_WDM_CONFIG_FILE;
+    while (<WINDOW_MANAGERS>) {
+      $wm_list{$1}++ if ( m,^/.*/([^/]+) - ,);
+    }
+    close(WINDOW_MANAGERS);
+  }
+  # "default" should go first
+  $wdm_list_string = join (':',"default",sort keys %wm_list);
 }
 
-close(WDM_CONFIG_FILE);
-close(NEW_WDM_CONFIG_FILE);
+open (WDM_WMLIST_FILE, ">$wdm_list_file")
+  or die "Can't open $wdm_list_file for writing: $!";
+
+print WDM_WMLIST_FILE
+  "! This file has been automatically generated by $0 script.
+!
+! Manual changes below will be overwritten on every wdm start/stop.
+!     See wdm-config file to override automatic values.
+!
+DisplayManager*wdmWm:  $wdm_list_string\n";
 
-rename '/etc/X11/wdm/wdm-config.new', '/etc/X11/wdm/wdm-config'
-    or die "Can't rename /etc/X11/wdm/window-managers.new: $!";
+close(WDM_WMLIST_FILE);
 
 exit 0;
diff --git a/debian/wdm.postrm b/debian/wdm.postrm
index cc7f403..52672f2 100644
--- a/debian/wdm.postrm
+++ b/debian/wdm.postrm
@@ -31,6 +31,7 @@ case "$1" in
     rmdir /var/lib/wdm/authdir/authfiles || true
     rmdir /var/lib/wdm/authdir || true
     rmdir /var/lib/wdm || true
+    rm -f /etc/X11/wdm/wdm.wmlist
     update-rc.d wdm remove >/dev/null
     ;;
   upgrade|failed-upgrade)

Reply to: