git: 6100f469b83b - main - misc/py-pyqir: New port: PyQIR parses, generates, evaluates Quantum Intermediate Representation

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 20 Jul 2023 16:19:44 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6100f469b83bf174e3155df7f5021023bc4a5058

commit 6100f469b83bf174e3155df7f5021023bc4a5058
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-07-18 14:21:39 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-07-20 16:19:41 +0000

    misc/py-pyqir: New port: PyQIR parses, generates, evaluates Quantum Intermediate Representation
---
 misc/Makefile           |   1 +
 misc/py-pyqir/Makefile  | 115 ++++++++++++++++++++++++++++++++++
 misc/py-pyqir/distinfo  | 159 ++++++++++++++++++++++++++++++++++++++++++++++++
 misc/py-pyqir/pkg-descr |   2 +
 misc/py-pyqir/pkg-plist |   6 ++
 5 files changed, 283 insertions(+)

diff --git a/misc/Makefile b/misc/Makefile
index d4f478cfee4a..8f42aeced5d1 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -453,6 +453,7 @@
     SUBDIR += py-pykml
     SUBDIR += py-pypatent
     SUBDIR += py-pyprind
+    SUBDIR += py-pyqir
     SUBDIR += py-python-geohash
     SUBDIR += py-python-utils
     SUBDIR += py-pytorch
