* [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained)
@ 2024-06-07 17:05 Yann E. MORIN
2024-06-07 17:05 ` [Buildroot] [PATCH 01/20 v2] package/pkg-download: symplify calling parameters Yann E. MORIN
` (20 more replies)
0 siblings, 21 replies; 33+ messages in thread
From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw)
To: buildroot
Cc: Ricardo Martincoski, James Hilliard, Asaf Kahlon,
Thomas Petazzoni, Yann E . MORIN
Hello All!
Some maintainers refuse to commit a Cargo.lock in their repository [0],
so there are cargo packages that are unlocked.
However, we currently require that a Cargo.lock be present: we call
"cargo venodor --locked"; if there is no Cargo.lock, cargo fails.
This series adds support for downloading unlocked cargo packages; the
series is articulated in three steps:
1. preparatory cleanups (shelcheck, readability...)
2. extend the download infra to pass arbitrary options to the
post-process helpers; use that to pass the path of the manifest
instead of using an environment variable
3. add support for unlocked cargo packages by passing a new option to
the cargo post-process helper; add documentation and check-package.
4. (off-by-one error) add an RFC-style package to demonstrate the
unlocked cargo package.
Unlocked packages can be handled in two ways: totally unlocked, in which
case they are not reproducible, or by providing a Cargo.lock in the
Buildroot package directory, in which case it is reproducible, but there
is a little bit more complexity to it, so this is implemented separately
in case it is deemed too heavy-weight.
Regards,
Yann E. MORIN.
----------------------------------------------------------------
Yann E. MORIN (20):
package/pkg-download: symplify calling parameters
package/pkg-generic: split long, unreadable DOWNLOAD line
utils/check-package: add option to run the test-suite
utils/checkpackagelib: instruct shellcheck to follow included files
support/download/dl-wrapper: fix shellcheck errors
support/download/cargo-post-process: fix shellcheck
support/download: move tracing functions to helpers
support/download: pass post-process options to post-process helper
support/download: accept manifest path as a post-process option
pakcage/pkg-cargo: use post-process opts to pass manifest path
package/pkg-python: use post-process opts to pass Cargo manifest path
package/python-bcrypt: use post-process opts to pass Cargo manifest path
support/download: no longer support BR_CARGO_MANIFEST_PATH in cargo post-process
docs/manual: rephrase end of vendoring section
package/pkg-cargo: add support for unlocked packages
utils/checkpackagelib: add test for default _CARGO_LOCKED
RFC: package/anvil: new package
package/pkg-utils: accept pacakge-specific archive format version
package/pkg-cargo: allow unlocked packages to provide local Cargo.lock
RFC: package/anvil: add local Cargo.lock
.checkpackageignore | 2 -
docs/manual/adding-packages-cargo.adoc | 34 +-
package/Config.in | 1 +
package/anvil/Cargo.lock | 3464 ++++++++++++++++++++++++++++++++
package/anvil/Config.in | 20 +
package/anvil/anvil.hash | 2 +
package/anvil/anvil.mk | 31 +
package/pkg-cargo.mk | 31 +-
package/pkg-download.mk | 33 +-
package/pkg-generic.mk | 12 +-
package/pkg-python.mk | 6 +-
package/pkg-utils.mk | 3 +-
package/python-bcrypt/python-bcrypt.mk | 5 +-
support/download/cargo-post-process | 62 +-
support/download/dl-wrapper | 32 +-
support/download/helpers | 4 +
utils/check-package | 10 +
utils/checkpackagelib/lib_mk.py | 8 +
utils/checkpackagelib/readme.txt | 1 +
utils/checkpackagelib/test_lib_mk.py | 18 +
utils/checkpackagelib/tool.py | 2 +-
21 files changed, 3728 insertions(+), 53 deletions(-)
create mode 100644 package/anvil/Cargo.lock
create mode 100644 package/anvil/Config.in
create mode 100644 package/anvil/anvil.hash
create mode 100644 package/anvil/anvil.mk
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 33+ messages in thread* [Buildroot] [PATCH 01/20 v2] package/pkg-download: symplify calling parameters 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 02/20 v2] package/pkg-generic: split long, unreadable DOWNLOAD line Yann E. MORIN ` (19 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Thomas Petazzoni The DOWNLOAD macro is always called in package context, so the PKG variable is always set, and thus we do not need to pass the package as a parameter. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- package/pkg-download.mk | 33 ++++++++++++++++----------------- package/pkg-generic.mk | 6 +++--- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/package/pkg-download.mk b/package/pkg-download.mk index 7028d3917a..669d69fb3e 100644 --- a/package/pkg-download.mk +++ b/package/pkg-download.mk @@ -102,32 +102,31 @@ endif # source from the list returned by DOWNLOAD_URIS. # # Argument 1 is the source location -# Argument 2 is the upper-case package name -# Argument 3 is a space-separated list of optional arguments +# Argument 2 is a space-separated list of optional arguments # ################################################################################ define DOWNLOAD - $(Q)mkdir -p $($(2)_DL_DIR) + $(Q)mkdir -p $($(PKG)_DL_DIR) $(Q)$(EXTRA_ENV) \ - $($(2)_DL_ENV) \ + $($(PKG)_DL_ENV) \ TAR="$(TAR)" \ BR_NO_CHECK_HASH_FOR="$(if $(BR2_DOWNLOAD_FORCE_CHECK_HASHES),,$(BR_NO_CHECK_HASH_FOR))" \ - flock $($(2)_DL_DIR)/.lock $(DL_WRAPPER) \ - -c '$($(2)_DL_VERSION)' \ - -d '$($(2)_DL_DIR)' \ + flock $($(PKG)_DL_DIR)/.lock $(DL_WRAPPER) \ + -c '$($(PKG)_DL_VERSION)' \ + -d '$($(PKG)_DL_DIR)' \ -D '$(DL_DIR)' \ -f '$(notdir $(1))' \ - $(foreach f,$($(2)_HASH_FILES),-H '$(f)') \ - -n '$($(2)_DL_SUBDIR)-$($(2)_VERSION)' \ - -N '$($(2)_RAWNAME)' \ - -o '$($(2)_DL_DIR)/$(notdir $(1))' \ - $(if $(filter YES,$($(2)_SVN_EXTERNALS)),-r) \ - $(if $($(2)_GIT_SUBMODULES),-r) \ - $(if $($(2)_GIT_LFS),-l) \ - $(foreach uri,$(call DOWNLOAD_URIS,$(1),$(2)),-u $(uri)) \ - $(3) \ + $(foreach f,$($(PKG)_HASH_FILES),-H '$(f)') \ + -n '$($(PKG)_DL_SUBDIR)-$($(PKG)_VERSION)' \ + -N '$($(PKG)_RAWNAME)' \ + -o '$($(PKG)_DL_DIR)/$(notdir $(1))' \ + $(if $(filter YES,$($(PKG)_SVN_EXTERNALS)),-r) \ + $(if $($(PKG)_GIT_SUBMODULES),-r) \ + $(if $($(PKG)_GIT_LFS),-l) \ + $(foreach uri,$(call DOWNLOAD_URIS,$(1),$(PKG)),-u $(uri)) \ + $(2) \ $(QUIET) \ -- \ - $($(2)_DL_OPTS) + $($(PKG)_DL_OPTS) endef diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index a2749320c3..da02cb2d32 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -182,8 +182,8 @@ $(BUILD_DIR)/%/.stamp_downloaded: break ; \ fi ; \ done - $(if $($(PKG)_MAIN_DOWNLOAD),$(call DOWNLOAD,$($(PKG)_MAIN_DOWNLOAD),$(PKG),$(patsubst %,-p '%',$($(PKG)_DOWNLOAD_POST_PROCESS)))) - $(foreach p,$($(PKG)_ADDITIONAL_DOWNLOADS),$(call DOWNLOAD,$(p),$(PKG))$(sep)) + $(if $($(PKG)_MAIN_DOWNLOAD),$(call DOWNLOAD,$($(PKG)_MAIN_DOWNLOAD),$(patsubst %,-p '%',$($(PKG)_DOWNLOAD_POST_PROCESS)))) + $(foreach p,$($(PKG)_ADDITIONAL_DOWNLOADS),$(call DOWNLOAD,$(p))$(sep)) $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep)) $(Q)mkdir -p $(@D) @$(call step_end,download) @@ -192,7 +192,7 @@ $(BUILD_DIR)/%/.stamp_downloaded: # Retrieve actual source archive, e.g. for prebuilt external toolchains $(BUILD_DIR)/%/.stamp_actual_downloaded: @$(call step_start,actual-download) - $(call DOWNLOAD,$($(PKG)_ACTUAL_SOURCE_SITE)/$($(PKG)_ACTUAL_SOURCE_TARBALL),$(PKG)) + $(call DOWNLOAD,$($(PKG)_ACTUAL_SOURCE_SITE)/$($(PKG)_ACTUAL_SOURCE_TARBALL)) $(Q)mkdir -p $(@D) @$(call step_end,actual-download) $(Q)touch $@ -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 02/20 v2] package/pkg-generic: split long, unreadable DOWNLOAD line 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 01/20 v2] package/pkg-download: symplify calling parameters Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 03/20 v2] utils/check-package: add option to run the test-suite Yann E. MORIN ` (18 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Thomas Petazzoni Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- Note: when \ is used for line continuation, make replaces all leading blanks on continuation lines, with a single space. This causes the second and following parameters to contain a single leading space, and the last one a single trailing space: FOO = $(info ARG1="$(1)" ARG2="$(2)") all: @:$(call FOO, \ blark, \ bleark \ ) $ make ARG1=" blark" ARG2=" bleark " So, this split must come *after* the change in the API of DOWNLOAD, otherwise it would try to expand $($(2)_PKGDIR) into $( PKGNAME_PKG_DIR) which would yield an empty string, causing mkdir to whine. --- package/pkg-generic.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index da02cb2d32..8f1e6dc8e5 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -182,7 +182,12 @@ $(BUILD_DIR)/%/.stamp_downloaded: break ; \ fi ; \ done - $(if $($(PKG)_MAIN_DOWNLOAD),$(call DOWNLOAD,$($(PKG)_MAIN_DOWNLOAD),$(patsubst %,-p '%',$($(PKG)_DOWNLOAD_POST_PROCESS)))) + $(if $($(PKG)_MAIN_DOWNLOAD), \ + $(call DOWNLOAD, \ + $($(PKG)_MAIN_DOWNLOAD), \ + $(patsubst %,-p '%',$($(PKG)_DOWNLOAD_POST_PROCESS)) \ + ) \ + ) $(foreach p,$($(PKG)_ADDITIONAL_DOWNLOADS),$(call DOWNLOAD,$(p))$(sep)) $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep)) $(Q)mkdir -p $(@D) -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 03/20 v2] utils/check-package: add option to run the test-suite 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 01/20 v2] package/pkg-download: symplify calling parameters Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 02/20 v2] package/pkg-generic: split long, unreadable DOWNLOAD line Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-07-14 7:37 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 04/20 v2] utils/checkpackagelib: instruct shellcheck to follow included files Yann E. MORIN ` (17 subsequent siblings) 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Ricardo Martincoski Currently, how to run the check-package test-suite is thoroughly under- documented. There is one hint in the commit log for commit fc254881e6df (utils/checkpackagelib: add unit tests), and another in commit 242e9d72e7d2 (utils/docker-run: new script); the former is hard to find, and the latter is about an unrelated script, so harder yet to find... Add a new option to check-package, that will make it run its test-suite. Since pytest is only needed for the test-suite, only import it in that case. pytest will be default create a cache of the tests (not sure what it is about, though), so instruct it not to (esp. since the tree can be read-only). Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Ricardo Martincoski <ricardo.martincoski@datacom.com.br> --- utils/check-package | 10 ++++++++++ utils/checkpackagelib/readme.txt | 1 + 2 files changed, 11 insertions(+) diff --git a/utils/check-package b/utils/check-package index cbb3613e19..f759d88a89 100755 --- a/utils/check-package +++ b/utils/check-package @@ -85,6 +85,9 @@ def parse_args(): parser.add_argument("--failed-only", action="store_true", help="print only" " the name of the functions that failed (debug)") + parser.add_argument("--test-suite", action="store_true", help="Run the" + " test-suite") + flags = parser.parse_args() flags.ignore_list = get_ignored_parsers_per_file(flags.intree_only, flags.ignore_filename) @@ -287,6 +290,13 @@ def __main__(): global flags flags = parse_args() + if flags.test_suite: + import pytest + return pytest.main( + # Disable writing/loading a cache with: -p no:cacheprovider + ["-v", "-p", "no:cacheprovider", os.path.dirname(__file__)] + ) + if flags.intree_only: # change all paths received to be relative to the base dir base_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) diff --git a/utils/checkpackagelib/readme.txt b/utils/checkpackagelib/readme.txt index 3bfe289607..b3e8c67100 100644 --- a/utils/checkpackagelib/readme.txt +++ b/utils/checkpackagelib/readme.txt @@ -23,6 +23,7 @@ How the scripts are structured: - lib_type.py contains check functions specific to files of this type. Some hints when changing this code: +- test your changes: utils/check-package --test-suite - prefer O(n) algorithms, where n is the total number of lines in the files processed. - when there is no other reason for ordering, use alphabetical order (e.g. keep -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 03/20 v2] utils/check-package: add option to run the test-suite 2024-06-07 17:05 ` [Buildroot] [PATCH 03/20 v2] utils/check-package: add option to run the test-suite Yann E. MORIN @ 2024-07-14 7:37 ` Arnout Vandecappelle via buildroot 0 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 7:37 UTC (permalink / raw) To: Yann E. MORIN, buildroot; +Cc: Ricardo Martincoski On 07/06/2024 19:05, Yann E. MORIN wrote: > Currently, how to run the check-package test-suite is thoroughly under- > documented. There is one hint in the commit log for commit fc254881e6df > (utils/checkpackagelib: add unit tests), and another in commit > 242e9d72e7d2 (utils/docker-run: new script); the former is hard to find, > and the latter is about an unrelated script, so harder yet to find... > > Add a new option to check-package, that will make it run its test-suite. > Since pytest is only needed for the test-suite, only import it in that > case. > > pytest will be default create a cache of the tests (not sure what it is > about, though), so instruct it not to (esp. since the tree can be > read-only). > > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > Cc: Ricardo Martincoski <ricardo.martincoski@datacom.com.br> > --- > utils/check-package | 10 ++++++++++ > utils/checkpackagelib/readme.txt | 1 + > 2 files changed, 11 insertions(+) > > diff --git a/utils/check-package b/utils/check-package > index cbb3613e19..f759d88a89 100755 > --- a/utils/check-package > +++ b/utils/check-package > @@ -85,6 +85,9 @@ def parse_args(): > parser.add_argument("--failed-only", action="store_true", help="print only" > " the name of the functions that failed (debug)") > > + parser.add_argument("--test-suite", action="store_true", help="Run the" > + " test-suite") > + > flags = parser.parse_args() > > flags.ignore_list = get_ignored_parsers_per_file(flags.intree_only, flags.ignore_filename) > @@ -287,6 +290,13 @@ def __main__(): > global flags > flags = parse_args() > > + if flags.test_suite: > + import pytest > + return pytest.main( > + # Disable writing/loading a cache with: -p no:cacheprovider > + ["-v", "-p", "no:cacheprovider", os.path.dirname(__file__)] This will run all the tests in the utils/ directory, so also the ones from checksymbols. I've moved this code to checkpackagelib.base instead. Regards, Arnout > + ) > + > if flags.intree_only: > # change all paths received to be relative to the base dir > base_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) > diff --git a/utils/checkpackagelib/readme.txt b/utils/checkpackagelib/readme.txt > index 3bfe289607..b3e8c67100 100644 > --- a/utils/checkpackagelib/readme.txt > +++ b/utils/checkpackagelib/readme.txt > @@ -23,6 +23,7 @@ How the scripts are structured: > - lib_type.py contains check functions specific to files of this type. > > Some hints when changing this code: > +- test your changes: utils/check-package --test-suite > - prefer O(n) algorithms, where n is the total number of lines in the files > processed. > - when there is no other reason for ordering, use alphabetical order (e.g. keep _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 04/20 v2] utils/checkpackagelib: instruct shellcheck to follow included files 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (2 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 03/20 v2] utils/check-package: add option to run the test-suite Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-07-14 7:41 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 05/20 v2] support/download/dl-wrapper: fix shellcheck errors Yann E. MORIN ` (16 subsequent siblings) 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Ricardo Martincoski We do have a few shell scripts that have source directives (either with 'source' or with '.'), and they all are currently either globally ignored in .checkpackageignore, or have shellcheck directives to ignore the source statement (SC1090). So, we can safely instruct shellcheck where to lookup for sourced files; that does not trigger any new error. This will alow fixing some shellcheck errors in later commits. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Ricardo Martincoski <ricardo.martincoski@datacom.com.br> --- utils/checkpackagelib/tool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/checkpackagelib/tool.py b/utils/checkpackagelib/tool.py index 907ada704f..e12e1fa406 100644 --- a/utils/checkpackagelib/tool.py +++ b/utils/checkpackagelib/tool.py @@ -31,7 +31,7 @@ class Flake8(_Tool): class Shellcheck(_Tool): def run(self): - cmd = ['shellcheck', self.filename] + cmd = ['shellcheck', "-x", self.filename] try: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout = p.communicate()[0] -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 04/20 v2] utils/checkpackagelib: instruct shellcheck to follow included files 2024-06-07 17:05 ` [Buildroot] [PATCH 04/20 v2] utils/checkpackagelib: instruct shellcheck to follow included files Yann E. MORIN @ 2024-07-14 7:41 ` Arnout Vandecappelle via buildroot 0 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 7:41 UTC (permalink / raw) To: Yann E. MORIN, buildroot; +Cc: Ricardo Martincoski On 07/06/2024 19:05, Yann E. MORIN wrote: > We do have a few shell scripts that have source directives (either with > 'source' or with '.'), and they all are currently either globally > ignored in .checkpackageignore, or have shellcheck directives to ignore > the source statement (SC1090). > > So, we can safely instruct shellcheck where to lookup for sourced files; > that does not trigger any new error. > > This will alow fixing some shellcheck errors in later commits. > > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > Cc: Ricardo Martincoski <ricardo.martincoski@datacom.com.br> > --- > utils/checkpackagelib/tool.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/utils/checkpackagelib/tool.py b/utils/checkpackagelib/tool.py > index 907ada704f..e12e1fa406 100644 > --- a/utils/checkpackagelib/tool.py > +++ b/utils/checkpackagelib/tool.py > @@ -31,7 +31,7 @@ class Flake8(_Tool): > > class Shellcheck(_Tool): > def run(self): > - cmd = ['shellcheck', self.filename] > + cmd = ['shellcheck', "-x", self.filename] I've changed this to --external-sources so future me doesn't have to open a man page to know wtf -x means. Regards, Arnout > try: > p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) > stdout = p.communicate()[0] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 05/20 v2] support/download/dl-wrapper: fix shellcheck errors 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (3 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 04/20 v2] utils/checkpackagelib: instruct shellcheck to follow included files Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 06/20 v2] support/download/cargo-post-process: fix shellcheck Yann E. MORIN ` (15 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- .checkpackageignore | 1 - support/download/dl-wrapper | 20 ++++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.checkpackageignore b/.checkpackageignore index 8a21b3f155..00eafcd839 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1648,7 +1648,6 @@ support/dependencies/check-host-xzcat.sh Shellcheck support/dependencies/dependencies.sh Shellcheck support/download/bzr Shellcheck lib_shellscript.ConsecutiveEmptyLines support/download/cargo-post-process Shellcheck -support/download/dl-wrapper Shellcheck support/download/file Shellcheck support/download/go-post-process Shellcheck support/download/hg Shellcheck diff --git a/support/download/dl-wrapper b/support/download/dl-wrapper index 35428faeef..67a9718d9d 100755 --- a/support/download/dl-wrapper +++ b/support/download/dl-wrapper @@ -22,7 +22,7 @@ export BR_BACKEND_DL_GETOPTS=":hc:d:o:n:N:H:lru:qf:e" main() { local OPT OPTARG local backend output large_file recurse quiet rc - local -a uris hfiles + local -a uris hfiles backend_opts # Parse our options; anything after '--' is for the backend while getopts ":c:d:D:o:n:N:H:lrf:u:qp:" OPT; do @@ -58,6 +58,7 @@ main() { # If we can neither link nor copy, fallback to doing a download. # NOTE! This is not atomic, is subject to TOCTTOU, but the whole # dl-wrapper runs under an flock, so we're safe. + # shellcheck disable=SC2166 # -a works in this case if [ ! -e "${output}" -a -e "${old_dl_dir}/${filename}" ]; then ln "${old_dl_dir}/${filename}" "${output}" || \ cp "${old_dl_dir}/${filename}" "${output}" || \ @@ -111,6 +112,12 @@ main() { tmpd="$(mktemp -d "${BUILD_DIR}/.${output##*/}.XXXXXX")" tmpf="${tmpd}/output" + # shellcheck disable=SC2206 # all three are dash-options + backend_opts=( ${quiet} ${large_file} ${recurse} ) + if [ "${urlencode}" ]; then + backend_opts+=( -e ) + fi + # Helpers expect to run in a directory that is *really* trashable, so # they are free to create whatever files and/or sub-dirs they might need. # Doing the 'cd' here rather than in all backends is easier. @@ -121,7 +128,6 @@ main() { # the next URI until it succeeds. Once out of URI to try, we need to # cleanup and exit. if ! "${OLDPWD}/support/download/${backend}" \ - $([ -n "${urlencode}" ] && printf %s '-e') \ -c "${cset}" \ -d "${dl_dir}" \ -n "${raw_base_name}" \ @@ -129,7 +135,9 @@ main() { -f "${filename}" \ -u "${uri}" \ -o "${tmpf}" \ - ${quiet} ${large_file} ${recurse} -- "${@}" + "${backend_opts[@]}" \ + -- \ + "${@}" then # cd back to keep path coherence cd "${OLDPWD}" @@ -193,8 +201,8 @@ main() { # Some backends (cp and scp) may create executable files, so we need to # carry the executable bit if needed. [ -x "${tmpf}" ] && new_mode=755 || new_mode=644 - new_mode=$(printf "%04o" $((0${new_mode} & ~0$(umask)))) - chmod ${new_mode} "${tmp_output}" + new_mode="$(printf "%04o" $((0${new_mode} & ~0$(umask))))" + chmod "${new_mode}" "${tmp_output}" # We must *not* unlink tmp_output, otherwise there is a small window # during which another download process may create the same tmp_output @@ -226,7 +234,7 @@ main() { trace() { local msg="${1}"; shift; printf "%s: ${msg}" "${my_name}" "${@}"; } warn() { trace "${@}" >&2; } -errorN() { local ret="${1}"; shift; warn "${@}"; exit ${ret}; } +errorN() { local ret="${1}"; shift; warn "${@}"; exit "${ret}"; } error() { errorN 1 "${@}"; } my_name="${0##*/}" -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 06/20 v2] support/download/cargo-post-process: fix shellcheck 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (4 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 05/20 v2] support/download/dl-wrapper: fix shellcheck errors Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 07/20 v2] support/download: move tracing functions to helpers Yann E. MORIN ` (14 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- .checkpackageignore | 1 - support/download/cargo-post-process | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.checkpackageignore b/.checkpackageignore index 00eafcd839..750cbfa865 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1647,7 +1647,6 @@ support/dependencies/check-host-tar.sh Shellcheck support/dependencies/check-host-xzcat.sh Shellcheck support/dependencies/dependencies.sh Shellcheck support/download/bzr Shellcheck lib_shellscript.ConsecutiveEmptyLines -support/download/cargo-post-process Shellcheck support/download/file Shellcheck support/download/go-post-process Shellcheck support/download/hg Shellcheck diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process index 3f4666c006..b94b160315 100755 --- a/support/download/cargo-post-process +++ b/support/download/cargo-post-process @@ -2,6 +2,7 @@ set -e +# shellcheck source=helpers source-path=SCRIPTDIR . "${0%/*}/helpers" while getopts "n:o:" OPT; do @@ -28,7 +29,7 @@ mkdir -p .cargo/ mkdir -p "${CARGO_HOME}" flock "${CARGO_HOME}"/.br-lock \ cargo vendor \ - --manifest-path ${BR_CARGO_MANIFEST_PATH-Cargo.toml} \ + --manifest-path "${BR_CARGO_MANIFEST_PATH-Cargo.toml}" \ --locked VENDOR \ > .cargo/config -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 07/20 v2] support/download: move tracing functions to helpers 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (5 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 06/20 v2] support/download/cargo-post-process: fix shellcheck Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 08/20 v2] support/download: pass post-process options to post-process helper Yann E. MORIN ` (13 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN errorN() was unused, drop it. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- support/download/dl-wrapper | 8 +++----- support/download/helpers | 4 ++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/support/download/dl-wrapper b/support/download/dl-wrapper index 67a9718d9d..713ce668ac 100755 --- a/support/download/dl-wrapper +++ b/support/download/dl-wrapper @@ -17,6 +17,9 @@ # We want to catch any unexpected failure, and exit immediately. set -e +# shellcheck source=helpers source-path=SCRIPTDIR +. "${0%/*}/helpers" + export BR_BACKEND_DL_GETOPTS=":hc:d:o:n:N:H:lru:qf:e" main() { @@ -232,10 +235,5 @@ main() { return ${rc} } -trace() { local msg="${1}"; shift; printf "%s: ${msg}" "${my_name}" "${@}"; } -warn() { trace "${@}" >&2; } -errorN() { local ret="${1}"; shift; warn "${@}"; exit "${ret}"; } -error() { errorN 1 "${@}"; } - my_name="${0##*/}" main "${@}" diff --git a/support/download/helpers b/support/download/helpers index 5ed9078287..f4102e3b06 100755 --- a/support/download/helpers +++ b/support/download/helpers @@ -94,5 +94,9 @@ post_process_repack() { mk_tar_gz "${in_dir}/${base_dir}" "${base_dir}" "${date}" "${out}" } +trace() { local msg="${1}"; shift; printf "%s: ${msg}" "${my_name}" "${@}"; } +warn() { trace "${@}" >&2; } +error() { warn "${@}"; exit 1; } + # Keep this line and the following as last lines in this file. # vim: ft=bash -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 08/20 v2] support/download: pass post-process options to post-process helper 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (6 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 07/20 v2] support/download: move tracing functions to helpers Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 09/20 v2] support/download: accept manifest path as a post-process option Yann E. MORIN ` (12 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Thomas Petazzoni Currently, we have no explicit, dedicated way to pass information to the download post-process scripts, even though we do already need to pass the path to the manifest when it is not the default, which we do with an environment variable. We'll soon need to be able to pass additional information to post-process scripts, like instructing cargo to not use a lock file when the package is not locked. Extend the dl-wrapper with a new option with an argument, where the argument will be passed as-is to the post-process script. We explicitly do not document this new variable, as it is expected to only be used in our package infrastructures (although there is currently exactly one package that will directly need it, and we hope to drop that in the future). Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- package/pkg-generic.mk | 1 + support/download/dl-wrapper | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index 8f1e6dc8e5..edeaa1348d 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -186,6 +186,7 @@ $(BUILD_DIR)/%/.stamp_downloaded: $(call DOWNLOAD, \ $($(PKG)_MAIN_DOWNLOAD), \ $(patsubst %,-p '%',$($(PKG)_DOWNLOAD_POST_PROCESS)) \ + $(patsubst %,-P '%',$($(PKG)_DOWNLOAD_POST_PROCESS_OPTS)) \ ) \ ) $(foreach p,$($(PKG)_ADDITIONAL_DOWNLOADS),$(call DOWNLOAD,$(p))$(sep)) diff --git a/support/download/dl-wrapper b/support/download/dl-wrapper index 713ce668ac..91e3fc092f 100755 --- a/support/download/dl-wrapper +++ b/support/download/dl-wrapper @@ -25,10 +25,10 @@ export BR_BACKEND_DL_GETOPTS=":hc:d:o:n:N:H:lru:qf:e" main() { local OPT OPTARG local backend output large_file recurse quiet rc - local -a uris hfiles backend_opts + local -a uris hfiles backend_opts post_process_opts # Parse our options; anything after '--' is for the backend - while getopts ":c:d:D:o:n:N:H:lrf:u:qp:" OPT; do + while getopts ":c:d:D:o:n:N:H:lrf:u:qp:P:" OPT; do case "${OPT}" in c) cset="${OPTARG}";; d) dl_dir="${OPTARG}";; @@ -42,6 +42,7 @@ main() { f) filename="${OPTARG}";; u) uris+=( "${OPTARG}" );; p) post_process="${OPTARG}";; + P) post_process_opts+=( "${OPTARG}" );; q) quiet="-q";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; @@ -151,7 +152,8 @@ main() { if [ -n "${post_process}" ] ; then if ! "${OLDPWD}/support/download/${post_process}-post-process" \ -o "${tmpf}" \ - -n "${raw_base_name}" + -n "${raw_base_name}" \ + "${post_process_opts[@]}" then # cd back to keep path coherence cd "${OLDPWD}" -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 09/20 v2] support/download: accept manifest path as a post-process option 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (7 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 08/20 v2] support/download: pass post-process options to post-process helper Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 10/20 v2] pakcage/pkg-cargo: use post-process opts to pass manifest path Yann E. MORIN ` (11 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- support/download/cargo-post-process | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process index b94b160315..a9fbced466 100755 --- a/support/download/cargo-post-process +++ b/support/download/cargo-post-process @@ -5,10 +5,12 @@ set -e # shellcheck source=helpers source-path=SCRIPTDIR . "${0%/*}/helpers" -while getopts "n:o:" OPT; do +manifest="${BR_CARGO_MANIFEST_PATH-Cargo.toml}" +while getopts "n:o:m:" OPT; do case "${OPT}" in o) output="${OPTARG}";; n) base_name="${OPTARG}";; + m) manifest="${OPTARG}";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac @@ -29,7 +31,7 @@ mkdir -p .cargo/ mkdir -p "${CARGO_HOME}" flock "${CARGO_HOME}"/.br-lock \ cargo vendor \ - --manifest-path "${BR_CARGO_MANIFEST_PATH-Cargo.toml}" \ + --manifest-path "${manifest}" \ --locked VENDOR \ > .cargo/config -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 10/20 v2] pakcage/pkg-cargo: use post-process opts to pass manifest path 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (8 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 09/20 v2] support/download: accept manifest path as a post-process option Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-07-14 8:29 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 11/20 v2] package/pkg-python: use post-process opts to pass Cargo " Yann E. MORIN ` (10 subsequent siblings) 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- package/pkg-cargo.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk index 47ce68bf02..41dfcbd096 100644 --- a/package/pkg-cargo.mk +++ b/package/pkg-cargo.mk @@ -192,7 +192,7 @@ $(2)_DL_ENV += CARGO_HOME=$$(BR_CARGO_HOME) # If building in a sub directory, use that to find the Cargo.toml ifneq ($$($(2)_SUBDIR),) -$(2)_DL_ENV += BR_CARGO_MANIFEST_PATH=$$($(2)_SUBDIR)/Cargo.toml +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -m$$($(2)_SUBDIR)/Cargo.toml endif # Because we append vendored info, we can't rely on the values being empty -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 10/20 v2] pakcage/pkg-cargo: use post-process opts to pass manifest path 2024-06-07 17:05 ` [Buildroot] [PATCH 10/20 v2] pakcage/pkg-cargo: use post-process opts to pass manifest path Yann E. MORIN @ 2024-07-14 8:29 ` Arnout Vandecappelle via buildroot 0 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 8:29 UTC (permalink / raw) To: Yann E. MORIN, buildroot On 07/06/2024 19:05, Yann E. MORIN wrote: > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > --- > package/pkg-cargo.mk | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk > index 47ce68bf02..41dfcbd096 100644 > --- a/package/pkg-cargo.mk > +++ b/package/pkg-cargo.mk > @@ -192,7 +192,7 @@ $(2)_DL_ENV += CARGO_HOME=$$(BR_CARGO_HOME) > > # If building in a sub directory, use that to find the Cargo.toml > ifneq ($$($(2)_SUBDIR),) > -$(2)_DL_ENV += BR_CARGO_MANIFEST_PATH=$$($(2)_SUBDIR)/Cargo.toml > +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -m$$($(2)_SUBDIR)/Cargo.toml I've applied as-is, however I wonder: why is the value attached to the option? Why not -m $$($(2)_SUBDIR)/Cargo.toml with a space in between? Regards, Arnout > endif > > # Because we append vendored info, we can't rely on the values being empty _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 11/20 v2] package/pkg-python: use post-process opts to pass Cargo manifest path 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (9 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 10/20 v2] pakcage/pkg-cargo: use post-process opts to pass manifest path Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: " Yann E. MORIN ` (9 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Thomas Petazzoni Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- package/pkg-python.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/pkg-python.mk b/package/pkg-python.mk index 88fadecd54..2c1641d170 100644 --- a/package/pkg-python.mk +++ b/package/pkg-python.mk @@ -275,14 +275,14 @@ $(2)_DL_ENV = $$(HOST_PKG_CARGO_ENV) endif ifndef $(2)_CARGO_MANIFEST_PATH ifdef $(3)_CARGO_MANIFEST_PATH -$(2)_DL_ENV += BR_CARGO_MANIFEST_PATH=$$($(3)_CARGO_MANIFEST_PATH) +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -m$$($(3)_CARGO_MANIFEST_PATH) else ifneq ($$($(2)_SUBDIR),) -$(2)_DL_ENV += BR_CARGO_MANIFEST_PATH=$$($(2)_SUBDIR)/Cargo.toml +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -m$$($(2)_SUBDIR)/Cargo.toml endif endif else -$(2)_DL_ENV += BR_CARGO_MANIFEST_PATH=$$($(2)_CARGO_MANIFEST_PATH) +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -m$$($(2)_CARGO_MANIFEST_PATH) endif endif -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: use post-process opts to pass Cargo manifest path 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (10 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 11/20 v2] package/pkg-python: use post-process opts to pass Cargo " Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 22:04 ` James Hilliard 2024-06-07 17:05 ` [Buildroot] [PATCH 13/20 v2] support/download: no longer support BR_CARGO_MANIFEST_PATH in cargo post-process Yann E. MORIN ` (8 subsequent siblings) 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: James Hilliard, Yann E. MORIN, Asaf Kahlon Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Asaf Kahlon <asafka7@gmail.com> Cc: James Hilliard <james.hilliard1@gmail.com> Cc: Yegor Yefremov <yegorslists@googlemail.com> --- package/python-bcrypt/python-bcrypt.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package/python-bcrypt/python-bcrypt.mk b/package/python-bcrypt/python-bcrypt.mk index f3137401d7..f09c67441e 100644 --- a/package/python-bcrypt/python-bcrypt.mk +++ b/package/python-bcrypt/python-bcrypt.mk @@ -19,9 +19,8 @@ PYTHON_BCRYPT_ENV = \ PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" # We need to vendor the Cargo crates at download time PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS = cargo +PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS_OPTS = -m src/_bcrypt/Cargo.toml PYTHON_BCRYPT_DOWNLOAD_DEPENDENCIES = host-rustc -PYTHON_BCRYPT_DL_ENV = \ - $(PKG_CARGO_ENV) \ - BR_CARGO_MANIFEST_PATH=src/_bcrypt/Cargo.toml +PYTHON_BCRYPT_DL_ENV = $(PKG_CARGO_ENV) $(eval $(python-package)) -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: use post-process opts to pass Cargo manifest path 2024-06-07 17:05 ` [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: " Yann E. MORIN @ 2024-06-07 22:04 ` James Hilliard 2024-06-08 8:49 ` Yann E. MORIN 2024-07-14 8:32 ` Arnout Vandecappelle via buildroot 0 siblings, 2 replies; 33+ messages in thread From: James Hilliard @ 2024-06-07 22:04 UTC (permalink / raw) To: Yann E. MORIN; +Cc: Asaf Kahlon, buildroot On Fri, Jun 7, 2024 at 11:06 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > Cc: Asaf Kahlon <asafka7@gmail.com> > Cc: James Hilliard <james.hilliard1@gmail.com> > Cc: Yegor Yefremov <yegorslists@googlemail.com> > --- > package/python-bcrypt/python-bcrypt.mk | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/package/python-bcrypt/python-bcrypt.mk b/package/python-bcrypt/python-bcrypt.mk > index f3137401d7..f09c67441e 100644 > --- a/package/python-bcrypt/python-bcrypt.mk > +++ b/package/python-bcrypt/python-bcrypt.mk > @@ -19,9 +19,8 @@ PYTHON_BCRYPT_ENV = \ > PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" > # We need to vendor the Cargo crates at download time > PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS = cargo > +PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS_OPTS = -m src/_bcrypt/Cargo.toml > PYTHON_BCRYPT_DOWNLOAD_DEPENDENCIES = host-rustc > -PYTHON_BCRYPT_DL_ENV = \ > - $(PKG_CARGO_ENV) \ > - BR_CARGO_MANIFEST_PATH=src/_bcrypt/Cargo.toml > +PYTHON_BCRYPT_DL_ENV = $(PKG_CARGO_ENV) There's a pending patch which converts this package to use setuptools-rust infrastructure: https://patchwork.ozlabs.org/project/buildroot/patch/20240602213333.2597981-1-james.hilliard1@gmail.com/ > > $(eval $(python-package)) > -- > 2.45.1 > _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: use post-process opts to pass Cargo manifest path 2024-06-07 22:04 ` James Hilliard @ 2024-06-08 8:49 ` Yann E. MORIN 2024-07-14 8:32 ` Arnout Vandecappelle via buildroot 1 sibling, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-08 8:49 UTC (permalink / raw) To: James Hilliard; +Cc: Asaf Kahlon, buildroot James, All, On 2024-06-07 16:04 -0600, James Hilliard spake thusly: > On Fri, Jun 7, 2024 at 11:06 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: [--SNIP--] > > diff --git a/package/python-bcrypt/python-bcrypt.mk b/package/python-bcrypt/python-bcrypt.mk > > index f3137401d7..f09c67441e 100644 > > --- a/package/python-bcrypt/python-bcrypt.mk > > +++ b/package/python-bcrypt/python-bcrypt.mk > > @@ -19,9 +19,8 @@ PYTHON_BCRYPT_ENV = \ > > PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" > > # We need to vendor the Cargo crates at download time > > PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS = cargo > > +PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS_OPTS = -m src/_bcrypt/Cargo.toml > > PYTHON_BCRYPT_DOWNLOAD_DEPENDENCIES = host-rustc > > -PYTHON_BCRYPT_DL_ENV = \ > > - $(PKG_CARGO_ENV) \ > > - BR_CARGO_MANIFEST_PATH=src/_bcrypt/Cargo.toml > > +PYTHON_BCRYPT_DL_ENV = $(PKG_CARGO_ENV) > > There's a pending patch which converts this package to use setuptools-rust > infrastructure: > https://patchwork.ozlabs.org/project/buildroot/patch/20240602213333.2597981-1-james.hilliard1@gmail.com/ Yep, I've already seen it, but it is a good test-case for my changes as well, so I did not incorporate it in my series. Thanks for the heads-up! Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: use post-process opts to pass Cargo manifest path 2024-06-07 22:04 ` James Hilliard 2024-06-08 8:49 ` Yann E. MORIN @ 2024-07-14 8:32 ` Arnout Vandecappelle via buildroot 1 sibling, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 8:32 UTC (permalink / raw) To: James Hilliard, Yann E. MORIN; +Cc: Asaf Kahlon, buildroot On 08/06/2024 00:04, James Hilliard wrote: > On Fri, Jun 7, 2024 at 11:06 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: >> >> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> >> Cc: Asaf Kahlon <asafka7@gmail.com> >> Cc: James Hilliard <james.hilliard1@gmail.com> >> Cc: Yegor Yefremov <yegorslists@googlemail.com> >> --- >> package/python-bcrypt/python-bcrypt.mk | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) >> >> diff --git a/package/python-bcrypt/python-bcrypt.mk b/package/python-bcrypt/python-bcrypt.mk >> index f3137401d7..f09c67441e 100644 >> --- a/package/python-bcrypt/python-bcrypt.mk >> +++ b/package/python-bcrypt/python-bcrypt.mk >> @@ -19,9 +19,8 @@ PYTHON_BCRYPT_ENV = \ >> PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" >> # We need to vendor the Cargo crates at download time >> PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS = cargo >> +PYTHON_BCRYPT_DOWNLOAD_POST_PROCESS_OPTS = -m src/_bcrypt/Cargo.toml >> PYTHON_BCRYPT_DOWNLOAD_DEPENDENCIES = host-rustc >> -PYTHON_BCRYPT_DL_ENV = \ >> - $(PKG_CARGO_ENV) \ >> - BR_CARGO_MANIFEST_PATH=src/_bcrypt/Cargo.toml >> +PYTHON_BCRYPT_DL_ENV = $(PKG_CARGO_ENV) > > There's a pending patch which converts this package to use setuptools-rust > infrastructure: > https://patchwork.ozlabs.org/project/buildroot/patch/20240602213333.2597981-1-james.hilliard1@gmail.com/ That one was already applied, so I dropped this patch from the series. Regards, Arnout _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 13/20 v2] support/download: no longer support BR_CARGO_MANIFEST_PATH in cargo post-process 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (11 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: " Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 14/20 v2] docs/manual: rephrase end of vendoring section Yann E. MORIN ` (7 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- support/download/cargo-post-process | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process index a9fbced466..12198051a4 100755 --- a/support/download/cargo-post-process +++ b/support/download/cargo-post-process @@ -5,7 +5,12 @@ set -e # shellcheck source=helpers source-path=SCRIPTDIR . "${0%/*}/helpers" -manifest="${BR_CARGO_MANIFEST_PATH-Cargo.toml}" +if [ "${BR_CARGO_MANIFEST_PATH}" ]; then + printf 'Setting BR_CARGO_MANIFEST_PATH is no longer supported; use post-process options.\n' >&2 + exit 1 +fi + +manifest=Cargo.toml while getopts "n:o:m:" OPT; do case "${OPT}" in o) output="${OPTARG}";; -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 14/20 v2] docs/manual: rephrase end of vendoring section 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (12 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 13/20 v2] support/download: no longer support BR_CARGO_MANIFEST_PATH in cargo post-process Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-07-14 8:45 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 15/20 v2] package/pkg-cargo: add support for unlocked packages Yann E. MORIN ` (6 subsequent siblings) 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN The current phrasing is dubious: the vendoring does not detect any change in the dependencies; quite the opposite, in fact: once the archive has been generated locally, no update to the vendored dependencies is ever done. Rephrase the end of the section to mention the term "vendoring", and to drop the dubious claim; retain the off-line build reference, though, as this is indeed correct. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- docs/manual/adding-packages-cargo.adoc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/manual/adding-packages-cargo.adoc b/docs/manual/adding-packages-cargo.adoc index e18fd9ce23..8a2292e7b6 100644 --- a/docs/manual/adding-packages-cargo.adoc +++ b/docs/manual/adding-packages-cargo.adoc @@ -93,8 +93,5 @@ repositories, listed in its +Cargo.toml+ file. Buildroot automatically takes care of downloading such dependencies as part of the download step of packages that use the +cargo-package+ infrastructure. Such dependencies are then kept together with the package source code in -the tarball cached in Buildroot's +DL_DIR+, and therefore the hash of -the package's tarball includes such dependencies. - -This mechanism ensures that any change in the dependencies will be -detected, and allows the build to be performed completely offline. +the tarball cached in Buildroot's +DL_DIR+. This is referred to as +_vendoring_. Vendoring allows for a completely off-line build. -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 14/20 v2] docs/manual: rephrase end of vendoring section 2024-06-07 17:05 ` [Buildroot] [PATCH 14/20 v2] docs/manual: rephrase end of vendoring section Yann E. MORIN @ 2024-07-14 8:45 ` Arnout Vandecappelle via buildroot 0 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 8:45 UTC (permalink / raw) To: Yann E. MORIN, buildroot On 07/06/2024 19:05, Yann E. MORIN wrote: > The current phrasing is dubious: the vendoring does not detect any > change in the dependencies; quite the opposite, in fact: once the > archive has been generated locally, no update to the vendored > dependencies is ever done. Well, but it _does_ detect a change in the dependencies (before vendoring), because any change will change the contents of the final tarball and therefore its hash. You rephrasing completely skips that fact and it's the essence of what is attempted to explain here. So I took another stab at it and rephrased it like this: A crate can depend on other libraries from crates.io or git repositories, listed in its +Cargo.toml+ file. Buildroot automatically takes care of downloading such dependencies as part of the download step of packages that use the +cargo-package+ infrastructure. Such dependencies are then kept together with the package source code in the tarball cached in Buildroot's +DL_DIR+, and therefore the hash of the package's tarball doesn't only cover the source of the package itself, but also covers the sources of the dependencies. Thus, a change injected into one of the dependencies will also be discovered by the hash check. In addition, this mechanism allows the build to be performed completely offline since cargo will not do any downloads during the build. Feel free to send another patch if you think it's still not clear enough :-) (BTW I took authorship of this patch of the series so you don't get the blame for the text above.) Regards, Arnout > > Rephrase the end of the section to mention the term "vendoring", and > to drop the dubious claim; retain the off-line build reference, though, > as this is indeed correct. > > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > --- > docs/manual/adding-packages-cargo.adoc | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/docs/manual/adding-packages-cargo.adoc b/docs/manual/adding-packages-cargo.adoc > index e18fd9ce23..8a2292e7b6 100644 > --- a/docs/manual/adding-packages-cargo.adoc > +++ b/docs/manual/adding-packages-cargo.adoc > @@ -93,8 +93,5 @@ repositories, listed in its +Cargo.toml+ file. Buildroot automatically > takes care of downloading such dependencies as part of the download > step of packages that use the +cargo-package+ infrastructure. Such > dependencies are then kept together with the package source code in > -the tarball cached in Buildroot's +DL_DIR+, and therefore the hash of > -the package's tarball includes such dependencies. > - > -This mechanism ensures that any change in the dependencies will be > -detected, and allows the build to be performed completely offline. > +the tarball cached in Buildroot's +DL_DIR+. This is referred to as > +_vendoring_. Vendoring allows for a completely off-line build. _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 15/20 v2] package/pkg-cargo: add support for unlocked packages 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (13 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 14/20 v2] docs/manual: rephrase end of vendoring section Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 16/20 v2] utils/checkpackagelib: add test for default _CARGO_LOCKED Yann E. MORIN ` (5 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- docs/manual/adding-packages-cargo.adoc | 22 ++++++++++++++++ package/pkg-cargo.mk | 15 ++++++++++- support/download/cargo-post-process | 35 ++++++++++++++++++++++---- 3 files changed, 66 insertions(+), 6 deletions(-) diff --git a/docs/manual/adding-packages-cargo.adoc b/docs/manual/adding-packages-cargo.adoc index 8a2292e7b6..0ed529a770 100644 --- a/docs/manual/adding-packages-cargo.adoc +++ b/docs/manual/adding-packages-cargo.adoc @@ -82,12 +82,17 @@ typical packages will therefore only use a few of them. environment of +cargo+ invocations. It used at both build and installation time +* +FOO_CARGO_LOCKED+ can be set to +YES+ (the default) or +NO+, to + specify whether the source tree has been cargo-locked or not. See + below for xref:cargo-vendoring[more details]. + * +FOO_CARGO_BUILD_OPTS+ can be used to pass additional options to +cargo+ at build time. * +FOO_CARGO_INSTALL_OPTS+ can be used to pass additional options to +cargo+ at install time. +[[cargo-vendoring]] A crate can depend on other libraries from crates.io or git repositories, listed in its +Cargo.toml+ file. Buildroot automatically takes care of downloading such dependencies as part of the download @@ -95,3 +100,20 @@ step of packages that use the +cargo-package+ infrastructure. Such dependencies are then kept together with the package source code in the tarball cached in Buildroot's +DL_DIR+. This is referred to as _vendoring_. Vendoring allows for a completely off-line build. + +When a package source tree contains a +Cargo.lock+ file, the package has +been _locked_: cargo did store the versions for the complete dependency +chain in the +Cargo.lock+ file; that is then reused by cargo during the +vendoring, which yields a reproducible dependency chain, and thus a +reproducible tarball; therefore, it is possible to compute a hash for +that archive. If a package was however not locked, then the versions for +the dependencies are unknown, the dependency chain is not reproducible, +and the archive is then not reproducible, which implies there can be no +hash for that archive. + +Packages are normally locked, so Buildroot will by default instruct +cargo to atttempt a locked vendoring; for a package that was not locked, +this would fail; in that case, +FOO_CARGO_LOCKED+ must be set to +NO+ so +Buildroot does not request cargo to attempt a locked vendoring. It is an +error to set +FOO_CARGO_LOCKED+ to +NO+ for a locked package, as it is +to set it to +YES+ (or not set it at all) on an unlocked package. diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk index 41dfcbd096..90e4facf52 100644 --- a/package/pkg-cargo.mk +++ b/package/pkg-cargo.mk @@ -195,6 +195,18 @@ ifneq ($$($(2)_SUBDIR),) $(2)_DOWNLOAD_POST_PROCESS_OPTS += -m$$($(2)_SUBDIR)/Cargo.toml endif +ifndef $(2)_CARGO_LOCKED + ifdef $(3)_CARGO_LOCKED + $(2)_CARGO_LOCKED = $$($(3)_CARGO_LOCKED) + else + $(2)_CARGO_LOCKED = YES + endif +endif + +ifeq ($$($(2)_CARGO_LOCKED),NO) +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -u +endif + # Because we append vendored info, we can't rely on the values being empty # once we eventually get into the generic-package infra. So, we duplicate # the heuristics here @@ -225,7 +237,8 @@ endif # dependencies should have been built by the download post # process logic # * --locked to force cargo to use the Cargo.lock file, which ensures -# that a fixed set of dependency versions is used +# that cargo does not update the dependencies we got during the +# vendoring, at download time # # Build step. Only define it if not already defined by the package .mk diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process index 12198051a4..90155a2fad 100755 --- a/support/download/cargo-post-process +++ b/support/download/cargo-post-process @@ -11,11 +11,13 @@ if [ "${BR_CARGO_MANIFEST_PATH}" ]; then fi manifest=Cargo.toml -while getopts "n:o:m:" OPT; do +locked=true +while getopts "n:o:m:u" OPT; do case "${OPT}" in o) output="${OPTARG}";; n) base_name="${OPTARG}";; m) manifest="${OPTARG}";; + u) locked=false;; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac @@ -26,19 +28,42 @@ if tar tf "${output}" | grep -q "^[^/]*/VENDOR" ; then exit 0 fi +declare -a vendor_opts +vendor_opts=( --manifest-path "${manifest}" ) +if ${locked}; then + vendor_opts+=( --locked ) +fi + post_process_unpack "${base_name}" "${output}" # Do the Cargo vendoring pushd "${base_name}" > /dev/null +# The lock file is somewhere from down next to the toml (when the rust +# package is the top-level, only rust package), up to the root of the +# source tree (when the rust package is part of a rust workspace, or +# is part of an other-language package, like python). +lock_dir="$(dirname "${manifest}")" +while [ "${lock_dir}" != "." ]; do + if [ -e "${lock_dir}/Cargo.lock" ]; then break; fi + lock_dir="$(dirname "${lock_dir}")" +done + +if [ -e "${lock_dir}/Cargo.lock" ] && ! ${locked}; then + printf 'Unlocked vendoring was requested, but source tree has %s/Cargo.lock\n' "${lock_dir}" + exit 1 +elif [ ! -e "${lock_dir}/Cargo.lock" ] && ${locked}; then + # Although cargo itself would check for that, and error out in such + # a case, the error message can be confusing, so do it ourselves + printf 'Locked vendoring was requested, but source tree has no Cargo.lock\n' + exit 1 +fi >&2 + # Create the local .cargo/config with vendor info mkdir -p .cargo/ mkdir -p "${CARGO_HOME}" flock "${CARGO_HOME}"/.br-lock \ -cargo vendor \ - --manifest-path "${manifest}" \ - --locked VENDOR \ - > .cargo/config +cargo vendor "${vendor_opts[@]}" VENDOR > .cargo/config # "cargo vendor' outputs on stderr a message directing to add some data # to the project's .cargo/config.toml, data that it outputs on stdout. -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 16/20 v2] utils/checkpackagelib: add test for default _CARGO_LOCKED 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (14 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 15/20 v2] package/pkg-cargo: add support for unlocked packages Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 17/20 v2] RFC: package/anvil: new package Yann E. MORIN ` (4 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN, Ricardo Martincoski Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Ricardo Martincoski <ricardo.martincoski@datacom.com.br> --- utils/checkpackagelib/lib_mk.py | 8 ++++++++ utils/checkpackagelib/test_lib_mk.py | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/utils/checkpackagelib/lib_mk.py b/utils/checkpackagelib/lib_mk.py index ce2ab5157c..4e9264ba35 100644 --- a/utils/checkpackagelib/lib_mk.py +++ b/utils/checkpackagelib/lib_mk.py @@ -322,6 +322,8 @@ class UselessFlag(_CheckFunction): DEFAULT_AUTOTOOLS_FLAG = re.compile(r"^.*{}".format("|".join([ r"_AUTORECONF\s*=\s*NO", r"_LIBTOOL_PATCH\s*=\s*YES"]))) + DEFAULT_CARGO_FLAG = re.compile(r"^.*{}".format("|".join([ + r"_CARGO_LOCKED\s*=\s*YES"]))) DEFAULT_GENERIC_FLAG = re.compile(r"^.*{}".format("|".join([ r"_INSTALL_IMAGES\s*=\s*NO", r"_INSTALL_REDISTRIBUTE\s*=\s*YES", @@ -357,6 +359,12 @@ class UselessFlag(_CheckFunction): .format(self.filename, lineno, self.url_to_manual), text] + if self.DEFAULT_CARGO_FLAG.search(text): + return ["{}:{}: useless default value " + "({}#_infrastructure_for_cargo_based_packages)" + .format(self.filename, lineno, self.url_to_manual), + text] + class VariableWithBraces(_CheckFunction): VARIABLE_WITH_BRACES = re.compile(r"^[^#].*[^$]\${\w+}") diff --git a/utils/checkpackagelib/test_lib_mk.py b/utils/checkpackagelib/test_lib_mk.py index 2086237ebb..bc26e16f8c 100644 --- a/utils/checkpackagelib/test_lib_mk.py +++ b/utils/checkpackagelib/test_lib_mk.py @@ -599,6 +599,24 @@ UselessFlag = [ 'any.mk', 'ANY_LIBTOOL_PATCH= \t NO\n', []), + ('cargo locked no', + 'any.mk', + 'ANY_CARGO_LOCKED=NO\n', + []), + ('host cargo locked no', + 'any.mk', + 'HOST_ANY_CARGO_LOCKED=NO\n', + []), + ('cargo locked yes', + 'any.mk', + 'HOST_ANY_CARGO_LOCKED=YES\n', + [['any.mk:1: useless default value (url#_infrastructure_for_cargo_based_packages)', + 'HOST_ANY_CARGO_LOCKED=YES\n']]), + ('host cargo locked yes', + 'any.mk', + 'ANY_CARGO_LOCKED=YES\n', + [['any.mk:1: useless default value (url#_infrastructure_for_cargo_based_packages)', + 'ANY_CARGO_LOCKED=YES\n']]), ('generic', 'any.mk', 'ANY_INSTALL_IMAGES = NO\n' -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 17/20 v2] RFC: package/anvil: new package 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (15 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 16/20 v2] utils/checkpackagelib: add test for default _CARGO_LOCKED Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-07-14 9:01 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 18/20 v2] package/pkg-utils: accept pacakge-specific archive format version Yann E. MORIN ` (3 subsequent siblings) 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Thie is an RFC, because it has only been build-tested to validate the cargo-unlocked case; there has been no runtime test of anvil. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- package/Config.in | 1 + package/anvil/Config.in | 20 ++++++++++++++++++++ package/anvil/anvil.mk | 30 ++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 package/anvil/Config.in create mode 100644 package/anvil/anvil.mk diff --git a/package/Config.in b/package/Config.in index bfbec1c21d..3f4fbf0543 100644 --- a/package/Config.in +++ b/package/Config.in @@ -313,6 +313,7 @@ endmenu menu "Graphic libraries and applications (graphic/text)" comment "Graphic applications" + source "package/anvil/Config.in" source "package/cage/Config.in" source "package/cog/Config.in" source "package/dmenu-wayland/Config.in" diff --git a/package/anvil/Config.in b/package/anvil/Config.in new file mode 100644 index 0000000000..eb65a9fb53 --- /dev/null +++ b/package/anvil/Config.in @@ -0,0 +1,20 @@ +config BR2_PACKAGE_ANVIL + bool "anvil" + depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS + depends on !BR2_STATIC_LIBS # wayland + depends on BR2_TOOLCHAIN_HAS_THREADS # wayland + depends on BR2_PACKAGE_HAS_UDEV + depends on BR2_PACKAGE_MESA3D_GBM + select BR2_PACKAGE_HOST_RUSTC + select BR2_PACKAGE_LIBINPUT + select BR2_PACKAGE_LIBXKBCOMMON + select BR2_PACKAGE_PIXMAN + select BR2_PACKAGE_SEATD + select BR2_PACKAGE_WAYLAND + +comment "anvil needs udev /dev amangement, mesa3d w/ gbm, a toolchain w/ threads, shared libs" + depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS + depends on BR2_STATIC_LIBS \ + || !BR2_TOOLCHAIN_HAS_THREADS \ + || !BR2_PACKAGE_HAS_UDEV \ + || !BR2_PACKAGE_MESA3D_GBM diff --git a/package/anvil/anvil.mk b/package/anvil/anvil.mk new file mode 100644 index 0000000000..7de9f3e06d --- /dev/null +++ b/package/anvil/anvil.mk @@ -0,0 +1,30 @@ +################################################################################ +# +# anvil +# +################################################################################ + +ANVIL_VERSION = fb44b240ea4a3aa39a6b92f5bede23301ab9a26e +ANVIL_SITE = https://github.com/Smithay/smithay +ANVIL_SITE_METHOD = git + +# Upstream refuses to lock their package: +# https://github.com/Smithay/smithay/issues/496 +ANVIL_CARGO_LOCKED = NO + +ANVIL_SUBDIR = anvil + +ANVIL_DEPENDENCIES = \ + libinput \ + libxkbcommon \ + mesa3d \ + pixman \ + seatd \ + udev \ + wayland + +ifeq ($(BR2_PACKAGE_XWAYLAND),y) +ANVIL_DEPENDENCIES += xwayland +endif + +$(eval $(cargo-package)) -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 17/20 v2] RFC: package/anvil: new package 2024-06-07 17:05 ` [Buildroot] [PATCH 17/20 v2] RFC: package/anvil: new package Yann E. MORIN @ 2024-07-14 9:01 ` Arnout Vandecappelle via buildroot 0 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 9:01 UTC (permalink / raw) To: Yann E. MORIN, buildroot On 07/06/2024 19:05, Yann E. MORIN wrote: > Thie is an RFC, because it has only been build-tested to validate the > cargo-unlocked case; there has been no runtime test of anvil. > > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > --- > package/Config.in | 1 + > package/anvil/Config.in | 20 ++++++++++++++++++++ > package/anvil/anvil.mk | 30 ++++++++++++++++++++++++++++++ > 3 files changed, 51 insertions(+) > create mode 100644 package/anvil/Config.in > create mode 100644 package/anvil/anvil.mk > > diff --git a/package/Config.in b/package/Config.in > index bfbec1c21d..3f4fbf0543 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -313,6 +313,7 @@ endmenu > menu "Graphic libraries and applications (graphic/text)" > > comment "Graphic applications" > + source "package/anvil/Config.in" > source "package/cage/Config.in" > source "package/cog/Config.in" > source "package/dmenu-wayland/Config.in" > diff --git a/package/anvil/Config.in b/package/anvil/Config.in > new file mode 100644 > index 0000000000..eb65a9fb53 > --- /dev/null > +++ b/package/anvil/Config.in > @@ -0,0 +1,20 @@ > +config BR2_PACKAGE_ANVIL > + bool "anvil" > + depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS > + depends on !BR2_STATIC_LIBS # wayland > + depends on BR2_TOOLCHAIN_HAS_THREADS # wayland > + depends on BR2_PACKAGE_HAS_UDEV > + depends on BR2_PACKAGE_MESA3D_GBM > + select BR2_PACKAGE_HOST_RUSTC > + select BR2_PACKAGE_LIBINPUT > + select BR2_PACKAGE_LIBXKBCOMMON > + select BR2_PACKAGE_PIXMAN > + select BR2_PACKAGE_SEATD > + select BR2_PACKAGE_WAYLAND I guess it never even was meant to be merged because there's no help text here! Regards, Arnout > + > +comment "anvil needs udev /dev amangement, mesa3d w/ gbm, a toolchain w/ threads, shared libs" > + depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS > + depends on BR2_STATIC_LIBS \ > + || !BR2_TOOLCHAIN_HAS_THREADS \ > + || !BR2_PACKAGE_HAS_UDEV \ > + || !BR2_PACKAGE_MESA3D_GBM > diff --git a/package/anvil/anvil.mk b/package/anvil/anvil.mk > new file mode 100644 > index 0000000000..7de9f3e06d > --- /dev/null > +++ b/package/anvil/anvil.mk > @@ -0,0 +1,30 @@ > +################################################################################ > +# > +# anvil > +# > +################################################################################ > + > +ANVIL_VERSION = fb44b240ea4a3aa39a6b92f5bede23301ab9a26e > +ANVIL_SITE = https://github.com/Smithay/smithay > +ANVIL_SITE_METHOD = git > + > +# Upstream refuses to lock their package: > +# https://github.com/Smithay/smithay/issues/496 > +ANVIL_CARGO_LOCKED = NO > + > +ANVIL_SUBDIR = anvil > + > +ANVIL_DEPENDENCIES = \ > + libinput \ > + libxkbcommon \ > + mesa3d \ > + pixman \ > + seatd \ > + udev \ > + wayland > + > +ifeq ($(BR2_PACKAGE_XWAYLAND),y) > +ANVIL_DEPENDENCIES += xwayland > +endif > + > +$(eval $(cargo-package)) _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 18/20 v2] package/pkg-utils: accept pacakge-specific archive format version 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (16 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 17/20 v2] RFC: package/anvil: new package Yann E. MORIN @ 2024-06-07 17:05 ` Yann E. MORIN 2024-06-07 17:06 ` [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock Yann E. MORIN ` (2 subsequent siblings) 20 siblings, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:05 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- package/pkg-utils.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk index d1964299af..598ae6605e 100644 --- a/package/pkg-utils.mk +++ b/package/pkg-utils.mk @@ -47,8 +47,9 @@ pkgname = $(lastword $(subst /, ,$(pkgdir))) # Helper to build the extension for a package archive, based on various # conditions. +# NOTE! _EXTRA_FMT_VERSION should only be set by the infra, not individual packages! # $(1): upper-case package name -pkg_source_ext = $(BR_FMT_VERSION_$($(1)_SITE_METHOD))$(BR_FMT_VERSION_$($(1)_DOWNLOAD_POST_PROCESS)).tar.gz +pkg_source_ext = $(BR_FMT_VERSION_$($(1)_SITE_METHOD))$(BR_FMT_VERSION_$($(1)_DOWNLOAD_POST_PROCESS))$($(1)_EXTRA_FMT_VERSION).tar.gz # Define extractors for different archive suffixes INFLATE.bz2 = $(BZCAT) -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (17 preceding siblings ...) 2024-06-07 17:05 ` [Buildroot] [PATCH 18/20 v2] package/pkg-utils: accept pacakge-specific archive format version Yann E. MORIN @ 2024-06-07 17:06 ` Yann E. MORIN 2024-06-07 19:49 ` Yann E. MORIN 2024-07-14 9:11 ` Arnout Vandecappelle via buildroot 2024-06-07 17:06 ` [Buildroot] [PATCH 20/20 v2] RFC: package/anvil: add " Yann E. MORIN 2024-07-14 8:59 ` [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Arnout Vandecappelle via buildroot 20 siblings, 2 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:06 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- docs/manual/adding-packages-cargo.adoc | 27 ++++++++++++++++---------- package/pkg-cargo.mk | 14 +++++++++++++ support/download/cargo-post-process | 21 +++++++++++++++++++- 3 files changed, 51 insertions(+), 11 deletions(-) diff --git a/docs/manual/adding-packages-cargo.adoc b/docs/manual/adding-packages-cargo.adoc index 0ed529a770..e252c347ee 100644 --- a/docs/manual/adding-packages-cargo.adoc +++ b/docs/manual/adding-packages-cargo.adoc @@ -82,9 +82,23 @@ typical packages will therefore only use a few of them. environment of +cargo+ invocations. It used at both build and installation time -* +FOO_CARGO_LOCKED+ can be set to +YES+ (the default) or +NO+, to - specify whether the source tree has been cargo-locked or not. See - below for xref:cargo-vendoring[more details]. +* +FOO_CARGO_LOCKED+ to specify how the source tree has been + xref:cargo-vendoring[cargo-locked] by its upstream: ++ +** +YES+ (the default if unset): the package has been cargo-locked; it + is an error to set +FOO_CARGO_LOCKED=YES+ (or leave it unset) for an + unlocked package; +** +NO+: the package has not been cargo-locked, and no locking should + be attempted by Buildroot; it is an error to set +FOO_CARGO_LOCKED=NO+ + for a cargo-locked package; +** +buildroot+: the package has not been cargo-locked, but a `Cargo.lock` + is provided in the Buildroot package (next to the +.mk+ file); in that + situation, +FOO_CARGO_LOCK_VERSION+ must be set to a value that changes + everytime the +Cargo.lock+ in Buildroot is updated (e.g. by setting + +FOO_CARGO_LOCK_VERSION=1+ the first time, and incrementing it for + every change in +Cargo.lock+; reset it to +1+ when the package version + itself, +FOO_VERSION+, is updated); it is an error to set + +FOO_CARGO_LOCKED=buildroot+ for a cargo-locked package. * +FOO_CARGO_BUILD_OPTS+ can be used to pass additional options to +cargo+ at build time. @@ -110,10 +124,3 @@ that archive. If a package was however not locked, then the versions for the dependencies are unknown, the dependency chain is not reproducible, and the archive is then not reproducible, which implies there can be no hash for that archive. - -Packages are normally locked, so Buildroot will by default instruct -cargo to atttempt a locked vendoring; for a package that was not locked, -this would fail; in that case, +FOO_CARGO_LOCKED+ must be set to +NO+ so -Buildroot does not request cargo to attempt a locked vendoring. It is an -error to set +FOO_CARGO_LOCKED+ to +NO+ for a locked package, as it is -to set it to +YES+ (or not set it at all) on an unlocked package. diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk index 90e4facf52..034402c20e 100644 --- a/package/pkg-cargo.mk +++ b/package/pkg-cargo.mk @@ -203,8 +203,22 @@ ifndef $(2)_CARGO_LOCKED endif endif +ifndef $(2)_CARGO_LOCK_VERSION + ifdef $(3)_CARGO_LOCK_VERSION + $(2)_CARGO_LOCK_VERSION = $$($(3)_CARGO_LOCK_VERSION) + else + $(2)_CARGO_LOCK_VERSION = YES + endif +endif + ifeq ($$($(2)_CARGO_LOCKED),NO) $(2)_DOWNLOAD_POST_PROCESS_OPTS += -u +else ifeq ($$($(2)_CARGO_LOCKED),buildroot) +ifeq ($$($(2)_CARGO_LOCK_VERSION),) +$$(error $(1) uses a Cargo.lock bundled with Buildroot, but does not define $(2)_CARGO_LOCK_VERSION) +endif +$(2)_EXTRA_FMT_VERSION = -lock$$($(2)_CARGO_LOCK_VERSION) +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -L $$(abspath $$($(2)_PKGDIR)/Cargo.lock) endif # Because we append vendored info, we can't rely on the values being empty diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process index 90155a2fad..3431d04a72 100755 --- a/support/download/cargo-post-process +++ b/support/download/cargo-post-process @@ -12,12 +12,14 @@ fi manifest=Cargo.toml locked=true -while getopts "n:o:m:u" OPT; do +cargo_lock= +while getopts "n:o:m:uL:" OPT; do case "${OPT}" in o) output="${OPTARG}";; n) base_name="${OPTARG}";; m) manifest="${OPTARG}";; u) locked=false;; + L) cargo_lock="${OPTARG}";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac @@ -49,6 +51,23 @@ while [ "${lock_dir}" != "." ]; do lock_dir="$(dirname "${lock_dir}")" done +if [ "${cargo_lock}" ]; then + if [ -e "${lock_dir}/Cargo.lock" ]; then + printf 'Cannot override %s/Cargo.lock with custom %s\n' "${lock_dir}" "${cargo_lock}" + exit 1 + fi >&2 + # When the package had no Cargo.lock, we need to + # copy ours next to the top-most manifest. + dir="${manifest}" + while [ "${dir}" != "." ]; do + dir="$(dirname "${dir}")" + if [ -e "${dir}/Cargo.lock" ]; then + lock_dir="${dir}" + fi + done + cp "${cargo_lock}" "${lock_dir}/Cargo.lock" +fi + if [ -e "${lock_dir}/Cargo.lock" ] && ! ${locked}; then printf 'Unlocked vendoring was requested, but source tree has %s/Cargo.lock\n' "${lock_dir}" exit 1 -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock 2024-06-07 17:06 ` [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock Yann E. MORIN @ 2024-06-07 19:49 ` Yann E. MORIN 2024-07-14 9:11 ` Arnout Vandecappelle via buildroot 1 sibling, 0 replies; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 19:49 UTC (permalink / raw) To: buildroot All, On 2024-06-07 19:06 +0200, Yann E. MORIN spake thusly: > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> [--SNIP--] > diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process > index 90155a2fad..3431d04a72 100755 > --- a/support/download/cargo-post-process > +++ b/support/download/cargo-post-process [--SNIP--] > @@ -49,6 +51,23 @@ while [ "${lock_dir}" != "." ]; do > lock_dir="$(dirname "${lock_dir}")" > done > > +if [ "${cargo_lock}" ]; then > + if [ -e "${lock_dir}/Cargo.lock" ]; then > + printf 'Cannot override %s/Cargo.lock with custom %s\n' "${lock_dir}" "${cargo_lock}" > + exit 1 > + fi >&2 > + # When the package had no Cargo.lock, we need to > + # copy ours next to the top-most manifest. > + dir="${manifest}" > + while [ "${dir}" != "." ]; do > + dir="$(dirname "${dir}")" > + if [ -e "${dir}/Cargo.lock" ]; then Damn, the test should have been against Cargo.toml here, not Cargo.lock. I did not notice so far, because the only unlock package I know of had its Cargo.toml at the root, and the loop ends at the root. I've fixed that locally, until the next respin. Regards, Yann E. MORIN. > + lock_dir="${dir}" > + fi > + done > + cp "${cargo_lock}" "${lock_dir}/Cargo.lock" > +fi > + > if [ -e "${lock_dir}/Cargo.lock" ] && ! ${locked}; then > printf 'Unlocked vendoring was requested, but source tree has %s/Cargo.lock\n' "${lock_dir}" > exit 1 > -- > 2.45.1 > -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock 2024-06-07 17:06 ` [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock Yann E. MORIN 2024-06-07 19:49 ` Yann E. MORIN @ 2024-07-14 9:11 ` Arnout Vandecappelle via buildroot 1 sibling, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 9:11 UTC (permalink / raw) To: Yann E. MORIN, buildroot Hi Yann, On 07/06/2024 19:06, Yann E. MORIN wrote: > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > --- > docs/manual/adding-packages-cargo.adoc | 27 ++++++++++++++++---------- > package/pkg-cargo.mk | 14 +++++++++++++ > support/download/cargo-post-process | 21 +++++++++++++++++++- > 3 files changed, 51 insertions(+), 11 deletions(-) > > diff --git a/docs/manual/adding-packages-cargo.adoc b/docs/manual/adding-packages-cargo.adoc > index 0ed529a770..e252c347ee 100644 > --- a/docs/manual/adding-packages-cargo.adoc > +++ b/docs/manual/adding-packages-cargo.adoc > @@ -82,9 +82,23 @@ typical packages will therefore only use a few of them. > environment of +cargo+ invocations. It used at both build and > installation time > > -* +FOO_CARGO_LOCKED+ can be set to +YES+ (the default) or +NO+, to > - specify whether the source tree has been cargo-locked or not. See > - below for xref:cargo-vendoring[more details]. > +* +FOO_CARGO_LOCKED+ to specify how the source tree has been > + xref:cargo-vendoring[cargo-locked] by its upstream: > ++ > +** +YES+ (the default if unset): the package has been cargo-locked; it > + is an error to set +FOO_CARGO_LOCKED=YES+ (or leave it unset) for an > + unlocked package; > +** +NO+: the package has not been cargo-locked, and no locking should > + be attempted by Buildroot; it is an error to set +FOO_CARGO_LOCKED=NO+ > + for a cargo-locked package; > +** +buildroot+: the package has not been cargo-locked, but a `Cargo.lock` > + is provided in the Buildroot package (next to the +.mk+ file); in that > + situation, +FOO_CARGO_LOCK_VERSION+ must be set to a value that changes > + everytime the +Cargo.lock+ in Buildroot is updated (e.g. by setting Ah crap I forgot about that, indeed we need this variable... > + +FOO_CARGO_LOCK_VERSION=1+ the first time, and incrementing it for > + every change in +Cargo.lock+; reset it to +1+ when the package version > + itself, +FOO_VERSION+, is updated); it is an error to set Strictly speaking we don't need those constraints, but it's good to document it like that. > + +FOO_CARGO_LOCKED=buildroot+ for a cargo-locked package. > > * +FOO_CARGO_BUILD_OPTS+ can be used to pass additional options to > +cargo+ at build time. > @@ -110,10 +124,3 @@ that archive. If a package was however not locked, then the versions for > the dependencies are unknown, the dependency chain is not reproducible, > and the archive is then not reproducible, which implies there can be no > hash for that archive. > - > -Packages are normally locked, so Buildroot will by default instruct > -cargo to atttempt a locked vendoring; for a package that was not locked, > -this would fail; in that case, +FOO_CARGO_LOCKED+ must be set to +NO+ so > -Buildroot does not request cargo to attempt a locked vendoring. It is an > -error to set +FOO_CARGO_LOCKED+ to +NO+ for a locked package, as it is > -to set it to +YES+ (or not set it at all) on an unlocked package. > diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk > index 90e4facf52..034402c20e 100644 > --- a/package/pkg-cargo.mk > +++ b/package/pkg-cargo.mk > @@ -203,8 +203,22 @@ ifndef $(2)_CARGO_LOCKED > endif > endif > > +ifndef $(2)_CARGO_LOCK_VERSION > + ifdef $(3)_CARGO_LOCK_VERSION > + $(2)_CARGO_LOCK_VERSION = $$($(3)_CARGO_LOCK_VERSION) > + else > + $(2)_CARGO_LOCK_VERSION = YES I think the default should be empty, and it is an error to provide Cargo.lock without a version. > + endif > +endif > + > ifeq ($$($(2)_CARGO_LOCKED),NO) > $(2)_DOWNLOAD_POST_PROCESS_OPTS += -u > +else ifeq ($$($(2)_CARGO_LOCKED),buildroot) > +ifeq ($$($(2)_CARGO_LOCK_VERSION),) > +$$(error $(1) uses a Cargo.lock bundled with Buildroot, but does not define $(2)_CARGO_LOCK_VERSION) > +endif > +$(2)_EXTRA_FMT_VERSION = -lock$$($(2)_CARGO_LOCK_VERSION) > +$(2)_DOWNLOAD_POST_PROCESS_OPTS += -L $$(abspath $$($(2)_PKGDIR)/Cargo.lock) So, instead of all these additional variables, I would simply check if there's a Cargo.lock in PKGDIR. If there is, that one gets used instead of the upstream one. > endif > > # Because we append vendored info, we can't rely on the values being empty > diff --git a/support/download/cargo-post-process b/support/download/cargo-post-process > index 90155a2fad..3431d04a72 100755 > --- a/support/download/cargo-post-process > +++ b/support/download/cargo-post-process > @@ -12,12 +12,14 @@ fi > > manifest=Cargo.toml > locked=true > -while getopts "n:o:m:u" OPT; do > +cargo_lock= > +while getopts "n:o:m:uL:" OPT; do > case "${OPT}" in > o) output="${OPTARG}";; > n) base_name="${OPTARG}";; > m) manifest="${OPTARG}";; > u) locked=false;; > + L) cargo_lock="${OPTARG}";; > :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; > \?) error "unknown option '%s'\n" "${OPTARG}";; > esac > @@ -49,6 +51,23 @@ while [ "${lock_dir}" != "." ]; do > lock_dir="$(dirname "${lock_dir}")" > done > > +if [ "${cargo_lock}" ]; then > + if [ -e "${lock_dir}/Cargo.lock" ]; then > + printf 'Cannot override %s/Cargo.lock with custom %s\n' "${lock_dir}" "${cargo_lock}" Why not? There can be situations where this is exactly what we want to do - e.g. there's a security issue in one of the dependencies, upstream hasn't updated yet, and we want to carry the update. > + exit 1 > + fi >&2 > + # When the package had no Cargo.lock, we need to > + # copy ours next to the top-most manifest. > + dir="${manifest}" > + while [ "${dir}" != "." ]; do > + dir="$(dirname "${dir}")" > + if [ -e "${dir}/Cargo.lock" ]; then > + lock_dir="${dir}" > + fi > + done Since we just checked that there's no Cargo.lock at all, doesn't that mean we end up putting the lock file in .? I think we should just put it next to the manifest. What happens if there's a lock file next to the manifest, and also another (inconsistent) lock file somewhere higher up? Regards, Arnout > + cp "${cargo_lock}" "${lock_dir}/Cargo.lock" > +fi > + > if [ -e "${lock_dir}/Cargo.lock" ] && ! ${locked}; then > printf 'Unlocked vendoring was requested, but source tree has %s/Cargo.lock\n' "${lock_dir}" > exit 1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* [Buildroot] [PATCH 20/20 v2] RFC: package/anvil: add local Cargo.lock 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (18 preceding siblings ...) 2024-06-07 17:06 ` [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock Yann E. MORIN @ 2024-06-07 17:06 ` Yann E. MORIN 2024-07-14 9:13 ` Arnout Vandecappelle via buildroot 2024-07-14 8:59 ` [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Arnout Vandecappelle via buildroot 20 siblings, 1 reply; 33+ messages in thread From: Yann E. MORIN @ 2024-06-07 17:06 UTC (permalink / raw) To: buildroot; +Cc: Yann E. MORIN Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- package/anvil/Cargo.lock | 3464 ++++++++++++++++++++++++++++++++++++++ package/anvil/anvil.hash | 2 + package/anvil/anvil.mk | 5 +- 3 files changed, 3469 insertions(+), 2 deletions(-) create mode 100644 package/anvil/Cargo.lock create mode 100644 package/anvil/anvil.hash diff --git a/package/anvil/Cargo.lock b/package/anvil/Cargo.lock new file mode 100644 index 0000000000..c7656b19e4 --- /dev/null +++ b/package/anvil/Cargo.lock @@ -0,0 +1,3464 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned-vec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" + +[[package]] +name = "android-activity" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" +dependencies = [ + "android-properties", + "bitflags 2.5.0", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anvil" +version = "0.0.1" +dependencies = [ + "bitflags 2.5.0", + "fps_ticker", + "gl_generator", + "image", + "profiling", + "puffin_http", + "rand", + "renderdoc", + "smithay", + "smithay-drm-extras", + "thiserror", + "tracing", + "tracing-subscriber", + "x11rb", + "xcursor", + "xkbcommon", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "appendlist" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e149dc73cd30538307e7ffa2acd3d2221148eaeed4871f246657b1c3eaa1cbd2" + +[[package]] +name = "approx" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "ash" +version = "0.37.3+1.3.251" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +dependencies = [ + "libloading 0.7.4", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "av1-grain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.5.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn", + "which", +] + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitstream-io" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" + +[[package]] +name = "block-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" +dependencies = [ + "block-sys", + "objc2", +] + +[[package]] +name = "built" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6a6c0b39c38fd754ac338b00a88066436389c0f029da5d37d1e01091d9b7c17" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "calloop" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" +dependencies = [ + "bitflags 2.5.0", + "log", + "polling", + "rustix", + "slab", + "thiserror", +] + +[[package]] +name = "calloop" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +dependencies = [ + "bitflags 2.5.0", + "log", + "polling", + "rustix", + "slab", + "thiserror", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +dependencies = [ + "calloop 0.12.4", + "rustix", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cgmath" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317" +dependencies = [ + "approx", + "num-traits", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading 0.8.3", +] + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "container_of" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89f5bbeb86761f66a87f8e327265ea0111f82f1928a84037b9abedab9f79472b" +dependencies = [ + "memoffset 0.6.5", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "cursor-icon" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading 0.8.3", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "drm" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1" +dependencies = [ + "bitflags 2.5.0", + "bytemuck", + "drm-ffi", + "drm-fourcc", + "rustix", +] + +[[package]] +name = "drm-ffi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c98727e48b7ccb4f4aea8cfe881e5b07f702d17b7875991881b41af7278d53" +dependencies = [ + "drm-sys", + "rustix", +] + +[[package]] +name = "drm-fourcc" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" + +[[package]] +name = "drm-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd39dde40b6e196c2e8763f23d119ddb1a8714534bf7d77fa97a65b0feda3986" +dependencies = [ + "bindgen", + "libc", + "linux-raw-sys 0.6.4", + "pkg-config", +] + +[[package]] +name = "edid-rs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab5fa33485cd85ac354df485819a63360fefa312fe04cffe65e6f175be1522c" + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "exr" +version = "1.72.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "fps_ticker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe164905ff69757d4bdc4c61d7df2930e47e2f5b4a132895a8f995990b2b9219" + +[[package]] +name = "gbm" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bf55ba6dd53ad0ac115046ff999c5324c283444ee6e0be82454c4e8eb2f36a" +dependencies = [ + "bitflags 2.5.0", + "drm", + "drm-fourcc", + "gbm-sys", + "libc", + "wayland-backend", + "wayland-server", +] + +[[package]] +name = "gbm-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd2d6bf7c0143b38beece05f9a5c4c851a49a8434f62bf58ff28da92b0ddc58" +dependencies = [ + "bindgen", + "libc", + "proc-macro2", + "regex", +] + +[[package]] +name = "generator" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186014d53bc231d0090ef8d6f03e0920c54d85a5ed22f4f2f74315ec56cf83fb" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "gethostname" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" +dependencies = [ + "libc", + "windows-targets 0.48.5", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gif" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "glow" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "icrate" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" +dependencies = [ + "block2", + "dispatch", + "objc2", +] + +[[package]] +name = "image" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "image-webp", + "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core", + "zune-jpeg", +] + +[[package]] +name = "image-webp" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d" +dependencies = [ + "byteorder-lite", + "thiserror", +] + +[[package]] +name = "imgref" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "input" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7911ce3db9c10c5ab4a35c49af778a5f9a827bd0f7371d9be56175d8dd2740d0" +dependencies = [ + "bitflags 2.5.0", + "input-sys", + "io-lifetimes 1.0.11", + "libc", + "udev", +] + +[[package]] +name = "input-sys" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd4f5b4d1c00331c5245163aacfe5f20be75b564c7112d45893d4ae038119eb0" +dependencies = [ + "bindgen", + "proc-macro2", + "regex", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "io-lifetimes" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libfuzzer-sys" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" +dependencies = [ + "arbitrary", + "cc", + "once_cell", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libredox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +dependencies = [ + "bitflags 2.5.0", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libseat" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a0adf8d8607a73a5b74cbe4132f57cb349e4bf860103cd089461bbcbc9907e" +dependencies = [ + "errno", + "libseat-sys", + "log", +] + +[[package]] +name = "libseat-sys" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3671cb5e03871f1d6bf0b3b5daa9275549e348fa6359e0f9adb910ca163d4c34" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libudev-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "linux-raw-sys" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + +[[package]] +name = "lz4_flex" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8c72594ac26bfd34f2d99dfced2edfaddfe8a476e3ff2ca0eb293d925c4f83" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memmap2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.5.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.5.0+25.2.9519653" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "orbclient" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" +dependencies = [ + "libredox", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pixman" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a24da0bec14f4e43a495c1837a3c358b87532e7fe66bd75c348b89f0451b6" +dependencies = [ + "drm-fourcc", + "paste", + "pixman-sys", + "thiserror", +] + +[[package]] +name = "pixman-sys" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0483e89e81d7915defe83c51f23f6800594d64f6f4a21253ce87fd8444ada" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6a007746f34ed64099e88783b0ae369eaa3da6392868ba262e2af9b8fbaea1" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +dependencies = [ + "profiling-procmacros", + "puffin 0.19.0", + "tracy-client", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "puffin" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76425abd4e1a0ad4bd6995dd974b52f414fca9974171df8e3708b3e660d05a21" +dependencies = [ + "anyhow", + "bincode", + "byteorder", + "cfg-if", + "instant", + "lz4_flex", + "once_cell", + "parking_lot", + "serde", +] + +[[package]] +name = "puffin" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f76ad4bb049fded4e572df72cbb6381ff5d1f41f85c3a04b56e4eca287a02f" +dependencies = [ + "anyhow", + "byteorder", + "cfg-if", + "once_cell", + "parking_lot", +] + +[[package]] +name = "puffin_http" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13bffc600c35913d282ae1e96a6ffcdf36dc7a7cdb9310e0ba15914d258c8193" +dependencies = [ + "anyhow", + "crossbeam-channel", + "log", + "puffin 0.16.0", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools 0.12.1", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand", + "rand_chacha", + "simd_helpers", + "system-deps", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "regex" +version = "1.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "renderdoc" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "272da9ec1e28b0ef17df4dcefad820b13f098ebe9c82697111fc57ccff621e12" +dependencies = [ + "bitflags 1.3.2", + "float-cmp", + "libloading 0.7.4", + "once_cell", + "renderdoc-sys", + "winapi", + "wio", +] + +[[package]] +name = "renderdoc-sys" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" + +[[package]] +name = "rgb" +version = "0.8.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scan_fmt" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b53b0a5db882a8e2fdaae0a43f7b39e7e9082389e978398bdf223a55b581248" + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smallvil" +version = "0.1.0" +dependencies = [ + "bitflags 2.5.0", + "smithay", + "tracing-subscriber", +] + +[[package]] +name = "smithay" +version = "0.3.0" +dependencies = [ + "appendlist", + "ash", + "bitflags 2.5.0", + "calloop 0.13.0", + "cc", + "cgmath", + "clap", + "criterion", + "cursor-icon", + "downcast-rs", + "drm", + "drm-ffi", + "drm-fourcc", + "encoding_rs", + "errno", + "gbm", + "gl_generator", + "glow", + "image", + "indexmap", + "input", + "lazy_static", + "libc", + "libloading 0.8.3", + "libseat", + "once_cell", + "pixman", + "pkg-config", + "profiling", + "rand", + "rustix", + "scan_fmt", + "scopeguard", + "smallvec", + "tempfile", + "thiserror", + "tracing", + "tracing-subscriber", + "udev", + "wayland-backend", + "wayland-egl", + "wayland-protocols 0.32.1", + "wayland-protocols-misc", + "wayland-protocols-wlr 0.3.1", + "wayland-server", + "wayland-sys", + "winit", + "x11rb", + "xkbcommon", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" +dependencies = [ + "bitflags 2.5.0", + "calloop 0.12.4", + "calloop-wayland-source", + "cursor-icon", + "libc", + "log", + "memmap2 0.9.4", + "rustix", + "thiserror", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols 0.31.2", + "wayland-protocols-wlr 0.2.0", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smithay-drm-extras" +version = "0.1.0" +dependencies = [ + "drm", + "edid-rs", + "pkg-config", + "smithay", +] + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "toml" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.13", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.9", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracy-client" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fb931a64ff88984f86d3e9bcd1ae8843aa7fe44dd0f8097527bc172351741d" +dependencies = [ + "loom", + "once_cell", + "tracy-client-sys", +] + +[[package]] +name = "tracy-client-sys" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d104d610dfa9dd154535102cc9c6164ae1fa37842bc2d9e83f9ac82b0ae0882" +dependencies = [ + "cc", +] + +[[package]] +name = "udev" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50051c6e22be28ee6f217d50014f3bc29e81c20dc66ff7ca0d5c5226e1dcc5a1" +dependencies = [ + "io-lifetimes 1.0.11", + "libc", + "libudev-sys", + "pkg-config", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "v_frame" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wayland-backend" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34e9e6b6d4a2bb4e7e69433e0b35c7923b95d4dc8503a84d25ec917a4bbfdf07" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e63801c85358a431f986cffa74ba9599ff571fc5774ac113ed3b490c19a1133" +dependencies = [ + "bitflags 2.5.0", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.5.0", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a206e8b2b53b1d3fcb9428fec72bc278ce539e2fa81fe2bfc1ab27703d5187b9" +dependencies = [ + "rustix", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-egl" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18cede1c33845ccd8fcebf7f107595170abf0ad0a28d47c50b444e06019b16e8" +dependencies = [ + "wayland-backend", + "wayland-sys", +] + +[[package]] +name = "wayland-protocols" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +dependencies = [ + "bitflags 2.5.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d0f1056570486e26a3773ec633885124d79ae03827de05ba6c85f79904026c" +dependencies = [ + "bitflags 2.5.0", + "wayland-backend", + "wayland-scanner", + "wayland-server", +] + +[[package]] +name = "wayland-protocols-misc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e76311e1866c955afbbc46ae97e57542acda1dc9b0298358263a8550b5247331" +dependencies = [ + "bitflags 2.5.0", + "wayland-backend", + "wayland-protocols 0.32.1", + "wayland-scanner", + "wayland-server", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" +dependencies = [ + "bitflags 2.5.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.31.2", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.5.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.31.2", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dab47671043d9f5397035975fe1cac639e5bca5cc0b3c32d09f01612e34d24" +dependencies = [ + "bitflags 2.5.0", + "wayland-backend", + "wayland-protocols 0.32.1", + "wayland-scanner", + "wayland-server", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67da50b9f80159dec0ea4c11c13e24ef9e7574bd6ce24b01860a175010cea565" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-server" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e89118bd072ba6ce0f9c2c92fa41f72d1d78a138d2abc497a80a8264565559" +dependencies = [ + "bitflags 2.5.0", + "downcast-rs", + "io-lifetimes 2.0.3", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-sys" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "105b1842da6554f91526c14a2a2172897b7f745a805d62af4ce698706be79c12" +dependencies = [ + "dlib", + "libc", + "log", + "memoffset 0.9.1", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-result" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winit" +version = "0.29.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" +dependencies = [ + "ahash", + "android-activity", + "atomic-waker", + "bitflags 2.5.0", + "bytemuck", + "calloop 0.12.4", + "cfg_aliases", + "core-foundation", + "core-graphics", + "cursor-icon", + "icrate", + "js-sys", + "libc", + "log", + "memmap2 0.9.4", + "ndk", + "ndk-sys", + "objc2", + "once_cell", + "orbclient", + "percent-encoding", + "raw-window-handle", + "redox_syscall 0.3.5", + "rustix", + "smithay-client-toolkit", + "smol_str", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.31.2", + "wayland-protocols-plasma", + "web-sys", + "web-time", + "windows-sys 0.48.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6" +dependencies = [ + "memchr", +] + +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi", +] + +[[package]] +name = "wlcs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d99c305ce368db32f0c675a3a17abbfd4123a59f4a1c56c0ee70b372cb7609e" +dependencies = [ + "container_of", + "memoffset 0.9.1", + "nix", + "wayland-sys", +] + +[[package]] +name = "wlcs_anvil" +version = "0.0.1" +dependencies = [ + "anvil", + "cgmath", + "libc", + "memoffset 0.9.1", + "smithay", + "wayland-sys", + "wlcs", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "libloading 0.8.3", + "once_cell", + "rustix", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" + +[[package]] +name = "xcursor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" + +[[package]] +name = "xkbcommon" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e" +dependencies = [ + "libc", + "memmap2 0.8.0", + "xkeysym", +] + +[[package]] +name = "xkbcommon-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.5.0", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" + +[[package]] +name = "xml-rs" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zune-jpeg" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448" +dependencies = [ + "zune-core", +] diff --git a/package/anvil/anvil.hash b/package/anvil/anvil.hash new file mode 100644 index 0000000000..757ac1299d --- /dev/null +++ b/package/anvil/anvil.hash @@ -0,0 +1,2 @@ +sha256 8d856d94fd4a327426446072ca4ffdc0ad91511b3d928d90c50200f5acdc71c8 anvil-0afc33267ed17e516ec8db118fbb137c8add9c09-git4-cargo2-lock0.tar.gz +sha256 331891ba7afe9ea12e7f9834bdb37db7abd9131183ed85215f6b4109b0303877 LICENSE.txt diff --git a/package/anvil/anvil.mk b/package/anvil/anvil.mk index 7de9f3e06d..46d062e1de 100644 --- a/package/anvil/anvil.mk +++ b/package/anvil/anvil.mk @@ -4,13 +4,14 @@ # ################################################################################ -ANVIL_VERSION = fb44b240ea4a3aa39a6b92f5bede23301ab9a26e +ANVIL_VERSION = 0afc33267ed17e516ec8db118fbb137c8add9c09 ANVIL_SITE = https://github.com/Smithay/smithay ANVIL_SITE_METHOD = git # Upstream refuses to lock their package: # https://github.com/Smithay/smithay/issues/496 -ANVIL_CARGO_LOCKED = NO +ANVIL_CARGO_LOCKED = buildroot +ANVIL_CARGO_LOCK_VERSION = 0 ANVIL_SUBDIR = anvil -- 2.45.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 20/20 v2] RFC: package/anvil: add local Cargo.lock 2024-06-07 17:06 ` [Buildroot] [PATCH 20/20 v2] RFC: package/anvil: add " Yann E. MORIN @ 2024-07-14 9:13 ` Arnout Vandecappelle via buildroot 0 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 9:13 UTC (permalink / raw) To: Yann E. MORIN, buildroot On 07/06/2024 19:06, Yann E. MORIN wrote: > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> [snip] > diff --git a/package/anvil/anvil.mk b/package/anvil/anvil.mk > index 7de9f3e06d..46d062e1de 100644 > --- a/package/anvil/anvil.mk > +++ b/package/anvil/anvil.mk > @@ -4,13 +4,14 @@ > # > ################################################################################ > > -ANVIL_VERSION = fb44b240ea4a3aa39a6b92f5bede23301ab9a26e > +ANVIL_VERSION = 0afc33267ed17e516ec8db118fbb137c8add9c09 Not that it's relevant, but it's a bit weird that you update the version in the same commit... > ANVIL_SITE = https://github.com/Smithay/smithay > ANVIL_SITE_METHOD = git > > # Upstream refuses to lock their package: > # https://github.com/Smithay/smithay/issues/496 > -ANVIL_CARGO_LOCKED = NO > +ANVIL_CARGO_LOCKED = buildroot > +ANVIL_CARGO_LOCK_VERSION = 0 The doc says that it should start at 1 :-) Regards, Arnout > > ANVIL_SUBDIR = anvil > _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN ` (19 preceding siblings ...) 2024-06-07 17:06 ` [Buildroot] [PATCH 20/20 v2] RFC: package/anvil: add " Yann E. MORIN @ 2024-07-14 8:59 ` Arnout Vandecappelle via buildroot 20 siblings, 0 replies; 33+ messages in thread From: Arnout Vandecappelle via buildroot @ 2024-07-14 8:59 UTC (permalink / raw) To: Yann E. MORIN, buildroot Cc: Thomas Petazzoni, James Hilliard, Asaf Kahlon, Ricardo Martincoski Hi Yann, all, On 07/06/2024 19:05, Yann E. MORIN wrote: > Hello All! > > Some maintainers refuse to commit a Cargo.lock in their repository [0], > so there are cargo packages that are unlocked. > > However, we currently require that a Cargo.lock be present: we call > "cargo venodor --locked"; if there is no Cargo.lock, cargo fails. > > This series adds support for downloading unlocked cargo packages; the > series is articulated in three steps: > > 1. preparatory cleanups (shelcheck, readability...) > > 2. extend the download infra to pass arbitrary options to the > post-process helpers; use that to pass the path of the manifest > instead of using an environment variable > > 3. add support for unlocked cargo packages by passing a new option to > the cargo post-process helper; add documentation and check-package. I don't see why we want this in the first place... Why not simply _require_ a Cargo.lock file to be present, and just add the option of including our own? > > 4. (off-by-one error) add an RFC-style package to demonstrate the > unlocked cargo package. > > Unlocked packages can be handled in two ways: totally unlocked, in which > case they are not reproducible, or by providing a Cargo.lock in the > Buildroot package directory, in which case it is reproducible, but there > is a little bit more complexity to it, so this is implemented separately > in case it is deemed too heavy-weight. > > Regards, > Yann E. MORIN. > > > ---------------------------------------------------------------- > Yann E. MORIN (20): > package/pkg-download: symplify calling parameters > package/pkg-generic: split long, unreadable DOWNLOAD line > utils/check-package: add option to run the test-suite > utils/checkpackagelib: instruct shellcheck to follow included files > support/download/dl-wrapper: fix shellcheck errors > support/download/cargo-post-process: fix shellcheck > support/download: move tracing functions to helpers > support/download: pass post-process options to post-process helper > support/download: accept manifest path as a post-process option > pakcage/pkg-cargo: use post-process opts to pass manifest path > package/pkg-python: use post-process opts to pass Cargo manifest path > package/python-bcrypt: use post-process opts to pass Cargo manifest path > support/download: no longer support BR_CARGO_MANIFEST_PATH in cargo post-process > docs/manual: rephrase end of vendoring section Applied these to master, except for python-bcrypt as explained separately. > package/pkg-cargo: add support for unlocked packages > utils/checkpackagelib: add test for default _CARGO_LOCKED > RFC: package/anvil: new package > package/pkg-utils: accept pacakge-specific archive format version > package/pkg-cargo: allow unlocked packages to provide local Cargo.lock > RFC: package/anvil: add local Cargo.lock All these are Changes Requested. I'll comment more in some individual patches. Regards, Arnout > > .checkpackageignore | 2 - > docs/manual/adding-packages-cargo.adoc | 34 +- > package/Config.in | 1 + > package/anvil/Cargo.lock | 3464 ++++++++++++++++++++++++++++++++ > package/anvil/Config.in | 20 + > package/anvil/anvil.hash | 2 + > package/anvil/anvil.mk | 31 + > package/pkg-cargo.mk | 31 +- > package/pkg-download.mk | 33 +- > package/pkg-generic.mk | 12 +- > package/pkg-python.mk | 6 +- > package/pkg-utils.mk | 3 +- > package/python-bcrypt/python-bcrypt.mk | 5 +- > support/download/cargo-post-process | 62 +- > support/download/dl-wrapper | 32 +- > support/download/helpers | 4 + > utils/check-package | 10 + > utils/checkpackagelib/lib_mk.py | 8 + > utils/checkpackagelib/readme.txt | 1 + > utils/checkpackagelib/test_lib_mk.py | 18 + > utils/checkpackagelib/tool.py | 2 +- > 21 files changed, 3728 insertions(+), 53 deletions(-) > create mode 100644 package/anvil/Cargo.lock > create mode 100644 package/anvil/Config.in > create mode 100644 package/anvil/anvil.hash > create mode 100644 package/anvil/anvil.mk > > -- > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > '------------------------------^-------^------------------^--------------------' > _______________________________________________ > 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] 33+ messages in thread
end of thread, other threads:[~2024-07-14 9:13 UTC | newest] Thread overview: 33+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-07 17:05 [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 01/20 v2] package/pkg-download: symplify calling parameters Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 02/20 v2] package/pkg-generic: split long, unreadable DOWNLOAD line Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 03/20 v2] utils/check-package: add option to run the test-suite Yann E. MORIN 2024-07-14 7:37 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 04/20 v2] utils/checkpackagelib: instruct shellcheck to follow included files Yann E. MORIN 2024-07-14 7:41 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 05/20 v2] support/download/dl-wrapper: fix shellcheck errors Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 06/20 v2] support/download/cargo-post-process: fix shellcheck Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 07/20 v2] support/download: move tracing functions to helpers Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 08/20 v2] support/download: pass post-process options to post-process helper Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 09/20 v2] support/download: accept manifest path as a post-process option Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 10/20 v2] pakcage/pkg-cargo: use post-process opts to pass manifest path Yann E. MORIN 2024-07-14 8:29 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 11/20 v2] package/pkg-python: use post-process opts to pass Cargo " Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 12/20 v2] package/python-bcrypt: " Yann E. MORIN 2024-06-07 22:04 ` James Hilliard 2024-06-08 8:49 ` Yann E. MORIN 2024-07-14 8:32 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 13/20 v2] support/download: no longer support BR_CARGO_MANIFEST_PATH in cargo post-process Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 14/20 v2] docs/manual: rephrase end of vendoring section Yann E. MORIN 2024-07-14 8:45 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 15/20 v2] package/pkg-cargo: add support for unlocked packages Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 16/20 v2] utils/checkpackagelib: add test for default _CARGO_LOCKED Yann E. MORIN 2024-06-07 17:05 ` [Buildroot] [PATCH 17/20 v2] RFC: package/anvil: new package Yann E. MORIN 2024-07-14 9:01 ` Arnout Vandecappelle via buildroot 2024-06-07 17:05 ` [Buildroot] [PATCH 18/20 v2] package/pkg-utils: accept pacakge-specific archive format version Yann E. MORIN 2024-06-07 17:06 ` [Buildroot] [PATCH 19/20 v2] package/pkg-cargo: allow unlocked packages to provide local Cargo.lock Yann E. MORIN 2024-06-07 19:49 ` Yann E. MORIN 2024-07-14 9:11 ` Arnout Vandecappelle via buildroot 2024-06-07 17:06 ` [Buildroot] [PATCH 20/20 v2] RFC: package/anvil: add " Yann E. MORIN 2024-07-14 9:13 ` Arnout Vandecappelle via buildroot 2024-07-14 8:59 ` [Buildroot] [PATCH 00/20 v2] support/download: allow downloading unlocked cargo packages (branch yem/cargo-unchained) Arnout Vandecappelle via buildroot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox