[PATCH staging?] gnu: mrustc: Update to 0.10.

  • Done
  • quality assurance status badge
Details
3 participants
  • Efraim Flashner
  • Maxime Devos
  • Pierre Langlois
Owner
unassigned
Submitted by
Pierre Langlois
Severity
normal
P
P
Pierre Langlois wrote on 26 Mar 2022 14:27
(address . guix-patches@gnu.org)
87lewwbzwy.fsf@gmx.com
Hi Guix!

Good news everyone, I managed to get a aarch64 build of Rust by updating
mrustc to 0.10! Sadly, i686 is still unsupported, due to the build
using too much memory, it must be the same for other 32-bit architectures.

I tested this on a pinebookpro which only has 4G of RAM, I had to attach
16G of swap for the initial rust@1.39 build to succeed, then the whole
rust chain took about 5 days! I also tested on my x86_64 desktop.

Here's the patch! After it we should be able to follow-up and enable
Gnome and friends.

That being said, I wasn't entirely sure where this patch should go,
ideally it would be good to have a staging branch rather than
core-updates, WDYT? Maybe we can do this along with a rust version
update?

PS: I also tried to build rust 1.54 with the new mrustc update, to
shorten the chain, but I've not had any successes with it yet.
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmI/Fm0YHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31U6KQIAKUVZ7OpedlDpL3njg6MW6zC
TJMaEaxFjE/ZAiRB8/oHwQQ0f10olBY+NULv/sNNPu8B5topt3ot76z2Ip9V1CNC
csSjoc2O0yWfIv8zCPFrFJCQGm+DK0QGqaIpsQwaKVxgqg3CPvZmBjEzgq2jwpX3
Nwq1F9pqQ8+Ay1RhQ8fBN7CBI7WuSRvKirBIkSL+znwaARdGLGiZvyMPn8q6Y2p1
lSoTdwM1Na9CUnnIWgSmYRa2BXlemwT6YVochR7Yckmx7uDK3PZYOS4o6MaHJ3fk
JgNm3ydU3hq/JsG3/dkQofVSj+qgGpv9qaDx1xAjVpqCsxd9zqApznhch5zfoaI=
=bHBr
-----END PGP SIGNATURE-----

From 555b3b21ead25d09b56e6287d5542da1abfb13c4 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Sat, 26 Mar 2022 13:21:17 +0000
Subject: [PATCH] gnu: mrustc: Update to 0.10.

And enable rust for aarch64-linux!

* gnu/packages/rust.scm (%mrustc-commit): Update hash.
(%mrustc-source): Update to 0.10.
(rust-1.39)[arguments]: Move and adapt the substitute* that prevent
fetching sources. Patch /bin/sh in run_rustc/rustc_proxy.sh.
[supported-systems]: Add aarch64-linux.
---
gnu/packages/rust.scm | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)

Toggle diff (62 lines)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 26d6df7a94..7a841e4326 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -124,9 +124,9 @@ (define* (rust-bootstrapped-package base-rust version checksum)
;;; to be used in source form. The latest support for bootstrapping from
;;; 1.39.0 is not yet released so use the latest commit (see:
;;; https://github.com/thepowersgang/mrustc/issues/185).
-(define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2")
+(define %mrustc-commit "b364724f15fd6fce8234ad8add68107c23a22151")
(define %mrustc-source
- (let* ((version "0.9")
+ (let* ((version "0.10")
(commit %mrustc-commit)
(revision "1")
(name "mrustc"))
@@ -138,7 +138,7 @@ (define %mrustc-source
(file-name (git-file-name name (git-version version revision commit)))
(sha256
(base32
- "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3")))))
+ "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0")))))

