diff options
Diffstat (limited to 'recipes/mtools')
-rw-r--r-- | recipes/mtools/files/no-x11.patch | 19 | ||||
-rw-r--r-- | recipes/mtools/files/plainio.patch | 13 | ||||
-rw-r--r-- | recipes/mtools/files/use-sg_io.patch | 80 | ||||
-rw-r--r-- | recipes/mtools/mtools-native_4.0.10.bb (renamed from recipes/mtools/mtools-native_3.9.11.bb) | 0 | ||||
-rw-r--r-- | recipes/mtools/mtools_4.0.10.bb (renamed from recipes/mtools/mtools_3.9.11.bb) | 7 |
5 files changed, 97 insertions, 22 deletions
diff --git a/recipes/mtools/files/no-x11.patch b/recipes/mtools/files/no-x11.patch deleted file mode 100644 index 300f43f000..0000000000 --- a/recipes/mtools/files/no-x11.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- mtools-3.9.9.orig/Makefile.in -+++ mtools-3.9.9/Makefile.in -@@ -128,11 +128,11 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ - X_PRE_LIBS = @X_PRE_LIBS@ - CFLAGS = $(CPPFLAGS) $(DEFS) $(MYCFLAGS) -I. @extraincludedir@ -I@srcdir@ $(USERCFLAGS) - CXXFLAGS = $(CPPFLAGS) $(DEFS) $(MYCXXFLAGS) -I. @extraincludedir@ -I@srcdir@ $(USERCFLAGS) - LINK = $(CC) $(LDFLAGS) $(USERLDFLAGS) @extralibdir@ - ALLLIBS = $(USERLDLIBS) $(MACHDEPLIBS) $(SHLIB) $(LIBS) --X_LDFLAGS = $(X_EXTRA_LIBS) $(X_LIBS) $(X_PRE_LIBS) -lXau -lX11 $(LIBS) -+X_LDFLAGS = $(X_EXTRA_LIBS) $(X_LIBS) $(X_PRE_LIBS) $(LIBS) - X_CCFLAGS = $(X_CFLAGS) $(CFLAGS) - - all: mtools $(LINKS) mkmanifest @FLOPPYD@ - - %.o: %.c diff --git a/recipes/mtools/files/plainio.patch b/recipes/mtools/files/plainio.patch new file mode 100644 index 0000000000..b4bd1d6615 --- /dev/null +++ b/recipes/mtools/files/plainio.patch @@ -0,0 +1,13 @@ +01_plainio.dpatch by Martin Pitt <mpitt@debian.org> +Fixes garbage output of mtype under certain circumstances; closes #217413 + +--- mtools-3.9.9/plain_io.c 2003-02-16 17:18:58.000000000 +0100 ++++ mtools-3.9.9/plain_io.c 2004-01-14 00:56:11.000000000 +0100 +@@ -524,6 +524,7 @@ + printOom(); + return 0; + } ++ memset((void*)This, 0, sizeof(SimpleFile_t)); + This->scsi_sector_size = 512; + This->seekable = 1; + #ifdef OS_hpux diff --git a/recipes/mtools/files/use-sg_io.patch b/recipes/mtools/files/use-sg_io.patch new file mode 100644 index 0000000000..33867deb1a --- /dev/null +++ b/recipes/mtools/files/use-sg_io.patch @@ -0,0 +1,80 @@ +08.scsi.c.dpatch by Thomas Richter <thor@mail.math.tu-berlin.de> +#393878 mzip unreliable on 2.6.18 + +--- mtools-3.9.10/scsi.c 2002-11-02 13:09:28.000000000 +0100 ++++ mtools-3.9.10/scsi.c 2006-10-17 21:11:01.000000000 +0200 +@@ -37,12 +37,7 @@ + #endif + + #ifdef OS_linux +-#define SCSI_IOCTL_SEND_COMMAND 1 +-struct scsi_ioctl_command { +- int inlen; +- int outlen; +- char cmd[5008]; +-}; ++#include <scsi/sg.h> + #endif + + #ifdef _SCO_DS +--- mtools-3.9.10/scsi.c 2007-05-26 19:02:56.000000000 +1000 ++++ mtools-3.9.10/scsi.c 2008-04-08 20:30:16.000000000 +1000 +@@ -148,37 +148,33 @@ int scsi_cmd(int fd, unsigned char *cdb, + return 0; + + #elif defined OS_linux +- struct scsi_ioctl_command my_scsi_cmd; ++ struct sg_io_hdr scsi_cmd; + ++ /* ++ ** Init the command ++ */ ++ memset(&scsi_cmd,0,sizeof(scsi_cmd)); ++ scsi_cmd.interface_id = 'S'; ++ scsi_cmd.dxfer_direction = (mode == SCSI_IO_READ)?(SG_DXFER_FROM_DEV):(SG_DXFER_TO_DEV); ++ scsi_cmd.cmd_len = cmdlen; ++ scsi_cmd.mx_sb_len = 0; ++ scsi_cmd.dxfer_len = len; ++ scsi_cmd.dxferp = data; ++ scsi_cmd.cmdp = cdb; ++ scsi_cmd.timeout = ~0; /* where is MAX_UINT defined??? */ ++ ++#if DEBUG ++ printf("CMD(%d): %02x%02x%02x%02x%02x%02x %sdevice\n",cmdlen,cdb[0],cdb[1],cdb[2],cdb[3],cdb[4],cdb[5], ++ (mode==SCSI_IO_READ)?("<-"):("->")); ++ printf("DATA : len = %d\n",len); ++#endif + +- memcpy(my_scsi_cmd.cmd, cdb, cmdlen); /* copy command */ +- +- switch (mode) { +- case SCSI_IO_READ: +- my_scsi_cmd.inlen = 0; +- my_scsi_cmd.outlen = len; +- break; +- case SCSI_IO_WRITE: +- my_scsi_cmd.inlen = len; +- my_scsi_cmd.outlen = 0; +- memcpy(my_scsi_cmd.cmd + cmdlen,data,len); +- break; +- } +- +- if (ioctl(fd, SCSI_IOCTL_SEND_COMMAND, &my_scsi_cmd) < 0) { ++ if (ioctl(fd, SG_IO,&scsi_cmd) < 0) { + perror("scsi_io"); + return -1; + } + +- switch (mode) { +- case SCSI_IO_READ: +- memcpy(data, &my_scsi_cmd.cmd[0], len); +- break; +- case SCSI_IO_WRITE: +- break; +- } +- +- return 0; /* where to get scsi status? */ ++ return 0; + + #elif (defined _SCO_DS) && (defined SCSIUSERCMD) + struct scsicmd my_scsi_cmd; diff --git a/recipes/mtools/mtools-native_3.9.11.bb b/recipes/mtools/mtools-native_4.0.10.bb index c82f7404eb..c82f7404eb 100644 --- a/recipes/mtools/mtools-native_3.9.11.bb +++ b/recipes/mtools/mtools-native_4.0.10.bb diff --git a/recipes/mtools/mtools_3.9.11.bb b/recipes/mtools/mtools_4.0.10.bb index 4d1822f0d7..5b7f0cd890 100644 --- a/recipes/mtools/mtools_3.9.11.bb +++ b/recipes/mtools/mtools_4.0.10.bb @@ -1,16 +1,17 @@ # mtools OE build file # Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved +# Copyright (C) 2009, O.S. Systems Software Ltda. All Rights Reserved # Released under the MIT license (see packages/COPYING) DESCRIPTION="Mtools is a collection of utilities for accessing MS-DOS disks from Unix without mounting them." HOMEPAGE="http://mtools.linux.lu" LICENSE="GPL" -PR = "r4" -SRC_URI="http://mtools.linux.lu/mtools-${PV}.tar.gz \ +SRC_URI="http://ftp.gnu.org/gnu/mtools/mtools-${PV}.tar.bz2 \ file://m486.patch;patch=1 \ file://mtools-makeinfo.patch;patch=1 \ - file://no-x11.patch;patch=1" + file://plainio.patch;patch=1 \ + file://use-sg_io.patch;patch=1" S = "${WORKDIR}/mtools-${PV}" |