From d633fa39eee1d056c899f77c1de4a9def05f3ed6 Mon Sep 17 00:00:00 2001 From: Nicolas Bock Date: Fri, 24 Apr 2015 15:24:14 +0000 Subject: [PATCH] app-admin/testdisk: Updated testdisk-6.14. Added patch suggested by jospezial (Comment 5 of Bug 537932). Package-Manager: portage-2.2.18/cvs/Linux x86_64 Manifest-Sign-Key: 0xAC91CA52 --- app-admin/testdisk/ChangeLog | 10 +- app-admin/testdisk/Manifest | 20 +- .../testdisk/files/fix_rare_crash-6.14.patch | 227 ++++++++++++++++++ app-admin/testdisk/testdisk-6.14-r1.ebuild | 84 +++++++ app-admin/testdisk/testdisk-7.0-r2.ebuild | 5 +- 5 files changed, 333 insertions(+), 13 deletions(-) create mode 100644 app-admin/testdisk/files/fix_rare_crash-6.14.patch create mode 100644 app-admin/testdisk/testdisk-6.14-r1.ebuild diff --git a/app-admin/testdisk/ChangeLog b/app-admin/testdisk/ChangeLog index 59bac5d41727..f01af220f72d 100644 --- a/app-admin/testdisk/ChangeLog +++ b/app-admin/testdisk/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for app-admin/testdisk # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/testdisk/ChangeLog,v 1.60 2015/04/21 16:27:26 nicolasbock Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/testdisk/ChangeLog,v 1.61 2015/04/24 15:24:10 nicolasbock Exp $ + +*testdisk-6.14-r1 (24 Apr 2015) + + 24 Apr 2015; Nicolas Bock + +files/fix_rare_crash-6.14.patch, +testdisk-6.14-r1.ebuild, + testdisk-7.0-r2.ebuild: + app-admin/testdisk: Updated testdisk-6.14. Added patch suggested by jospezial + (Comment 5 of Bug 537932). 21 Apr 2015; Nicolas Bock metadata.xml, testdisk-7.0-r2.ebuild: diff --git a/app-admin/testdisk/Manifest b/app-admin/testdisk/Manifest index a650bdcf03f5..7b008fdf4371 100644 --- a/app-admin/testdisk/Manifest +++ b/app-admin/testdisk/Manifest @@ -1,6 +1,7 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 +AUX fix_rare_crash-6.14.patch 7430 SHA256 178583de3249fdca3e9819ae6262ff6e917f7c86b5a9b91e127989fbf2d2bc13 SHA512 d741e5ecf4fe2127c592649ffb64b05483b923220dde1004fceefbb07512573d7fdc0331633ee41cb2f0c9a6ae6090889cb5f3ec53fbbee0f496e567a9447682 WHIRLPOOL 94d02e93960d6cec2a9ca863cfb6016786ed13475371b0e80df4f0f166d656028c043f19973efacd98e768d82e4c335f6860a8833ccc7587bc0dcc8197125fe0 AUX install-gentoo.patch 1024 SHA256 6032a16605ffea598823460d080eb9ec698b43ca7d527c49f96675c2865d6bb7 SHA512 29d625132b196a9d9231719be5d262ed871e502cb7a35544ad179a41c6481ba6a4da3a0017776c9c05c4275ceffa296f47c0b3ec7d385211e43ba96287ea7c34 WHIRLPOOL eea463da698ebda3dbedf271f9e729627e6f2066dc36b9470077db83de4494c18fbd05a3f281b9a113148689440554c7e31e3bbf5a37c4866324f9536b21e88f DIST testdisk-6.12.tar.bz2 554633 SHA256 bdfbe679146518a1321d64f512d6ec8980ac3a9f2296ef27a46c7743d0f9ea16 SHA512 5cd17d1ad851515dcd1f3ef5dfb7435aff2f89e2b0467e84552809d203688a47731e23a602dc10355861414eb2d8c6b9edd48225ccc6229ab59810803a59da4c WHIRLPOOL f667fa6e61990cd6c6532301e461fc1cdcd9303a96566cc501dc1945fd9328b234b8c3f5a760a839a9d4b026da29d03c3189fa9afc58b7f7efa6e96b15008a49 DIST testdisk-6.13.tar.bz2 560696 SHA256 48275ccddfc9445b6c3e6e181728dae9e49bd25b824a6b5670d58f1f88cdf220 SHA512 30889b8afed5b0fac93ce028e8c95bfa3e14b72d39cc4f86659edcce0b8820c5ce0c2b7e1d09f23f0da977b5d1cb275551069a87b109d05538e63e9b76200442 WHIRLPOOL b9bcf93df5b42a26b4206969ee968122f194338a28c6a500e540e3cafec2ae84d0734624c58b3581fc9ac71f2ea1038f2997e3f91278d6eed18abf786cd31200 @@ -8,20 +9,21 @@ DIST testdisk-6.14.tar.bz2 620077 SHA256 a597c3ebc375acdf0ff60f44ed8935a301132aa DIST testdisk-7.0.tar.bz2 676990 SHA256 00bb3b6b22e6aba88580eeb887037aef026968c21a87b5f906c6652cbee3442d SHA512 b1ebe1d2fca453660a17623b70c06e0195cb5f07056fb7bc683d575c034fb71dfb793582c804dcff0ca57789a6de84bbf13b1a554353811660996e42199102e2 WHIRLPOOL 9ef3ed733f13477435123089cbd6168c189591284aa72dc9636470b35a21a32222d6871916b43e3c2ba4ac6da85979d6ec249b22c2573b77db7b2bcc280b85f1 EBUILD testdisk-6.12.ebuild 1856 SHA256 1678f023438962f40fe94ce4d78c55ae90d1bc59efddc909390f98dfbd3df9f9 SHA512 b59e8ffc7d054e1a02d4773a689682e5219e82f411ee3423d5dad633b922eb41d60117627b5335f7b544cb1f3af5bb2c78de32376535f8cb56cbbcc4d46ecace WHIRLPOOL ef7e3243f5790cb4df36c693de96c3112cc05022db0fddf47340782bdfc456a70a80cd90b4b846dc3d7e72e26fb544b4b2176c5ea65ea31b14e6afcb6820c516 EBUILD testdisk-6.13.ebuild 1859 SHA256 6f34569634f96ce0d7ee4c487b29d7a31846fa4953fa27f849c6e14286046204 SHA512 228890d41a79ccd67b1b736bdad40bcc1b628e215d54a4b3da32a2d7af76051e6f6e2a504071e4fa79da5c3d143ae941b522c22cb5e782b9b7939988feb3ae5d WHIRLPOOL 50a3c34b6b4391b64ba93766f9b16344fb2a0041939b285a2e3a40b56b721f61b956566c37c3df37cdd4466899081c212a455a492bc94799862deb651dce7922 +EBUILD testdisk-6.14-r1.ebuild 2612 SHA256 f103397b98e08600a78f9f95f246374167fb04653c811d8fb76f527288b11215 SHA512 d74301bf838496c4991893e75c48e2b8a28dd653888f700410d52ef0a81a971d32c67c70a393d5b022aaa1445cfe5c65a411b1b5d252c88cd3d3da098d15bd29 WHIRLPOOL 934e6e279dc42ebb2a4a1edfce65926bd17edd0f757b92334e4fa9b66230e07a42d161159b8bee1f5c8b9ea0694c013b1f43896a87a2a701d20503a9f6240f19 EBUILD testdisk-6.14.ebuild 1890 SHA256 75eb3b7738f09ffbc0a26219360577fa7d0a3ac2c2bd5dc451a1a56cb93c381f SHA512 aa2d794b34c325cd287e91a81fc722979435e862a9419a12f9b02535fe7c793a0f5ab169891eb4c4dddd3a93bb7062eac605aa9ec545c18e42bf5789ff813556 WHIRLPOOL 972e721bf7df15aa5811ba0e90f41deaac15beb7a5294bc698b9340479566f3eda9b18a6e9b9af723ed420ae1b6915d27f35f81f3245a1fc72b766e0b9f97170 EBUILD testdisk-7.0-r1.ebuild 2395 SHA256 9457bfad96389b3cdb609e235dcac332babeab87a79d10c36fd8effa4507bb11 SHA512 4a0b758cfe37fe8228986161934799b61f88f6e0179aced1ddac5c340416c42b686ed397688cff3b0cd22e968fb35ec799f79919280d1f6c91d5783871eeafad WHIRLPOOL cfe03e6b292fc81422e9b6623ab82d3eb105ba7ea35a3e67ecdff26b52eacbbfdb9ab8cd7879039a3c89f96d4b04890b7247496fccc24a6c27ada5777affc8d7 -EBUILD testdisk-7.0-r2.ebuild 2588 SHA256 0187000193acb0bef640c99ef68b75a36ea7e9fabc34de1ea531b40c9582e95d SHA512 f26e55e686cb5724f3eacc0be7a218abc319335bc8048518aabe0736c2ad184feae8f8595c121db23ec4baa3991734ad9e1c22b0b0ff5d8dd7ac132e36983fd4 WHIRLPOOL dc182a34a8d33b448baefba35d0759bb8c192d4bbe709e9d9192d2c14741698e5e0542bc73d0f8ec92ec95197e8e4150ebdf75fcb7d963684afd8e9b4f96b863 +EBUILD testdisk-7.0-r2.ebuild 2557 SHA256 7559c09d81d30a744a02bd7166f010337cf0780cded5f4efc94ee6949838cbb3 SHA512 f15ee201fc485423be5eb62fbfc07ccda33f1012e25a3b5d4eeaaccaa9dd8229ce9d36a1771dd3bdd8718f7c2c1dd4c9489951f51d7b9afb8a0ae9cb30670e3a WHIRLPOOL 3b8748c949cf39b4e8f29e95545ffddfd4d73b4b70d50e8b6c7462e9ed6b21630f070b64e2dc103c1129ae2f24179c47342c7e1f5f92389f2b94eb0e68b069c9 EBUILD testdisk-7.0.ebuild 2350 SHA256 22a1ca43308e1dcb845c0073314a3761766d41b21bb5f95842213737c413e969 SHA512 0588a8f108c2d5e713c0d3260ff6496b8861198fc9be3896264d1426078091b80564bd3347c8118729aaa475aef18468f2bad630eb240df6b0ad4d319907d1f0 WHIRLPOOL 1072b22811d0778a94efab60d51ca277c696e5c1d07900cf15193a26dc218b2acf5c4b70cd8b73217903b8bcf5481bcbd9b2c387f312e480fcca95c24c4dd0f0 -MISC ChangeLog 10327 SHA256 af3931d5b6443806e17b9192b51f69eb5dda28f4cd312d1d54c5a2e3d40ae801 SHA512 0e5941870e77b472c96c81624acdfd1c3b51314463033c22759b06ec5c2dbb15dbb72be836c273d47ebd936a687cdbe229db19ef7fb3f9a15fdd86f0e769c2f3 WHIRLPOOL e46df091f31e130e493d5ea7999ecd6944c81e9c281b3989b7813b03e90da2f5641bfc5b129944fa2edc871336bba1c90be75085532d8a37478ff48b7b578bbb +MISC ChangeLog 10612 SHA256 acea17503b5ef2899c9a00e4354f570061f10cb2e26be5d233e0e9a413c5935c SHA512 fcdfea739218a3d7cd14d30f8596376e4b016ce08cc6780cfdd12eda790fbb59b2cbc8d754db3e2c0d24839519560497e095c0f260c0c1897a0595f5ba06c091 WHIRLPOOL e4246fd228737b144a345643151bd41b28d75f24ba9874dd421fd32c364eab5d3cd64cfacefcb13a2c14d3c671244daaf7f915c1fbc7bb4278877141da26762c MISC metadata.xml 520 SHA256 06d3db5ad56f6172aa575a8d803e45a7ccf3360939667c9e5fa01a118bf26b67 SHA512 fa280984149bb868e5aba6e830d7b00fb1d8aab38de614c8bf365e18d2052828f4eb250934f321d95c11d585d3cc08bed184b600214c2233b16d06a771f64eaf WHIRLPOOL 4bc042ab9557ed2d5fca52567a719e83d67003dbf855a99874e0dc42b45bf1ab9266de0d7dd79886ae7d8d6d650b61f1028e74b1dce7949330cc7e7765ab0993 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iQEcBAEBCAAGBQJVNnpxAAoJEF1ww0n44d9NvB8H/32haosRbUdug0Ft/NDNbvHi -lQBRDfKHuWsdkA5YCEU/ZT4p1hEWKRMgbnrkZPi4xPOrElA5rmXX/Mhy4GQfbsdF -QDqEr48SXIENqWF57c+irKTUgQIki+bLP2rNz7wkxEPc3WBAwRnNvGePsSsHO3zB -5IJC0fSvdhPfSdEZU1sy9esdVE42vd6rfjqhhYFLDbgd7O8/ZdwviU3v78rfbMQX -8YpwGDLYuW1ohP9jwcLsEzsiH7wGmsT/93W0wJus6Kb65Urn2H0B/KooQw+MRPcB -50CwhDYffahNw4WQcqNiPfNEPaTIzl1flo3b0qwfJdJyQUWk9q5x3Jq6IbUA2EI= -=dTrl +iQEcBAEBCAAGBQJVOmAeAAoJEF1ww0n44d9NMCcIANDh9uUb9ZnbhAgCGyRHmjeH +AnDOLhKAz43EO6COEi/BGZwkec3vl11UJ5A2mWuX+36QbJfVU6RqdHV8GDPICnpP +oIBH63SaXw76BwwjHvsqm78ibfhiu7kJikZMwtGecNDWUKAMMS5yf1ffg2JPMzTc +4yonROoYbHwWCRwlQBNFYTdq5KhPyqyTOd9Ve9ODgcx5DdLfdjPXMAH1qyA0advR +59dLpD8Mh/wuzc8/YfeedNZtaV3gWHcorOqk7Mibodf2tYojFjoeQSOwosoSs95M +RVGdPAQGSqWc2vbKdowyqjVdTg9IOE3Mtz2mnc4AhGtflXVg4+eAKjzKJeZeeFU= +=GzEe -----END PGP SIGNATURE----- diff --git a/app-admin/testdisk/files/fix_rare_crash-6.14.patch b/app-admin/testdisk/files/fix_rare_crash-6.14.patch new file mode 100644 index 000000000000..913be7e32ebd --- /dev/null +++ b/app-admin/testdisk/files/fix_rare_crash-6.14.patch @@ -0,0 +1,227 @@ +From a2676d349a975a142f1119c0aecb435e1b0db8b8 Mon Sep 17 00:00:00 2001 +From: Christophe Grenier +Date: Sat, 14 Jun 2014 12:08:59 +0200 +Subject: TestDisk: fix rare crash when listing NTFS directories + + +diff --git a/src/ntfs_dir.c b/src/ntfs_dir.c +index d416cea..b51c63d 100644 +--- a/src/ntfs_dir.c ++++ b/src/ntfs_dir.c +@@ -167,7 +167,15 @@ static int ntfs_td_list_entry( struct ntfs_dir_struct *ls, const ntfschar *name + const MFT_REF mref, const unsigned dt_type) + { + int result = 0; +- char *filename = (char *)calloc (1, MAX_PATH); ++ char *filename; ++ ntfs_inode *ni; ++ ntfs_attr_search_ctx *ctx_si = NULL; ++ file_info_t *new_file=NULL; ++ /* Keep FILE_NAME_WIN32 and FILE_NAME_POSIX */ ++ if ((name_type & FILE_NAME_WIN32_AND_DOS) == FILE_NAME_DOS) ++ return 0; ++ ++ filename = (char *)calloc (1, MAX_PATH); + if (!filename) + { + log_critical("ntfs_td_list_entry calloc failed\n"); +@@ -178,118 +186,111 @@ static int ntfs_td_list_entry( struct ntfs_dir_struct *ls, const ntfschar *name + if (ntfs_ucstoutf8(ls->cd, name, name_len, &filename, MAX_PATH) < 0 && + ntfs_ucstombs (name, name_len, &filename, MAX_PATH) < 0) { + log_error("Cannot represent filename in current locale.\n"); +- goto free; ++ goto freefn; + } + #else + if (ntfs_ucstombs (name, name_len, &filename, MAX_PATH) < 0) { + log_error("Cannot represent filename in current locale.\n"); +- goto free; ++ goto freefn; + } + #endif + + result = 0; /* These are successful */ + if (MREF(mref) < FILE_first_user && filename[0] == '$') /* Hide system file */ +- goto free; +- /* Keep FILE_NAME_WIN32 and FILE_NAME_POSIX */ +- if ((name_type & FILE_NAME_WIN32_AND_DOS) == FILE_NAME_DOS) +- goto free; +- { +- ntfs_inode *ni; +- ntfs_attr_search_ctx *ctx_si = NULL; +- file_info_t *new_file=NULL; ++ goto freefn; ++ result = -1; /* Everything else is bad */ + +- result = -1; /* Everything else is bad */ ++ ni = ntfs_inode_open(ls->vol, mref); ++ if (!ni) ++ goto freefn; ++ new_file=(file_info_t*)MALLOC(sizeof(*new_file)); ++ new_file->status=0; ++ new_file->st_ino=MREF(mref); ++ new_file->st_uid=0; ++ new_file->st_gid=0; + +- ni = ntfs_inode_open(ls->vol, mref); +- if (!ni) +- goto release; +- new_file=(file_info_t*)MALLOC(sizeof(*new_file)); +- new_file->status=0; +- td_list_add_tail(&new_file->list, &ls->dir_list->list); +- new_file->st_ino=MREF(mref); +- new_file->st_uid=0; +- new_file->st_gid=0; +- +- ctx_si = ntfs_attr_get_search_ctx(ni, ni->mrec); +- if (ctx_si) ++ ctx_si = ntfs_attr_get_search_ctx(ni, ni->mrec); ++ if (ctx_si) ++ { ++ if (ntfs_attr_lookup(AT_STANDARD_INFORMATION, AT_UNNAMED, 0, CASE_SENSITIVE, 0, NULL, 0, ctx_si)==0) + { +- if (ntfs_attr_lookup(AT_STANDARD_INFORMATION, AT_UNNAMED, 0, CASE_SENSITIVE, 0, NULL, 0, ctx_si)==0) ++ const ATTR_RECORD *attr = ctx_si->attr; ++ const STANDARD_INFORMATION *si = (const STANDARD_INFORMATION*)((const char*)attr + ++ le16_to_cpu(attr->value_offset)); ++ if(si) + { +- const ATTR_RECORD *attr = ctx_si->attr; +- const STANDARD_INFORMATION *si = (const STANDARD_INFORMATION*)((const char*)attr + +- le16_to_cpu(attr->value_offset)); +- if(si) +- { +- new_file->td_atime=td_ntfs2utc(sle64_to_cpu(si->last_access_time)); +- new_file->td_mtime=td_ntfs2utc(sle64_to_cpu(si->last_data_change_time)); +- new_file->td_ctime=td_ntfs2utc(sle64_to_cpu(si->creation_time)); +- } ++ new_file->td_atime=td_ntfs2utc(sle64_to_cpu(si->last_access_time)); ++ new_file->td_mtime=td_ntfs2utc(sle64_to_cpu(si->last_data_change_time)); ++ new_file->td_ctime=td_ntfs2utc(sle64_to_cpu(si->creation_time)); + } +- ntfs_attr_put_search_ctx(ctx_si); + } ++ ntfs_attr_put_search_ctx(ctx_si); ++ } ++ { ++ ATTR_RECORD *rec; ++ int first=1; ++ ntfs_attr_search_ctx *ctx = NULL; ++ if (dt_type == NTFS_DT_DIR) + { +- ATTR_RECORD *rec; +- int first=1; +- ntfs_attr_search_ctx *ctx = NULL; +- if (dt_type == NTFS_DT_DIR) ++ new_file->name=strdup(filename); ++ new_file->st_mode = LINUX_S_IFDIR| LINUX_S_IRUGO | LINUX_S_IXUGO; ++ new_file->st_size=0; ++ td_list_add_tail(&new_file->list, &ls->dir_list->list); ++ first=0; ++ } ++ ctx = ntfs_attr_get_search_ctx(ni, ni->mrec); ++ /* A file has always an unnamed date stream and ++ * may have named alternate data streams (ADS) */ ++ while((rec = find_attribute(AT_DATA, ctx))) ++ { ++ const s64 filesize = ntfs_get_attribute_value_length(ctx->attr); ++ if(rec->name_length && ++ (ls->dir_data->param & FLAG_LIST_ADS)!=FLAG_LIST_ADS) ++ continue; ++ if(first==0) + { +- new_file->name=strdup(filename); +- new_file->st_mode = LINUX_S_IFDIR| LINUX_S_IRUGO | LINUX_S_IXUGO; +- new_file->st_size=0; +- td_list_add_tail(&new_file->list, &ls->dir_list->list); +- first=0; ++ const file_info_t *old_file=new_file; ++ new_file=(file_info_t *)MALLOC(sizeof(*new_file)); ++ memcpy(new_file, old_file, sizeof(*new_file)); + } +- ctx = ntfs_attr_get_search_ctx(ni, ni->mrec); +- /* A file has always an unnamed date stream and +- * may have named alternate data streams (ADS) */ +- while((rec = find_attribute(AT_DATA, ctx))) ++ new_file->st_mode = LINUX_S_IFREG | LINUX_S_IRUGO; ++ new_file->st_size=filesize; ++ if (rec->name_length) + { +- const s64 filesize = ntfs_get_attribute_value_length(ctx->attr); +- if(rec->name_length && +- (ls->dir_data->param & FLAG_LIST_ADS)!=FLAG_LIST_ADS) +- continue; +- if(first==0) +- { +- const file_info_t *old_file=new_file; +- new_file=(file_info_t *)MALLOC(sizeof(*new_file)); +- memcpy(new_file, old_file, sizeof(*new_file)); +- } +- new_file->st_mode = LINUX_S_IFREG | LINUX_S_IRUGO; +- new_file->st_size=filesize; +- if (rec->name_length) ++ char *stream_name=NULL; ++ new_file->status=FILE_STATUS_ADS; ++ new_file->name = (char *)MALLOC(MAX_PATH); ++ if (ntfs_ucstombs((ntfschar *) ((char *) rec + le16_to_cpu(rec->name_offset)), ++ rec->name_length, &stream_name, 0) < 0) + { +- char *stream_name=NULL; +- new_file->status=FILE_STATUS_ADS; +- new_file->name = (char *)MALLOC(MAX_PATH); +- if (ntfs_ucstombs((ntfschar *) ((char *) rec + le16_to_cpu(rec->name_offset)), +- rec->name_length, &stream_name, 0) < 0) +- { +- log_error("ERROR: Cannot translate name into current locale.\n"); +- snprintf(new_file->name, MAX_PATH, "%s:???", filename); +- } +- else +- { +- snprintf(new_file->name, MAX_PATH, "%s:%s", filename, stream_name); +- } +- free(stream_name); ++ log_error("ERROR: Cannot translate name into current locale.\n"); ++ snprintf(new_file->name, MAX_PATH, "%s:???", filename); + } + else + { +- new_file->name=strdup(filename); ++ snprintf(new_file->name, MAX_PATH, "%s:%s", filename, stream_name); + } +- td_list_add_tail(&new_file->list, &ls->dir_list->list); +- first=0; ++ free(stream_name); + } +- ntfs_attr_put_search_ctx(ctx); ++ else ++ { ++ new_file->name=strdup(filename); ++ } ++ td_list_add_tail(&new_file->list, &ls->dir_list->list); ++ first=0; ++ } ++ ntfs_attr_put_search_ctx(ctx); ++ if(first) ++ { ++ free(new_file); + } +- +- result = 0; +-release: +- /* close the inode. */ +- if (ni) +- ntfs_inode_close(ni); + } +-free: ++ ++ result = 0; ++ /* close the inode. */ ++ if (ni) ++ ntfs_inode_close(ni); ++freefn: + free (filename); + return result; + } +-- +cgit v0.10.2 + diff --git a/app-admin/testdisk/testdisk-6.14-r1.ebuild b/app-admin/testdisk/testdisk-6.14-r1.ebuild new file mode 100644 index 000000000000..41558fb1b655 --- /dev/null +++ b/app-admin/testdisk/testdisk-6.14-r1.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/testdisk/testdisk-6.14-r1.ebuild,v 1.1 2015/04/24 15:24:10 nicolasbock Exp $ + +EAPI=5 + +inherit autotools-utils eutils flag-o-matic + +DESCRIPTION="Checks and undeletes partitions + PhotoRec, signature based recovery tool" +HOMEPAGE="http://www.cgsecurity.org/wiki/TestDisk" +SRC_URI="http://www.cgsecurity.org/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86" +IUSE="ewf jpeg ntfs reiserfs static qt4" + +REQUIRED_USE="static? ( !qt4 )" + +# WARNING: reiserfs support does NOT work with reiserfsprogs +# you MUST use progsreiserfs-0.3.1_rc8 (the last version ever released). +DEPEND=" + static? ( + sys-apps/util-linux[static-libs] + >=sys-libs/ncurses-5.2[static-libs] + jpeg? ( virtual/jpeg:*[static-libs] ) + ntfs? ( sys-fs/ntfs3g[static-libs] ) + reiserfs? ( >=sys-fs/progsreiserfs-0.3.1_rc8[static-libs] ) + >=sys-fs/e2fsprogs-1.35[static-libs] + sys-libs/zlib[static-libs] + !arm? ( ewf? ( app-forensics/libewf:*[static-libs] ) ) + ) + !static? ( + sys-apps/util-linux + >=sys-libs/ncurses-5.2 + jpeg? ( virtual/jpeg:* ) + ntfs? ( sys-fs/ntfs3g ) + reiserfs? ( >=sys-fs/progsreiserfs-0.3.1_rc8 ) + >=sys-fs/e2fsprogs-1.35 + sys-libs/zlib + !arm? ( ewf? ( app-forensics/libewf:* ) ) + qt4? ( >=dev-qt/qtgui-4.0.1:* ) + )" +RDEPEND="!static? ( ${DEPEND} )" + +PATCHES=( + "${FILESDIR}/fix_rare_crash-6.14.patch" + ) +DOCS=( ) +AUTOTOOLS_AUTORECONF=1 +BUILD_DIR="${S}" + +src_configure() { + local myconf + + # this is static method is the same used by upstream for their 'static' make + # target, but better, as it doesn't break. + use static && append-ldflags -static + + # --with-foo are broken, any use of --with/--without disable the + # functionality. + # The following variation must be used. + use reiserfs || myconf+=" --without-reiserfs" + use ntfs || myconf+=" --without-ntfs --without-ntfs3g" + use jpeg || myconf+=" --without-jpeg" + use ewf || myconf+=" --without-ewf" + myconf+=$(usex qt4 " --enable-qt" " --disable-qt") + + econf \ + --docdir "${ROOT}/usr/share/doc/${P}" \ + --enable-sudo \ + ${myconf} + + # perform safety checks for NTFS, REISERFS and JPEG + if use ntfs && ! egrep -q '^#define HAVE_LIBNTFS(3G)? 1$' "${S}"/config.h ; then + die "Failed to find either NTFS or NTFS-3G library." + fi + if use reiserfs && egrep -q 'undef HAVE_LIBREISERFS\>' "${S}"/config.h ; then + die "Failed to find reiserfs library." + fi + if use jpeg && egrep -q 'undef HAVE_LIBJPEG\>' "${S}"/config.h ; then + die "Failed to find jpeg library." + fi +} diff --git a/app-admin/testdisk/testdisk-7.0-r2.ebuild b/app-admin/testdisk/testdisk-7.0-r2.ebuild index 75180d26eb20..e8babc37450e 100644 --- a/app-admin/testdisk/testdisk-7.0-r2.ebuild +++ b/app-admin/testdisk/testdisk-7.0-r2.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/testdisk/testdisk-7.0-r2.ebuild,v 1.2 2015/04/21 16:27:26 nicolasbock Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/testdisk/testdisk-7.0-r2.ebuild,v 1.3 2015/04/24 15:24:10 nicolasbock Exp $ EAPI=5 @@ -43,7 +43,6 @@ DEPEND=" )" RDEPEND="!static? ( ${DEPEND} )" -PATCHES=( "${FILESDIR}/install-gentoo.patch" ) DOCS=( ) AUTOTOOLS_AUTORECONF=1 BUILD_DIR="${S}" @@ -61,8 +60,8 @@ src_configure() { use reiserfs || myconf+=" --without-reiserfs" use ntfs || myconf+=" --without-ntfs --without-ntfs3g" use jpeg || myconf+=" --without-jpeg" - use qt4 || myconf+=" --disable-qt" use ewf || myconf+=" --without-ewf" + myconf+=$(usex qt4 " --enable-qt" " --disable-qt") econf \ --docdir "${ROOT}/usr/share/doc/${P}" \ -- 2.26.2