commit:     82cb08526d503ae55a46291c9ce7cb0d5f0ae34b
Author:     Huang Rui <vowstar <AT> gmail <DOT> com>
AuthorDate: Sat Dec 13 05:42:21 2025 +0000
Commit:     Rui Huang <vowstar <AT> gmail <DOT> com>
CommitDate: Sat Dec 13 05:42:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=82cb0852

dev-python/kicad-python: fix protobuf depend

- compile using protoc to match user's version
- add dev-libs/protobuf[protoc(+)] BDEPEND

Signed-off-by: Huang Rui <vowstar <AT> gmail.com>

 dev-python/kicad-python/Manifest                   |  12 +++
 .../kicad-python/kicad-python-0.5.0-r1.ebuild      | 101 +++++++++++++++++++++
 2 files changed, 113 insertions(+)

diff --git a/dev-python/kicad-python/Manifest b/dev-python/kicad-python/Manifest
index e32ced13f1..3e27919270 100644
--- a/dev-python/kicad-python/Manifest
+++ b/dev-python/kicad-python/Manifest
@@ -1 +1,13 @@
+DIST kicad-9.0.6-board-board.proto 3326 BLAKE2B 
8ff36799624dfd1de86ea5520a880c1f2a75e8a30e5a68020e6d8866984ff75573d7c7bc12684f1a13481fb1671df70f3af7b600e7b3b057b23410458ef415e0
 SHA512 
156b17388b873c1c92e82ad06583a6f74c4ecc24d7d7a4af1be03112be3323c1c53f959937c9c6bae329305d3ec18d9bf1a5897dd2d97d9bd0ea1d4ddcbbf16c
+DIST kicad-9.0.6-board-board_commands.proto 10976 BLAKE2B 
00469a279092688952cb48e6784c20844952b78d2230bac7240846c6cfb31cb4a903c57da39e4e9b7b4c515faf765802e7edafae7fb163ccd000e2971d4a5bb1
 SHA512 
3dcb345bea519be0d598a134de491330748e6d7ef5d42272502fa76ba0526ac65192effc830a5675c8d28de6314f211c43346c5d93b9b970842518b464ee1df0
+DIST kicad-9.0.6-board-board_types.proto 21472 BLAKE2B 
8d4581f348cb7e6632a8216d5699f05d83ac157e396cc1a7af37993666630c5340f769fcbae0012da346f5988a1e371134ab4aed24665676f1e7ecb4da72bd2b
 SHA512 
49952b4095e2b63f7fca9c0b840fd80188cd38009245f2ae8b73ce46234aeb0ecebb84e79ff83fc295615234a57d744bec7f067e6c1128a866716305d218d0c4
+DIST kicad-9.0.6-common-commands-base_commands.proto 2631 BLAKE2B 
c3123a1e5eeedf50e4abf65cbe255cf4613b08e21996f2ac554d6721ea94dcc37e09e9eebf133cfb50007797a467a369ca2807a3d1f77410a07cd32b58b910a8
 SHA512 
5735e90da9ee96f24cae041d2ad49d811be977d2c49b2910343032008cad80a79add5c59f6b33983bd67b8f922e5bfc8369240fff0e0034fb06d5464553f6ff1
+DIST kicad-9.0.6-common-commands-editor_commands.proto 11083 BLAKE2B 
c2cafcae991c48f7842cca2c21c78a74f34aefe73afe0ecd7b1210e9b43bf0fe3db9ed3c5e0fa1bee545210b0f583244496b8e04b85cc13c60d8c1c61c29b0da
 SHA512 
87263b3df92bfa04892a442d55fcb4aacd1a21f214f03e5c4772becd904b33244367a548470d5736d075dd4962cbfdb959997a8e18b469c5cd01334e76dcbf6a
+DIST kicad-9.0.6-common-commands-project_commands.proto 2589 BLAKE2B 
5992d8bb2640d3abd2c53969f37456dd2f1ed1162bc992e88165a9ba567e6585add950d665a58a6647740edee1a3f75020451e04c8ba212f2a178716cace060c
 SHA512 
