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]