summaryrefslogtreecommitdiff
path: root/devel/subversion-lts/files/extra-patch-fbsd-template
diff options
context:
space:
mode:
Diffstat (limited to 'devel/subversion-lts/files/extra-patch-fbsd-template')
-rw-r--r--devel/subversion-lts/files/extra-patch-fbsd-template164
1 files changed, 164 insertions, 0 deletions
diff --git a/devel/subversion-lts/files/extra-patch-fbsd-template b/devel/subversion-lts/files/extra-patch-fbsd-template
new file mode 100644
index 000000000000..ee4bf924c32e
--- /dev/null
+++ b/devel/subversion-lts/files/extra-patch-fbsd-template
@@ -0,0 +1,164 @@
+--- subversion/svn/util.c.orig 2015-02-28 13:37:27.000000000 +0300
++++ subversion/svn/util.c 2016-03-19 16:53:13.016472654 +0300
+@@ -66,6 +66,9 @@
+ #include "private/svn_client_private.h"
+ #include "private/svn_cmdline_private.h"
+ #include "private/svn_string_private.h"
++#ifdef HAS_ORGANIZATION_NAME
++#include "freebsd-organization.h"
++#endif
+
+
+
+@@ -331,6 +334,71 @@
+ }
+
+
++/*
++ * Since we're adding freebsd-specific tokens to the log message,
++ * clean out any leftovers to avoid accidently sending them to other
++ * projects that won't be expecting them.
++ */
++
++static const char *prefixes[] = {
++ "PR:",
++ "Submitted by:",
++ "Reported by:",
++ "Reviewed by:",
++ "Approved by:",
++ "Obtained from:",
++ "MFC after:",
++ "MFH:",
++ "Relnotes:",
++ "Security:",
++ "Sponsored by:",
++ "Differential Revision:",
++};
++
++void
++cleanmsg(apr_size_t *l, char *s)
++{
++ int i;
++ char *pos;
++ char *kw;
++ char *p;
++ int empty;
++
++ for (i = 0; i < sizeof(prefixes) / sizeof(prefixes[0]); i++) {
++ pos = s;
++ while ((kw = strstr(pos, prefixes[i])) != NULL) {
++ /* Check to see if keyword is at start of line (or buffer) */
++ if (!(kw == s || kw[-1] == '\r' || kw[-1] == '\n')) {
++ pos = kw + 1;
++ continue;
++ }
++ p = kw + strlen(prefixes[i]);
++ empty = 1;
++ while (1) {
++ if (*p == ' ' || *p == '\t') {
++ p++;
++ continue;
++ }
++ if (*p == '\0' || *p == '\r' || *p == '\n')
++ break;
++ empty = 0;
++ break;
++ }
++ if (empty && (*p == '\r' || *p == '\n')) {
++ memmove(kw, p + 1, strlen(p + 1) + 1);
++ if (l)
++ *l -= (p + 1 - kw);
++ } else if (empty) {
++ *kw = '\0';
++ if (l)
++ *l -= (p - kw);
++ } else {
++ pos = p;
++ }
++ }
++ }
++}
++
+ #define EDITOR_EOF_PREFIX _("--This line, and those below, will be ignored--")
+
+ svn_error_t *
+@@ -343,11 +411,56 @@
+ svn_stringbuf_t *default_msg = NULL;
+ struct log_msg_baton *lmb = baton;
+ svn_stringbuf_t *message = NULL;
++ svn_config_t *cfg;
++ const char *mfc_after, *sponsored_by;
++
++ cfg = lmb->config ? svn_hash_gets(lmb->config, SVN_CONFIG_CATEGORY_CONFIG) : NULL;
+
+ /* Set default message. */
+ default_msg = svn_stringbuf_create(APR_EOL_STR, pool);
++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "PR:\t\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Submitted by:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Reported by:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Reviewed by:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Approved by:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Obtained from:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "MFC after:\t");
++ svn_config_get(cfg, &mfc_after, SVN_CONFIG_SECTION_MISCELLANY, "freebsd-mfc-after", NULL);
++ if (mfc_after != NULL)
++ svn_stringbuf_appendcstr(default_msg, mfc_after);
++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "MFH:\t\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Relnotes:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Security:\t" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Sponsored by:\t");
++ svn_config_get(cfg, &sponsored_by, SVN_CONFIG_SECTION_MISCELLANY, "freebsd-sponsored-by",
++#ifdef HAS_ORGANIZATION_NAME
++ ORGANIZATION_NAME);
++#else
++ NULL);
++#endif
++ if (sponsored_by != NULL)
++ svn_stringbuf_appendcstr(default_msg, sponsored_by);
++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "Differential Revision:\t" APR_EOL_STR);
+ svn_stringbuf_appendcstr(default_msg, EDITOR_EOF_PREFIX);
+- svn_stringbuf_appendcstr(default_msg, APR_EOL_STR APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Description of fields to fill in above: 76 columns --|" APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> PR: If and which Problem Report is related." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Submitted by: If someone else sent in the change." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Reported by: If someone else reported the issue." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Reviewed by: If someone else reviewed your modification." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Approved by: If you needed approval for this commit." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Obtained from: If the change is from a third party." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> MFH: Ports tree branch name. Request approval for merge." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Relnotes: Set to 'yes' for mention in release notes." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Security: Vulnerability reference (one per line) or description." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Sponsored by: If the change was sponsored by an organization (each collaborator)." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed)." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, "> Empty fields above will be automatically removed." APR_EOL_STR);
++ svn_stringbuf_appendcstr(default_msg, APR_EOL_STR);
+
+ *tmp_file = NULL;
+ if (lmb->message)
+@@ -362,6 +475,7 @@
+ /* Strip off the EOF marker text and the junk that follows it. */
+ truncate_buffer_at_prefix(&(log_msg_str->len), (char *)log_msg_str->data,
+ EDITOR_EOF_PREFIX);
++ cleanmsg(NULL, (char*)log_msg_str->data);
+
+ *log_msg = log_msg_str->data;
+ return SVN_NO_ERROR;
+@@ -472,6 +586,13 @@
+ if (message)
+ truncate_buffer_at_prefix(&message->len, message->data,
+ EDITOR_EOF_PREFIX);
++ /*
++ * Since we're adding freebsd-specific tokens to the log message,
++ * clean out any leftovers to avoid accidently sending them to other
++ * projects that won't be expecting them.
++ */
++ if (message)
++ cleanmsg(&message->len, message->data);
+
+ if (message)
+ {