Your message dated Sun, 15 Dec 2013 12:41:30 +0000
with message-id <[email protected]>
and subject line Bug#671342: Removed package(s) from unstable
has caused the Debian Bug report #386535,
regarding console-tools: unimap VT switch not needed with Linux >= 2.6.1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
386535: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=386535
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: console-tools
Version: 1:0.2.3dbs-62
Severity: normal
Tags: patch

According to a comment in the kbd source, Linux 2.6.1 fixed the UNIMAP
ioctls to be per-VT rather than operating on the current foreground
console. This means that the VT switches added in 1:0.2.3dbs-51 in
response to bug #226457 are unnecessary if you're running a more recent
kernel. Please apply the attached patch to 220_unimap_vts.patch, which
checks the kernel version and disables the VT switches if possible.

Changelog entry:

  * 220_unimap_vts.patch: Linux 2.6.1 fixed the GIO_UNIMAP, PIO_UNIMAP, and
    PIO_UNIMAPCLR ioctls to be per-VT rather than always using the current
    foreground console. If we're running on Linux 2.6.1 or newer, suppress
    the VT switch.

(Yes, I know I should probably switch to kbd, but Ubuntu is currently in
feature freeze so I'm sticking with console-tools for now ...)

Thanks,

-- 
Colin Watson                                       [[email protected]]
--- console-tools-0.2.3dbs.orig/debian/patches/220_unimap_vts.patch     
2006-06-29 10:42:54.000000000 +0100
+++ console-tools-0.2.3dbs/debian/patches/220_unimap_vts.patch  2006-09-08 
11:03:45.000000000 +0100
@@ -1,17 +1,45 @@
 diff -ruN console-tools-0.2.3-old/lib/sfm-misc.c 
console-tools-0.2.3/lib/sfm-misc.c
 --- console-tools-0.2.3-old/lib/sfm-misc.c     1999-04-08 22:29:39.000000000 
+0100
-+++ console-tools-0.2.3/lib/sfm-misc.c 2004-04-18 11:54:52.000000000 +0100
-@@ -13,15 +13,67 @@
++++ console-tools-0.2.3/lib/sfm-misc.c 2006-09-08 10:55:33.000000000 +0100
+@@ -13,15 +13,95 @@
  #include <ctype.h>
  #include <fcntl.h>
  #include <linux/kd.h>
 +#include <linux/vt.h>
  #include <sys/ioctl.h>
 +#include <sys/stat.h>
++#include <sys/utsname.h>
  
  #include <lct/local.h>
  #include <lct/console.h>
  
++/* Linux 2.6.1 introduced per-VT UNIMAP ioctls, so with that kernel or
++ * better we don't need to switch VTs.
++ */
++static int per_vt_unimap(void)
++{
++  static int per_vt = -1;
++  struct utsname uts;
++  int major_high, major_low, minor;
++
++  if (per_vt != -1) {
++    return per_vt;
++  }
++  if (uname(&uts) < 0) {
++    return per_vt = 0;
++  }
++  if (strcmp(uts.sysname, "Linux")) {
++    return per_vt = 0;
++  }
++  if (sscanf(uts.release, "%d.%d.%d", &major_high, &major_low, &minor) < 3) {
++    return per_vt = 0;
++  }
++  if (major_high < 2 || major_low < 6 || minor < 1)
++    return per_vt = 0;
++  else
++    return per_vt = 1;
++}
++
 +static int set_fd_foreground(int fd)
 +{
 +  struct vt_stat vstate;
@@ -69,35 +97,39 @@
  
    /* Note: after PIO_UNIMAPCLR and before PIO_UNIMAP
     printf does not work. */
-@@ -30,6 +82,7 @@
+@@ -30,6 +110,8 @@
    advice.advised_hashstep = 0;
    advice.advised_hashlevel = 1;              /* FIXME: 0 or 1 ? */
    
-+  oldcon = set_fd_foreground(fd);
++  if (!per_vt_unimap())
++    oldcon = set_fd_foreground(fd);
  again:
    if (ioctl(fd, PIO_UNIMAPCLR, &advice)) 
      {
-@@ -41,6 +94,7 @@
+@@ -41,6 +123,8 @@
        } 
        else
  #endif
-+          restore_fd_foreground(fd, oldcon);
++        if (!per_vt_unimap())
++          restore_fd_foreground(fd, oldcon);
          return -1;
      }
    
-@@ -51,9 +105,10 @@
+@@ -51,9 +135,13 @@
          advice.advised_hashlevel++;
          goto again;
        }
-+      restore_fd_foreground(fd, oldcon);
++      if (!per_vt_unimap())
++      restore_fd_foreground(fd, oldcon);
        return -1;
      }
--  
-+  restore_fd_foreground(fd, oldcon);
+   
++  if (!per_vt_unimap())
++    restore_fd_foreground(fd, oldcon);
    return 0;
  }
  
-@@ -61,15 +116,18 @@
+@@ -61,15 +149,20 @@
  int get_kernel_unimap(int fd, struct unimapdesc *descr)
  {
    int ct;
@@ -106,35 +138,40 @@
    descr->entry_ct = 0;
    descr->entries = NULL;
    
-+  con = set_fd_foreground(fd);
++  if (!per_vt_unimap())
++    con = set_fd_foreground(fd);
    /* get entry_ct */
    if(ioctl(fd, GIO_UNIMAP, (unsigned long) descr)) /* failed */
      {
        if(errno != ENOMEM || descr->entry_ct == 0)
        {
-+        restore_fd_foreground(fd, con);
++        if (!per_vt_unimap())
++          restore_fd_foreground(fd, con);
          perror(_("GIO_UNIMAP (get count)"));
          return -1;
        }
-@@ -84,10 +142,13 @@
+@@ -84,10 +177,15 @@
        /* actually get unipairs */
        if(ioctl(fd, GIO_UNIMAP, (unsigned long) descr))
        {
-+        restore_fd_foreground(fd, con);
++        if (!per_vt_unimap())
++          restore_fd_foreground(fd, con);
          perror(_("GIO_UNIMAP (get map)"));
          return -1;
        }
  
-+      restore_fd_foreground(fd, con);
++      if (!per_vt_unimap())
++      restore_fd_foreground(fd, con);
 +
        /* someone could change the unimap between our
         * first and second ioctl, so we can have descrepancies
         */
-@@ -106,6 +167,7 @@
+@@ -106,6 +204,8 @@
      }
    else
      {
-+      restore_fd_foreground(fd, con);
++      if (!per_vt_unimap())
++      restore_fd_foreground(fd, con);
        /* no valid SFM currently loaded */
        errno = ENXIO;
        return -1;

--- End Message ---
--- Begin Message ---
Version: 2:0.2.3-73+rm

Dear submitter,

as the package console-tools has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see http://bugs.debian.org/671342

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
[email protected].

Debian distribution maintenance software
pp.
Joerg Jaspert (the ftpmaster behind the curtain)

--- End Message ---

Reply via email to