;;; Rust 1.39 is special in that it is built with mrustc, which shortens the
;;; bootstrap path.
@@ -237,10 +237,11 @@ (define rust-1.39
,(string-take %mrustc-commit 7) "\\\""
" -D VERSION_BUILDTIME="
"\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\""
- " -D VERSION_GIT_ISDIRTY=0\n"))
+ " -D VERSION_GIT_ISDIRTY=0\n")))
+ (substitute* "minicargo.mk"
;; Do not try to fetch sources from the Internet.
- ((": \\$\\(RUSTC_SRC_DL\\)")
- ":"))
+ (("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)")
+ "$(MINICARGO)"))
(substitute* "run_rustc/Makefile"
(("[$]Vtime ")
"$V ")
@@ -248,6 +249,9 @@ (define rust-1.39
(("-j [[:digit:]]+ ")
"")
;; Patch the shebang of a generated wrapper for rustc
+ (("#!/bin/sh")
+ (string-append "#!" (which "sh"))))
+ (substitute* "run_rustc/rustc_proxy.sh"
(("#!/bin/sh")
(string-append "#!" (which "sh"))))))))
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
@@ -322,9 +326,9 @@ (define rust-1.39
safety and thread safety guarantees.")
(home-page "https://github.com/thepowersgang/mrustc")

- ;; So far mrustc is x86_64-only. It may support i686 soon:
+ ;; So far mrustc is (x86_64|aarch64)-only. It may support i686 soon:
;; <https://github.com/thepowersgang/mrustc/issues/78>.
- (supported-systems '("x86_64-linux"))
+ (supported-systems '("x86_64-linux" "aarch64-linux"))

;; Dual licensed.
(license (list license:asl2.0 license:expat))))
--
2.34.0
Thanks,
Pierre
P
P
Pierre Langlois wrote on 26 Mar 2022 15:16
(name . Pierre Langlois)(address . pierre.langlois@gmx.com)(address . 54580@debbugs.gnu.org)
87h77kajc9.fsf@gmx.com
Pierre Langlois <pierre.langlois@gmx.com> writes:

Toggle quote (48 lines)
> [[PGP Signed Part:Undecided]]
> Hi Guix!
>
> Good news everyone, I managed to get a aarch64 build of Rust by updating
> mrustc to 0.10! Sadly, i686 is still unsupported, due to the build
> using too much memory, it must be the same for other 32-bit architectures.
>
> I tested this on a pinebookpro which only has 4G of RAM, I had to attach
> 16G of swap for the initial rust@1.39 build to succeed, then the whole
> rust chain took about 5 days! I also tested on my x86_64 desktop.
>
> Here's the patch! After it we should be able to follow-up and enable
> Gnome and friends.
>
> That being said, I wasn't entirely sure where this patch should go,
> ideally it would be good to have a staging branch rather than
> core-updates, WDYT? Maybe we can do this along with a rust version
> update?
>
> PS: I also tried to build rust 1.54 with the new mrustc update, to
> shorten the chain, but I've not had any successes with it yet.
>
> [[End of PGP Signed Part]]
> From 555b3b21ead25d09b56e6287d5542da1abfb13c4 Mon Sep 17 00:00:00 2001
> From: Pierre Langlois <pierre.langlois@gmx.com>
> Date: Sat, 26 Mar 2022 13:21:17 +0000
> Subject: [PATCH] gnu: mrustc: Update to 0.10.
>
> And enable rust for aarch64-linux!
>
> * gnu/packages/rust.scm (%mrustc-commit): Update hash.
> (%mrustc-source): Update to 0.10.
> (rust-1.39)[arguments]: Move and adapt the substitute* that prevent
> fetching sources. Patch /bin/sh in run_rustc/rustc_proxy.sh.
> [supported-systems]: Add aarch64-linux.
> ---
> gnu/packages/rust.scm | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
> index 26d6df7a94..7a841e4326 100644
> --- a/gnu/packages/rust.scm
> +++ b/gnu/packages/rust.scm
> @@ -124,9 +124,9 @@ (define* (rust-bootstrapped-package base-rust version checksum)
> ;;; to be used in source form. The latest support for bootstrapping from
> ;;; 1.39.0 is not yet released so use the latest commit (see:
> ;;; https://github.com/thepowersgang/mrustc/issues/185).

Oh, I forgot to adapt this comment, the last sentence can be removed now
there's a release. Attached a fixed patch.
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmI/IJYYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31UGJoH/jbG0RvO3mQGqxBZDlf7MpVT
530UuTUjQWxWhPxwGtFgqPPcYVsERvN8Ed1hFrfWxjmCqjMaz5t4zYlLA7cw03WU
v2wLyoLpjczqo9MwA7fL5k4Dpx3tw9Pe243mua0GqJnFHQyPLetCuE6dMqbcWlEC
qht9Txn93DJXeAF2xq7DD1/yZORQ+LlSLiWa98EbcDCKWVgY2G++46NM8UpgvX44
xQV7+3f5g87FOnNrzCGxqIr88n1K5FqDtCzOC8efWiri1eHQNwrTDak97WmiHmlo
uBjj2MgmDMsF4NcidNlX/R0ZBxHi5YrSLIIn7SWqdBLCacxHjEgiBfZWupZaqQo=
=Mbps
-----END PGP SIGNATURE-----

From cdf2c194834ff55428a22988e4d90f0c133e9eb3 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Sat, 26 Mar 2022 13:21:17 +0000
Subject: [PATCH] gnu: mrustc: Update to 0.10.

And enable rust for aarch64-linux!

* gnu/packages/rust.scm (%mrustc-commit): Update hash.
(%mrustc-source): Update to 0.10.
(rust-1.39)[arguments]: Move and adapt the substitute* that prevent
fetching sources. Patch /bin/sh in run_rustc/rustc_proxy.sh.
[supported-systems]: Add aarch64-linux.
---
gnu/packages/rust.scm | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 26d6df7a94..67dc5cdaf3 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -121,12 +121,10 @@ (define* (rust-bootstrapped-package base-rust version checksum)
(package-native-inputs base-rust))))))

