Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Feature request] Support for ARM architectures #190

Closed
andresrcs opened this issue Nov 18, 2021 · 18 comments
Closed

[Feature request] Support for ARM architectures #190

andresrcs opened this issue Nov 18, 2021 · 18 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@andresrcs
Copy link

andresrcs commented Nov 18, 2021

Could you please consider supporting armv7l and arm64 architectures?, even a script for manual installation on those architectures would be great (or at least one that doesn't use a download of Deno if it is already present, letting us compile it with Cargo ourselves).

Just to clarify, my goal with this is to be able to compile RStudio on ARM (Raspberry Pi OS) which latest version requires Quarto

@jjallaire
Copy link
Collaborator

FYI we are currently in the process of making the Quarto bundle in RStudio optional on Arm (rstudio/rstudio#10159)

@andresrcs
Copy link
Author

Thanks, that explains why RStudio compiled anyways once I commented out the Quarto install script and symlinked to the system pandoc in the usual default locations.

@eitsupi
Copy link
Contributor

eitsupi commented Dec 12, 2021

Perhaps we need to wait for the arm64 build of deno to be released? denoland/deno#1846
It seems that it has not been released because it takes a long time for the GitHub Actions runner to build arm64 deno.

@jjallaire jjallaire added this to the Future milestone Jun 9, 2022
@znmeb
Copy link

znmeb commented Jul 4, 2022

I'm not sure there's much payoff for a build on 32-bit ARM systems. Plenty of other software only runs on the 64-bit ARM Linux platforms, for example, Mambaforge.

@benz0li
Copy link
Contributor

benz0li commented Jul 4, 2022

Perhaps we need to wait for the arm64 build of deno to be released? denoland/deno#1846
It seems that it has not been released because it takes a long time for the GitHub Actions runner to build arm64 deno.

I offered to provide a linux/arm64 GitHub Actions Runner to build an arm64 release of deno.

Devs @denoland insist on waiting for GitHub to provide official arm64 runners.

This may take a while.

@jmcphers
Copy link

jmcphers commented Aug 19, 2022

RStudio is now has experimental builds for ARM architectures, currently w/o bundled Quarto due to this issue. https://dailies.rstudio.com/rstudio/elsbeth-geranium/server/jammy-arm64/

@andresrcs
Copy link
Author

This is great news, any chance these builds will be available for Debian any time soon? I tried the existing ones but it seems Debian doesn't have zstd compression support so gdebi throws an error while reading those files

@jmcphers
Copy link

Generally speaking Debian should work -- we don't have any Debian specific builds because the Ubuntu builds generally work on Debian. Is the zstd requirement coming from gdebi? If so, maybe just use dpkg -i?

@andresrcs
Copy link
Author

I get the same error message, `control.tar.zst' unintelligible.
This is the actual console output I get (sorry about the Spanish language)

sudo dpkg -i rstudio-server-2022.11.0-daily-122-arm64.deb
dpkg-deb: error: el archivo `rstudio-server-2022.11.0-daily-122-arm64.deb' contiene un miembro de datos `control.tar.zst' ininteligible, abandono
dpkg: error al procesar el archivo rstudio-server-2022.11.0-daily-122-arm64.deb (--install):
 el subproceso dpkg-deb --control devolvió el código de salida de error 2
Se encontraron errores al procesar:
 rstudio-server-2022.11.0-daily-122-arm64.deb

@jmcphers
Copy link

Thanks, that's helpful! What version of Debian are you using? The DEB package above is built on Ubuntu 22, which might use newer faculties than are supported on older Debian derivatives. I wanted to do a build on Ubuntu Bionic 18 but had some trouble with dependencies... maybe worth another look.

(Also, let's take this discussion over to rstudio/rstudio#8809 since it's tangential to the Quarto issue.)

@andresrcs
Copy link
Author

In case anyone is interested, I have managed to install Quarto on arm64 with the kind help of @cscheid and I've written a blog post about it (although, I don't yet know how to integrate it with the Linux-arm64 builds of the RStudio IDE).

https://andresrcs.rbind.io/2022/12/09/quarto_arm64/

@dragonstyle dragonstyle self-assigned this Dec 19, 2022
@dragonstyle dragonstyle modified the milestones: Future, v1.3 Dec 19, 2022
@eitsupi
Copy link
Contributor

eitsupi commented Dec 21, 2022

it seems that Dart Sass distributes binaries for arm64 Linux.
https://github.com/sass/dart-sass/releases/tag/1.57.1

Perhaps just using unofficial builds of deno can build Quarto CLI for arm64 Linux?
The deno development team is planning to wait until the arm64 runner appears in GitHub Actions, but that could be quite a while away......

@andresrcs
Copy link
Author

andresrcs commented Dec 22, 2022

it seems that Dart Sass distributes binaries for arm64 Linux. https://github.com/sass/dart-sass/releases/tag/1.57.1

Just in case, I have tried with this particular binary and it seems Quarto doesn't like this version.

~ $ quarto check
Check file:///usr/local/src/quarto-cli/src/quarto.ts

[✓] Checking versions of quarto binary dependencies...
      Pandoc version 2.19.2: OK
ERROR: Theme file compilation failed:



Error: Theme file compilation failed:


    at dartCommand (file:///usr/local/src/quarto-cli/src/core/dart-sass.ts:96:11)
    at async checkVersions (file:///usr/local/src/quarto-cli/src/command/check/check.ts:93:24)
    at async check (file:///usr/local/src/quarto-cli/src/command/check/check.ts:47:7)
    at async Command.fn (file:///usr/local/src/quarto-cli/src/command/check/cmd.ts:34:5)
    at async Command.execute (file:///usr/local/src/quarto-cli/src/vendor/deno.land/x/cliffy@v0.25.4/command/com      mand.ts:1790:7)
    at async quarto (file:///usr/local/src/quarto-cli/src/quarto.ts:111:3)
    at async file:///usr/local/src/quarto-cli/src/quarto.ts:138:5

Installing sass from npm works, in the sense that quarto can render qmd files but the check command still throws a different error, apparently related to Deno

ERROR: TypeError: Invalid Version: 1.57.1 compiled with dart2js 2.18.6

TypeError: Invalid Version: 1.57.1 compiled with dart2js 2.18.6
    at new SemVer (file:///usr/local/src/quarto-cli/src/vendor/deno.land/x/semver@v1.4.0/mod.ts:389:13)
    at Range.test (file:///usr/local/src/quarto-cli/src/vendor/deno.land/x/semver@v1.4.0/mod.ts:1119:17)
    at satisfies (file:///usr/local/src/quarto-cli/src/vendor/deno.land/x/semver@v1.4.0/mod.ts:1518:16)
    at checkVersion (file:///usr/local/src/quarto-cli/src/command/check/check.ts:72:10)
    at checkVersions (file:///usr/local/src/quarto-cli/src/command/check/check.ts:94:3)
    at async check (file:///usr/local/src/quarto-cli/src/command/check/check.ts:47:7)
    at async Command.fn (file:///usr/local/src/quarto-cli/src/command/check/cmd.ts:34:5)
    at async Command.execute (file:///usr/local/src/quarto-cli/src/vendor/deno.land/x/cliffy@v0.25.4/command/command.ts:1790:7)
    at async quarto (file:///usr/local/src/quarto-cli/src/quarto.ts:111:3)
    at async file:///usr/local/src/quarto-cli/src/quarto.ts:138:5

@andresrcs
Copy link
Author

andresrcs commented Feb 10, 2023

There are arm64 builds on the pre-release version now 🎉

@dragonstyle
Copy link
Collaborator

Correct! Thanks for noticing - I thought these issues would be closed by the PR (and hence make sure appropriate notice was provided)... I'm closing for now, if you run into issues with the new arm64 builds, please open an issue and we'll get it buttoned up!

@benz0li
Copy link
Contributor

benz0li commented Feb 12, 2023

@dragonstyle That is great news! Thank you for providing arm64 builds.
ℹ️ I see, that you are using @LukeChannings Deno for ARM64, so denoland/deno#1846 seems not relevant anymore.

@andresrcs Thank you for asking about arm64 builds at b-fuze/deno-dom#122.

@cscheid
Copy link
Collaborator

cscheid commented Feb 12, 2023

@benz0li @andresrcs do note that in the specific case of deno-dom, we defer to a wasm implementation if native support is not available, so this should not be a blocker for arm64 (if it is, then there might be another bug in quarto.)

@eitsupi
Copy link
Contributor

eitsupi commented Feb 8, 2024

Note that deno starts including arm64 Linux builds these days.
https://github.com/denoland/deno/releases/tag/v1.40.4

@mcanouil mcanouil added the enhancement New feature or request label Jun 10, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants