Bug#729651: guymager: FTBFS
Thorsten Glaser
tg at mirbsd.de
Wed Dec 25 00:22:48 UTC 2013
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
More information about the forensics-devel
mailing list