commit: f3eff6e418a08e153b9ac5dd6708fceed98dfd9e Author: Bill Prendergast <dek.devel <AT> baisenvar <DOT> info> AuthorDate: Thu Feb 19 10:11:32 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Feb 23 01:26:43 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3eff6e4
dev-embedded/platformio: add 6.1.19, drop 6.1.11 - drop unsupported 6.1.11 - remove package.mask for dev-embedded/platformio - Added patch for >=dev-python/marshmallow-4 - Added support for shell-completions - Reworked ignored tests to be more complete, all tests that do not require network access are now enabled. Closes: https://bugs.gentoo.org/969805 Closes: https://bugs.gentoo.org/944883 Closes: https://bugs.gentoo.org/952290 Closes: https://bugs.gentoo.org/955765 Closes: https://bugs.gentoo.org/968383 Signed-off-by: Bill Prendergast <dek.devel <AT> baisenvar.info> Part-of: https://codeberg.org/gentoo/gentoo/pulls/93 Merges: https://codeberg.org/gentoo/gentoo/pulls/93 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-embedded/platformio/Manifest | 2 +- .../files/pio-6.1.19-marshmallow-4.patch | 23 +++ dev-embedded/platformio/platformio-6.1.11.ebuild | 117 ---------------- dev-embedded/platformio/platformio-6.1.19.ebuild | 154 +++++++++++++++++++++ profiles/package.mask | 7 - 5 files changed, 178 insertions(+), 125 deletions(-) diff --git a/dev-embedded/platformio/Manifest b/dev-embedded/platformio/Manifest index 9434f03835b0..ee93dda18f59 100644 --- a/dev-embedded/platformio/Manifest +++ b/dev-embedded/platformio/Manifest @@ -1 +1 @@ -DIST platformio-6.1.11.gh.tar.gz 296333 BLAKE2B 17672b499eca9c828cd7c6ea6a4c8acea7287f42bb78d4fc5fbd11bb93175bb87d9c2d100270869bc99bc0db550b49c163555ddd8edb17b6b33ccc5f3623f768 SHA512 450e3d1dc3b9c8124b6254fbf0a05b207b834aa0661f083ee2915bde5064498b6d5af666ad851b737fa5627ed436db983e038f83ed0437a1e248749a0dcc99ba +DIST platformio-6.1.19.gh.tar.gz 303716 BLAKE2B 3add65d4dd38efd64e152a97396ead9bc672b93b9933e91634e18a60318d7aa04defb9b95efdecf4454e407ba97f2fe1b24093e48fcb3380b4152d5f6b4cb7fa SHA512 0190401a92b2ce423ff451469ed0c31e27203e92417d08203878cc6a021dfcd014adea62d0f27c661b6a8eee7a0503a673c7b1e8e39d956173349d0ef323e731 diff --git a/dev-embedded/platformio/files/pio-6.1.19-marshmallow-4.patch b/dev-embedded/platformio/files/pio-6.1.19-marshmallow-4.patch new file mode 100644 index 000000000000..8b25a0e3321b --- /dev/null +++ b/dev-embedded/platformio/files/pio-6.1.19-marshmallow-4.patch @@ -0,0 +1,23 @@ +in marshmallow-4+ @validates accepts multiple field names, and + decorated@validates methods receive data_key as a keyword argument. + +--- a/platformio/package/manifest/schema.py ++++ b/platformio/package/manifest/schema.py +@@ -232,7 +232,7 @@ class ManifestSchema(BaseSchema): + ) + + @validates("version") +- def validate_version(self, value): ++ def validate_version(self, value, **kwargs): + try: + value = str(value) + assert "." in value +@@ -249,7 +249,7 @@ class ManifestSchema(BaseSchema): + ) from exc + + @validates("license") +- def validate_license(self, value): ++ def validate_license(self, value, **kwargs): + try: + spdx = self.load_spdx_licenses() + except requests.exceptions.RequestException as exc: diff --git a/dev-embedded/platformio/platformio-6.1.11.ebuild b/dev-embedded/platformio/platformio-6.1.11.ebuild deleted file mode 100644 index 2eea7057f350..000000000000 --- a/dev-embedded/platformio/platformio-6.1.11.ebuild +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..12} ) - -inherit distutils-r1 udev - -DESCRIPTION="An open source ecosystem for IoT development" -HOMEPAGE="https://platformio.org/" -SRC_URI="https://github.com/platformio/platformio-core/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" -S="${WORKDIR}"/${PN}-core-${PV} - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - $(python_gen_cond_dep ' - >=dev-python/aiofiles-22.1[${PYTHON_USEDEP}] - dev-python/ajsonrpc[${PYTHON_USEDEP}] - <dev-python/bottle-0.13[${PYTHON_USEDEP}] - =dev-python/click-8*[${PYTHON_USEDEP}] - dev-python/colorama[${PYTHON_USEDEP}] - >=dev-python/pyserial-3[${PYTHON_USEDEP}] - <dev-python/pyserial-4[${PYTHON_USEDEP}] - >=dev-python/zeroconf-0.37[${PYTHON_USEDEP}] - =dev-python/requests-2*[${PYTHON_USEDEP}] - >=dev-python/semantic-version-2.10[${PYTHON_USEDEP}] - <dev-python/semantic-version-3[${PYTHON_USEDEP}] - =dev-python/tabulate-0.9*[${PYTHON_USEDEP}] - dev-python/twisted[${PYTHON_USEDEP}] - >=dev-python/pyelftools-0.30[${PYTHON_USEDEP}] - <dev-python/pyelftools-1[${PYTHON_USEDEP}] - =dev-python/marshmallow-3*[${PYTHON_USEDEP}] - >=dev-python/starlette-0.21[${PYTHON_USEDEP}] - >=dev-python/uvicorn-0.19[${PYTHON_USEDEP}] - dev-python/wsproto[${PYTHON_USEDEP}] - ') - virtual/udev" -DEPEND="virtual/udev" -BDEPEND="test? ( $(python_gen_cond_dep 'dev-python/jsondiff[${PYTHON_USEDEP}]') )" - -# This list could be refined a bit to have individual tests which need network -# (within EPYTEST_DESELECT) but so many need it that it doesn't seem worth it right now. -EPYTEST_IGNORE=( - # Requires network access - tests/test_builder.py - tests/package/test_manager.py - tests/package/test_manifest.py - tests/commands/test_platform.py - tests/commands/test_test.py - tests/commands/test_ci.py - tests/commands/test_init.py - tests/commands/test_lib.py - tests/commands/test_lib_complex.py - tests/commands/test_boards.py - tests/commands/test_check.py - tests/commands/test_run.py - tests/commands/pkg/test_exec.py - tests/commands/pkg/test_list.py - tests/commands/pkg/test_outdated.py - tests/commands/pkg/test_search.py - tests/commands/pkg/test_show.py - tests/commands/pkg/test_install.py - tests/commands/pkg/test_uninstall.py - tests/commands/pkg/test_update.py - tests/misc/ino2cpp/test_ino2cpp.py - tests/test_maintenance.py - tests/test_misc.py -) - -EPYTEST_DESELECT=( - # Requires network access - tests/misc/test_maintenance.py::test_check_pio_upgrade - tests/misc/test_misc.py::test_ping_internet_ips - tests/misc/test_misc.py::test_api_cache -) - -distutils_enable_tests pytest - -python_prepare_all() { - # Allow newer versions of: - # - zeroconf, bug #831181. - # - wsproto - # - semantic_version, bug #853247 - # - starlette & uvicorn, bug #888427 - sed \ - -e '/zeroconf/s/<[0-9.*]*//' \ - -e '/wsproto/s/==.*/"/' \ - -e '/semantic_version/s/==[0-9.*]*//' \ - -e '/starlette/s/==.*/"/' \ - -e '/uvicorn/s/==.*/"/' \ - -i setup.py || die - - distutils-r1_python_prepare_all -} - -python_test() { - epytest -k "not skip_ci" -} - -src_install() { - distutils-r1_src_install - udev_dorules platformio/assets/system/99-platformio-udev.rules -} - -pkg_postinst() { - udev_reload -} - -pkg_postrm() { - udev_reload -} diff --git a/dev-embedded/platformio/platformio-6.1.19.ebuild b/dev-embedded/platformio/platformio-6.1.19.ebuild new file mode 100644 index 000000000000..42109ba765a3 --- /dev/null +++ b/dev-embedded/platformio/platformio-6.1.19.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 shell-completion udev + +DESCRIPTION="An open source ecosystem for IoT development" +HOMEPAGE="https://platformio.org/" +SRC_URI="https://github.com/platformio/platformio-core/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" +S="${WORKDIR}"/${PN}-core-${PV} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +#TODO dev-python/requests[socks5] if proxy needed + +RDEPEND=" + $(python_gen_cond_dep ' + =dev-python/ajsonrpc-1.2*[${PYTHON_USEDEP}] + =dev-python/bottle-0.13*[${PYTHON_USEDEP}] + >=dev-python/click-8.2[${PYTHON_USEDEP}] + <dev-python/click-8.4[${PYTHON_USEDEP}] + dev-python/colorama[${PYTHON_USEDEP}] + =dev-python/pyserial-3.5*[${PYTHON_USEDEP}] + >=dev-python/zeroconf-0.37[${PYTHON_USEDEP}] + =dev-python/requests-2*[${PYTHON_USEDEP}] + =dev-python/semantic-version-2.10*[${PYTHON_USEDEP}] + =dev-python/tabulate-0*[${PYTHON_USEDEP}] + dev-python/twisted[${PYTHON_USEDEP}] + dev-python/constantly[${PYTHON_USEDEP}] + >=dev-python/pyelftools-0.30[${PYTHON_USEDEP}] + <dev-python/pyelftools-1[${PYTHON_USEDEP}] + =dev-python/marshmallow-4*[${PYTHON_USEDEP}] + >=dev-python/starlette-0.21[${PYTHON_USEDEP}] + <dev-python/starlette-0.60[${PYTHON_USEDEP}] + >=dev-python/uvicorn-0.19[${PYTHON_USEDEP}] + <dev-python/uvicorn-0.50[${PYTHON_USEDEP}] + =dev-python/wsproto-1*[${PYTHON_USEDEP}] + ') + virtual/udev" +DEPEND="virtual/udev" +BDEPEND="test? ( $(python_gen_cond_dep 'dev-python/jsondiff[${PYTHON_USEDEP}]') )" + +# This list has been refined to have the individual tests which need network access +# to be disabled (or those that need a test email account). +# this list will need careful monitoring during version bumps +EPYTEST_IGNORE=( + # Requires network access + tests/commands/pkg/test_install.py + tests/commands/pkg/test_list.py + tests/commands/pkg/test_outdated.py + tests/commands/pkg/test_search.py + tests/commands/pkg/test_show.py + tests/commands/pkg/test_uninstall.py + tests/commands/pkg/test_update.py + tests/commands/test_account_org_team.py + tests/commands/test_boards.py + tests/commands/test_check.py + tests/commands/test_lib.py + tests/commands/test_lib_complex.py + tests/commands/test_platform.py + tests/commands/test_run.py + tests/commands/test_test.py + tests/misc/ino2cpp/test_ino2cpp.py + tests/misc/test_maintenance.py + tests/project/test_metadata.py + tests/test_examples.py +) + +EPYTEST_DESELECT=( + # Requires network access + tests/commands/pkg/test_exec.py::test_pkg_specified + tests/commands/pkg/test_exec.py::test_unrecognized_options + tests/commands/test_ci.py::test_ci_boards + tests/commands/test_ci.py::test_ci_build_dir + tests/commands/test_ci.py::test_ci_keep_build_dir + tests/commands/test_ci.py::test_ci_keep_build_dir_nested_src_dirs + tests/commands/test_ci.py::test_ci_keep_build_dir_single_src_dir + tests/commands/test_ci.py::test_ci_lib_and_board + tests/commands/test_ci.py::test_ci_project_conf + tests/commands/test_init.py::test_init_custom_framework + tests/commands/test_init.py::test_init_duplicated_boards + tests/commands/test_init.py::test_init_enable_auto_uploading + tests/commands/test_init.py::test_init_ide_eclipse + tests/commands/test_init.py::test_init_ide_vscode + tests/commands/test_init.py::test_init_incorrect_board + tests/commands/test_init.py::test_init_special_board + tests/misc/test_misc.py::test_api_cache + tests/misc/test_misc.py::test_ping_internet_ips + tests/package/test_manager.py::test_download + tests/package/test_manager.py::test_install_force + tests/package/test_manager.py::test_install_from_registry + tests/package/test_manager.py::test_install_lib_depndencies + tests/package/test_manager.py::test_registry + tests/package/test_manager.py::test_uninstall + tests/package/test_manager.py::test_update_with_metadata + tests/package/test_manager.py::test_update_without_metadata + tests/package/test_manifest.py::test_library_json_schema + tests/package/test_manifest.py::test_platform_json_schema + tests/project/test_config.py::test_win_core_root_dir +) + +distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}"/pio-6.1.19-marshmallow-4.patch +) + +python_prepare_all() { + # Allow marshmallow-4* + # Allow starlette-0.5* + # Allow uvicorn-0.4* + sed \ + -e '/marshmallow/s/3\.[0-9.*]*/4.*/' \ + -e '/starlette/s/<0\.5[0-9]*/<0.60/' \ + -e '/uvicorn/s/<0\.4[0-9]*/<0.50/' \ + -i platformio/dependencies.py || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest -k "not skip_ci" +} + +python_compile_all() { + #completions + local _PIO_COMPLETE s_type + for s_type in bash fish zsh; do + _PIO_COMPLETE=${s_type}_source "${BUILD_DIR}"/install/usr/bin/pio > "${T}"/pio.${s_type} || die + done +} + +src_install() { + distutils-r1_src_install + udev_dorules platformio/assets/system/99-platformio-udev.rules + + newbashcomp "${T}"/pio.bash pio + newfishcomp "${T}"/pio.fish pio.fish + newzshcomp "${T}"/pio.zsh _pio +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/profiles/package.mask b/profiles/package.mask index f7e685baf426..883f39bd1b0b 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -306,13 +306,6 @@ net-analyzer/arp-sk # Bug #969685 =gui-apps/slurp-1.6.0 -# Michał Górny <[email protected]> (2026-01-24) -# Needs porting to Python 3.13. Requires old versions of multiple -# dependencies, and reportedly is already broken with its current -# dependencies. The efforts to revive it do not progress. -# Removal on 2026-02-23. Bug #944883, #952290, #955765, #968383. -dev-embedded/platformio - # Maciej Barć <[email protected]> (2026-01-24) # Some app-emacs packages that are obsolete since Emacs 29 or much # older. They all are available in the main GNU Emacs distribution.
