mbox series

[bug#63348,0/4] Fix tree-sitter-cli build after 0.20.8 update.

Message ID 87fs88uvo4.fsf@gmx.com
Headers show
Series Fix tree-sitter-cli build after 0.20.8 update. | expand

Message

Pierre Langlois May 7, 2023, 1:12 p.m. UTC
Hi Guix and rust-team!

This series completes the 0.20.8 tree-sitter update by fixing the
tree-sitter-cli package. I actually had started working on it a few
weeks back, but never found the motivation to complete it until now!

Sadly, to do it I've had to disable tests, with notes to re-enable them
later, after the rust update. It seems that rust 1.65 is explicitely
required now: https://github.com/tree-sitter/tree-sitter/pull/2167/commits/da894afef59e1aefa23470c7db7445096f8f0e65
However, luckily, it looks like only the tests are using any code that
doesn't compile with 1.60.

Lastly, we need a newer version of the webbrowser rust crate, but it
pulls in a lot of unsupported dependencies. I see that we usually
include them, but in this case, doing so forces us to update core
windows-sys crates, which would cause a rebuild of librsvg :-/

It turned out to be a lot easier to just add a patch to remove android,
ios and macos dependencies manually.

Thanks,
Pierre

Pierre Langlois (4):
  gnu: Add rust-unindent-0.2.
  gnu: Update rust-tiny-http to 0.12.0.
  gnu: Add rust-webbrowser-0.8.
  gnu: tree-sitter-cli: Fix build with 0.20.8 version.

 gnu/local.mk                                  |  1 +
 gnu/packages/crates-io.scm                    | 62 ++++++++++++++++---
 ...ust-webbrowser-remove-unsupported-os.patch | 24 +++++++
 gnu/packages/tree-sitter.scm                  | 20 +++++-
 4 files changed, 95 insertions(+), 12 deletions(-)
 create mode 100644 gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch


base-commit: 8b855dc1f4a3e31c002c229ad4d91525f4ce97d3

Comments

Efraim Flashner May 7, 2023, 4:49 p.m. UTC | #1
On Sun, May 07, 2023 at 02:12:02PM +0100, Pierre Langlois wrote:
> Hi Guix and rust-team!
> 
> This series completes the 0.20.8 tree-sitter update by fixing the
> tree-sitter-cli package. I actually had started working on it a few
> weeks back, but never found the motivation to complete it until now!
> 
> Sadly, to do it I've had to disable tests, with notes to re-enable them
> later, after the rust update. It seems that rust 1.65 is explicitely
> required now: https://github.com/tree-sitter/tree-sitter/pull/2167/commits/da894afef59e1aefa23470c7db7445096f8f0e65
> However, luckily, it looks like only the tests are using any code that
> doesn't compile with 1.60.

On the rust-team branch, which we hope to merge Real Soon™, we have
rust-1.67, so I re-enabled the tests.

> Lastly, we need a newer version of the webbrowser rust crate, but it
> pulls in a lot of unsupported dependencies. I see that we usually
> include them, but in this case, doing so forces us to update core
> windows-sys crates, which would cause a rebuild of librsvg :-/

I went to remove the patch and add in the packages, but even after all
the patches on the rust-team branch we don't have rust-jni-0.21 (at
least) so I punted and put your patch back in :)

> It turned out to be a lot easier to just add a patch to remove android,
> ios and macos dependencies manually.

Indeed! I wonder about doing that with other packages which use them.

> Thanks,
> Pierre
> 
> Pierre Langlois (4):
>   gnu: Add rust-unindent-0.2.

I ended up dropping this patch since it was already in effect on the
rust-team branch.

>   gnu: Update rust-tiny-http to 0.12.0.
>   gnu: Add rust-webbrowser-0.8.
>   gnu: tree-sitter-cli: Fix build with 0.20.8 version.

These 3 went in though. Thanks!

>  gnu/local.mk                                  |  1 +
>  gnu/packages/crates-io.scm                    | 62 ++++++++++++++++---
>  ...ust-webbrowser-remove-unsupported-os.patch | 24 +++++++
>  gnu/packages/tree-sitter.scm                  | 20 +++++-
>  4 files changed, 95 insertions(+), 12 deletions(-)
>  create mode 100644 gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch
> 
> 
> base-commit: 8b855dc1f4a3e31c002c229ad4d91525f4ce97d3
> -- 
> 2.39.2
Pierre Langlois May 7, 2023, 5:10 p.m. UTC | #2
Efraim Flashner <efraim@flashner.co.il> writes:

> [[PGP Signed Part:Undecided]]
> On Sun, May 07, 2023 at 02:12:02PM +0100, Pierre Langlois wrote:
>> Hi Guix and rust-team!
>> 
>> This series completes the 0.20.8 tree-sitter update by fixing the
>> tree-sitter-cli package. I actually had started working on it a few
>> weeks back, but never found the motivation to complete it until now!
>> 
>> Sadly, to do it I've had to disable tests, with notes to re-enable them
>> later, after the rust update. It seems that rust 1.65 is explicitely
>> required now: https://github.com/tree-sitter/tree-sitter/pull/2167/commits/da894afef59e1aefa23470c7db7445096f8f0e65
>> However, luckily, it looks like only the tests are using any code that
>> doesn't compile with 1.60.
>
> On the rust-team branch, which we hope to merge Real Soon™, we have
> rust-1.67, so I re-enabled the tests.

Oh happy that it just worked! I was thinking of trying it on the
rust-team branch, but didn't get to yet.

>
>> Lastly, we need a newer version of the webbrowser rust crate, but it
>> pulls in a lot of unsupported dependencies. I see that we usually
>> include them, but in this case, doing so forces us to update core
>> windows-sys crates, which would cause a rebuild of librsvg :-/
>
> I went to remove the patch and add in the packages, but even after all
> the patches on the rust-team branch we don't have rust-jni-0.21 (at
> least) so I punted and put your patch back in :)
>
>> It turned out to be a lot easier to just add a patch to remove android,
>> ios and macos dependencies manually.
>
> Indeed! I wonder about doing that with other packages which use them.

Oh yeah, doing this made me wonder if we couldn't do this automatically,
and rewrite cargo.toml files in the build system, to drop many packages
like that. I wonder how well that would work.

>
>> Thanks,
>> Pierre
>> 
>> Pierre Langlois (4):
>>   gnu: Add rust-unindent-0.2.
>
> I ended up dropping this patch since it was already in effect on the
> rust-team branch.
>
>>   gnu: Update rust-tiny-http to 0.12.0.
>>   gnu: Add rust-webbrowser-0.8.
>>   gnu: tree-sitter-cli: Fix build with 0.20.8 version.
>
> These 3 went in though. Thanks!

Nice, thank you!

Pierre