GNU bug report logs -
#63348
[PATCH 0/4] Fix tree-sitter-cli build after 0.20.8 update.
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 63348 in the body.
You can then email your comments to 63348 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#63348
; Package
guix-patches
.
(Sun, 07 May 2023 13:20:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Pierre Langlois <pierre.langlois <at> gmx.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sun, 07 May 2023 13:20:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
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
--
2.39.2
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#63348
; Package
guix-patches
.
(Sun, 07 May 2023 13:28:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 63348 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/crates-io.scm (rust-unindent-0.2): New variable.
(rust-unindent-0.1): Inherit from rust-unindent-0.2.
---
gnu/packages/crates-io.scm | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a8f4c83336..6faec522e0 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -65823,17 +65823,17 @@ (define-public rust-unicode-xid-0.0
(base32
"1p5l9h3n3i53cp95fb65p8q3vbwib79ryd9z5z5h5kr9gl6qc7wc"))))))
-(define-public rust-unindent-0.1
+(define-public rust-unindent-0.2
(package
(name "rust-unindent")
- (version "0.1.7")
+ (version "0.2.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "unindent" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1is1gmx1l89z426rn3xsi0mii4vhy2imhqmhx8x2pd8mji6y0kpi"))))
+ (base32 "0kw1yivkklw1f5mpcwakxznwzn6br2g3yvbwg7yfvxqzlmg0z8ss"))))
(build-system cargo-build-system)
(home-page "https://github.com/dtolnay/indoc")
(synopsis "Remove a column of leading whitespace from a string")
@@ -65842,6 +65842,18 @@ (define-public rust-unindent-0.1
(license (list license:asl2.0
license:expat))))
+(define-public rust-unindent-0.1
+ (package (inherit rust-unindent-0.2)
+ (name "rust-unindent")
+ (version "0.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "unindent" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1is1gmx1l89z426rn3xsi0mii4vhy2imhqmhx8x2pd8mji6y0kpi"))))))
+
(define-public rust-uniquote-3
(package
(name "rust-uniquote")
base-commit: 8b855dc1f4a3e31c002c229ad4d91525f4ce97d3
--
2.39.2
Information forwarded
to
guix-patches <at> gnu.org
:
bug#63348
; Package
guix-patches
.
(Sun, 07 May 2023 13:28:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 63348 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/crates-io.scm (rust-tiny-http-0.8): Rename to...
(rust-tiny-http-0.12): ... this.
[arguments]: Remove rust-chrono and rust-url dependencies, add rust-httparse,
httpdate, rustls and rustls-pemfile.
(rust-tiny-http-0.6): Inherit from rust-tiny-http-0.12.
---
gnu/packages/crates-io.scm | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6faec522e0..22eeceb2fc 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -61046,26 +61046,28 @@ (define-public rust-tint-1
manipulation in Rust.")
(license license:expat)))
-(define-public rust-tiny-http-0.8
+(define-public rust-tiny-http-0.12
(package
(name "rust-tiny-http")
- (version "0.8.2")
+ (version "0.12.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tiny-http" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0fcdwpb2ghk671qjjrk6048hs3yp7f681hxpr68gamk00181prcw"))))
+ (base32 "10nw9kk2i2aq4l4csy0825qkq0l66f9mz2c1n57yg8hkckgib69q"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-ascii" ,rust-ascii-1)
- ("rust-chrono" ,rust-chrono-0.4)
("rust-chunked-transfer" ,rust-chunked-transfer-1)
+ ("rust-httparse" ,rust-httparse-1)
+ ("rust-httpdate" ,rust-httpdate-1)
("rust-log" ,rust-log-0.4)
("rust-openssl" ,rust-openssl-0.10)
- ("rust-url" ,rust-url-2))
+ ("rust-rustls" ,rust-rustls-0.20)
+ ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2))
#:cargo-development-inputs
(("rust-fdlimit" ,rust-fdlimit-0.1)
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
@@ -61077,7 +61079,7 @@ (define-public rust-tiny-http-0.8
(define-public rust-tiny-http-0.6
(package
- (inherit rust-tiny-http-0.8)
+ (inherit rust-tiny-http-0.12)
(name "rust-tiny-http")
(version "0.6.2")
(source
--
2.39.2
Information forwarded
to
guix-patches <at> gnu.org
:
bug#63348
; Package
guix-patches
.
(Sun, 07 May 2023 13:28:03 GMT)
Full text and
rfc822 format available.
Message #14 received at 63348 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/crates-io.scm (rust-webbrowser-0.8): New variable.
(rust-webbrowser-0.5): Inherit from rust-webbrowser-0.8.
* gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch: New file.
* gnu/local.mk: Register it.
---
gnu/local.mk | 1 +
gnu/packages/crates-io.scm | 39 +++++++++++++++----
...ust-webbrowser-remove-unsupported-os.patch | 24 ++++++++++++
3 files changed, 56 insertions(+), 8 deletions(-)
create mode 100644 gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index de5ac37ba5..cda612274a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1872,6 +1872,7 @@ dist_patch_DATA = \
%D%/packages/patches/rust-nettle-sys-disable-vendor.patch \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
%D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \
+ %D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 22eeceb2fc..d912441f4d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -67832,8 +67832,38 @@ (define-public rust-web-sys-0.3
"Bindings for all Web APIs, a procedurally generated crate from WebIDL.")
(license (list license:expat license:asl2.0))))
+(define-public rust-webbrowser-0.8
+ (package
+ (name "rust-webbrowser")
+ (version "0.8.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "webbrowser" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ ;; Explicitely remove dependencies for unsupported operating systems,
+ ;; to avoid pulling many dependencies and causing rust world rebuilds.
+ (patches (search-patches "rust-webbrowser-remove-unsupported-os.patch"))
+ (patch-flags '("-p0"))
+ (sha256
+ (base32 "0zk1qidyksspa8pgvq8bh2lyqmmrs0fr5r1qsyhbzrawpn2w972p"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-dirs" ,rust-dirs-4)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-url" ,rust-url-2)
+ ("rust-web-sys" ,rust-web-sys-0.3))))
+ (home-page "https://github.com/amodm/webbrowser-rs")
+ (synopsis "Open URLs in web browsers available on a platform")
+ (description
+ "Webbrowser-rs is a Rust library to open URLs in the web browsers
+available on a platform.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-webbrowser-0.5
(package
+ (inherit rust-webbrowser-0.8)
(name "rust-webbrowser")
(version "0.5.5")
(source
@@ -67849,14 +67879,7 @@ (define-public rust-webbrowser-0.5
#:cargo-inputs
(("rust-web-sys" ,rust-web-sys-0.3)
("rust-widestring" ,rust-widestring-0.4)
- ("rust-winapi" ,rust-winapi-0.3))))
- (home-page
- "https://github.com/amodm/webbrowser-rs")
- (synopsis "Open URLs in web browsers available on a platform")
- (description
- "Webbrowser-rs is a Rust library to open URLs in the web browsers
-available on a platform.")
- (license (list license:expat license:asl2.0))))
+ ("rust-winapi" ,rust-winapi-0.3))))))
(define-public rust-webpki-0.22
(package
diff --git a/gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch b/gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch
new file mode 100644
index 0000000000..9fea1e1665
--- /dev/null
+++ b/gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch
@@ -0,0 +1,24 @@
+--- Cargo.toml 2023-05-07 13:39:13.029066693 +0100
++++ Cargo.toml 2023-05-07 13:39:22.545138206 +0100
+@@ -67,21 +67,3 @@
+ [target."cfg(target_arch = \"wasm32\")".dependencies.web-sys]
+ version = "0.3"
+ features = ["Window"]
+-
+-[target."cfg(target_os = \"android\")".dependencies.jni]
+-version = "0.21"
+-
+-[target."cfg(target_os = \"android\")".dependencies.ndk-context]
+-version = "0.1"
+-
+-[target."cfg(target_os = \"android\")".dev-dependencies.ndk-glue]
+-version = ">= 0.3, <= 0.7"
+-
+-[target."cfg(target_os = \"ios\")".dependencies.objc]
+-version = "0.2.7"
+-
+-[target."cfg(target_os = \"ios\")".dependencies.raw-window-handle]
+-version = "0.5.0"
+-
+-[target."cfg(target_os = \"macos\")".dependencies.core-foundation]
+-version = "0.9"
--
2.39.2
Information forwarded
to
guix-patches <at> gnu.org
:
bug#63348
; Package
guix-patches
.
(Sun, 07 May 2023 13:28:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 63348 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/tree-sitter.scm (tree-sitter-cli)[arguments]<#:tests?>:
Disable, building tests requries rust 1.65.
<#:cargo-inputs>: Update rust-tiny-http and rust-webbrowser.
<#:cargo-development-inputs>: Add rust-ctor, rust-rand, rust-tempfile and
rust-unindent.
<#:phases>: Add 'allow-rust-1.60 phase, to remove the requirement for rust
1.65.
---
gnu/packages/tree-sitter.scm | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm
index 386409914b..4e680df765 100644
--- a/gnu/packages/tree-sitter.scm
+++ b/gnu/packages/tree-sitter.scm
@@ -104,6 +104,9 @@ (define-public tree-sitter-cli
(list tree-sitter graphviz node-lts))
(arguments
(list
+ ;; FIXME: Tests rely on rust 1.65, re-enable tests when the default
+ ;; rust is new enough.
+ #:tests? #f
#:cargo-test-flags
''("--release" "--"
;; Skip tests which rely on downloading grammar fixtures. It is
@@ -141,18 +144,29 @@ (define-public tree-sitter-cli
("rust-semver" ,rust-semver-1)
("rust-smallbitvec" ,rust-smallbitvec-2)
("rust-thiserror" ,rust-thiserror-1)
- ("rust-tiny-http" ,rust-tiny-http-0.8)
+ ("rust-tiny-http" ,rust-tiny-http-0.12)
("rust-toml" ,rust-toml-0.5)
("rust-walkdir" ,rust-walkdir-2)
- ("rust-webbrowser" ,rust-webbrowser-0.5)
+ ("rust-webbrowser" ,rust-webbrowser-0.8)
("rust-which" ,rust-which-4))
#:cargo-development-inputs
- `(("rust-pretty-assertions" ,rust-pretty-assertions-0.7))
+ `(("rust-ctor" ,rust-ctor-0.1)
+ ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
+ ("rust-rand" ,rust-rand-0.8)
+ ("rust-tempfile" ,rust-tempfile-3)
+ ("rust-unindent" ,rust-unindent-0.2))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'delete-cargo-lock
(lambda _
(delete-file "Cargo.lock")))
+ ;; Remove rust version restrictions in Cargo.toml files.
+ ;; FIXME: Remove this phase when guix's default rust is new enough
+ ;; (1.65 as of version 0.20.8).
+ (add-after 'unpack 'allow-rust-1.60
+ (lambda _
+ (substitute* (find-files "." "^Cargo\\.toml$")
+ (("rust-version\\.workspace = true") ""))))
(add-after 'unpack 'patch-node
(lambda _
(substitute* "cli/src/generate/mod.rs"
--
2.39.2
Reply sent
to
Efraim Flashner <efraim <at> flashner.co.il>
:
You have taken responsibility.
(Sun, 07 May 2023 16:50:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Pierre Langlois <pierre.langlois <at> gmx.com>
:
bug acknowledged by developer.
(Sun, 07 May 2023 16:50:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 63348-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
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
--
Efraim Flashner <efraim <at> 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
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#63348
; Package
guix-patches
.
(Sun, 07 May 2023 17:17:01 GMT)
Full text and
rfc822 format available.
Message #25 received at 63348-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Efraim Flashner <efraim <at> 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
[signature.asc (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 05 Jun 2023 11:24:10 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 340 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.