mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
The patch tool will apply patches by default with "fuzz", which is where if the hunk context isn't present but what is there is close enough, it will force the patch in. Whilst this is useful when there's just whitespace changes, when applied to source it is possible for a patch applied with fuzz to produce broken code which still compiles (see #10450). This is obviously bad. We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For that to be realistic the existing patches with fuzz need to be rebased and reviewed. (From OE-Core rev: ee40781cc12d06912457316211a08ec65e059339) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
106 lines
3.7 KiB
Diff
106 lines
3.7 KiB
Diff
Upstream-Status: Pending
|
|
|
|
Index: git/jffsX-utils/mkfs.jffs2.c
|
|
===================================================================
|
|
--- git.orig/jffsX-utils/mkfs.jffs2.c
|
|
+++ git/jffsX-utils/mkfs.jffs2.c
|
|
@@ -100,6 +100,11 @@ struct filesystem_entry {
|
|
struct rb_node hardlink_rb;
|
|
};
|
|
|
|
+struct ignorepath_entry {
|
|
+ struct ignorepath_entry* next; /* Points to the next ignorepath element */
|
|
+ char name[PATH_MAX]; /* Name of the entry */
|
|
+};
|
|
+static struct ignorepath_entry* ignorepath = 0;
|
|
struct rb_root hardlinks;
|
|
static int out_fd = -1;
|
|
static int in_fd = -1;
|
|
@@ -309,7 +314,7 @@ static struct filesystem_entry *recursiv
|
|
char *hpath, *tpath;
|
|
struct dirent *dp, **namelist;
|
|
struct filesystem_entry *entry;
|
|
-
|
|
+ struct ignorepath_entry* element = ignorepath;
|
|
|
|
if (lstat(hostpath, &sb)) {
|
|
sys_errmsg_die("%s", hostpath);
|
|
@@ -318,6 +323,15 @@ static struct filesystem_entry *recursiv
|
|
entry = add_host_filesystem_entry(targetpath, hostpath,
|
|
sb.st_uid, sb.st_gid, sb.st_mode, 0, parent);
|
|
|
|
+ while ( element ) {
|
|
+ if ( strcmp( element->name, targetpath ) == 0 ) {
|
|
+ printf( "Note: ignoring directories below '%s'\n", targetpath );
|
|
+ return entry;
|
|
+ break;
|
|
+ }
|
|
+ element = element->next;
|
|
+ }
|
|
+
|
|
n = scandir(hostpath, &namelist, 0, alphasort);
|
|
if (n < 0) {
|
|
sys_errmsg_die("opening directory %s", hostpath);
|
|
@@ -1359,6 +1373,7 @@ static struct option long_options[] = {
|
|
{"root", 1, NULL, 'r'},
|
|
{"pagesize", 1, NULL, 's'},
|
|
{"eraseblock", 1, NULL, 'e'},
|
|
+ {"ignore", 1, NULL, 'I'},
|
|
{"output", 1, NULL, 'o'},
|
|
{"help", 0, NULL, 'h'},
|
|
{"verbose", 0, NULL, 'v'},
|
|
@@ -1409,6 +1424,7 @@ static const char helptext[] =
|
|
" -L, --list-compressors Show the list of the available compressors\n"
|
|
" -t, --test-compression Call decompress and compare with the original (for test)\n"
|
|
" -n, --no-cleanmarkers Don't add a cleanmarker to every eraseblock\n"
|
|
+" -I, --ignore=PATH Ignore sub directory and file tree below PATH when recursing over the file system\n"
|
|
" -o, --output=FILE Output to FILE (default: stdout)\n"
|
|
" -l, --little-endian Create a little-endian filesystem\n"
|
|
" -b, --big-endian Create a big-endian filesystem\n"
|
|
@@ -1566,6 +1582,7 @@ int main(int argc, char **argv)
|
|
char *compr_name = NULL;
|
|
int compr_prior = -1;
|
|
int warn_page_size = 0;
|
|
+ struct ignorepath_entry* element = ignorepath;
|
|
|
|
page_size = sysconf(_SC_PAGESIZE);
|
|
if (page_size < 0) /* System doesn't know so ... */
|
|
@@ -1576,7 +1593,7 @@ int main(int argc, char **argv)
|
|
jffs2_compressors_init();
|
|
|
|
while ((opt = getopt_long(argc, argv,
|
|
- "D:d:r:s:o:qUPfh?vVe:lbp::nc:m:x:X:Lty:i:", long_options, &c)) >= 0)
|
|
+ "D:d:r:s:I:o:qUPfh?vVe:lbp::nc:m:x:X:Lty:i:", long_options, &c)) >= 0)
|
|
{
|
|
switch (opt) {
|
|
case 'D':
|
|
@@ -1600,6 +1617,28 @@ int main(int argc, char **argv)
|
|
warn_page_size = 0; /* set by user, so don't need to warn */
|
|
break;
|
|
|
|
+ case 'I':
|
|
+ printf( "Note: Adding '%s' to ignore Path\n", optarg );
|
|
+ element = ignorepath;
|
|
+ if ( !ignorepath ) {
|
|
+ ignorepath = xmalloc( sizeof( struct ignorepath_entry ) );
|
|
+ ignorepath->next = 0;
|
|
+ strcpy( &ignorepath->name[0], optarg );
|
|
+ } else {
|
|
+ while ( element->next ) element = element->next;
|
|
+ element->next = xmalloc( sizeof( struct ignorepath_entry ) );
|
|
+ element->next->next = 0;
|
|
+ strcpy( &element->next->name[0], optarg );
|
|
+ }
|
|
+ printf( "--------- Dumping ignore path list ----------------\n" );
|
|
+ element = ignorepath;
|
|
+ while ( element ) {
|
|
+ printf( " * '%s'\n", &element->name[0] );
|
|
+ element = element->next;
|
|
+ }
|
|
+ printf( "---------------------------------------------------\n" );
|
|
+ break;
|
|
+
|
|
case 'o':
|
|
if (out_fd != -1) {
|
|
errmsg_die("output filename specified more than once");
|