182c8425b71d1ca8c87088bceff916b128221e593e575cd0f5c46e65a8a6c92a6376185c9e7a01ce8e245b07bb7896c869fc301eae52f41a3d59d3deba7b839b
+DIST kicad-9.0.6-common-envelope.proto 3139 BLAKE2B 
95d99d7f22d26ba509df66c3bf3ec8ef11478821433621a76e42ca03f9e0470312746945fa2ae0bec8e8095b309ce90dab3cd94ba247c13e883782c05858f8c8
 SHA512 
c2b7ee51e6016ed6ecff89fdd43b64497b710b1af6e79b9c978863aebb3b511122aca8a6a1bb23f10185ddb386b7aeeca3241e7650858c0ad4c5f4eac4dab0ed
+DIST kicad-9.0.6-common-types-base_types.proto 11294 BLAKE2B 
816c402a48d7330764117a07c46d7bdb0f3db475d86eb7d5c5739b234efdca205e9c49dc07faf3bd5da3757d251c86fc3575319e4e1282fc6984edf327db4c6b
 SHA512 
55ea8c18e5e579fe8fbcefa2359ba388c3ffd5d484c250da498a71d05fdc7e61c8cef0e52833a62f2943e580229cdd8aba69bb90941d6c197f1050460d985fc1
+DIST kicad-9.0.6-common-types-enums.proto 2794 BLAKE2B 
b16768b9748aa35c6a42ca7b339e31b16affb5f68b7458badf4b0cab5f54e86033761faf0666d2a1f445f8a36124219f3ddd764491d6be5fb89127f31b9326e5
 SHA512 
e9c56f23e28ca702cb699db9523d4000787e25bf213df8a7ac144fed297dc5025961465b05e7cd652c83c7941c832406338923a7dec1b541857385a2f3c38340
+DIST kicad-9.0.6-common-types-project_settings.proto 3141 BLAKE2B 
5a6b645055412406bbfe1b69a2c2cb1d2fd13384b41ed204b8977ee2960e33890704d6c871379b7ef1e952e0c0aece37cb38c3b867b854cdee249b3114abe9e2
 SHA512 
998d4d7e82b6c4cb4b5b10cfcdc53635806e59bf01a4fef9912d66ce30da26ab40a18c5716dfb53bc6ce0f88f085295bdee6f9e26616e595721f124dc923919e
+DIST kicad-9.0.6-schematic-schematic_commands.proto 866 BLAKE2B 
946b35676e26d091ed35e34331c8c3ffc55007cae5729ea7483b56caccb25de1eefb438dd16a50f731328d908d26faf516353c22acd275ca0945942645183bcf
 SHA512 
031243204c96720f62ad25cb62731d65b9607b6237ee94ee3e28f3831f11a8845351413e5047f7fd695768efbd017094f906289cacd2302e43babd0e2151759d
+DIST kicad-9.0.6-schematic-schematic_types.proto 1941 BLAKE2B 
23ad01b5bd15e7030b76693dd5c80729af6c80ddf782110f3c3a02fa4274dac6f0f26a7bffa5f4456262a8c93fe25e95169395f0cbfe384e07dd50095090f7c0
 SHA512 
8a762f7c8a1cf8eb0b5691661bcf82c448ef34c3142f8cfe3c77a1bd9666c9704747056c6ea4e08734b7cf7370ff3bd72e1d59414e3cde3a48b79ec371a74cf9
 DIST kicad_python-0.5.0.tar.gz 198708 BLAKE2B 
6a4e756289de711e633f3adc07e1aaaa6820dad9c5ec6d605bf96bdc0ea74ea622394e15078268c0d1c47b73f304f99b04cb77d86a673e441b7680b3893691d2
 SHA512 
7d4f0d005525e6a646df0e25fb59cf93a55f9ea072821062c0384a386c382b24f9ccad204f06bc52d4f90158eefb923692497470e0a43ee2947f1b2057a73779

