b.a.t.m.a.n.lists.open-mesh.org archive mirror
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven@narfation.org>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: [B.A.T.M.A.N.] [PATCH v2 05/11] batman-adv: Add support for coccinelle in compat-patches
Date: Sun,  9 Oct 2016 08:57:32 +0200	[thread overview]
Message-ID: <20161009065738.8279-5-sven@narfation.org> (raw)
In-Reply-To: <1647833.jYley1tZnH@sven-edge>

The kernel and backports already uses spatch from coccinelle for
development and backporting purposes. Thus we can cleanup many current
hacks using semantic patches. These are also a lot less frail than
traditional unified diffs.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
v2:
 - new patch
---
 Makefile | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 7ef2569..99e67da 100644
--- a/Makefile
+++ b/Makefile
@@ -40,11 +40,19 @@ ifeq ($(shell cd $(KERNELPATH) && pwd),)
 $(warning $(KERNELPATH) is missing, please set KERNELPATH)
 endif
 
+ifeq ($(origin SPATCH), undefined)
+  SPATCH = spatch
+  ifeq ($(shell which $(SPATCH) 2>/dev/null),)
+    $(error $(SPATCH) (coccinelle) not found)
+  endif
+endif
+
 export KERNELPATH
 RM ?= rm -f
 MKDIR := mkdir -p
 PATCH_FLAGS = --batch --fuzz=0 --forward --strip=1 --unified --version-control=never -g0 --remove-empty-files --no-backup-if-mismatch --reject-file=-
 PATCH := patch $(PATCH_FLAGS) -i
+SPATCH_FLAGS := --in-place --relax-include-path --use-coccigrep
 CP := cp -fpR
 
 SOURCE = $(wildcard net/batman-adv/*.[ch]) net/batman-adv/Makefile
@@ -104,12 +112,17 @@ $(SOURCE_STAMP): $(SOURCE) compat-patches/* compat-patches/replacements.sh
 	@$(RM) $(SOURCE_BUILD)
 	@$(CP) $(SOURCE) $(BUILD_DIR)/net/batman-adv/
 	@set -e; \
-	patches="$$(ls -1 compat-patches/|grep '.patch$$'|sort)"; \
+	patches="$$(ls -1 compat-patches/|grep -e '.patch$$' -e '.cocci$$'|sort)"; \
 	for i in $${patches}; do \
-		echo '  COMPAT_PATCH '$${i};\
-		cd $(BUILD_DIR); \
-		$(PATCH) ../compat-patches/$${i}; \
-		cd - > /dev/null; \
+		echo '  COMPAT_PATCH '$${i}; \
+		if echo $${i}|grep '.patch$$'; then \
+			cd $(BUILD_DIR); \
+			$(PATCH) ../compat-patches/$${i}; \
+			cd - > /dev/null; \
+		fi; \
+		if echo $${i}|grep '.cocci$$'; then echo $$(pwd); \
+			$(SPATCH) $(SPATCH_FLAGS) --dir $(BUILD_DIR) --sp-file compat-patches/$${i} > /dev/null; \
+		fi; \
 	done
 	compat-patches/replacements.sh
 	touch $(SOURCE_STAMP)
-- 
2.9.3


  parent reply	other threads:[~2016-10-09  6:57 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-09  6:56 [B.A.T.M.A.N.] [PATCH v2 0/11] batman-adv: Support for complex compat patches Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH next v2 01/11] batman-adv: Introduce compat-patches support Sven Eckelmann
2016-10-18 11:34   ` [B.A.T.M.A.N.] [next, v2, " Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH next v2 02/11] batman-adv: Use simple script to patch minor compat problems Sven Eckelmann
2016-10-18 11:35   ` [B.A.T.M.A.N.] [next, v2, " Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH next v2 03/11] batman-adv: make netlink attributes const Sven Eckelmann
2016-10-18 11:36   ` [B.A.T.M.A.N.] [next, v2, " Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 04/11] batman-adv: Mark batadv_netlink_ops as const Sven Eckelmann
2016-10-09  6:57 ` Sven Eckelmann [this message]
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 06/11] batman-adv: compat: Port netlink port hack to coccinelle Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 07/11] batman-adv: compat: Move netlink const compat " Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 08/11] batman-adv: compat: Remove replacement script Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 09/11] batman-adv: compat: Replace IFF_NO_QUEUE with coccinelle Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 10/11] batman-adv: compat: Move get_link_net patch to coccinelle Sven Eckelmann
2016-10-09  6:57 ` [B.A.T.M.A.N.] [PATCH v2 11/11] batman-adv: compat: Move vid api wrapper " Sven Eckelmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161009065738.8279-5-sven@narfation.org \
    --to=sven@narfation.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).