diff options
5 files changed, 210 insertions, 2 deletions
diff --git a/sys-block/partimage/ChangeLog b/sys-block/partimage/ChangeLog index b5bea950df81..23c1b6284134 100644 --- a/sys-block/partimage/ChangeLog +++ b/sys-block/partimage/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sys-block/partimage # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-block/partimage/ChangeLog,v 1.23 2006/10/05 03:02:26 josejx Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-block/partimage/ChangeLog,v 1.24 2006/10/14 16:01:37 xmerlin Exp $ + + 14 Oct 2006; Christian Zoffoli <xmerlin@gentoo.org> + +files/partimage-0.6.4-dont-discard-error-message-in-batch-mode.patch, + +files/partimage-0.6.4-save_file_and_rest_file_actions.patch, + +files/partimage-0.6.4-varargs.patch, partimage-0.6.4-r4.ebuild: + Merged additional patches (fixes/improvements). 05 Oct 2006; Joseph Jezak <josejx@gentoo.org> partimage-0.6.4-r3.ebuild, partimage-0.6.4-r4.ebuild: diff --git a/sys-block/partimage/files/partimage-0.6.4-dont-discard-error-message-in-batch-mode.patch b/sys-block/partimage/files/partimage-0.6.4-dont-discard-error-message-in-batch-mode.patch new file mode 100644 index 000000000000..17f9f3ae8a7e --- /dev/null +++ b/sys-block/partimage/files/partimage-0.6.4-dont-discard-error-message-in-batch-mode.patch @@ -0,0 +1,61 @@ +--- partimage-0.6.4/src/client/main.cpp.pix 2004-02-04 01:57:36.000000000 +0100 ++++ partimage-0.6.4/src/client/main.cpp 2005-10-20 17:02:36.000000000 +0200 +@@ -133,6 +133,12 @@ + }*/ + } + ++void ensure_interface_is_non_interactive() ++{ ++ delete g_interface; ++ g_interface = new CInterfaceNone(""); ++} ++ + // ======================================================= + int main(int argc, char *argv[]) + { +@@ -568,8 +574,9 @@ + goto beginMainWin; + } + +- if (!options.bBatchMode) +- g_interface -> Error(excep, szImageFile, szDevice); ++ if (options.bBatchMode) ensure_interface_is_non_interactive(); ++ ++ g_interface -> Error(excep, szImageFile, szDevice); + + showDebug(1, "\nFINAL ERROR\n\n"); + +@@ -580,8 +587,10 @@ + else + { + showDebug(1, "The file system of [%s] is [%s], and is not supported\n", szDevice, szFileSystem); +- if (!options.bBatchMode) +- g_interface->msgBoxError("The file system of [%s] is [%s], and is not supported", szDevice, szFileSystem); ++ ++ if (options.bBatchMode) ensure_interface_is_non_interactive(); ++ ++ g_interface->msgBoxError("The file system of [%s] is [%s], and is not supported", szDevice, szFileSystem); + nRes = -1; + } + //#endif // DEVEL_SUPPORT +@@ -661,7 +670,7 @@ + // update the disk IO + if (options.bSync) + { +- g_interface -> StatusLine(i18n("commiting buffer cache to disk.")); ++ if (!options.bBatchMode) g_interface -> StatusLine(i18n("commiting buffer cache to disk.")); + sync(); + } + +--- partimage-0.6.4/src/client/interface_none.cpp.pix 2004-02-04 01:57:36.000000000 +0100 ++++ partimage-0.6.4/src/client/interface_none.cpp 2005-10-20 17:03:01.000000000 +0200 +@@ -96,7 +96,8 @@ + void CInterfaceNone::msgBoxError(char *title, ...) { + va_list al; + va_start(al,title); +- message_only("Error", title, "", al, 0); ++ vfprintf(stderr,title,al); ++ fputc('\n',stderr); + va_end(al); + } + diff --git a/sys-block/partimage/files/partimage-0.6.4-save_file_and_rest_file_actions.patch b/sys-block/partimage/files/partimage-0.6.4-save_file_and_rest_file_actions.patch new file mode 100644 index 000000000000..0c61a85673e7 --- /dev/null +++ b/sys-block/partimage/files/partimage-0.6.4-save_file_and_rest_file_actions.patch @@ -0,0 +1,127 @@ +--- partimage-0.6.4.orig/src/client/main.cpp 2006-10-14 14:09:50.000000000 +0200 ++++ partimage-0.6.4/src/client/main.cpp 2006-10-14 14:00:30.000000000 +0200 +@@ -517,6 +517,10 @@ + else if (strcmp(argv[optind], "imginfo")==0) + // show informations about the imagefile + nChoice = OPERATION_IMGINFO; ++ else if (strcmp(argv[optind], "save_file")==0) ++ nChoice = OPERATION_SAVE_FILE; ++ else if (strcmp(argv[optind], "rest_file")==0) ++ nChoice = OPERATION_REST_FILE; + else if (strcmp(argv[optind], "save_all")==0) + nChoice = OPERATION_SAVE_ALL; + else if (strcmp(argv[optind], "rest_all")==0) +@@ -690,7 +694,35 @@ + nRes = -1; + } + break; +- ++ ++ case OPERATION_SAVE_FILE: ++ showDebug(1, "action=SAVE_FILE\n"); ++ try { save_file(szImageFile, &options); } ++ catch (CExceptions *excep) ++ { ++ showDebug(1, "save_file caught exception: %d\n", excep->GetExcept()); ++ ++ if (options.bBatchMode) ensure_interface_is_non_interactive(); ++ g_interface -> Error(excep, szImageFile, ""); ++ ++ nRes = -1; ++ } ++ break; ++ ++ case OPERATION_REST_FILE: ++ showDebug(1, "action=REST_FILE\n"); ++ try { rest_file(szImageFile, &options); } ++ catch (CExceptions *excep) ++ { ++ showDebug(1, "rest_file caught exception: %d\n", excep->GetExcept()); ++ ++ if (options.bBatchMode) ensure_interface_is_non_interactive(); ++ g_interface -> Error(excep, szImageFile, ""); ++ ++ nRes = -1; ++ } ++ break; ++ + default: // exit + if (options.bSync) + { +--- partimage-0.6.4.orig/src/client/misc.cpp 2006-10-14 14:09:50.000000000 +0200 ++++ partimage-0.6.4/src/client/misc.cpp 2006-10-14 14:04:24.000000000 +0200 +@@ -2502,3 +2502,52 @@ + + RETURN; + } ++ ++void save_file(char *szImageFile, COptions *options) ++{ ++ BEGIN; ++ int in_offset = 0; ++ char *in = (char *) malloc(MAXPATHLEN); ++ ++ CImage image(options); ++ image.set_szImageFilename(szImageFile); ++ image.openWriting(); ++ ++ while (1) { ++ int len = fread(in + in_offset, 1, MAXPATHLEN, stdin); ++ showDebug(1, "read %d chars on stdin\n", len); ++ if (!len) break; ++ in = (char *) realloc(in, MAXPATHLEN + (in_offset += len)); ++ } ++ showDebug(1, "writing %d chars in %s\n", in_offset, szImageFile); ++ write_unsigned(&image, in_offset); ++ image.write((void *) in, in_offset, true); ++ free(in); ++ ++ closeFilesSave(false, *options, &image, NULL); ++ ++ RETURN; ++} ++ ++void rest_file(char *szImageFile, COptions *options) ++{ ++ BEGIN; ++ ++ CImage image(options); ++ ++ { ++ image.set_szImageFilename(szImageFile); ++ image.openReading(); ++ ++ unsigned int len = read_unsigned(&image); ++ char *s = (char *) malloc(len + 1); ++ image.read(s, len, true); ++ fwrite(s, 1, len, stdout); ++ free(s); ++ ++ // since sfdisk.lst is not really nice to the library, we can't close the thread from procReadBuffer$ ++ image.closeReading(false); ++ } ++ ++ RETURN; ++} +--- partimage-0.6.4.orig/src/client/misc.h 2006-10-14 14:09:50.000000000 +0200 ++++ partimage-0.6.4/src/client/misc.h 2006-10-14 14:00:30.000000000 +0200 +@@ -47,6 +47,8 @@ + void savePartition(char *szDevice, char *szImageName, /*char *szFilesystem, */COptions *options); + void restorePartition(char *szDevice, char *szImageName, COptions *options); + void restoreMbr(char *szImageFile, COptions *options); ++void save_file(char *szImageFile, COptions *options); ++void rest_file(char *szImageFile, COptions *options); + void save_all(char *szImageDir, COptions *options); + void rest_all(char *szImageDir, COptions *options); + +--- partimage-0.6.4.orig/src/client/partimage.h 2006-10-14 14:09:50.000000000 +0200 ++++ partimage-0.6.4/src/client/partimage.h 2006-10-14 14:09:18.000000000 +0200 +@@ -96,6 +96,8 @@ + #define OPERATION_EXIT 5 + #define OPERATION_SAVE_ALL 6 + #define OPERATION_REST_ALL 7 ++#define OPERATION_SAVE_FILE 8 ++#define OPERATION_REST_FILE 9 + + // returned by CExceptionsGUI::windowError + // user canceled the job diff --git a/sys-block/partimage/files/partimage-0.6.4-varargs.patch b/sys-block/partimage/files/partimage-0.6.4-varargs.patch new file mode 100644 index 000000000000..3ec8bd5d534f --- /dev/null +++ b/sys-block/partimage/files/partimage-0.6.4-varargs.patch @@ -0,0 +1,11 @@ +--- partimage-0.6.4/src/client/imagefile.cpp.varargs 2004-02-03 19:57:36.000000000 -0500 ++++ partimage-0.6.4/src/client/imagefile.cpp 2005-08-23 08:17:08.000000000 -0400 +@@ -470,7 +470,7 @@ void CImage::splitChangeImageFileWrite() + if (!fork()) // we're the child // no error check maid + execl("/tmp/partimage-shell", + get_szImageFilename(), get_szPath(), +- get_szOriginalFilename(), get_dwVolumeNumber()); ++ get_szOriginalFilename(), get_dwVolumeNumber(), (char *)NULL); + } + + // wait for a keyboard keypress if need diff --git a/sys-block/partimage/partimage-0.6.4-r4.ebuild b/sys-block/partimage/partimage-0.6.4-r4.ebuild index 508d6fefac6f..81ad5430a8a5 100644 --- a/sys-block/partimage/partimage-0.6.4-r4.ebuild +++ b/sys-block/partimage/partimage-0.6.4-r4.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-block/partimage/partimage-0.6.4-r4.ebuild,v 1.11 2006/10/05 03:02:26 josejx Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-block/partimage/partimage-0.6.4-r4.ebuild,v 1.12 2006/10/14 16:01:37 xmerlin Exp $ WANT_AUTOMAKE="1.8" @@ -61,6 +61,9 @@ src_unpack() { epatch ${FILESDIR}/${P}-LP64-fixes.patch || die epatch ${FILESDIR}/${P}-save_all_and_rest_all_actions.patch || die epatch ${FILESDIR}/${P}-datadir-path.patch || die + epatch ${FILESDIR}/${P}-dont-discard-error-message-in-batch-mode.patch || die + epatch ${FILESDIR}/${P}-save_file_and_rest_file_actions.patch || die + epatch ${FILESDIR}/${P}-varargs.patch || die } src_compile() { |