Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] utils/check-package: handle missing files
@ 2025-07-01 18:56 James Knight
  2025-07-02 14:31 ` Romain Naour via buildroot
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: James Knight @ 2025-07-01 18:56 UTC (permalink / raw)
  To: buildroot; +Cc: Ricardo Martincoski, James Knight

When running check-package before completing commits for a change, if
any files are setup for removal, check-package will throw
FileNotFoundError exceptions instead of generating a warning state. For
example:

 $ utils/docker-run make check-package
 Traceback (most recent call last):
   ...
 FileNotFoundError: [Errno 2] No such file or directory: 'package/.../0001-some-removed-patch.patch'
 make: *** [Makefile:1264: check-package] Error 1

This commit will now catch FileNotFoundError and populate a warning
message:

 $ utils/docker-run make check-package
 package/.../0001-some-removed-patch.patch: missing; unstaged file removal?
 package/.../0002-another-removed-patch.patch: missing; unstaged file removal?
 427843 lines processed
 3 warnings generated
 make: *** [Makefile:1264: check-package] Error 1

Signed-off-by: James Knight <git@jdknight.me>
---
 utils/check-package | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/utils/check-package b/utils/check-package
index a5ecc2eed8..8781d21d8f 100755
--- a/utils/check-package
+++ b/utils/check-package
@@ -257,18 +257,23 @@ def check_file_using_lib(fname):
         nwarnings += warn
 
     lastline = ""
-    with open(fname, "r", errors="surrogateescape") as f:
-        for lineno, text in enumerate(f):
-            nlines += 1
-            for name, cf in objects:
-                if cf.disable.search(lastline):
-                    continue
-                line_sts = cf.check_line(lineno + 1, text)
-                warn, fail = print_warnings(line_sts, name in xfail)
-                if fail > 0:
-                    failed.add(name)
-                nwarnings += warn
-            lastline = text
+    try:
+        with open(fname, "r", errors="surrogateescape") as f:
+            for lineno, text in enumerate(f):
+                nlines += 1
+                for name, cf in objects:
+                    if cf.disable.search(lastline):
+                        continue
+                    line_sts = cf.check_line(lineno + 1, text)
+                    warn, fail = print_warnings(line_sts, name in xfail)
+                    if fail > 0:
+                        failed.add(name)
+                    nwarnings += warn
+                lastline = text
+    except FileNotFoundError:
+        print(f"{fname}: missing; unstaged file removal?")
+        nwarnings += 1
+        return nwarnings, nlines
 
     for name, cf in objects:
         warn, fail = print_warnings(cf.after(), name in xfail)
-- 
2.49.0.windows.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH 1/1] utils/check-package: handle missing files
  2025-07-01 18:56 [Buildroot] [PATCH 1/1] utils/check-package: handle missing files James Knight
@ 2025-07-02 14:31 ` Romain Naour via buildroot
  2025-07-05 10:07 ` Julien Olivain via buildroot
  2025-07-11 10:44 ` Thomas Perale via buildroot
  2 siblings, 0 replies; 4+ messages in thread
From: Romain Naour via buildroot @ 2025-07-02 14:31 UTC (permalink / raw)
  To: James Knight, buildroot; +Cc: Ricardo Martincoski

Hello James, All,

Le 01/07/2025 à 20:56, James Knight a écrit :
> When running check-package before completing commits for a change, if
> any files are setup for removal, check-package will throw
> FileNotFoundError exceptions instead of generating a warning state. For
> example:
> 
>  $ utils/docker-run make check-package
>  Traceback (most recent call last):
>    ...
>  FileNotFoundError: [Errno 2] No such file or directory: 'package/.../0001-some-removed-patch.patch'
>  make: *** [Makefile:1264: check-package] Error 1

Indeed, it's due to `git ls-tree -r --name-only HEAD` being used by
check-package Make target:

./utils/check-package `git ls-tree -r --name-only HEAD` \
	--ignore-list=$(TOPDIR)/.checkpackageignore


