Your message dated Tue, 25 Mar 2008 21:47:03 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#467269: fixed in brltty 3.9-6
has caused the Debian Bug report #467269,
regarding brltty: Fix vcsa reading on big-endian archs
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.)


-- 
467269: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=467269
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: brltty
Version: 3.9-5
Severity: important
Tags: patch

vcsa screen reading doesn't work at all on big-endian archs, here is the
cherry-pick of the upstream fix.

(Yes, not only 3407 is needed, but 3469 as well)

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.24.1
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

Versions of packages brltty depends on:
ii  libbrlapi0.5              3.9-5          braille display access via BRLTTY 
ii  libc6                     2.7-6          GNU C Library: Shared libraries
ii  libgpmg1                  1.19.6-25      General Purpose Mouse - shared lib
ii  libncurses5               5.6+20080203-1 Shared libraries for terminal hand

brltty recommends no packages.

-- debconf information excluded
Index: ScreenDrivers/Linux/screen.c
===================================================================
--- ScreenDrivers/Linux/screen.c        (révision 3406)
+++ ScreenDrivers/Linux/screen.c        (révision 3407)
@@ -445,19 +445,19 @@
   return 1;
 }
 
-static unsigned char highFontBit;
-static unsigned char fontAttributesMask;
-static unsigned char unshiftedAttributesMask;
-static unsigned char shiftedAttributesMask;
+static unsigned short highFontBit;
+static unsigned short fontAttributesMask;
+static unsigned short unshiftedAttributesMask;
+static unsigned short shiftedAttributesMask;
 
 static void
 setAttributesMasks (unsigned char bit) {
   fontAttributesMask = bit;
-  unshiftedAttributesMask = (((bit & 0XF0) - 0X10) & 0XF0) |
-                            (((bit & 0X0F) - 0X01) & 0X0F);
-  shiftedAttributesMask = ((~((bit & 0XF0) - 0X10) << 1) & 0XE0) |
-                          ((~((bit & 0X0F) - 0X01) << 1) & 0X0E);
-  LogPrint(LOG_DEBUG, "attributes masks: font=%02X unshifted=%02X 
shifted=%02X",
+  unshiftedAttributesMask = (((bit & 0XF000) - 0X1000) & 0XF000) |
+                            (((bit & 0X0F00) - 0X0100) & 0X0F00);
+  shiftedAttributesMask = ((~((bit & 0XF000) - 0X1000) << 1) & 0XE000) |
+                          ((~((bit & 0X0F00) - 0X0100) << 1) & 0X0E00);
+  LogPrint(LOG_DEBUG, "attributes masks: font=%04X unshifted=%04X 
shifted=%04X",
            fontAttributesMask, unshiftedAttributesMask, shiftedAttributesMask);
 }
 
@@ -479,7 +479,7 @@
       } else if (mask & 0XFF) {
         LogPrint(LOG_ERR, "high font mask has bit set in low-order byte: 
%04X", mask);
       } else {
-        setAttributesMasks(mask >> 8);
+        setAttributesMasks(mask);
         return 1;
       }
     }
@@ -489,17 +489,16 @@
 
       if (read(screenDescriptor, attributes, sizeof(attributes)) != -1) {
         const size_t count = attributes[0] * attributes[1];
-        const size_t size = count * 2;
-        unsigned char buffer[size];
+        unsigned short buffer[count];
 
         if (read(screenDescriptor, buffer, sizeof(buffer)) != -1) {
           int counts[0X10];
           int index;
 
           memset(counts, 0, sizeof(counts));
-          for (index=1; index<size; index+=2) ++counts[buffer[index] & 0X0F];
+          for (index=0; index<count; index++) ++counts[(buffer[index] & 
0X0F00) >> 8];
 
-          setAttributesMasks((counts[0XE] > counts[0X7])? 0X01: 0X08);
+          setAttributesMasks((counts[0XE] > counts[0X7])? 0X0100: 0X0800);
           return 1;
         } else {
           LogError("read");
@@ -538,7 +537,7 @@
     } else if (!validateChoice(&choice, parameters[PARM_HFB], choices)) {
       LogPrint(LOG_WARNING, "%s: %s", "invalid high font bit", 
parameters[PARM_HFB]);
     } else if (choice) {
-      static const unsigned char bits[] = {0X08, 0X01};
+      static const unsigned short bits[] = {0X0800, 0X0100};
       highFontBit = bits[choice-1];
     }
   }
@@ -916,16 +915,16 @@
     }
 
     {
-      off_t start = 4 + (box.top * description.cols + box.left) * 2;
+      unsigned short line[box.width];
+      off_t start = 4 + (box.top * description.cols + box.left) * 
sizeof(line[0]);
       if (lseek(screenDescriptor, start, SEEK_SET) != -1) {
-        int length = box.width * 2;
-        unsigned char line[length];
+        int length = box.width * sizeof(line[0]);
+        off_t increment = description.cols * sizeof(line[0]) - length;
         unsigned char *target = buffer;
-        off_t increment = description.cols * 2 - length;
         int row;
         for (row=0; row<box.height; ++row) {
           int count;
-          unsigned char *source;
+          unsigned short *source;
 
           if (row) {
             if (lseek(screenDescriptor, increment, SEEK_CUR) == -1) {
@@ -951,11 +950,12 @@
             unsigned char *trg = target;
             int column;
             for (column=0; column<box.width; ++column) {
-              int position = *source;
-              if (source[1] & fontAttributesMask) position |= 0X100;
-              src[column] = *source;
+              unsigned char byte = *source & 0XFF;
+              int position = byte;
+              if (*source & fontAttributesMask) position |= 0X100;
+              src[column] = byte;
               *target++ = translationTable[position];
-              source += 2;
+              source++;
             }
             if (debugScreenTextTranslation) {
               char desc[0X20];
@@ -966,11 +966,10 @@
             }
           } else {
             int column;
-            source++;
             for (column=0; column<box.width; ++column) {
-              *target++ = (*source & unshiftedAttributesMask) |
-                          ((*source & shiftedAttributesMask) >> 1);
-              source += 2;
+              *target++ = ((*source & unshiftedAttributesMask) |
+                           ((*source & shiftedAttributesMask) >> 1)) >> 8;
+              source++;
             }
           }
         }
Index: ScreenDrivers/Linux/screen.c
===================================================================
--- ScreenDrivers/Linux/screen.c        (révision 3468)
+++ ScreenDrivers/Linux/screen.c        (révision 3469)
@@ -451,7 +451,7 @@
 static unsigned short shiftedAttributesMask;
 
 static void
-setAttributesMasks (unsigned char bit) {
+setAttributesMasks (unsigned short bit) {
   fontAttributesMask = bit;
   unshiftedAttributesMask = (((bit & 0XF000) - 0X1000) & 0XF000) |
                             (((bit & 0X0F00) - 0X0100) & 0X0F00);
@@ -533,7 +533,7 @@
     static const char *choices[] = {"auto", "vga", "fb", NULL};
     unsigned int choice;
     if (validateInteger(&bit, parameters[PARM_HFB], &minimum, &maximum)) {
-      highFontBit = 1 << bit;
+      highFontBit = 1 << (bit + 8);
     } else if (!validateChoice(&choice, parameters[PARM_HFB], choices)) {
       LogPrint(LOG_WARNING, "%s: %s", "invalid high font bit", 
parameters[PARM_HFB]);
     } else if (choice) {

--- End Message ---
--- Begin Message ---
Source: brltty
Source-Version: 3.9-6

We believe that the bug you reported is fixed in the latest version of
brltty, which is due to be installed in the Debian FTP archive:

brltty-flite_3.9-6_amd64.deb
  to pool/main/b/brltty/brltty-flite_3.9-6_amd64.deb
brltty-udeb_3.9-6_amd64.udeb
  to pool/main/b/brltty/brltty-udeb_3.9-6_amd64.udeb
brltty-x11_3.9-6_amd64.deb
  to pool/main/b/brltty/brltty-x11_3.9-6_amd64.deb
brltty_3.9-6.diff.gz
  to pool/main/b/brltty/brltty_3.9-6.diff.gz
brltty_3.9-6.dsc
  to pool/main/b/brltty/brltty_3.9-6.dsc
brltty_3.9-6_amd64.deb
  to pool/main/b/brltty/brltty_3.9-6_amd64.deb
cl-brlapi_3.9-6_all.deb
  to pool/main/b/brltty/cl-brlapi_3.9-6_all.deb
libbrlapi-dev_3.9-6_amd64.deb
  to pool/main/b/brltty/libbrlapi-dev_3.9-6_amd64.deb
libbrlapi-java_3.9-6_all.deb
  to pool/main/b/brltty/libbrlapi-java_3.9-6_all.deb
libbrlapi-jni_3.9-6_amd64.deb
  to pool/main/b/brltty/libbrlapi-jni_3.9-6_amd64.deb
libbrlapi0.5_3.9-6_amd64.deb
  to pool/main/b/brltty/libbrlapi0.5_3.9-6_amd64.deb
python-brlapi_3.9-6_amd64.deb
  to pool/main/b/brltty/python-brlapi_3.9-6_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Mario Lang <[EMAIL PROTECTED]> (supplier of updated brltty package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Tue, 25 Mar 2008 19:16:53 +0100
Source: brltty
Binary: brltty libbrlapi0.5 libbrlapi-dev libbrlapi-jni libbrlapi-java 
brltty-flite brltty-udeb brltty-x11 cl-brlapi python-brlapi
Architecture: source amd64 all
Version: 3.9-6
Distribution: unstable
Urgency: low
Maintainer: Mario Lang <[EMAIL PROTECTED]>
Changed-By: Mario Lang <[EMAIL PROTECTED]>
Description: 
 brltty     - Access software for a blind person using a braille display
 brltty-flite - Access software for a blind person using a braille display
 brltty-udeb - Access software for a blind person using a braille display (udeb)
 brltty-x11 - Access software for a blind person using a braille display
 cl-brlapi  - Common Lisp bindings for BrlAPI
 libbrlapi-dev - Library for communication with BRLTTY - static libs and headers
 libbrlapi-java - Java bindings for BrlAPI
 libbrlapi-jni - Java bindings for BrlAPI (native library)
 libbrlapi0.5 - braille display access via BRLTTY - shared library
 python-brlapi - Python bindings for BrlAPI
Closes: 467192 467269 469984
Changes: 
 brltty (3.9-6) unstable; urgency=low
 .
   * Add patch to fix vcsa reading on big-endian architectures
     (Closes: Bug#467269).
   * Disable Java bindings on hurd-i386 (Closes: Bug#469984).
   * Fix the TTY driver (Closes: Bug#467192).
   * Rework the init script:
     - Use --exec for start-stop-daemon to finally resolve long standing
       "double-started brltty on upgrade" problems.
     - Use lsb/init-functions for output.
Files: 
 32b444c98e0cbf94d0c2ee74fd83accf 1036 admin extra brltty_3.9-6.dsc
 738fe77ec3445893aa74ceea9ddbb0ae 23695 admin extra brltty_3.9-6.diff.gz
 84251712b549bd9769fd1bbe4fb39245 1213412 admin extra brltty_3.9-6_amd64.deb
 fc9dbe354752aa09a30073fef781de77 64116 libs extra libbrlapi0.5_3.9-6_amd64.deb
 05d79bae98a2b01d64ff3829977865f5 150796 libdevel extra 
libbrlapi-dev_3.9-6_amd64.deb
 99eb4a30f6e1f68c6072657473c1a953 55292 libs extra libbrlapi-jni_3.9-6_amd64.deb
 23c202184576e5561ef6788aa9537339 49142 admin extra brltty-flite_3.9-6_amd64.deb
 b59cb37099d59c66e3456880ba49df5b 91756 admin extra brltty-x11_3.9-6_amd64.deb
 3f2a5b24eeb41c36dedd8f2d9b6b0776 85430 python extra 
python-brlapi_3.9-6_amd64.deb
 9bbb5cb3761f58cd84396eaaafc9b932 52716 libs extra libbrlapi-java_3.9-6_all.deb
 a715761483c00c9d41ab48ab25dce924 49652 admin extra cl-brlapi_3.9-6_all.deb
 6256a2ef1445ea7c9015e3d328e684e1 193848 debian-installer extra 
brltty-udeb_3.9-6_amd64.udeb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFH6W+i3/wCKmsRPkQRAlZmAKCKNcfp+yh7vi/bKksCVI0AQgWVbgCeOwf+
FG8EDHqdeniueT3IktMiF9s=
=AJlg
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to