[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#729651: guymager: FTBFS



tags 729651 + patch
thanks

Hi Mika,

as discussed, here?s a debdiff to fix the FTBFS by porting to
the new libewf API as much as is currently needed and adding
those new formats ? also fixed the inability to dpkg-buildpackage
twice in a row, as per Debian Policy.

Caveat: I could not test this, especially not with the new formats.
It starts, as non-root, and tells me it cannot do anything; when
starting with sudo I don?t get a usable UI (over VNC, lots of X11
bad drawing errors, might have to do with x.org vs. XFree86? diffs),
so I?d appreciate if you can test that this, at least, does not
introduce any regressions.

bye,
//mirabilos
-- 
16:47??mika:#grml? .oO(mira ist einfach gut....)      23:22??mikap:#grml?
mirabilos: und dein bootloader ist geil :)    23:29??mikap:#grml? und ich
finds saugeil dass ich ein bsd zum booten mit grml hab, das muss ich dann
gleich mal auf usb-stick installieren	-- Michael Prokop ?ber MirOS bsd4grml
-------------- next part --------------
diff -Nru guymager-0.6.7/debian/changelog guymager-0.6.7/debian/changelog
--- guymager-0.6.7/debian/changelog	2012-06-07 17:37:15.000000000 +0200
+++ guymager-0.6.7/debian/changelog	2013-12-25 01:12:06.000000000 +0100
@@ -1,3 +1,14 @@
+guymager (0.6.7-3.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add new libewf formats: Encase7, Linen6, Linen7, LVF6, LVF7
+    (XXX these need testing!)
+  * Fix clean not removing local patch to threadscan.cpp
+  * Same for generated guymager_cn.qm compileinfo.cpp manuals/guymager.1
+  * Port to newer libewf API to fix FTBFS (Closes: #729651)
+
+ -- Thorsten Glaser <tg at mirbsd.de>  Wed, 25 Dec 2013 00:09:42 +0000
+
 guymager (0.6.7-3) unstable; urgency=low
 
   * [136b5d8] Adjust ThreadScanLibPartedSearchDirs of threadscan.cpp
diff -Nru guymager-0.6.7/debian/patches/newer_libewf.diff guymager-0.6.7/debian/patches/newer_libewf.diff
--- guymager-0.6.7/debian/patches/newer_libewf.diff	1970-01-01 01:00:00.000000000 +0100
+++ guymager-0.6.7/debian/patches/newer_libewf.diff	2013-12-25 01:08:33.000000000 +0100
@@ -0,0 +1,295 @@
+# DP: Address FTBFS in #729651 by porting to newer libewf API.
+# DP: Also adds the new file formats Encase7, Linen7, LVF6, LVF7
+# DP: and the previously-forgotten Linen6 (neither of these have
+# DP: been tested yet).
+
+--- a/config.cpp
++++ b/config.cpp
+@@ -235,11 +235,15 @@ static t_ToolCfgSet SetArrEwfFormat[] =
+    {  "Encase4" ,         LIBEWF_FORMAT_ENCASE4},
+    {  "Encase5" ,         LIBEWF_FORMAT_ENCASE5},
+    {  "Encase6" ,         LIBEWF_FORMAT_ENCASE6},
++   {  "Encase7" ,         LIBEWF_FORMAT_ENCASE7},
+    {  "Smart"   ,         LIBEWF_FORMAT_SMART  },
+-   {  "FTK"     ,         LIBEWF_FORMAT_FTK    },
++   {  "FTK"     ,         LIBEWF_FORMAT_FTK_IMAGER    },
+    {  "Linen5"  ,         LIBEWF_FORMAT_LINEN5 },
+    {  "Linen6"  ,         LIBEWF_FORMAT_LINEN6 },
+-   {  "LVF"     ,         LIBEWF_FORMAT_LVF    },
++   {  "Linen7"  ,         LIBEWF_FORMAT_LINEN7 },
++   {  "LVF"     ,         LIBEWF_FORMAT_LOGICAL_ENCASE5    },
++   {  "LVF6"    ,         LIBEWF_FORMAT_LOGICAL_ENCASE6    },
++   {  "LVF7"    ,         LIBEWF_FORMAT_LOGICAL_ENCASE7    },
+    {  "Guymager",         t_File::AEWF         }, // AEWF format is a format on its own (for the function calls) and at the same time a
+    {  "AEWF"    ,         t_File::AEWF         }, // subformat of EWF (for the user interface). Looks a bit strange at first sight, but
+    {   NULL     ,         0                    }  // probably is the best compromise.
+--- a/file.cpp
++++ b/file.cpp
+@@ -75,10 +75,15 @@ APIRET t_File::GetFormatDescription (t_F
+             case LIBEWF_FORMAT_ENCASE4: SubFormat="Encase4" ; break;
+             case LIBEWF_FORMAT_ENCASE5: SubFormat="Encase5" ; break;
+             case LIBEWF_FORMAT_ENCASE6: SubFormat="Encase6" ; break;
+-            case LIBEWF_FORMAT_FTK    : SubFormat="FTK"     ; break;
++            case LIBEWF_FORMAT_ENCASE7: SubFormat="Encase7" ; break;
++            case LIBEWF_FORMAT_FTK_IMAGER    : SubFormat="FTK"     ; break;
+             case LIBEWF_FORMAT_SMART  : SubFormat="Smart"   ; break;
+-            case LIBEWF_FORMAT_LVF    : SubFormat="LVF"     ; break;
++            case LIBEWF_FORMAT_LOGICAL_ENCASE5    : SubFormat="LVF"     ; break;
++            case LIBEWF_FORMAT_LOGICAL_ENCASE6    : SubFormat="LVF6"    ; break;
++            case LIBEWF_FORMAT_LOGICAL_ENCASE7    : SubFormat="LVF7"    ; break;
+             case LIBEWF_FORMAT_LINEN5 : SubFormat="Linen5"  ; break;
++            case LIBEWF_FORMAT_LINEN6 : SubFormat="Linen6"  ; break;
++            case LIBEWF_FORMAT_LINEN7 : SubFormat="Linen7"  ; break;
+             case AEWF                 : SubFormat="Guymager"; break;
+             default                   : CHK (ERROR_FILE_INVALID_EWF_FORMAT)
+          }
+@@ -125,11 +130,16 @@ APIRET t_File::GetFormatExtension (t_For
+             case LIBEWF_FORMAT_ENCASE4:
+             case LIBEWF_FORMAT_ENCASE5:
+             case LIBEWF_FORMAT_ENCASE6:
++            case LIBEWF_FORMAT_ENCASE7:
+             case LIBEWF_FORMAT_LINEN5 :
+-            case LIBEWF_FORMAT_FTK    :
++            case LIBEWF_FORMAT_LINEN6 :
++            case LIBEWF_FORMAT_LINEN7 :
++            case LIBEWF_FORMAT_FTK_IMAGER    :
+             case AEWF                 : Wild=".E??"; Human=".Exx"; break;
+             case LIBEWF_FORMAT_SMART  : Wild=".s??"; Human=".sxx"; break;
+-            case LIBEWF_FORMAT_LVF    : Wild=".l??"; Human=".lxx"; break;
++            case LIBEWF_FORMAT_LOGICAL_ENCASE7    : /*XXX really? */
++            case LIBEWF_FORMAT_LOGICAL_ENCASE6    : /*XXX really? */
++            case LIBEWF_FORMAT_LOGICAL_ENCASE5    : Wild=".l??"; Human=".lxx"; break;
+             default                   : CHK (ERROR_FILE_INVALID_EWF_FORMAT)
+          }
+          break;
+--- a/dlgacquire.cpp
++++ b/dlgacquire.cpp
+@@ -1123,9 +1123,14 @@ void t_DlgAcquire::SlotAccept (void)
+             return;
+          }
+          SplitSize = NumValue * UnitIndexToMultiplier (DlgAcquireGetField(CFG_DLGACQUIRE_SPLITFILEUNIT)->pComboBox->currentIndex());
+-         #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015))
++         #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015) && (LIBEWF_VERSION != 20130416))
+             #error "Please check EWF documentation for newer Encase formats and adjust following code"
+          #endif
++         /*
++          * file libewf/libewf_segment_file.c function
++          * libewf_segment_file_write_chunks_section_correction()
++          * only uses INT64_MAX chunk size for Encase6 not Encase7
++          */
+          if (pOwn->pRadioButtonFormatEWF->isChecked())
+          {
+             if ((CONFIG(EwfFormat) == LIBEWF_FORMAT_ENCASE6) ||
+@@ -1146,7 +1151,7 @@ void t_DlgAcquire::SlotAccept (void)
+                {
+                   QMessageBox::information (this, tr ("Incorrect value", "Dialog title"),
+                                                   tr ("The split size for the configured EWF format must be in the range %1 - %2 MiB. "
+-                                                      "For bigger files, switch to ""Encase6"" format or later (see Guymager configuration file, parameter EwfFormat).")
++                                                      "For bigger files, switch to ""Encase6"" format (see Guymager configuration file, parameter EwfFormat).")
+                                                   .arg(EWF_MIN_SEGMENT_SIZE/(1024*1024))
+                                                   .arg(EWF_MAX_SEGMENT_SIZE/(1024*1024)), QMessageBox::Ok);
+                   return;
+--- a/main.cpp
++++ b/main.cpp
+@@ -462,7 +462,8 @@ static APIRET MainGo (int argc, char *ar
+ 
+    // Initialise libewf
+    // -----------------
+-   libewf_set_notify_values (stderr, CONFIG (VerboseLibewf) ? 1 : 0);
++   libewf_notify_set_stream(stderr, NULL);
++   libewf_notify_set_verbose(CONFIG (VerboseLibewf) ? 1 : 0);
+ 
+    // Create central data structures
+    // ------------------------------
+--- a/threadcompress.cpp
++++ b/threadcompress.cpp
+@@ -114,7 +114,7 @@ void t_ThreadCompress::run (void)
+    size_t          CompressedMaxSize = 0;
+    size_t          CompressedSize    = 0;
+    void          *pHandle;
+-   LIBEWF_HANDLE *pEwfHandle  = NULL;
++   libewf_handle_t *pEwfHandle  = NULL;
+    t_Aewf        *pAewfHandle = NULL;
+ // t_Aaff        *pAaffHandle = NULL;
+    ssize_t         rc;
+@@ -132,7 +132,7 @@ void t_ThreadCompress::run (void)
+    {
+       case t_File::EWF:  if (CONFIG(EwfFormat) == t_File::AEWF)
+                               pAewfHandle = (t_Aewf *)        pHandle;
+-                         else pEwfHandle  = (LIBEWF_HANDLE *) pHandle;
++                         else pEwfHandle  = (libewf_handle_t *) pHandle;
+                          break;
+       case t_File::AAFF: // pAawfHandle = (t_Aawf *) pHandle;
+                          break;
+@@ -176,11 +176,11 @@ void t_ThreadCompress::run (void)
+                else
+                {
+                   CompressedSize = CompressedMaxSize;   // Must be initialised with the max buffer size (we use this one instead of MULTITHREADED_COMPRESSION_FIFO_BLOCK_SIZE in order to check if ti works as tols in the zlib docu)
+-                  rc = libewf_raw_write_prepare_buffer (pEwfHandle, pFifoBlockIn ->Buffer, pFifoBlockIn->DataSize,
++                  rc = libewf_handle_prepare_write_chunk(pEwfHandle, pFifoBlockIn ->Buffer, pFifoBlockIn->DataSize,
+                                                                     pFifoBlockOut->Buffer, &CompressedSize,
+                                                                    &pFifoBlockOut->EwfCompressionUsed,
+                                                                    &pFifoBlockOut->EwfChunkCRC,
+-                                                                   &pFifoBlockOut->EwfWriteCRC);
++                                                                   &pFifoBlockOut->EwfWriteCRC, NULL);
+                   if (pFifoBlockOut->EwfCompressionUsed)
+                   {
+                      pFifoBlockOut->EwfDataSize = CompressedSize;                        // Data to be forwarded is contained in
+--- a/threadwrite.cpp
++++ b/threadwrite.cpp
+@@ -349,7 +349,7 @@ class t_OutputFileEWF: public t_OutputFi
+       {
+          QString         Uname;
+          QString         GuymagerVersion;
+-         LIBEWF_HANDLE *pFile;
++         libewf_handle_t *pFile;
+          char          *pAsciiFileName;
+          QByteArray      AsciiFileName = (pDevice->Acquisition.ImagePath + pDevice->Acquisition.ImageFilename).toAscii();
+ 
+@@ -379,41 +379,45 @@ class t_OutputFileEWF: public t_OutputFi
+             }
+ 
+             CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Calling libewf_open"))
+-            pFile = libewf_open (poImageFilenameArr, oImageFileCount, libewf_get_flags_read());
+-            CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Returning from libewf_open"))
+-            if (pFile == NULL)
++            if (libewf_handle_initialize(&pFile, NULL) != 1 ||
++                libewf_handle_open(pFile, poImageFilenameArr, oImageFileCount, LIBEWF_ACCESS_FLAG_READ, NULL) != 1)
+             {
+                LOG_INFO ("[%s] Error while reopening EWF for verification. The files are:", QSTR_TO_PSZ (poDevice->LinuxDevice))
+                for (i=0; i<oImageFileCount; i++)
+                   LOG_INFO ("%s", poImageFilenameArr[i])
+                return ERROR_THREADWRITE_OPEN_FAILED;
+             }
++            CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Returning from libewf_open"))
+          }
+          else
+          {
+             char *pAsciiFileName = AsciiFileName.data();
+ 
+-            pFile = libewf_open (&pAsciiFileName, 1, LIBEWF_OPEN_WRITE);
+-            if (pFile == NULL)
++            if (libewf_handle_initialize(&pFile, NULL) != 1 ||
++                libewf_handle_open(pFile, &pAsciiFileName, 1, LIBEWF_OPEN_WRITE, NULL) != 1)
+                return ERROR_THREADWRITE_OPEN_FAILED;
+ 
+             #define STR_AND_LEN(QStr) QStr.toAscii().data(), strlen(QStr.toAscii().data())
++            #define U8S_AND_LEN(s) (const uint8_t *)s, strlen((const char *)s)
+ 
+-            CHK_LIBEWF (libewf_set_format             (pFile, (uint8_t) CONFIG (EwfFormat)))
+-            CHK_LIBEWF (libewf_set_media_size         (pFile, pDevice->Size))
+-            CHK_LIBEWF (libewf_set_bytes_per_sector   (pFile, (unsigned int) pDevice->SectorSize))
+-            CHK_LIBEWF (libewf_set_sectors_per_chunk  (pFile, pDevice->FifoBlockSize / pDevice->SectorSize))
+-            CHK_LIBEWF (libewf_set_segment_file_size  (pFile, pDevice->Acquisition.SplitFileSize))
+-            CHK_LIBEWF (libewf_set_compression_values (pFile, CONFIG (EwfCompression), 0)) // last parameter must be set to 0, else, only empty-block compression is done
+-            CHK_LIBEWF (libewf_set_media_type         (pFile, pDevice->Removable ? LIBEWF_MEDIA_TYPE_REMOVABLE : LIBEWF_MEDIA_TYPE_FIXED))
+-            CHK_LIBEWF (libewf_set_volume_type        (pFile, LIBEWF_VOLUME_TYPE_PHYSICAL))
+-            CHK_LIBEWF (libewf_set_error_granularity  (pFile, 1))
+-
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"case_number"    , STR_AND_LEN(pDevice->Acquisition.CaseNumber    )))
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"description"    , STR_AND_LEN(pDevice->Acquisition.Description   )))
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"examiner_name"  , STR_AND_LEN(pDevice->Acquisition.Examiner      )))
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"evidence_number", STR_AND_LEN(pDevice->Acquisition.EvidenceNumber)))
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"notes"          , STR_AND_LEN(pDevice->Acquisition.Notes         )))
++            CHK_LIBEWF (libewf_handle_set_format              (pFile, (uint8_t) CONFIG (EwfFormat), NULL))
++            CHK_LIBEWF (libewf_handle_set_media_size          (pFile, pDevice->Size, NULL))
++            CHK_LIBEWF (libewf_handle_set_bytes_per_sector    (pFile, (unsigned int) pDevice->SectorSize, NULL))
++            CHK_LIBEWF (libewf_handle_set_sectors_per_chunk   (pFile, pDevice->FifoBlockSize / pDevice->SectorSize, NULL))
++            CHK_LIBEWF (libewf_handle_set_maximum_segment_size(pFile, pDevice->Acquisition.SplitFileSize, NULL))
++            CHK_LIBEWF (libewf_handle_set_compression_values  (pFile, CONFIG (EwfCompression), 0, NULL))
++            CHK_LIBEWF (libewf_handle_set_media_type          (pFile, pDevice->Removable ? LIBEWF_MEDIA_TYPE_REMOVABLE : LIBEWF_MEDIA_TYPE_FIXED, NULL))
++            uint8_t media_flags = 0;
++            CHK_LIBEWF (libewf_handle_get_media_flags         (pFile, &media_flags, NULL))
++            media_flags |= LIBEWF_MEDIA_FLAG_PHYSICAL;
++            CHK_LIBEWF (libewf_handle_set_media_flags         (pFile, media_flags, NULL))
++            CHK_LIBEWF (libewf_handle_set_error_granularity   (pFile, 1, NULL))
++
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("case_number"    ), (const uint8_t *)STR_AND_LEN(pDevice->Acquisition.CaseNumber    ), NULL))
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("description"    ), (const uint8_t *)STR_AND_LEN(pDevice->Acquisition.Description   ), NULL))
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("examiner_name"  ), (const uint8_t *)STR_AND_LEN(pDevice->Acquisition.Examiner      ), NULL))
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("evidence_number"), (const uint8_t *)STR_AND_LEN(pDevice->Acquisition.EvidenceNumber), NULL))
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("notes"          ), (const uint8_t *)STR_AND_LEN(pDevice->Acquisition.Notes         ), NULL))
+ 
+             CHK (ToolSysInfoUname (Uname))
+             GuymagerVersion = QString("guymager ") + QString(pCompileInfoVersion);
+@@ -423,8 +427,8 @@ class t_OutputFileEWF: public t_OutputFi
+                Uname           = Uname          .left (THREADWRITE_ENCASE_MAXLEN_OSVERSION    );
+             }
+ 
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"acquiry_operating_system", STR_AND_LEN(Uname)))
+-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"acquiry_software_version", STR_AND_LEN(GuymagerVersion)))
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("acquiry_operating_system"), (const uint8_t *)STR_AND_LEN(Uname), NULL))
++            CHK_LIBEWF (libewf_handle_set_header_value (pFile, U8S_AND_LEN("acquiry_software_version"), (const uint8_t *)STR_AND_LEN(GuymagerVersion), NULL))
+ 
+             #undef STR_AND_LEN
+ 
+@@ -443,16 +447,20 @@ class t_OutputFileEWF: public t_OutputFi
+ 
+          if (oHasCompressionThreads)
+          {
++            uint8_t checksum_buffer[ 4 ];
++
+             Size = pFifoBlock->EwfDataSize;
+-            Written = libewf_raw_write_buffer (poFile, pFifoBlock->Buffer, Size, pFifoBlock->DataSize,
++            Written = libewf_handle_write_chunk(poFile, pFifoBlock->Buffer, Size, pFifoBlock->DataSize,
+                                                                                  pFifoBlock->EwfCompressionUsed,
++                                                                                 checksum_buffer,
+                                                                                  pFifoBlock->EwfChunkCRC,
+-                                                                                 pFifoBlock->EwfWriteCRC);
++                                                                                 pFifoBlock->EwfWriteCRC,
++                                                                                 NULL);
+          }
+          else
+          {
+             Size = pFifoBlock->DataSize;
+-            Written = libewf_write_buffer (poFile, pFifoBlock->Buffer, Size);
++            Written = libewf_handle_write_buffer (poFile, pFifoBlock->Buffer, Size, NULL);
+          }
+ 
+          if (Written != Size)
+@@ -484,7 +492,7 @@ class t_OutputFileEWF: public t_OutputFi
+          ToRead = GETMIN (Remaining, poDevice->FifoBlockSize);
+ 
+          CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Calling libewf_read_buffer"))
+-         Read = libewf_read_buffer (poFile, poVerifyBuff, ToRead);
++         Read = libewf_handle_read_buffer (poFile, poVerifyBuff, ToRead, NULL);
+          CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Returning from libewf_read_buffer"))
+ 
+          if (Read != (ssize_t)ToRead)
+@@ -532,7 +540,7 @@ class t_OutputFileEWF: public t_OutputFi
+                      To = Next;
+                      i++;
+                   }
+-                  CHK_LIBEWF (libewf_add_acquiry_error(poFile, From, To - From + 1))
++                  CHK_LIBEWF (libewf_handle_add_acquiry_error(poFile, From, To - From + 1, NULL))
+                }
+             }
+          }
+@@ -540,13 +548,15 @@ class t_OutputFileEWF: public t_OutputFi
+          // Write hash
+          // ----------
+          if (!oVerification && poDevice->HasCompressionThreads() && poDevice->Acquisition.CalcMD5)
+-            CHK_LIBEWF (libewf_set_md5_hash (poFile, (uint8_t*)&poDevice->MD5Digest, HASH_MD5_DIGEST_LENGTH))
++            CHK_LIBEWF (libewf_handle_set_md5_hash (poFile, (uint8_t*)&poDevice->MD5Digest, HASH_MD5_DIGEST_LENGTH, NULL))
+ 
+          // Close and cleanup
+          // -----------------
+-         rc = libewf_close (poFile);
+-         if (rc != 0)
++         rc = 0;
++         if (libewf_handle_close(poFile, NULL) != 0 ||
++             libewf_handle_free(&poFile, NULL) != 1)
+          {
++            rc = -1;
+             LOG_ERROR ("[%s] Error in libewf function: libewf_close, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), rc)
+             return ERROR_THREADWRITE_LIBEWF_FAILED;
+          }
+@@ -576,7 +586,7 @@ class t_OutputFileEWF: public t_OutputFi
+       }
+ 
+    private:
+-      LIBEWF_HANDLE *poFile;
++      libewf_handle_t *poFile;
+       t_pDevice      poDevice;
+       bool            oVerification;
+       void          *poVerifyBuff;
diff -Nru guymager-0.6.7/debian/patches/series guymager-0.6.7/debian/patches/series
--- guymager-0.6.7/debian/patches/series	2012-06-07 17:21:33.000000000 +0200
+++ guymager-0.6.7/debian/patches/series	2013-12-25 01:11:30.000000000 +0100
@@ -2,3 +2,4 @@
 ftbfs-gcc-4.7.diff
 reenable_libguytools_and_libewf.diff
 fix_sysconf_build_failure.diff