When working on a specific package, we could use check-package directly without
error:

git rm boot/syslinux/0017-Replace-builtin-strlen-that-appears-to-get-optimized.patch

./utils/check-package  boot/syslinux/*

While running check-package before completing commits for a change is probably
not a good practice, throwing FileNotFoundError exception is not nice :)

Reviewed-by: Romain Naour <romain.naour@smile.fr>

Best regards,
Romain


> 
> This commit will now catch FileNotFoundError and populate a warning
> message:
> 
>  $ utils/docker-run make check-package
>  package/.../0001-some-removed-patch.patch: missing; unstaged file removal?
>  package/.../0002-another-removed-patch.patch: missing; unstaged file removal?
>  427843 lines processed
>  3 warnings generated
>  make: *** [Makefile:1264: check-package] Error 1
> 
> Signed-off-by: James Knight <git@jdknight.me>
> ---
>  utils/check-package | 29 +++++++++++++++++------------
>  1 file changed, 17 insertions(+), 12 deletions(-)
> 
> diff --git a/utils/check-package b/utils/check-package
> index a5ecc2eed8..8781d21d8f 100755
> --- a/utils/check-package
> +++ b/utils/check-package
> @@ -257,18 +257,23 @@ def check_file_using_lib(fname):
>          nwarnings += warn
>  
>      lastline = ""
> -    with open(fname, "r", errors="surrogateescape") as f:
> -        for lineno, text in enumerate(f):
> -            nlines += 1
> -            for name, cf in objects:
> -                if cf.disable.search(lastline):
> -                    continue
> -                line_sts = cf.check_line(lineno + 1, text)
> -                warn, fail = print_warnings(line_sts, name in xfail)
> -                if fail > 0:
> -                    failed.add(name)
> -                nwarnings += warn
> -            lastline = text
> +    try:
> +        with open(fname, "r", errors="surrogateescape") as f:
> +            for lineno, text in enumerate(f):
> +                nlines += 1
> +                for name, cf in objects:
> +                    if cf.disable.search(lastline):
> +                        continue
> +                    line_sts = cf.check_line(lineno + 1, text)
> +                    warn, fail = print_warnings(line_sts, name in xfail)
> +                    if fail > 0:
> +                        failed.add(name)
> +                    nwarnings += warn
> +                lastline = text
> +    except FileNotFoundError:
> +        print(f"{fname}: missing; unstaged file removal?")
> +        nwarnings += 1
> +        return nwarnings, nlines
>  
>      for name, cf in objects:
>          warn, fail = print_warnings(cf.after(), name in xfail)

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH 1/1] utils/check-package: handle missing files
  2025-07-01 18:56 [Buildroot] [PATCH 1/1] utils/check-package: handle missing files James Knight
  2025-07-02 14:31 ` Romain Naour via buildroot
@ 2025-07-05 10:07 ` Julien Olivain via buildroot
  2025-07-11 10:44 ` Thomas Perale via buildroot
  2 siblings, 0 replies; 4+ messages in thread
From: Julien Olivain via buildroot @ 2025-07-05 10:07 UTC (permalink / raw)
  To: James Knight; +Cc: buildroot, Ricardo Martincoski

On 01/07/2025 20:56, James Knight wrote:
> When running check-package before completing commits for a change, if
> any files are setup for removal, check-package will throw
> FileNotFoundError exceptions instead of generating a warning state. For
> example:
> 
>  $ utils/docker-run make check-package
>  Traceback (most recent call last):
>    ...
>  FileNotFoundError: [Errno 2] No such file or directory: 
> 'package/.../0001-some-removed-patch.patch'
>  make: *** [Makefile:1264: check-package] Error 1
> 
> This commit will now catch FileNotFoundError and populate a warning
> message:
> 
>  $ utils/docker-run make check-package
>  package/.../0001-some-removed-patch.patch: missing; unstaged file 
> removal?
>  package/.../0002-another-removed-patch.patch: missing; unstaged file 
> removal?
>  427843 lines processed
>  3 warnings generated
>  make: *** [Makefile:1264: check-package] Error 1
> 
> Signed-off-by: James Knight <git@jdknight.me>

Applied to master, thanks.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH 1/1] utils/check-package: handle missing files
  2025-07-01 18:56 [Buildroot] [PATCH 1/1] utils/check-package: handle missing files James Knight
  2025-07-02 14:31 ` Romain Naour via buildroot
  2025-07-05 10:07 ` Julien Olivain via buildroot
@ 2025-07-11 10:44 ` Thomas Perale via buildroot
  2 siblings, 0 replies; 4+ messages in thread
From: Thomas Perale via buildroot @ 2025-07-11 10:44 UTC (permalink / raw)
  To: James Knight; +Cc: Thomas Perale, buildroot

In reply of:
> When running check-package before completing commits for a change, if
> any files are setup for removal, check-package will throw
> FileNotFoundError exceptions instead of generating a warning state. For
> example:
> 
>  $ utils/docker-run make check-package
>  Traceback (most recent call last):
>    ...
>  FileNotFoundError: [Errno 2] No such file or directory: 'package/.../0001-some-removed-patch.patch'
>  make: *** [Makefile:1264: check-package] Error 1
> 
> This commit will now catch FileNotFoundError and populate a warning
> message:
> 
>  $ utils/docker-run make check-package
>  package/.../0001-some-removed-patch.patch: missing; unstaged file removal?
>  package/.../0002-another-removed-patch.patch: missing; unstaged file removal?
>  427843 lines processed
>  3 warnings generated
>  make: *** [Makefile:1264: check-package] Error 1
> 
> Signed-off-by: James Knight <git@jdknight.me>

Applied to 2025.02.x & 2025.05.x. Thanks

> ---
>  utils/check-package | 29 +++++++++++++++++------------
>  1 file changed, 17 insertions(+), 12 deletions(-)
> 
> diff --git a/utils/check-package b/utils/check-package
> index a5ecc2eed8..8781d21d8f 100755
> --- a/utils/check-package
> +++ b/utils/check-package
> @@ -257,18 +257,23 @@ def check_file_using_lib(fname):
>          nwarnings += warn
>  
>      lastline = ""
> -    with open(fname, "r", errors="surrogateescape") as f:
> -        for lineno, text in enumerate(f):
> -            nlines += 1
> -            for name, cf in objects:
> -                if cf.disable.search(lastline):
> -                    continue
> -                line_sts = cf.check_line(lineno + 1, text)
> -                warn, fail = print_warnings(line_sts, name in xfail)
> -                if fail > 0:
> -                    failed.add(name)
> -                nwarnings += warn
> -            lastline = text
> +    try:
> +        with open(fname, "r", errors="surrogateescape") as f:
> +            for lineno, text in enumerate(f):
> +                nlines += 1
> +                for name, cf in objects:
> +                    if cf.disable.search(lastline):
> +                        continue
> +                    line_sts = cf.check_line(lineno + 1, text)
> +                    warn, fail = print_warnings(line_sts, name in xfail)
> +                    if fail > 0:
> +                        failed.add(name)
> +                    nwarnings += warn
> +                lastline = text
> +    except FileNotFoundError:
> +        print(f"{fname}: missing; unstaged file removal?")
> +        nwarnings += 1
> +        return nwarnings, nlines
>  
>      for name, cf in objects:
>          warn, fail = print_warnings(cf.after(), name in xfail)
> -- 
> 2.49.0.windows.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-07-11 10:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-01 18:56 [Buildroot] [PATCH 1/1] utils/check-package: handle missing files James Knight
2025-07-02 14:31 ` Romain Naour via buildroot
2025-07-05 10:07 ` Julien Olivain via buildroot
2025-07-11 10:44 ` Thomas Perale via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox