View | Details | Raw Unified | Return to bug 256251 | Differences between
and this patch

Collapse All | Expand All

(-)b/Makefile (+134 lines)
Added Link Here
1
PORTNAME=	clvm_rs
2
PORTVERSION=	0.1.7
3
CATEGORIES=	devel python
4
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
5
6
MAINTAINER=	risner@stdio.com
7
COMMENT=	Chia's Rust clvm_rs library
8
9
LICENSE=	APACHE20 BSD3CLAUSE MIT UNLICENSE
10
LICENSE_COMB=	multi
11
12
BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}maturin>=0.8.3:devel/py-maturin@${PY_FLAVOR} \
13
		${PYTHON_PKGNAMEPREFIX}pip>=20.2.3:devel/py-pip@${PY_FLAVOR}
14
15
# TODO notes are included in this file.
16
USES+=		cargo python:3.7+ ssl
17
USE_GITHUB=	yes
18
GH_ACCOUNT=	Chia-Network
19
20
USE_PYTHON=	autoplist concurrent distutils
21
22
CARGO_CRATES=	bls12_381-0.4.0 \
23
		hex-0.4.2 \
24
		lazy_static-1.4.0 \
25
		num-bigint-0.3.1 \
26
		pyo3-0.13.2 \
27
		openssl-0.10.34 \
28
		ff-0.9.0 \
29
		group-0.9.0 \
30
		pairing-0.19.0 \
31
		rand_core-0.6.2 \
32
		subtle-2.4.0 \
33
		num-integer-0.1.44 \
34
		num-traits-0.2.14 \
35
		autocfg-1.0.1 \
36
		cfg-if-1.0.0 \
37
		ctor-0.1.20 \
38
		indoc-0.3.6 \
39
		inventory-0.1.10 \
40
		libc-0.2.95 \
41
		parking_lot-0.11.1 \
42
		paste-0.1.18 \
43
		pyo3-macros-0.13.2 \
44
		unindent-0.1.7 \
45
		bitflags-1.2.1 \
46
		openssl-sys-0.9.63 \
47
		foreign-types-0.3.2 \
48
		once_cell-1.7.2 \
49
		block-buffer-0.7.0 \
50
		digest-0.8.0 \
51
		fake-simd-0.1.2 \
52
		opaque-debug-0.2.0 \
53
		bitvec-0.20.0 \
54
		byteorder-1.4.3 \
55
		quote-1.0.9 \
56
		syn-1.0.72 \
57
		indoc-impl-0.3.6 \
58
		proc-macro-hack-0.5.19 \
59
		ghost-0.1.2 \
60
		inventory-impl-0.1.10 \
61
		instant-0.1.9 \
62
		lock_api-0.4.4 \
63
		parking_lot_core-0.8.3 \
64
		paste-impl-0.1.18 \
65
		pyo3-macros-backend-0.13.2 \
66
		cc-1.0.68 \
67
		pkg-config-0.3.19 \
68
		vcpkg-0.2.13 \
69
		foreign-types-shared-0.1.0 \
70
		block-padding-0.1.0 \
71
		byte-tools-0.3.1 \
72
		generic-array-0.12.0 \
73
		funty-1.1.0 \
74
		radium-0.6.2 \
75
		tap-1.0.1 \
76
		wyz-0.2.0 \
77
		proc-macro2-1.0.27 \
78
		unicode-xid-0.2.2 \
79
		scopeguard-1.1.0 \
80
		smallvec-1.6.1 \
81
		redox_syscall-0.2.8 \
82
		typenum-1.13.0 \
83
		winapi-i686-pc-windows-gnu-0.4.0 \
84
		winapi-x86_64-pc-windows-gnu-0.4.0 \
85
		winapi-0.3.9
86
87
CARGO_BUILD=	no
88
CARGO_INSTALL=	no
89
90
# TODO - Should I patch the library to remove winapi requirements?
91
92
# This is to prevent Mk/Uses/python.mk do-configure target from firing.
93
do-configure:
94
95
# TODO Has Cargo.toml and pyproject.toml, but no setup.py. Requires maturin.
96
do-build:
97
	@(cd ${BUILD_WRKSRC} ; \
98
		${ECHO_MSG} "===>  Builing Maturin Pyo3 bindings"; \
99
		${SETENV} ${MAKE_ENV} maturin build --release \
100
			${WITH_DEBUG:D:U--strip})
101
102
# Stage the .so library.
103
do-install:
104
	${STRIP_CMD} ${WRKSRC}/target/release/lib${PORTNAME}.so
105
	${INSTALL_DATA} ${WRKSRC}/target/release/lib${PORTNAME}.so ${STAGEDIR}${PREFIX}/lib
106
# TODO Portlint concerned about possible direct use of install, but we need
107
#	to extract the whl into staging. Requires pip.
108
	${SETENV} ${MAKE_ENV} pip install --isolated --root=${STAGEDIR} \
109
		--ignore-installed --no-deps ${WRKSRC}/target/wheels/*.whl
110
111
# Create the cached byte-code files.
112
post-install:
113
	(cd ${STAGEDIR}${PREFIX} && \
114
	${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py -d ${PREFIX} \
115
	-f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})
116
	${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/clvm*.so
117
# Regenerate .PLIST.pymodtemp from ${STAGEDIR} since the framework
118
# does not yet support Cargo.toml+pyproject.toml installs.
119
	@${FIND} ${STAGEDIR} \
120
		-type f -o -type l | \
121
		${SORT} | \
122
		${SED} -e 's|${STAGEDIR}||' \
123
		> ${WRKDIR}/.PLIST.pymodtmp
124
125
do-test:
126
	@(cd ${WRKSRC}/tests && ${SETENV} ${TEST_ENV} \
127
		${PYTHON_CMD} generate-programs.py; \
128
		${PYTHON_CMD} run-programs.py)
129
130
# TODO I'm not sure if these messages are errors or noops:
131
# ===> Creating unique files: Move MAN files needing SUFFIX
132
# ===> Creating unique files: Move files needing SUFFIX
133
134
.include <bsd.port.mk>
(-)b/distinfo (+131 lines)
Added Link Here
1
TIMESTAMP = 1622422703
2
SHA256 (rust/crates/bls12_381-0.4.0.tar.gz) = 1c56609cc42c628848e7b18e0baf42a4ef626b8c50442dc08b8094bd21d8ad32
3
SIZE (rust/crates/bls12_381-0.4.0.tar.gz) = 504526
4
SHA256 (rust/crates/hex-0.4.2.tar.gz) = 644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35
5
SIZE (rust/crates/hex-0.4.2.tar.gz) = 13385
6
SHA256 (rust/crates/lazy_static-1.4.0.tar.gz) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
7
SIZE (rust/crates/lazy_static-1.4.0.tar.gz) = 10443
8
SHA256 (rust/crates/num-bigint-0.3.1.tar.gz) = 5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf
9
SIZE (rust/crates/num-bigint-0.3.1.tar.gz) = 83038
10
SHA256 (rust/crates/pyo3-0.13.2.tar.gz) = 4837b8e8e18a102c23f79d1e9a110b597ea3b684c95e874eb1ad88f8683109c3
11
SIZE (rust/crates/pyo3-0.13.2.tar.gz) = 281372
12
SHA256 (rust/crates/openssl-0.10.34.tar.gz) = 6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8
13
SIZE (rust/crates/openssl-0.10.34.tar.gz) = 203996
14
SHA256 (rust/crates/ff-0.9.0.tar.gz) = 72a4d941a5b7c2a75222e2d44fcdf634a67133d9db31e177ae5ff6ecda852bfe
15
SIZE (rust/crates/ff-0.9.0.tar.gz) = 9455
16
SHA256 (rust/crates/group-0.9.0.tar.gz) = 61b3c1e8b4f1ca07e6605ea1be903a5f6956aec5c8a67fd44d56076631675ed8
17
SIZE (rust/crates/group-0.9.0.tar.gz) = 13327
18
SHA256 (rust/crates/pairing-0.19.0.tar.gz) = 9be899ebf10363f018353dba1baabb7e83145f3683c7b83b73b93b563e3167cc
19
SIZE (rust/crates/pairing-0.19.0.tar.gz) = 8431
20
SHA256 (rust/crates/rand_core-0.6.2.tar.gz) = 34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7
21
SIZE (rust/crates/rand_core-0.6.2.tar.gz) = 21708
22
SHA256 (rust/crates/subtle-2.4.0.tar.gz) = 1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2
23
SIZE (rust/crates/subtle-2.4.0.tar.gz) = 12411
24
SHA256 (rust/crates/num-integer-0.1.44.tar.gz) = d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db
25
SIZE (rust/crates/num-integer-0.1.44.tar.gz) = 22216
26
SHA256 (rust/crates/num-traits-0.2.14.tar.gz) = 9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290
27
SIZE (rust/crates/num-traits-0.2.14.tar.gz) = 45476
28
SHA256 (rust/crates/autocfg-1.0.1.tar.gz) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
29
SIZE (rust/crates/autocfg-1.0.1.tar.gz) = 12908
30
SHA256 (rust/crates/cfg-if-1.0.0.tar.gz) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
31
SIZE (rust/crates/cfg-if-1.0.0.tar.gz) = 7934
32
SHA256 (rust/crates/ctor-0.1.20.tar.gz) = 5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d
33
SIZE (rust/crates/ctor-0.1.20.tar.gz) = 9328
34
SHA256 (rust/crates/indoc-0.3.6.tar.gz) = 47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8
35
SIZE (rust/crates/indoc-0.3.6.tar.gz) = 9663
36
SHA256 (rust/crates/inventory-0.1.10.tar.gz) = 0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f
37
SIZE (rust/crates/inventory-0.1.10.tar.gz) = 11572
38
SHA256 (rust/crates/libc-0.2.95.tar.gz) = 789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36
39
SIZE (rust/crates/libc-0.2.95.tar.gz) = 515341
40
SHA256 (rust/crates/parking_lot-0.11.1.tar.gz) = 6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb
41
SIZE (rust/crates/parking_lot-0.11.1.tar.gz) = 39854
42
SHA256 (rust/crates/paste-0.1.18.tar.gz) = 45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880
43
SIZE (rust/crates/paste-0.1.18.tar.gz) = 12259
44
SHA256 (rust/crates/pyo3-macros-0.13.2.tar.gz) = a47f2c300ceec3e58064fd5f8f5b61230f2ffd64bde4970c81fdd0563a2db1bb
45
SIZE (rust/crates/pyo3-macros-0.13.2.tar.gz) = 5434
46
SHA256 (rust/crates/unindent-0.1.7.tar.gz) = f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7
47
SIZE (rust/crates/unindent-0.1.7.tar.gz) = 8346
48
SHA256 (rust/crates/bitflags-1.2.1.tar.gz) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693
49
SIZE (rust/crates/bitflags-1.2.1.tar.gz) = 16745
50
SHA256 (rust/crates/openssl-sys-0.9.63.tar.gz) = b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98
51
SIZE (rust/crates/openssl-sys-0.9.63.tar.gz) = 52125
52
SHA256 (rust/crates/foreign-types-0.3.2.tar.gz) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
53
SIZE (rust/crates/foreign-types-0.3.2.tar.gz) = 7504
54
SHA256 (rust/crates/once_cell-1.7.2.tar.gz) = af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3
55
SIZE (rust/crates/once_cell-1.7.2.tar.gz) = 28250
56
SHA256 (rust/crates/block-buffer-0.7.0.tar.gz) = 49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d
57
SIZE (rust/crates/block-buffer-0.7.0.tar.gz) = 6975
58
SHA256 (rust/crates/digest-0.8.0.tar.gz) = 05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c
59
SIZE (rust/crates/digest-0.8.0.tar.gz) = 9401
60
SHA256 (rust/crates/fake-simd-0.1.2.tar.gz) = e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed
61
SIZE (rust/crates/fake-simd-0.1.2.tar.gz) = 5398
62
SHA256 (rust/crates/opaque-debug-0.2.0.tar.gz) = 8015ef116df29050c48bd69c87acf3d6ab94e77d71dffb189cc0e55885aa43d4
63
SIZE (rust/crates/opaque-debug-0.2.0.tar.gz) = 5510
64
SHA256 (rust/crates/bitvec-0.20.0.tar.gz) = 85131fd04df0806b6f14843b6a7369a127deefbd6f3e8ec4dbb4fd9ae3d3c5f1
65
SIZE (rust/crates/bitvec-0.20.0.tar.gz) = 193118
66
SHA256 (rust/crates/byteorder-1.4.3.tar.gz) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
67
SIZE (rust/crates/byteorder-1.4.3.tar.gz) = 22512
68
SHA256 (rust/crates/quote-1.0.9.tar.gz) = c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7
69
SIZE (rust/crates/quote-1.0.9.tar.gz) = 25042
70
SHA256 (rust/crates/syn-1.0.72.tar.gz) = a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82
71
SIZE (rust/crates/syn-1.0.72.tar.gz) = 232500
72
SHA256 (rust/crates/indoc-impl-0.3.6.tar.gz) = ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0
73
SIZE (rust/crates/indoc-impl-0.3.6.tar.gz) = 7933
74
SHA256 (rust/crates/proc-macro-hack-0.5.19.tar.gz) = dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5
75
SIZE (rust/crates/proc-macro-hack-0.5.19.tar.gz) = 15556
76
SHA256 (rust/crates/ghost-0.1.2.tar.gz) = 1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479
77
SIZE (rust/crates/ghost-0.1.2.tar.gz) = 12777
78
SHA256 (rust/crates/inventory-impl-0.1.10.tar.gz) = 75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51
79
SIZE (rust/crates/inventory-impl-0.1.10.tar.gz) = 6228
80
SHA256 (rust/crates/instant-0.1.9.tar.gz) = 61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec
81
SIZE (rust/crates/instant-0.1.9.tar.gz) = 5213
82
SHA256 (rust/crates/lock_api-0.4.4.tar.gz) = 0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb
83
SIZE (rust/crates/lock_api-0.4.4.tar.gz) = 20356
84
SHA256 (rust/crates/parking_lot_core-0.8.3.tar.gz) = fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018
85
SIZE (rust/crates/parking_lot_core-0.8.3.tar.gz) = 32147
86
SHA256 (rust/crates/paste-impl-0.1.18.tar.gz) = d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6
87
SIZE (rust/crates/paste-impl-0.1.18.tar.gz) = 9451
88
SHA256 (rust/crates/pyo3-macros-backend-0.13.2.tar.gz) = 87b097e5d84fcbe3e167f400fbedd657820a375b034c78bd852050749a575d66
89
SIZE (rust/crates/pyo3-macros-backend-0.13.2.tar.gz) = 33106
90
SHA256 (rust/crates/cc-1.0.68.tar.gz) = 4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787
91
SIZE (rust/crates/cc-1.0.68.tar.gz) = 55936
92
SHA256 (rust/crates/pkg-config-0.3.19.tar.gz) = 3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c
93
SIZE (rust/crates/pkg-config-0.3.19.tar.gz) = 15451
94
SHA256 (rust/crates/vcpkg-0.2.13.tar.gz) = 025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa
95
SIZE (rust/crates/vcpkg-0.2.13.tar.gz) = 15559
96
SHA256 (rust/crates/foreign-types-shared-0.1.0.tar.gz) = baa1839fc3c5487b5e129ea4f774e3fd84e6c4607127315521bc014a722ebc9e
97
SIZE (rust/crates/foreign-types-shared-0.1.0.tar.gz) = 1213
98
SHA256 (rust/crates/block-padding-0.1.0.tar.gz) = 75bc2cfa52dc218b47ea000b15e6e5d00ca2f831db31e41592383c14d8802907
99
SIZE (rust/crates/block-padding-0.1.0.tar.gz) = 7059
100
SHA256 (rust/crates/byte-tools-0.3.1.tar.gz) = e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7
101
SIZE (rust/crates/byte-tools-0.3.1.tar.gz) = 5526
102
SHA256 (rust/crates/generic-array-0.12.0.tar.gz) = 3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592
103
SIZE (rust/crates/generic-array-0.12.0.tar.gz) = 17977
104
SHA256 (rust/crates/funty-1.1.0.tar.gz) = fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7
105
SIZE (rust/crates/funty-1.1.0.tar.gz) = 11631
106
SHA256 (rust/crates/radium-0.6.2.tar.gz) = 643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb
107
SIZE (rust/crates/radium-0.6.2.tar.gz) = 9930
108
SHA256 (rust/crates/tap-1.0.1.tar.gz) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
109
SIZE (rust/crates/tap-1.0.1.tar.gz) = 11316
110
SHA256 (rust/crates/wyz-0.2.0.tar.gz) = 85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214
111
SIZE (rust/crates/wyz-0.2.0.tar.gz) = 12926
112
SHA256 (rust/crates/proc-macro2-1.0.27.tar.gz) = f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038
113
SIZE (rust/crates/proc-macro2-1.0.27.tar.gz) = 38625
114
SHA256 (rust/crates/unicode-xid-0.2.2.tar.gz) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
115
SIZE (rust/crates/unicode-xid-0.2.2.tar.gz) = 14955
116
SHA256 (rust/crates/scopeguard-1.1.0.tar.gz) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
117
SIZE (rust/crates/scopeguard-1.1.0.tar.gz) = 11470
118
SHA256 (rust/crates/smallvec-1.6.1.tar.gz) = fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e
119
SIZE (rust/crates/smallvec-1.6.1.tar.gz) = 26444
120
SHA256 (rust/crates/redox_syscall-0.2.8.tar.gz) = 742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc
121
SIZE (rust/crates/redox_syscall-0.2.8.tar.gz) = 23697
122
SHA256 (rust/crates/typenum-1.13.0.tar.gz) = 879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06
123
SIZE (rust/crates/typenum-1.13.0.tar.gz) = 40238
124
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
125
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = 2918815
126
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
127
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 2947998
128
SHA256 (rust/crates/winapi-0.3.9.tar.gz) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
129
SIZE (rust/crates/winapi-0.3.9.tar.gz) = 1200382
130
SHA256 (Chia-Network-clvm_rs-0.1.7_GH0.tar.gz) = 871076e88523290540f79bbf3d274c12bcde457a539e0d48d3eec48120bf96cf
131
SIZE (Chia-Network-clvm_rs-0.1.7_GH0.tar.gz) = 466034
(-)b/files/patch-Cargo.toml (+12 lines)
Added Link Here
1
--- Cargo.toml.orig	2021-05-02 18:59:38 UTC
2
+++ Cargo.toml
3
@@ -26,8 +26,5 @@ lazy_static = "1.4.0"
4
 num-bigint = "0.3.1"
5
 bls12_381 = "0.4.0"
6
 
7
-[target.'cfg(windows)'.dependencies]
8
-sha2 = "0.8.0"
9
-
10
 [target.'cfg(unix)'.dependencies]
11
-openssl = { version = "0.10.32", features = ["vendored"] }
12
+openssl = { version = "0.10.32" }
(-)b/pkg-descr (+3 lines)
Added Link Here
1
Rust implementation of clvm.
2
3
WWW: https://github.com/Chia-Network/clvm_rs

Return to bug 256251