summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-idf-component-manager.spec576
-rw-r--r--sources1
3 files changed, 578 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8d2285c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/idf_component_manager-1.2.2.tar.gz
diff --git a/python-idf-component-manager.spec b/python-idf-component-manager.spec
new file mode 100644
index 0000000..7af42ad
--- /dev/null
+++ b/python-idf-component-manager.spec
@@ -0,0 +1,576 @@
+%global _empty_manifest_terminate_build 0
+Name: python-idf-component-manager
+Version: 1.2.2
+Release: 1
+Summary: The component manager for ESP-IDF
+License: Apache License 2.0
+URL: https://github.com/espressif/idf-component-manager
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/76/17/04fbb8fad81791e84cefe343db7c5674fd7b56c495460a9abb6e600efb11/idf_component_manager-1.2.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-future
+Requires: python3-packaging
+Requires: python3-requests
+Requires: python3-requests-file
+Requires: python3-requests-toolbelt
+Requires: python3-schema
+Requires: python3-six
+Requires: python3-tqdm
+Requires: python3-click
+Requires: python3-pathlib
+Requires: python3-cachecontrol[filecache]
+Requires: python3-cffi
+Requires: python3-contextlib2
+Requires: python3-colorama
+Requires: python3-pyyaml
+Requires: python3-click
+Requires: python3-pyyaml
+Requires: python3-click
+Requires: python3-click
+Requires: python3-colorama
+Requires: python3-pyyaml
+Requires: python3-cachecontrol[filecache]
+Requires: python3-contextlib2
+Requires: python3-click
+
+%description
+# IDF Component Manager
+
+The IDF Component manager is a tool that downloads dependencies for any [ESP-IDF](https://www.espressif.com/en/products/sdks/esp-idf) CMake project. It makes sure that the right versions of all components required for a successful build of your project are in place. The download happens automatically during a run of CMake. It can source components either from [the component registry](https://components.espressif.com/) or from a git repository.
+
+**A list of components can be found at https://components.espressif.com/**
+
+## Installing the IDF Component Manager
+
+IDF component manager can be used with ESP-IDF v4.1 and later.
+It is installed by default with ESP-IDF v4.4+ and recent bug-fix releases of ESP-IDF 4.1+.
+
+To check the installed version of the IDF component manager, first, activate [ESP-IDF environment](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#installation). On macOS and Linux:
+
+```bash
+source $IDF_PATH/export.sh
+```
+
+Then run the command:
+
+```bash
+python -m idf_component_manager -h
+```
+
+To update to the most recent version:
+
+```bash
+pip install idf-component-manager --upgrade
+```
+
+## Disabling the Component Manager
+
+The component manager can be explicitly disabled by setting `IDF_COMPONENT_MANAGER` environment variable to `0`.
+
+## Using with a project
+
+You can add `idf_component.yml` manifest files with the list of dependencies to any component in your project.
+
+IDF Component Manager will download dependencies automatically during the project build process.
+
+When CMake configures the project (e.g. `idf.py reconfigure`) component manager does a few things:
+
+- Processes `idf_component.yml` manifests for every component in the project
+- Creates a `dependencies.lock` file in the root of the project with a full list of dependencies
+- Downloads all dependencies to the `managed_components` directory
+
+The component manager won't try to regenerate `dependencies.lock` or download any components if manifests, lock file, and content of `managed_component` directory weren't modified since the last successful build.
+
+## Defining dependencies in the manifest
+
+All dependencies are defined in the manifest file.
+
+```yaml
+dependencies:
+ # Required IDF version
+ idf: ">=4.1"
+ # For components maintained by Espressif only name can be used.
+ # Same as `espressif/component`
+ component:
+ version: "~2.0.0"
+ # Or in a shorter form
+ component2: ">=1.0.0"
+ # For 3rd party components :
+ username/component:
+ version: "~1.0.0"
+ # For transient dependencies `public` flag can be set.
+ public: true
+ anotheruser/component: "<3.2.20"
+ # For components hosted on non-default registry:
+ company_user/component:
+ version: "~1.0.0"
+ service_url: "https://componentregistry.company.com"
+ # For components in git repository:
+ test_component:
+ path: test_component
+ git: ssh://git@gitlab.com/user/components.git
+ # For test projects during component development
+ # components can be used from a local directory
+ # with relative or absolute path
+ some_local_component:
+ path: ../../projects/component
+ # For optional dependencies
+ optional_component:
+ version: "~1.0.0"
+ rules: # will add "optional_component" only when all if clauses are True
+ - if: "idf_version >=3.3,<5.0" # supports all SimpleSpec grammars (https://python-semanticversion.readthedocs.io/en/latest/reference.html#semantic_version.SimpleSpec)
+ - if: "target in [esp32, esp32c3]" # supports boolean operator ==, !=, in, not in.
+ # For example of the component
+ namespace/component_with_example:
+ version: "~1.0.0" # if there is no `override_path` field, use component from registry
+ override_path: "../../" # use component in a local directory, not from registry
+ namespace/no_required_component:
+ version: "*"
+ require: no # Download component but don't add it as a requirement
+ namespace/pre_release_component:
+ version: "*"
+ pre_release: true # Allow downloading of pre-release versions
+```
+
+## Environment variables in manifest
+
+You can use environment variables in values in `idf_component.yml` manifests. `$VAR` or `${VAR}` is replaced with the value of the `VAR` environment variable. If the environment variable is not defined, the component manager will raise an error.
+
+Variable name should be ASCII alphanumeric string (including underscores) and start with an underscore or ASCII letter. The first non-identifier character after the `$` terminates this placeholder specification. You can escape `$` with one more`$` character, i.e., `$$` is replaced with `$`.
+
+One possible use-case is providing authentication to git repositories accessed through HTTPS:
+
+```yaml
+dependencies:
+ my_component:
+ git: https://git:${ACCESS_TOKEN}@git.my_git.com/my_component.git
+```
+
+## Component metadata caching
+
+By default information about available versions of components is cached for 5 minutes. You can adjust caching period by setting the duration in minutes to `IDF_COMPONENT_API_CACHE_EXPIRATION_MINUTES` environment variable or disable the cache entirely by setting it to 0.
+
+## External links
+
+You can add links to the `idf_component.yml` file to the root of the manifest:
+
+```yaml
+url: "https://example.com/homepage" # URL of the component homepage
+repository: "https://gitexample.com/test_project" # URL of the public repository with component source code, i.e GitHub, GitLab, etc.
+documentation: "https://example.com/documentation" # URL of the component documentation
+issues: "https://git.example.com/test_project/tracker" # URL of the issue tracker
+discussion: "https://discord.example.com/test_project" # URL of the component discussion, i.e. Discord, Gitter, forum, etc.
+```
+
+A link should be a correct HTTP(S) URL like `https://example.com/path` except the `repository` field,
+it is expected to be a valid [Git remote](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) URL.
+
+## Add examples to the component
+
+To add examples to your component place them in the `examples` directory inside your component.
+Examples are discovered recursively in subdirectories at this path.
+A directory with `CMakeLists.txt` that registers a project is considered as an example.
+
+## Custom example paths
+
+You can specify custom example paths for uploading them to the component registry.
+For that, add `examples` field to the root of the manifest:
+
+```yaml
+examples:
+ - path: ../some/path
+ - path: ../some/other_path
+```
+
+## Contributions Guide
+
+We welcome all contributions to the Component Manager project.
+
+You can contribute by fixing bugs, adding features, adding documentation, or reporting an [issue](https://github.com/espressif/idf-component-manager/issues). We accept contributions via [Github Pull Requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
+
+Before reporting an issue, make sure you've searched for a similar one that was already created. If you are reporting a new issue, please follow the Issue Template.
+
+## Resources
+
+- The Python Package Index project page https://pypi.org/project/idf-component-manager/
+- The Component Manager section in the [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html)
+
+
+%package -n python3-idf-component-manager
+Summary: The component manager for ESP-IDF
+Provides: python-idf-component-manager
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-idf-component-manager
+# IDF Component Manager
+
+The IDF Component manager is a tool that downloads dependencies for any [ESP-IDF](https://www.espressif.com/en/products/sdks/esp-idf) CMake project. It makes sure that the right versions of all components required for a successful build of your project are in place. The download happens automatically during a run of CMake. It can source components either from [the component registry](https://components.espressif.com/) or from a git repository.
+
+**A list of components can be found at https://components.espressif.com/**
+
+## Installing the IDF Component Manager
+
+IDF component manager can be used with ESP-IDF v4.1 and later.
+It is installed by default with ESP-IDF v4.4+ and recent bug-fix releases of ESP-IDF 4.1+.
+
+To check the installed version of the IDF component manager, first, activate [ESP-IDF environment](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#installation). On macOS and Linux:
+
+```bash
+source $IDF_PATH/export.sh
+```
+
+Then run the command:
+
+```bash
+python -m idf_component_manager -h
+```
+
+To update to the most recent version:
+
+```bash
+pip install idf-component-manager --upgrade
+```
+
+## Disabling the Component Manager
+
+The component manager can be explicitly disabled by setting `IDF_COMPONENT_MANAGER` environment variable to `0`.
+
+## Using with a project
+
+You can add `idf_component.yml` manifest files with the list of dependencies to any component in your project.
+
+IDF Component Manager will download dependencies automatically during the project build process.
+
+When CMake configures the project (e.g. `idf.py reconfigure`) component manager does a few things:
+
+- Processes `idf_component.yml` manifests for every component in the project
+- Creates a `dependencies.lock` file in the root of the project with a full list of dependencies
+- Downloads all dependencies to the `managed_components` directory
+
+The component manager won't try to regenerate `dependencies.lock` or download any components if manifests, lock file, and content of `managed_component` directory weren't modified since the last successful build.
+
+## Defining dependencies in the manifest
+
+All dependencies are defined in the manifest file.
+
+```yaml
+dependencies:
+ # Required IDF version
+ idf: ">=4.1"
+ # For components maintained by Espressif only name can be used.
+ # Same as `espressif/component`
+ component:
+ version: "~2.0.0"
+ # Or in a shorter form
+ component2: ">=1.0.0"
+ # For 3rd party components :
+ username/component:
+ version: "~1.0.0"
+ # For transient dependencies `public` flag can be set.
+ public: true
+ anotheruser/component: "<3.2.20"
+ # For components hosted on non-default registry:
+ company_user/component:
+ version: "~1.0.0"
+ service_url: "https://componentregistry.company.com"
+ # For components in git repository:
+ test_component:
+ path: test_component
+ git: ssh://git@gitlab.com/user/components.git
+ # For test projects during component development
+ # components can be used from a local directory
+ # with relative or absolute path
+ some_local_component:
+ path: ../../projects/component
+ # For optional dependencies
+ optional_component:
+ version: "~1.0.0"
+ rules: # will add "optional_component" only when all if clauses are True
+ - if: "idf_version >=3.3,<5.0" # supports all SimpleSpec grammars (https://python-semanticversion.readthedocs.io/en/latest/reference.html#semantic_version.SimpleSpec)
+ - if: "target in [esp32, esp32c3]" # supports boolean operator ==, !=, in, not in.
+ # For example of the component
+ namespace/component_with_example:
+ version: "~1.0.0" # if there is no `override_path` field, use component from registry
+ override_path: "../../" # use component in a local directory, not from registry
+ namespace/no_required_component:
+ version: "*"
+ require: no # Download component but don't add it as a requirement
+ namespace/pre_release_component:
+ version: "*"
+ pre_release: true # Allow downloading of pre-release versions
+```
+
+## Environment variables in manifest
+
+You can use environment variables in values in `idf_component.yml` manifests. `$VAR` or `${VAR}` is replaced with the value of the `VAR` environment variable. If the environment variable is not defined, the component manager will raise an error.
+
+Variable name should be ASCII alphanumeric string (including underscores) and start with an underscore or ASCII letter. The first non-identifier character after the `$` terminates this placeholder specification. You can escape `$` with one more`$` character, i.e., `$$` is replaced with `$`.
+
+One possible use-case is providing authentication to git repositories accessed through HTTPS:
+
+```yaml
+dependencies:
+ my_component:
+ git: https://git:${ACCESS_TOKEN}@git.my_git.com/my_component.git
+```
+
+## Component metadata caching
+
+By default information about available versions of components is cached for 5 minutes. You can adjust caching period by setting the duration in minutes to `IDF_COMPONENT_API_CACHE_EXPIRATION_MINUTES` environment variable or disable the cache entirely by setting it to 0.
+
+## External links
+
+You can add links to the `idf_component.yml` file to the root of the manifest:
+
+```yaml
+url: "https://example.com/homepage" # URL of the component homepage
+repository: "https://gitexample.com/test_project" # URL of the public repository with component source code, i.e GitHub, GitLab, etc.
+documentation: "https://example.com/documentation" # URL of the component documentation
+issues: "https://git.example.com/test_project/tracker" # URL of the issue tracker
+discussion: "https://discord.example.com/test_project" # URL of the component discussion, i.e. Discord, Gitter, forum, etc.
+```
+
+A link should be a correct HTTP(S) URL like `https://example.com/path` except the `repository` field,
+it is expected to be a valid [Git remote](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) URL.
+
+## Add examples to the component
+
+To add examples to your component place them in the `examples` directory inside your component.
+Examples are discovered recursively in subdirectories at this path.
+A directory with `CMakeLists.txt` that registers a project is considered as an example.
+
+## Custom example paths
+
+You can specify custom example paths for uploading them to the component registry.
+For that, add `examples` field to the root of the manifest:
+
+```yaml
+examples:
+ - path: ../some/path
+ - path: ../some/other_path
+```
+
+## Contributions Guide
+
+We welcome all contributions to the Component Manager project.
+
+You can contribute by fixing bugs, adding features, adding documentation, or reporting an [issue](https://github.com/espressif/idf-component-manager/issues). We accept contributions via [Github Pull Requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
+
+Before reporting an issue, make sure you've searched for a similar one that was already created. If you are reporting a new issue, please follow the Issue Template.
+
+## Resources
+
+- The Python Package Index project page https://pypi.org/project/idf-component-manager/
+- The Component Manager section in the [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html)
+
+
+%package help
+Summary: Development documents and examples for idf-component-manager
+Provides: python3-idf-component-manager-doc
+%description help
+# IDF Component Manager
+
+The IDF Component manager is a tool that downloads dependencies for any [ESP-IDF](https://www.espressif.com/en/products/sdks/esp-idf) CMake project. It makes sure that the right versions of all components required for a successful build of your project are in place. The download happens automatically during a run of CMake. It can source components either from [the component registry](https://components.espressif.com/) or from a git repository.
+
+**A list of components can be found at https://components.espressif.com/**
+
+## Installing the IDF Component Manager
+
+IDF component manager can be used with ESP-IDF v4.1 and later.
+It is installed by default with ESP-IDF v4.4+ and recent bug-fix releases of ESP-IDF 4.1+.
+
+To check the installed version of the IDF component manager, first, activate [ESP-IDF environment](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#installation). On macOS and Linux:
+
+```bash
+source $IDF_PATH/export.sh
+```
+
+Then run the command:
+
+```bash
+python -m idf_component_manager -h
+```
+
+To update to the most recent version:
+
+```bash
+pip install idf-component-manager --upgrade
+```
+
+## Disabling the Component Manager
+
+The component manager can be explicitly disabled by setting `IDF_COMPONENT_MANAGER` environment variable to `0`.
+
+## Using with a project
+
+You can add `idf_component.yml` manifest files with the list of dependencies to any component in your project.
+
+IDF Component Manager will download dependencies automatically during the project build process.
+
+When CMake configures the project (e.g. `idf.py reconfigure`) component manager does a few things:
+
+- Processes `idf_component.yml` manifests for every component in the project
+- Creates a `dependencies.lock` file in the root of the project with a full list of dependencies
+- Downloads all dependencies to the `managed_components` directory
+
+The component manager won't try to regenerate `dependencies.lock` or download any components if manifests, lock file, and content of `managed_component` directory weren't modified since the last successful build.
+
+## Defining dependencies in the manifest
+
+All dependencies are defined in the manifest file.
+
+```yaml
+dependencies:
+ # Required IDF version
+ idf: ">=4.1"
+ # For components maintained by Espressif only name can be used.
+ # Same as `espressif/component`
+ component:
+ version: "~2.0.0"
+ # Or in a shorter form
+ component2: ">=1.0.0"
+ # For 3rd party components :
+ username/component:
+ version: "~1.0.0"
+ # For transient dependencies `public` flag can be set.
+ public: true
+ anotheruser/component: "<3.2.20"
+ # For components hosted on non-default registry:
+ company_user/component:
+ version: "~1.0.0"
+ service_url: "https://componentregistry.company.com"
+ # For components in git repository:
+ test_component:
+ path: test_component
+ git: ssh://git@gitlab.com/user/components.git
+ # For test projects during component development
+ # components can be used from a local directory
+ # with relative or absolute path
+ some_local_component:
+ path: ../../projects/component
+ # For optional dependencies
+ optional_component:
+ version: "~1.0.0"
+ rules: # will add "optional_component" only when all if clauses are True
+ - if: "idf_version >=3.3,<5.0" # supports all SimpleSpec grammars (https://python-semanticversion.readthedocs.io/en/latest/reference.html#semantic_version.SimpleSpec)
+ - if: "target in [esp32, esp32c3]" # supports boolean operator ==, !=, in, not in.
+ # For example of the component
+ namespace/component_with_example:
+ version: "~1.0.0" # if there is no `override_path` field, use component from registry
+ override_path: "../../" # use component in a local directory, not from registry
+ namespace/no_required_component:
+ version: "*"
+ require: no # Download component but don't add it as a requirement
+ namespace/pre_release_component:
+ version: "*"
+ pre_release: true # Allow downloading of pre-release versions
+```
+
+## Environment variables in manifest
+
+You can use environment variables in values in `idf_component.yml` manifests. `$VAR` or `${VAR}` is replaced with the value of the `VAR` environment variable. If the environment variable is not defined, the component manager will raise an error.
+
+Variable name should be ASCII alphanumeric string (including underscores) and start with an underscore or ASCII letter. The first non-identifier character after the `$` terminates this placeholder specification. You can escape `$` with one more`$` character, i.e., `$$` is replaced with `$`.
+
+One possible use-case is providing authentication to git repositories accessed through HTTPS:
+
+```yaml
+dependencies:
+ my_component:
+ git: https://git:${ACCESS_TOKEN}@git.my_git.com/my_component.git
+```
+
+## Component metadata caching
+
+By default information about available versions of components is cached for 5 minutes. You can adjust caching period by setting the duration in minutes to `IDF_COMPONENT_API_CACHE_EXPIRATION_MINUTES` environment variable or disable the cache entirely by setting it to 0.
+
+## External links
+
+You can add links to the `idf_component.yml` file to the root of the manifest:
+
+```yaml
+url: "https://example.com/homepage" # URL of the component homepage
+repository: "https://gitexample.com/test_project" # URL of the public repository with component source code, i.e GitHub, GitLab, etc.
+documentation: "https://example.com/documentation" # URL of the component documentation
+issues: "https://git.example.com/test_project/tracker" # URL of the issue tracker
+discussion: "https://discord.example.com/test_project" # URL of the component discussion, i.e. Discord, Gitter, forum, etc.
+```
+
+A link should be a correct HTTP(S) URL like `https://example.com/path` except the `repository` field,
+it is expected to be a valid [Git remote](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) URL.
+
+## Add examples to the component
+
+To add examples to your component place them in the `examples` directory inside your component.
+Examples are discovered recursively in subdirectories at this path.
+A directory with `CMakeLists.txt` that registers a project is considered as an example.
+
+## Custom example paths
+
+You can specify custom example paths for uploading them to the component registry.
+For that, add `examples` field to the root of the manifest:
+
+```yaml
+examples:
+ - path: ../some/path
+ - path: ../some/other_path
+```
+
+## Contributions Guide
+
+We welcome all contributions to the Component Manager project.
+
+You can contribute by fixing bugs, adding features, adding documentation, or reporting an [issue](https://github.com/espressif/idf-component-manager/issues). We accept contributions via [Github Pull Requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
+
+Before reporting an issue, make sure you've searched for a similar one that was already created. If you are reporting a new issue, please follow the Issue Template.
+
+## Resources
+
+- The Python Package Index project page https://pypi.org/project/idf-component-manager/
+- The Component Manager section in the [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html)
+
+
+%prep
+%autosetup -n idf-component-manager-1.2.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-idf-component-manager -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..2d3619e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+91e967c3ccb1d0ea0d125612c7897f68 idf_component_manager-1.2.2.tar.gz