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]