diff --git a/misc/py-pyqir/Makefile b/misc/py-pyqir/Makefile
new file mode 100644
index 000000000000..1d744adee5dd
--- /dev/null
+++ b/misc/py-pyqir/Makefile
@@ -0,0 +1,115 @@
+PORTNAME=	pyqir
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.8.2
+CATEGORIES=	misc python # quantum-computing
+#MASTER_SITES=	PYPI # no tarballs
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	PyQIR parses, generates, evaluates Quantum Intermediate Representation
+WWW=		https://www.qir-alliance.org/pyqir/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}maturin>0:devel/py-maturin@${PY_FLAVOR}
+
+USES=		cargo gnome llvm:14 localbase:ldflags python
+USE_PYTHON=	pep517 pytest
+USE_GNOME=	libxml2
+
+WRKSRC_SUBSIR=	pyqir
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	qir-alliance
+
+CARGO_FEATURES=	llvm14-0
+CARGO_CRATES=	aho-corasick-0.7.19 \
+		autocfg-1.1.0 \
+		bitflags-1.3.2 \
+		bitvec-1.0.1 \
+		cc-1.0.76 \
+		cfg-if-1.0.0 \
+		cmake-0.1.49 \
+		const-str-0.5.3 \
+		dashmap-5.4.0 \
+		error-chain-0.10.0 \
+		funty-2.0.0 \
+		futures-0.3.25 \
+		futures-channel-0.3.25 \
+		futures-core-0.3.25 \
+		futures-executor-0.3.25 \
+		futures-io-0.3.25 \
+		futures-sink-0.3.25 \
+		futures-task-0.3.25 \
+		futures-util-0.3.25 \
+		hashbrown-0.12.3 \
+		indoc-1.0.7 \
+		lazy_static-1.4.0 \
+		libc-0.2.137 \
+		llvm-sys-110.0.4 \
+		llvm-sys-120.2.5 \
+		llvm-sys-130.0.5 \
+		llvm-sys-140.0.3 \
+		lock_api-0.4.9 \
+		log-0.4.17 \
+		memchr-2.5.0 \
+		memoffset-0.6.5 \
+		mut_static-5.0.0 \
+		normalize-line-endings-0.3.0 \
+		once_cell-1.16.0 \
+		parking_lot-0.12.1 \
+		parking_lot_core-0.9.4 \
+		pest-2.4.1 \
+		pin-project-lite-0.2.9 \
+		pin-utils-0.1.0 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.47 \
+		pyo3-0.17.3 \
+		pyo3-build-config-0.17.3 \
+		pyo3-ffi-0.17.3 \
+		pyo3-macros-0.17.3 \
+		pyo3-macros-backend-0.17.3 \
+		quote-1.0.21 \
+		radium-0.7.0 \
+		redox_syscall-0.2.16 \
+		regex-1.7.0 \
+		regex-syntax-0.6.28 \
+		scopeguard-1.1.0 \
+		semver-0.11.0 \
+		semver-1.0.14 \
+		semver-parser-0.10.2 \
+		serial_test-0.9.0 \
+		serial_test_derive-0.9.0 \
+		slab-0.4.7 \
+		smallvec-1.10.0 \
+		syn-1.0.103 \
+		tap-1.0.1 \
+		target-lexicon-0.12.5 \
+		thiserror-1.0.37 \
+		thiserror-impl-1.0.37 \
+		ucd-trie-0.1.5 \
+		unicode-ident-1.0.5 \
+		unindent-0.1.10 \
+		version_check-0.9.4 \
+		windows-sys-0.42.0 \
+		windows_aarch64_gnullvm-0.42.0 \
+		windows_aarch64_msvc-0.42.0 \
+		windows_i686_gnu-0.42.0 \
+		windows_i686_msvc-0.42.0 \
+		windows_x86_64_gnu-0.42.0 \
+		windows_x86_64_gnullvm-0.42.0 \
+		windows_x86_64_msvc-0.42.0 \
+		wyz-0.5.0
+
+MAKE_ENV=	LLVM_SYS_140_PREFIX=${LLVM_PREFIX}
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+do-install:
+	${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}
+	${INSTALL_LIB} ${WRKDIR}/target/*-unknown-freebsd/release/libpyqir.so ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}/_native.abi3.so
+	${INSTALL_DATA} ${WRKSRC}/pyqir/pyqir/*.py ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/misc/py-pyqir/distinfo b/misc/py-pyqir/distinfo
new file mode 100644
index 000000000000..46cc6b64532f
--- /dev/null
+++ b/misc/py-pyqir/distinfo
@@ -0,0 +1,159 @@
+TIMESTAMP = 1689834318
+SHA256 (rust/crates/aho-corasick-0.7.19.crate) = b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e
+SIZE (rust/crates/aho-corasick-0.7.19.crate) = 113070
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c
+SIZE (rust/crates/bitvec-1.0.1.crate) = 224375
+SHA256 (rust/crates/cc-1.0.76.crate) = 76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f
+SIZE (rust/crates/cc-1.0.76.crate) = 60132
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/cmake-0.1.49.crate) = db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c
+SIZE (rust/crates/cmake-0.1.49.crate) = 16717
+SHA256 (rust/crates/const-str-0.5.3.crate) = a5bc011a04793b8ce7bca0efd59e3697c2061760df6efbb8c895e8a81548db67
+SIZE (rust/crates/const-str-0.5.3.crate) = 25252
+SHA256 (rust/crates/dashmap-5.4.0.crate) = 907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc
+SIZE (rust/crates/dashmap-5.4.0.crate) = 22862
+SHA256 (rust/crates/error-chain-0.10.0.crate) = d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8
+SIZE (rust/crates/error-chain-0.10.0.crate) = 18432
+SHA256 (rust/crates/funty-2.0.0.crate) = e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c
+SIZE (rust/crates/funty-2.0.0.crate) = 13160
+SHA256 (rust/crates/futures-0.3.25.crate) = 38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0
+SIZE (rust/crates/futures-0.3.25.crate) = 51664
+SHA256 (rust/crates/futures-channel-0.3.25.crate) = 52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed
+SIZE (rust/crates/futures-channel-0.3.25.crate) = 31974
+SHA256 (rust/crates/futures-core-0.3.25.crate) = 04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac
+SIZE (rust/crates/futures-core-0.3.25.crate) = 14623
+SHA256 (rust/crates/futures-executor-0.3.25.crate) = 7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2
+SIZE (rust/crates/futures-executor-0.3.25.crate) = 17744
+SHA256 (rust/crates/futures-io-0.3.25.crate) = 00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb
+SIZE (rust/crates/futures-io-0.3.25.crate) = 8911
+SHA256 (rust/crates/futures-sink-0.3.25.crate) = 39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9
+SIZE (rust/crates/futures-sink-0.3.25.crate) = 7854
+SHA256 (rust/crates/futures-task-0.3.25.crate) = 2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea
+SIZE (rust/crates/futures-task-0.3.25.crate) = 11844
+SHA256 (rust/crates/futures-util-0.3.25.crate) = 197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6
+SIZE (rust/crates/futures-util-0.3.25.crate) = 155866
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/indoc-1.0.7.crate) = adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3
+SIZE (rust/crates/indoc-1.0.7.crate) = 13716
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.137.crate) = fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89
+SIZE (rust/crates/libc-0.2.137.crate) = 606185
+SHA256 (rust/crates/llvm-sys-110.0.4.crate) = 7abad6f4c44960941ebd7d26b97719f9b8dba379f971b48de919d03462527c3d
+SIZE (rust/crates/llvm-sys-110.0.4.crate) = 47752
+SHA256 (rust/crates/llvm-sys-120.2.5.crate) = a1c9655eec036faf512507746ce70765bda72ed98e52b4328f0d7b93e970c6d8
+SIZE (rust/crates/llvm-sys-120.2.5.crate) = 48396
+SHA256 (rust/crates/llvm-sys-130.0.5.crate) = 7e12061782e78da1f5e5f7f758dcdda04bc97af90e8e55bef5f56f1162759ffc
+SIZE (rust/crates/llvm-sys-130.0.5.crate) = 50967
+SHA256 (rust/crates/llvm-sys-140.0.3.crate) = 8b9eda9cc6f86672152125b1e112d66ab8797b7917fb202e2faee912caa76413
+SIZE (rust/crates/llvm-sys-140.0.3.crate) = 50867
+SHA256 (rust/crates/lock_api-0.4.9.crate) = 435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df
+SIZE (rust/crates/lock_api-0.4.9.crate) = 25685
+SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
+SIZE (rust/crates/log-0.4.17.crate) = 38028
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
+SIZE (rust/crates/memoffset-0.6.5.crate) = 7686
+SHA256 (rust/crates/mut_static-5.0.0.crate) = 248cd8eb389a4e3618bba47c9a171a4bbb271c29c07e03c4ff4ff74946336f66
+SIZE (rust/crates/mut_static-5.0.0.crate) = 3038
+SHA256 (rust/crates/normalize-line-endings-0.3.0.crate) = 61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be
+SIZE (rust/crates/normalize-line-endings-0.3.0.crate) = 5737
+SHA256 (rust/crates/once_cell-1.16.0.crate) = 86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860
+SIZE (rust/crates/once_cell-1.16.0.crate) = 32120
+SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
+SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
+SHA256 (rust/crates/parking_lot_core-0.9.4.crate) = 4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0
+SIZE (rust/crates/parking_lot_core-0.9.4.crate) = 32359
+SHA256 (rust/crates/pest-2.4.1.crate) = a528564cc62c19a7acac4d81e01f39e53e25e17b934878f4c6d25cc2836e62f8
+SIZE (rust/crates/pest-2.4.1.crate) = 93863
+SHA256 (rust/crates/pin-project-lite-0.2.9.crate) = e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116
+SIZE (rust/crates/pin-project-lite-0.2.9.crate) = 27713
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
+SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
+SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
+SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
+SHA256 (rust/crates/proc-macro2-1.0.47.crate) = 5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725
+SIZE (rust/crates/proc-macro2-1.0.47.crate) = 41955
+SHA256 (rust/crates/pyo3-0.17.3.crate) = 268be0c73583c183f2b14052337465768c07726936a260f480f0857cb95ba543
+SIZE (rust/crates/pyo3-0.17.3.crate) = 408939
+SHA256 (rust/crates/pyo3-build-config-0.17.3.crate) = 28fcd1e73f06ec85bf3280c48c67e731d8290ad3d730f8be9dc07946923005c8
+SIZE (rust/crates/pyo3-build-config-0.17.3.crate) = 29230
+SHA256 (rust/crates/pyo3-ffi-0.17.3.crate) = 0f6cb136e222e49115b3c51c32792886defbfb0adead26a688142b346a0b9ffc
+SIZE (rust/crates/pyo3-ffi-0.17.3.crate) = 62854
+SHA256 (rust/crates/pyo3-macros-0.17.3.crate) = 94144a1266e236b1c932682136dc35a9dee8d3589728f68130c7c3861ef96b28
+SIZE (rust/crates/pyo3-macros-0.17.3.crate) = 7257
+SHA256 (rust/crates/pyo3-macros-backend-0.17.3.crate) = c8df9be978a2d2f0cdebabb03206ed73b11314701a5bfe71b0d753b81997777f
+SIZE (rust/crates/pyo3-macros-backend-0.17.3.crate) = 49992
+SHA256 (rust/crates/quote-1.0.21.crate) = bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179
+SIZE (rust/crates/quote-1.0.21.crate) = 28030
+SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09
+SIZE (rust/crates/radium-0.7.0.crate) = 10906
+SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
+SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
+SHA256 (rust/crates/regex-1.7.0.crate) = e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a
+SIZE (rust/crates/regex-1.7.0.crate) = 239421
+SHA256 (rust/crates/regex-syntax-0.6.28.crate) = 456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848
+SIZE (rust/crates/regex-syntax-0.6.28.crate) = 299288
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+SHA256 (rust/crates/semver-0.11.0.crate) = f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6
+SIZE (rust/crates/semver-0.11.0.crate) = 20826
+SHA256 (rust/crates/semver-1.0.14.crate) = e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4
+SIZE (rust/crates/semver-1.0.14.crate) = 29813
+SHA256 (rust/crates/semver-parser-0.10.2.crate) = 00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7
+SIZE (rust/crates/semver-parser-0.10.2.crate) = 23176
+SHA256 (rust/crates/serial_test-0.9.0.crate) = 92761393ee4dc3ff8f4af487bd58f4307c9329bbedea02cac0089ad9c411e153
+SIZE (rust/crates/serial_test-0.9.0.crate) = 8396
+SHA256 (rust/crates/serial_test_derive-0.9.0.crate) = 4b6f5d1c3087fb119617cff2966fe3808a80e5eb59a8c1601d5994d66f4346a5
+SIZE (rust/crates/serial_test_derive-0.9.0.crate) = 6944
+SHA256 (rust/crates/slab-0.4.7.crate) = 4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef
+SIZE (rust/crates/slab-0.4.7.crate) = 16647
+SHA256 (rust/crates/smallvec-1.10.0.crate) = a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0
+SIZE (rust/crates/smallvec-1.10.0.crate) = 31564
+SHA256 (rust/crates/syn-1.0.103.crate) = a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d
+SIZE (rust/crates/syn-1.0.103.crate) = 236495
+SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
+SIZE (rust/crates/tap-1.0.1.crate) = 11316
+SHA256 (rust/crates/target-lexicon-0.12.5.crate) = 9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d
+SIZE (rust/crates/target-lexicon-0.12.5.crate) = 23224
+SHA256 (rust/crates/thiserror-1.0.37.crate) = 10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e
+SIZE (rust/crates/thiserror-1.0.37.crate) = 18752
+SHA256 (rust/crates/thiserror-impl-1.0.37.crate) = 982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb
+SIZE (rust/crates/thiserror-impl-1.0.37.crate) = 15428
+SHA256 (rust/crates/ucd-trie-0.1.5.crate) = 9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81
+SIZE (rust/crates/ucd-trie-0.1.5.crate) = 45391
+SHA256 (rust/crates/unicode-ident-1.0.5.crate) = 6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3
+SIZE (rust/crates/unicode-ident-1.0.5.crate) = 35455
+SHA256 (rust/crates/unindent-0.1.10.crate) = 58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112
+SIZE (rust/crates/unindent-0.1.10.crate) = 7703
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/windows-sys-0.42.0.crate) = 5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7
+SIZE (rust/crates/windows-sys-0.42.0.crate) = 3006791
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.0.crate) = 41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.0.crate) = 357917
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.0.crate) = dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4
+SIZE (rust/crates/windows_aarch64_msvc-0.42.0.crate) = 659424
+SHA256 (rust/crates/windows_i686_gnu-0.42.0.crate) = fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7
+SIZE (rust/crates/windows_i686_gnu-0.42.0.crate) = 728570
+SHA256 (rust/crates/windows_i686_msvc-0.42.0.crate) = 84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246
+SIZE (rust/crates/windows_i686_msvc-0.42.0.crate) = 717477
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.0.crate) = bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed
+SIZE (rust/crates/windows_x86_64_gnu-0.42.0.crate) = 692493
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.0.crate) = 09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.0.crate) = 357906
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.0.crate) = f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5
+SIZE (rust/crates/windows_x86_64_msvc-0.42.0.crate) = 659377
+SHA256 (rust/crates/wyz-0.5.0.crate) = 30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e
+SIZE (rust/crates/wyz-0.5.0.crate) = 18578
+SHA256 (qir-alliance-pyqir-v0.8.2_GH0.tar.gz) = bdbef3162cf0914cf94009bd82814ac5aa8f668fb267b670003c881d6ff3a690
+SIZE (qir-alliance-pyqir-v0.8.2_GH0.tar.gz) = 142074
diff --git a/misc/py-pyqir/pkg-descr b/misc/py-pyqir/pkg-descr
new file mode 100644
index 000000000000..cacf9c57568e
--- /dev/null
+++ b/misc/py-pyqir/pkg-descr
@@ -0,0 +1,2 @@
+PyQIR is a set of APIs for generating, parsing, and evaluating
+Quantum Intermediate Representation (QIR).
diff --git a/misc/py-pyqir/pkg-plist b/misc/py-pyqir/pkg-plist
new file mode 100644
index 000000000000..95aefa391fe6
--- /dev/null
+++ b/misc/py-pyqir/pkg-plist
@@ -0,0 +1,6 @@
+%%PYTHON_SITELIBDIR%%/pyqir/__init__.py
+%%PYTHON_SITELIBDIR%%/pyqir/_basicqis.py
+%%PYTHON_SITELIBDIR%%/pyqir/_native.abi3.so
+%%PYTHON_SITELIBDIR%%/pyqir/_simple.py
+%%PYTHON_SITELIBDIR%%/pyqir/qis.py
+%%PYTHON_SITELIBDIR%%/pyqir/rt.py