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
next prev 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).