This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new c706dd87a canutils/lely: fix unreliable download/unpack/patch logic
c706dd87a is described below

commit c706dd87a7bbf26b123176e8f7b7d8d58d850415
Author: raiden00pl <[email protected]>
AuthorDate: Sun Jul 5 11:11:39 2026 +0200

    canutils/lely: fix unreliable download/unpack/patch logic
    
    Rebuild from a clean tree in one recipe so a stale state no longer breaks 
the build.
    
    This commit also simplify some build logic.
    
    Signed-off-by: raiden00pl <[email protected]>
---
 canutils/lely-canopen/Makefile | 45 +++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/canutils/lely-canopen/Makefile b/canutils/lely-canopen/Makefile
index 2304c1580..22c6a85d6 100644
--- a/canutils/lely-canopen/Makefile
+++ b/canutils/lely-canopen/Makefile
@@ -31,11 +31,16 @@ WD := ${shell echo $(CURDIR) | sed -e 's/ /\\ /g'}
 LELYCANOPEN_VERSION = $(patsubst "%",%,$(strip 
$(CONFIG_CANUTILS_LELYCANOPEN_VERSION)))
 
 LELYCANOPEN_TARBALL = lely-core-$(LELYCANOPEN_VERSION).tar.gz
-LELYCANOPEN_UNPACKNAME = lely-core-master-$(LELYCANOPEN_VERSION)
 LELYCANOPEN_SRCNAME = lely-core
 UNPACK ?= tar -zxf
 LELYCANOPEN_SRCDIR = $(WD)/$(LELYCANOPEN_SRCNAME)
 
+# The GitLab "archive/master" tarball unpacks to a directory named
+# lely-core-master-<sha>, where <sha> is the current tip of master
+
+LELYCANOPEN_UNPACKGLOB = lely-core-master-*
+LELYCANOPEN_PATCHES = $(sort $(wildcard *.patch))
+
 # CAN network object
 
 CSRCS += $(LELYCANOPEN_SRCDIR)/src/can/buf.c
@@ -169,38 +174,34 @@ STACKSIZE  = 
$(CONFIG_CANUTILS_LELYCANOPEN_TOOLS_COCTL_STACKSIZE)
 MAINSRC    = $(LELYCANOPEN_SRCDIR)/tools/coctl.c
 endif
 
-# Download and unpack tarball if no git repo found
+# Download, unpack and patch the Lely CANopen sources.
+
 ifeq ($(wildcard $(LELYCANOPEN_SRCNAME)/.git),)
+
 $(LELYCANOPEN_TARBALL):
        @echo "Downloading: $(LELYCANOPEN_TARBALL)"
-       $(Q) curl -L -O 
$(CONFIG_CANUTILS_LELYCANOPEN_URL)/$(LELYCANOPEN_TARBALL)
+       $(Q) curl -fL -o [email protected] 
$(CONFIG_CANUTILS_LELYCANOPEN_URL)/$(LELYCANOPEN_TARBALL)
+       $(Q) mv [email protected] $@
 
-$(LELYCANOPEN_SRCNAME): $(LELYCANOPEN_TARBALL)
-       @echo "Unpacking: $(LELYCANOPEN_TARBALL) -> $(LELYCANOPEN_UNPACKNAME)"
+$(LELYCANOPEN_SRCNAME)/.patched: $(LELYCANOPEN_TARBALL) $(LELYCANOPEN_PATCHES)
+       @echo "Unpacking: $(LELYCANOPEN_TARBALL) -> $(LELYCANOPEN_SRCNAME)"
+       $(Q) rm -rf $(LELYCANOPEN_SRCNAME) $(LELYCANOPEN_UNPACKGLOB)
        $(Q) $(UNPACK) $(LELYCANOPEN_TARBALL)
-
-$(LELYCANOPEN_SRCNAME)/.patched : $(LELYCANOPEN_SRCNAME)
-       # Get the name of the directory created by the tar command
-       $(eval LELYCANOPEN_UNPACKNAME := $(shell ls -d lely-core-master*))
-       $(Q) mv $(LELYCANOPEN_UNPACKNAME) $(LELYCANOPEN_SRCNAME)
-       $(Q) cat 
0001-tools-eliminate-multiple-definitions-of-poll-compile.patch | patch -s -N 
-d $(LELYCANOPEN_SRCNAME) -p1
-       $(Q) cat 0002-tools-coctl.c-fix-printf-issues.patch | patch -s -N -d 
$(LELYCANOPEN_SRCNAME) -p1
-       $(Q) cat 0003-src-co-nmt.c-fix-compilation.patch | patch -s -N -d 
$(LELYCANOPEN_SRCNAME) -p1
-       $(Q) cat 0004-tools-coctl.c-add-missing-mutex-init.patch | patch -s -N 
-d $(LELYCANOPEN_SRCNAME) -p1
-       $(Q) cat 0005-add-NuttX-support.patch | patch -s -N -d 
$(LELYCANOPEN_SRCNAME) -p1
+       $(Q) mv $(LELYCANOPEN_UNPACKGLOB) $(LELYCANOPEN_SRCNAME)
+       $(Q) for patch in $(LELYCANOPEN_PATCHES); do \
+              echo "Patching: $$patch"; \
+              patch -s -N -p1 -d $(LELYCANOPEN_SRCNAME) < $$patch || exit 1; \
+            done
        $(Q) touch $@
-       $(Q) echo "Patching $(LELYCANOPEN_SRCNAME)"
 
 context:: $(LELYCANOPEN_SRCNAME)/.patched
-else
-context:: $(LELYCANOPEN_SRCNAME)
-endif
-
 
 distclean::
-ifeq ($(wildcard $(LELYCANOPEN_SRCNAME)/.git),)
-       $(call DELDIR, $(LELYCANOPEN_SRCNAME))
+       $(Q) rm -rf $(LELYCANOPEN_SRCNAME) $(LELYCANOPEN_UNPACKGLOB)
        $(call DELFILE, $(LELYCANOPEN_TARBALL))
+
+else
+context:: $(LELYCANOPEN_SRCNAME)
 endif
 
 include $(APPDIR)/Application.mk

Reply via email to