summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/patch/patch/global-reject-file.diff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-02 12:04:08 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-07 20:05:31 +0000
commit2345af9b4829ed3eed5abf60f2483055649f8af7 (patch)
tree96a9a31e4b1957b93c4fe3eb669117d2752caf0d /meta/recipes-devtools/patch/patch/global-reject-file.diff
parentc4901328fe5cf912c0965e5b011b64a95a9bcb9d (diff)
downloadpoky-uninative-1.5.tar.gz
recipes: Move out stale GPLv2 versions to a seperate layeruninative-1.5
These are recipes where the upstream has moved to GPLv3 and these old versions are the last ones under the GPLv2 license. There are several reasons for making this move. There is a different quality of service with these recipes in that they don't get security fixes and upstream no longer care about them, in fact they're actively hostile against people using old versions. The recipes tend to need a different kind of maintenance to work with changes in the wider ecosystem and there needs to be isolation between changes made in the v3 versions and those in the v2 versions. There are probably better ways to handle a "non-GPLv3" system but right now having these in OE-Core makes them look like a first class citizen when I believe they have potential for a variety of undesireable issues. Moving them into a separate layer makes their different needs clearer, it also makes it clear how many of these there are. Some are probably not needed (e.g. mc), I also wonder whether some are useful (e.g. gmp) since most things that use them are GPLv3 only already. Someone could now more clearly see how to streamline the list of recipes here. I'm proposing we mmove to this separate layer for 2.3 with its future maintinership and testing to be determined in 2.4 and beyond. (From OE-Core rev: 19b7e950346fb1dde6505c45236eba6cd9b33b4b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/patch/patch/global-reject-file.diff')
-rw-r--r--meta/recipes-devtools/patch/patch/global-reject-file.diff203
1 files changed, 0 insertions, 203 deletions
diff --git a/meta/recipes-devtools/patch/patch/global-reject-file.diff b/meta/recipes-devtools/patch/patch/global-reject-file.diff
deleted file mode 100644
index bb7ca79123..0000000000
--- a/meta/recipes-devtools/patch/patch/global-reject-file.diff
+++ /dev/null
@@ -1,203 +0,0 @@
1Upstream-Status: Inappropriate [debian patch]
2
3Index: patch-2.5.9/patch.man
4===================================================================
5--- patch-2.5.9.orig/patch.man
6+++ patch-2.5.9/patch.man
7@@ -520,6 +520,15 @@ file.
8 \fB\*=reject\-unified\fP
9 Produce unified reject files. The default is to produce context type reject files.
10 .TP
11+.BI \*=global\-reject\-file= rejectfile
12+Put all rejects into
13+.I rejectfile
14+instead of creating separate reject files for all files that have rejects. The
15+.I rejectfile
16+will contain headers that identify which file each reject refers to. Note that
17+the global reject file is created even if \-\-dry\-run is specified (while
18+non-global reject files will only be created without \-\-dry\-run).
19+.TP
20 \fB\-R\fP or \fB\*=reverse\fP
21 Assume that this patch was created with the old and new files swapped.
22 (Yes, I'm afraid that does happen occasionally, human nature being what it
23Index: patch-2.5.9/patch.c
24===================================================================
25--- patch-2.5.9.orig/patch.c
26+++ patch-2.5.9/patch.c
27@@ -67,6 +67,7 @@ static bool similar (char const *, size_
28 static bool spew_output (struct outstate *);
29 static char const *make_temp (char);
30 static int numeric_string (char const *, bool, char const *);
31+static void reject_header (const char *filename);
32 static void abort_hunk (void);
33 static void cleanup (void);
34 static void get_some_switches (void);
35@@ -98,6 +99,7 @@ static int Argc;
36 static char * const *Argv;
37
38 static FILE *rejfp; /* reject file pointer */
39+static char *global_reject;
40
41 static char const *patchname;
42 static char *rejname;
43@@ -172,6 +174,10 @@ main (int argc, char **argv)
44 /* Make sure we clean up in case of disaster. */
45 set_signals (false);
46
47+ /* initialize global reject file */
48+ if (global_reject)
49+ init_reject ();
50+
51 for (
52 open_patch_file (patchname);
53 there_is_another_patch();
54@@ -208,8 +214,9 @@ main (int argc, char **argv)
55 init_output (TMPOUTNAME, exclusive, &outstate);
56 }
57
58- /* initialize reject file */
59- init_reject ();
60+ /* initialize per-patch reject file */
61+ if (!global_reject)
62+ init_reject ();
63
64 /* find out where all the lines are */
65 if (!skip_rest_of_patch)
66@@ -278,6 +285,8 @@ main (int argc, char **argv)
67
68 newwhere = pch_newfirst() + last_offset;
69 if (skip_rest_of_patch) {
70+ if (!failed)
71+ reject_header(outname);
72 abort_hunk();
73 failed++;
74 if (verbosity == VERBOSE)
75@@ -292,6 +301,8 @@ main (int argc, char **argv)
76 say ("Patch attempted to create file %s, which already exists.\n",
77 quotearg (inname));
78
79+ if (!failed)
80+ reject_header(outname);
81 abort_hunk();
82 failed++;
83 if (verbosity != SILENT)
84@@ -299,6 +310,8 @@ main (int argc, char **argv)
85 format_linenum (numbuf, newwhere));
86 }
87 else if (! apply_hunk (&outstate, where)) {
88+ if (!failed)
89+ reject_header(outname);
90 abort_hunk ();
91 failed++;
92 if (verbosity != SILENT)
93@@ -332,7 +345,8 @@ main (int argc, char **argv)
94 fclose (outstate.ofp);
95 outstate.ofp = 0;
96 }
97- fclose (rejfp);
98+ if (!global_reject)
99+ fclose (rejfp);
100 continue;
101 }
102
103@@ -412,13 +426,13 @@ main (int argc, char **argv)
104 }
105 }
106 if (diff_type != ED_DIFF) {
107- if (fclose (rejfp) != 0)
108+ if (!global_reject && fclose (rejfp) != 0)
109 write_fatal ();
110 if (failed) {
111 somefailed = true;
112 say ("%d out of %d hunk%s %s", failed, hunk, "s" + (hunk == 1),
113 skip_rest_of_patch ? "ignored" : "FAILED");
114- if (outname) {
115+ if (!global_reject && outname) {
116 char *rej = rejname;
117 if (!rejname) {
118 rej = xmalloc (strlen (outname) + 5);
119@@ -445,6 +459,20 @@ main (int argc, char **argv)
120 }
121 set_signals (true);
122 }
123+ if (global_reject)
124+ {
125+ if (fclose (rejfp) != 0)
126+ write_fatal ();
127+ if (somefailed)
128+ {
129+ say (" -- saving rejects to file %s\n", quotearg (global_reject));
130+ /*if (! dry_run)
131+ {*/
132+ move_file (TMPREJNAME, &TMPREJNAME_needs_removal,
133+ global_reject, 0644, false);
134+ /*}*/
135+ }
136+ }
137 if (outstate.ofp && (ferror (outstate.ofp) || fclose (outstate.ofp) != 0))
138 write_fatal ();
139 cleanup ();
140@@ -523,6 +551,7 @@ static struct option const longopts[] =
141 {"posix", no_argument, NULL, CHAR_MAX + 7},
142 {"quoting-style", required_argument, NULL, CHAR_MAX + 8},
143 {"unified-reject-files", no_argument, NULL, CHAR_MAX + 9},
144+ {"global-reject-file", required_argument, NULL, CHAR_MAX + 10},
145 {NULL, no_argument, NULL, 0}
146 };
147
148@@ -582,6 +611,7 @@ static char const *const option_help[] =
149 " --dry-run Do not actually change any files; just print what would happen.",
150 " --posix Conform to the POSIX standard.",
151 " --unified-reject-files Create unified reject files.",
152+" --global-reject-file=file Put all rejects into one file.",
153 "",
154 " -d DIR --directory=DIR Change the working directory to DIR first.",
155 #if HAVE_SETMODE_DOS
156@@ -784,6 +814,9 @@ get_some_switches (void)
157 case CHAR_MAX + 9:
158 unified_reject_files = true;
159 break;
160+ case CHAR_MAX + 10:
161+ global_reject = savestr (optarg);
162+ break;
163 default:
164 usage (stderr, 2);
165 }
166@@ -933,6 +966,37 @@ locate_hunk (LINENUM fuzz)
167 }
168
169 static char *
170+format_timestamp (char timebuf[37], bool which)
171+{
172+ time_t ts = pch_timestamp(which);
173+ if (ts != -1)
174+ {
175+ struct tm *tm = localtime(&ts);
176+ strftime(timebuf, 37, "\t%Y-%m-%d %H:%M:%S.000000000 %z", tm);
177+ }
178+ else
179+ timebuf[0] = 0;
180+ return timebuf;
181+}
182+
183+/* Write a header in a reject file that combines multiple hunks. */
184+static void
185+reject_header (const char *outname)
186+{
187+ char timebuf0[37], timebuf1[37];
188+ if (!global_reject)
189+ return;
190+ if (diff_type == UNI_DIFF)
191+ fprintf(rejfp, "--- %s.orig%s\n+++ %s%s\n",
192+ outname, format_timestamp(timebuf0, reverse),
193+ outname, format_timestamp(timebuf1, !reverse));
194+ else
195+ fprintf(rejfp, "*** %s.orig%s\n--- %s%s\n",
196+ outname, format_timestamp(timebuf0, reverse),
197+ outname, format_timestamp(timebuf1, !reverse));
198+}
199+
200+static char *
201 format_linerange (char rangebuf[LINENUM_LENGTH_BOUND*2 + 2],
202 LINENUM first, LINENUM lines)
203 {