diff options
Diffstat (limited to 'devel/subversion-lts/files/extra-patch-fbsd-template')
-rw-r--r-- | devel/subversion-lts/files/extra-patch-fbsd-template | 164 |
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) + { |