;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed
-;;; to be used in source form. The latest support for bootstrapping from
-;;; 1.39.0 is not yet released so use the latest commit (see:
-;;; https://github.com/thepowersgang/mrustc/issues/185).
-(define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2")
+;;; to be used in source form.
+(define %mrustc-commit "b364724f15fd6fce8234ad8add68107c23a22151")
(define %mrustc-source
- (let* ((version "0.9")
+ (let* ((version "0.10")
(commit %mrustc-commit)
(revision "1")
(name "mrustc"))
@@ -138,7 +136,7 @@ (define %mrustc-source
(file-name (git-file-name name (git-version version revision commit)))
(sha256
(base32
- "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3")))))
+ "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0")))))

;;; Rust 1.39 is special in that it is built with mrustc, which shortens the
;;; bootstrap path.
@@ -237,10 +235,11 @@ (define rust-1.39
,(string-take %mrustc-commit 7) "\\\""
" -D VERSION_BUILDTIME="
"\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\""
- " -D VERSION_GIT_ISDIRTY=0\n"))
+ " -D VERSION_GIT_ISDIRTY=0\n")))
+ (substitute* "minicargo.mk"
;; Do not try to fetch sources from the Internet.
- ((": \\$\\(RUSTC_SRC_DL\\)")
- ":"))
+ (("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)")
+ "$(MINICARGO)"))
(substitute* "run_rustc/Makefile"
(("[$]Vtime ")
"$V ")
@@ -248,6 +247,9 @@ (define rust-1.39
(("-j [[:digit:]]+ ")
"")
;; Patch the shebang of a generated wrapper for rustc
+ (("#!/bin/sh")
+ (string-append "#!" (which "sh"))))
+ (substitute* "run_rustc/rustc_proxy.sh"
(("#!/bin/sh")
(string-append "#!" (which "sh"))))))))
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
@@ -322,9 +324,9 @@ (define rust-1.39
safety and thread safety guarantees.")
(home-page "https://github.com/thepowersgang/mrustc")

- ;; So far mrustc is x86_64-only. It may support i686 soon:
+ ;; So far mrustc is (x86_64|aarch64)-only. It may support i686 soon:
;; <https://github.com/thepowersgang/mrustc/issues/78>.
- (supported-systems '("x86_64-linux"))
+ (supported-systems '("x86_64-linux" "aarch64-linux"))

;; Dual licensed.
(license (list license:asl2.0 license:expat))))
--
2.34.0
M
M
Maxime Devos wrote on 26 Mar 2022 15:58
(name . Pierre Langlois)(address . pierre.langlois@gmx.com)(address . 54580@debbugs.gnu.org)
e57e4db0401b4ea17299e1e54234b9cff56f9e74.camel@telenet.be
Pierre Langlois schreef op za 26-03-2022 om 14:16 [+0000]:
Toggle quote (2 lines)
> +    (supported-systems '("x86_64-linux" "aarch64-linux"))

Looks nice! Does this mean that the Rust version of librsvg can now
be used in 'librsvg-for-system' on aarch64?

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj8qGRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sL8AQD2AaSAOd2y8UVlLc9XVeec8eRf
FqojWQ2UyitmCXrXlQEAnm3+2wX/8U73JdEC1DfaQnxpqvHzjyAnk6tgZrTqgAk=
=KFUz
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 26 Mar 2022 16:09
730f00e80ab8469d6ce783ffff13cee76c533810.camel@telenet.be
Pierre Langlois schreef op za 26-03-2022 om 13:27 [+0000]:
Toggle quote (5 lines)
> That being said, I wasn't entirely sure where this patch should go,
> ideally it would be good to have a staging branch rather than
> core-updates, WDYT?  Maybe we can do this along with a rust version
> update?

While it would cause many rebuilds, it seems highly unlikely to
actually break anything, as it only changes some early parts of the
Rust bootstrapping process, so build farm capacity permitting, I would
go with a staging branch (not necessarily the "staging" branch, just
_a_ staging branch).

Doing it together with a rust version update seems reasonable to me

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj8sqBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7rZeAP9qbXGBTIH9uEqnHx/zB7y6Gzun
VE1JC6P0Za/Qki05qQEA2+Btzb7Ic4H8m+HjoMCYFf3V0aMpGnechw/zJuABmAQ=
=3Wue
-----END PGP SIGNATURE-----


P
P
Pierre Langlois wrote on 26 Mar 2022 16:05
(name . Maxime Devos)(address . maximedevos@telenet.be)
871qyo92a4.fsf@gmx.com
Maxime Devos <maximedevos@telenet.be> writes:

Toggle quote (7 lines)
> [[PGP Signed Part:Undecided]]
> Pierre Langlois schreef op za 26-03-2022 om 14:16 [+0000]:
>> +    (supported-systems '("x86_64-linux" "aarch64-linux"))
>
> Looks nice! Does this mean that the Rust version of librsvg can now
> be used in 'librsvg-for-system' on aarch64?

Yup! :-D

Toggle snippet (8 lines)
sapin ~/guix [env]$ uname -a
Linux sapin 5.16.16-gnu #1 SMP PREEMPT 1 aarch64 GNU/Linux
sapin ~/guix [env]$ ./pre-inst-env guix build librsvg
/gnu/store/rqccc75f1iymm58fjjfwx91l2q595zix-librsvg-2.50.7-debug
/gnu/store/mkyzy04sg4hqwiajd513mpdq976mxc48-librsvg-2.50.7-doc
/gnu/store/1578swy07wm06ywnk49y5gxnwwb4haxn-librsvg-2.50.7

Better yet, I have Gnome/GDM running on the pinebook pro! Now I'm also
trying to see if we can get icecat to build :cross-fingers:. However it
still requires a few more changes to enable gnome, I'm having issues
with the following packages for example:

- libmpeg3 doesn't build
- exiv2's tests fail
- mediasdk, svt-hevc seem to be x86-only.

I've not looked in details, just disabled tests/packages, we can look
into those more after we unblock rust.

Thanks,
Pierre
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmI/LTMYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31Up74H/R6k0igWDTuS7BNuuUTaKRUK
c81qxmki1u6QEkEGvm/0YmbrfbjzEcZzK3m91ScTwaswC6qNgjyh0jdazYhuD7yp
aEf2JWHiOp5qmYZujokgKoWCPfMop4ywL34HlU8NbWTpOhD+90pPntvk7PMAr03x
HlleQ/Q287JB6TWI+V/h9vzF9+Hc+0eNI2EQAJROjcYjA8U2Ha7rEUaWETscFIT2
qTeYrgiqsAUhwTQ24dDe+z6OZ7HauMC1CdCUcd8QUwq6b5BQ4ndI6t1Vfnr0m3yo
80Jml+r0K266T6yMopjTWzBhlZYFirZ+67269IuoE7P9ndWCsWPkRxDGbx7PBG0=
=ImFz
-----END PGP SIGNATURE-----

E
E
Efraim Flashner wrote on 9 May 2022 16:22
(name . Pierre Langlois)(address . pierre.langlois@gmx.com)(address . 54580@debbugs.gnu.org)
YnkjuptjWCtpJV5p@3900XT
On Sat, Mar 26, 2022 at 02:16:06PM +0000, Pierre Langlois wrote:
Toggle quote (26 lines)
>
> Pierre Langlois <pierre.langlois@gmx.com> writes:
>
> > [[PGP Signed Part:Undecided]]
> > Hi Guix!
> >
> > Good news everyone, I managed to get a aarch64 build of Rust by updating
> > mrustc to 0.10! Sadly, i686 is still unsupported, due to the build
> > using too much memory, it must be the same for other 32-bit architectures.
> >
> > I tested this on a pinebookpro which only has 4G of RAM, I had to attach
> > 16G of swap for the initial rust@1.39 build to succeed, then the whole
> > rust chain took about 5 days! I also tested on my x86_64 desktop.
> >
> > Here's the patch! After it we should be able to follow-up and enable
> > Gnome and friends.
> >
> > That being said, I wasn't entirely sure where this patch should go,
> > ideally it would be good to have a staging branch rather than
> > core-updates, WDYT? Maybe we can do this along with a rust version
> > update?
> >
> > PS: I also tried to build rust 1.54 with the new mrustc update, to
> > shorten the chain, but I've not had any successes with it yet.
> >

Go ahead and push it to staging. I have high on my TODO list to get it
working with 1.54.

--
Efraim Flashner <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmJ5I7oACgkQQarn3Mo9
g1EIcBAAksn9GgrDEKp/Cj185r+BjAN7K7DXWOdTtq1iFRsS96syTzve+qH2FKVX
C+Xs1pG8qyA+59no2UXGmDiyJfe+/m1paI6JeM8H3LsjlBp+MN5R4Y/VwazGxm0c
cZkJLiEW2Y2QxI3vR5nHaC43EuvIo9hmW1lGx71p9/uDLXIwikG8zsTHJ2g/t/OV
GpYBkSLIVvW2CFxmfrbV5amBrK0ouRs4ZpVFntryyq9Btga0c0W5M+fPCviSGYKR
J/ZjsBXpLSOUk3A47ufspOeSuKMi42eHw3hl+SONmsLVN34VgoKsmOXenx/X1L3b
7EPywn9uavecV129QnNQpczQARJValTSwSEMgg+C/MLA13v1xH/bEM2CeNOLi3D0
QXSjp5mUrKXTPHEs1DP39S/erOQAfC3b0IXoVYPo9jZQQaKfBU8I1dQ9NcP6pm+2
M8mJje6CN9eNZ7yDOcdGWkZ5dQpXiCbo2oJt/dLjgi6z05+DQLLMHOPFjh96xIvX
F77XIFeeCr3DR5WMwOFmfYD2tsvoTd3eEJHeSdvxjmv/IvrKja8KWZuK7iJ/rBHd
/TDlVHq1iJ5ODHwW3SiQze1vVYvEX3k2m9M4vFQ5jPUqhzO/jxJwtHqvjrED30q3
3DZs4k84oVzrEy3QzT/VnQZ0S865gyrZWL+hY0meUY8GSJ/wckI=
=8gx3
-----END PGP SIGNATURE-----


P
P
Pierre Langlois wrote on 10 May 2022 00:12
(name . Efraim Flashner)(address . efraim@flashner.co.il)
87czgm2w2o.fsf@gmx.com
Hi!

Efraim Flashner <efraim@flashner.co.il> writes:

Toggle quote (31 lines)
> [[PGP Signed Part:Undecided]]
> On Sat, Mar 26, 2022 at 02:16:06PM +0000, Pierre Langlois wrote:
>>
>> Pierre Langlois <pierre.langlois@gmx.com> writes:
>>
>> > [[PGP Signed Part:Undecided]]
>> > Hi Guix!
>> >
>> > Good news everyone, I managed to get a aarch64 build of Rust by updating
>> > mrustc to 0.10! Sadly, i686 is still unsupported, due to the build
>> > using too much memory, it must be the same for other 32-bit architectures.
>> >
>> > I tested this on a pinebookpro which only has 4G of RAM, I had to attach
>> > 16G of swap for the initial rust@1.39 build to succeed, then the whole
>> > rust chain took about 5 days! I also tested on my x86_64 desktop.
>> >
>> > Here's the patch! After it we should be able to follow-up and enable
>> > Gnome and friends.
>> >
>> > That being said, I wasn't entirely sure where this patch should go,
>> > ideally it would be good to have a staging branch rather than
>> > core-updates, WDYT? Maybe we can do this along with a rust version
>> > update?
>> >
>> > PS: I also tried to build rust 1.54 with the new mrustc update, to
>> > shorten the chain, but I've not had any successes with it yet.
>> >
>
> Go ahead and push it to staging. I have high on my TODO list to get it
> working with 1.54.

Oh cool I see you've pushed it already, thanks! Closing.
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmJ5kh8YHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31UFawIAIbYEW0hGGMPFlanVmxNKVZF
JQWAeBnBlKlwfMfURr/UDxvQNhNjgPga4fT92KG2iYkQkLFQnyfknR4pHmoFsGXO
X4ZwRrRW15HIF8FZN9of1kn/nwORddOKa6F6PvL1pb6Ql0XW1Ij1sRsfsILJIbgi
iCl2tNt2oRcijAyy8LeK37BQgGuospFBje1pLjQxOAFZyAGNsSMPywXDuBCPYFFD
yr2BVRoxMRS+YQNzSLG8AuFroVDlmqtRqTVny5Ngcq7ShVGrjnpkd6bNIbZQlbJp
kBuvAxp/Zx8JvdI5wlciwYvjI7n/nwqANgQM8MEj525InJ2ySRv+eWB0+ay2Uvk=
=to0d
-----END PGP SIGNATURE-----

Closed
?