+newer_libewf.diff
diff -Nru guymager-0.6.7/debian/rules guymager-0.6.7/debian/rules
--- guymager-0.6.7/debian/rules	2012-06-07 17:36:45.000000000 +0200
+++ guymager-0.6.7/debian/rules	2013-12-25 01:12:00.000000000 +0100
@@ -9,7 +9,9 @@
 	dh_testdir
 	qmake-qt4 DEFINES+="SPLASH_DIR=\'\\\"/usr/share/guymager\\\"\' LANGUAGE_DIR=\'\\\"/usr/share/guymager\\\"\' LANGUAGE_DIR_QT=\'\\\"/usr/share/qt4/translations\\\"\'"
 	# ugly but only chance to find libparted in guymager :-/
-	sed -i "s/^const QString ThreadScanLibPartedSearchDirs.*/const QString ThreadScanLibPartedSearchDirs    = \\\"\/lib,\/lib\/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH),\/usr\/lib,\/usr\/local\/lib\\\";       \/\/ Separate directories by commas/" threadscan.cpp
+	test -e threadscan.cpp.bak || mv threadscan.cpp threadscan.cpp.bak
+	sed "s/^const QString ThreadScanLibPartedSearchDirs.*/const QString ThreadScanLibPartedSearchDirs    = \\\"\/lib,\/lib\/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH),\/usr\/lib,\/usr\/local\/lib\\\";       \/\/ Separate directories by commas/" \
+	    threadscan.cpp.bak >threadscan.cpp
 	touch configure-stamp
 
 build: build-arch build-indep
@@ -35,6 +37,8 @@
 	rm -f guymager
 	rm -f guymager_de.qm guymager_en.qm guymager_fr.qm guymager_it.qm guymager_nl.qm
 	rm -f Makefile
+	if test -e threadscan.cpp.bak; then mv threadscan.cpp.bak threadscan.cpp; fi
+	rm -f guymager_cn.qm compileinfo.cpp manuals/guymager.1
 	dh_clean
 
 install: build


Reply to: