Hi,

I uploaded an NMU of your package.

Please see this as help to get the package into a releaseable condition for
etch.

Please find the used diff below.


Cheers,
Andi

diff -Nur ../atari-fdisk-0.7.1~/debian/changelog 
../atari-fdisk-0.7.1/debian/changelog
--- ../atari-fdisk-0.7.1~/debian/changelog      2006-10-23 18:32:43.000000000 
+0000
+++ ../atari-fdisk-0.7.1/debian/changelog       2006-12-30 09:52:56.000000000 
+0000
@@ -1,3 +1,11 @@
+atari-fdisk (0.7.1-5.3) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * Using glibcs lseek() instead of the kernels to avoid failure in
+    64bit-environments. Closes: #404358
+
+ -- Andreas Barth <[EMAIL PROTECTED]>  Sat, 30 Dec 2006 09:50:10 +0000
+
 atari-fdisk (0.7.1-5.2) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nur ../atari-fdisk-0.7.1~/disk.c ../atari-fdisk-0.7.1/disk.c
--- ../atari-fdisk-0.7.1~/disk.c        2006-10-23 18:35:51.000000000 +0000
+++ ../atari-fdisk-0.7.1/disk.c 2006-12-30 09:53:46.000000000 +0000
@@ -60,13 +60,12 @@
 "$Id: disk.c,v 1.10 1997/08/22 12:35:38 rnhodek Exp $";
 #endif /* lint */
 
+#define _FILE_OFFSET_BITS 64
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#ifdef __linux__
-#include <sys/syscall.h>
-#endif
 #include <fcntl.h>
 #include <errno.h>
 
@@ -81,43 +80,13 @@
 /*
  * sseek: seek to specified sector - return 0 on failure
  *
- * For >4GB disks lseek needs a > 32bit arg, and we have to use llseek.
+ * For >4GB disks lseek needs a > 32bit arg.
  * On the other hand, a 32 bit sector number is OK until 2TB.
- * The routines _llseek and sseek below are the only ones that
- * know about the loff_t type.
+ *
+ * Thanks to _FILE_OFFSET_BITS, we can have GNU libc use an 64bit off_t even on
+ * 32bit platforms.
  */
 
-#ifdef SYS__llseek
-
-#define _llseek(fd, hi, lo, res, wh) syscall(SYS__llseek, fd, hi, lo, res, wh)
-
-/* seek to a sector */
-int sseek( unsigned int fd, unsigned long s )
-{
-    loff_t in, out;
-
-    in = (loff_t)s * SECTOR_SIZE;
-    out = 1;
-
-    if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0) {
-       perror( "llseek" );
-       fprintf( stderr, "seek error - cannot seek to sector %lu\n", s );
-       return 0;
-    }
-
-    if (in != out) {
-       fprintf( stderr, "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n",
-                (uint)(in>>32), (uint)(in & 0xffffffff),
-                (uint)(out>>32), (uint)(out & 0xffffffff) );
-       return 0;
-    }
-    return 1;
-}
-
-#else
-
-/* Sorry, kernel doesn't know _llseek call :-((( */
-
 int sseek( unsigned int fd, unsigned long s )
 {
     off_t in, out;
@@ -136,8 +105,6 @@
     return 1;
 }
 
-#endif
-
 /* read one sector */
 void sread( char *buffer, unsigned long secno )
 {
-- 
  http://home.arcor.de/andreas-barth/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to