diff --git a/dev-python/kicad-python/kicad-python-0.5.0-r1.ebuild 
b/dev-python/kicad-python/kicad-python-0.5.0-r1.ebuild
new file mode 100644
index 0000000000..32219b36cf
--- /dev/null
+++ b/dev-python/kicad-python/kicad-python-0.5.0-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="KiCad API Python Bindings for interacting with running KiCad 
sessions"
+HOMEPAGE="https://gitlab.com/kicad/code/kicad-python 
https://pypi.org/project/kicad-python";
+
+# Proto files version should match kicad release
+KICAD_TAG="9.0.6"
+KICAD_PROTO_BASE="https://gitlab.com/kicad/code/kicad/-/raw/${KICAD_TAG}/api/proto";
+
+# List of proto files needed
+PROTO_FILES=(
+       "board/board.proto"
+       "board/board_commands.proto"
+       "board/board_types.proto"
+       "common/commands/base_commands.proto"
+       "common/commands/editor_commands.proto"
+       "common/commands/project_commands.proto"
+       "common/envelope.proto"
+       "common/types/base_types.proto"
+       "common/types/enums.proto"
+       "common/types/project_settings.proto"
+       "schematic/schematic_commands.proto"
+       "schematic/schematic_types.proto"
+)
+
+SRC_URI="$(pypi_sdist_url)"
+for _p in "${PROTO_FILES[@]}"; do
+       SRC_URI+=" ${KICAD_PROTO_BASE}/${_p} -> kicad-${KICAD_TAG}-${_p//\//-}"
+done
+unset _p
+
+LICENSE="MIT"
+SLOT=0
+KEYWORDS="~amd64"
+
+# Tests not included in PyPI sdist
+RESTRICT="test"
+
+# Regenerate protobuf files at build time to match system protobuf version
+RDEPEND="
+       >=dev-python/protobuf-5.29[${PYTHON_USEDEP}]
+       >=dev-python/pynng-0.8.0[${PYTHON_USEDEP}]
+       <dev-python/pynng-0.9.0[${PYTHON_USEDEP}]
+       $(python_gen_cond_dep '
+               >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}]
+       ' python3_{10..12})
+"
+BDEPEND="
+       ${RDEPEND}
+       dev-libs/protobuf[protoc(+)]
+"
+
+src_prepare() {
+       # Remove build script config from pyproject.toml
+       sed -i '/\[tool.poetry.build\]/,/^$/d' pyproject.toml || die
+       rm -f setup.py build.py || die
+
+       # Setup proto source directory
+       local proto_src="${WORKDIR}/proto"
+       mkdir -p "${proto_src}"/{board,common/commands,common/types,schematic} 
|| die
+
+       # Copy downloaded proto files to proper structure
+       local _p _f
+       for _p in "${PROTO_FILES[@]}"; do
+               _f="kicad-${KICAD_TAG}-${_p//\//-}"
+               cp "${DISTDIR}/${_f}" "${proto_src}/${_p}" || die
+       done
+
+       einfo "Regenerating protobuf files with system protoc..."
+
+       # Remove pre-generated files
+       rm -rf "${S}"/kipy/proto || die
+       rm -rf "${S}"/build/lib/kipy/proto || die
+
+       # Create output directory
+       mkdir -p "${S}"/kipy/proto || die
+
+       # Compile all proto files
+       protoc \
+               --proto_path="${proto_src}" \
+               --python_out="${S}/kipy/proto" \
+               --pyi_out="${S}/kipy/proto" \
+               "${proto_src}"/board/*.proto \
+               "${proto_src}"/common/*.proto \
+               "${proto_src}"/common/commands/*.proto \
+               "${proto_src}"/common/types/*.proto \
+               "${proto_src}"/schematic/*.proto \
+               || die "protoc failed"
+
+       # Create __init__.py files
+       find "${S}/kipy/proto" -type d -exec touch {}/__init__.py \; || die
+
+       distutils-r1_src_prepare
+}

Reply via email to