-
Notifications
You must be signed in to change notification settings - Fork 497
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enabling arm64 support for omakub #29
Conversation
Out of what I've done already |
I'm pretty sure if you merge this piece of code there will be arm64 support for all the app installs, I also found a way to get automatically the latest ruby version automatically |
the ruby push is to fix #38 which is something you noted |
the issue with app-localsend needs to be resolved by dhh, but the -y fix was already implemented here before
if you could, would you mind looking at this pr @dhh |
This is great, however, the current version will make the login hang due to the migration to mise (#36). The initial install of mise will fail (silently) since it's not (yet) targeting arm64 and after the logout the system will hang on the installation confirmation. |
Great I didn't catch that, thanks a lot and I'il implement it now |
now I really think we should be ready for a merger or changes as to how we handle the non supported arm packages
Thanks a lot for the feedback, should be fixed now |
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1>/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list | ||
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg >/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=${ARCH}] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: i guess you could also set arch=amd64,arm64
to support both?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what do you mean? Current we use ARCH to get the architecture, ARCH is a global variable set in the main sh script ran on starting omakub. And then ARCH indeed is arm64 or amd64, whatever ARCH is automatically set to at the start. What do you mean here, what do I need to change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so ARCH is dynamically set based on what architecture you use, so just doing arch=${ARCH} should work no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@roele That'll fetch package info for the other architecture as well, however.
The arch can just be omitted, too. Then it'll use the default Apt::Architectures, which is just the native amd64/arm64.
thanks a lot for testing and verifying, are there any issues with the installing? of the apps? (ignoring the issues I already know about with missing apps) |
@iljo-dp you can view the install log here: https://gist.github.com/coffeejunk/f228157342789a629425579ee5918b09 |
added a zoom webapp when using arm64, this uses Chromium.. |
and this last commit is just fixing compatibility between my branch and the main branch |
@dhh what do we still need before a merger would be possible? |
# Determine architecture | ||
ARCH=$(dpkg --print-architecture) | ||
export ARCH | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One nice property of the install/* scripts is that they can be invoked independently. Introducing global env vars breaks that. Would keep this invocation in each script.
Alternatively, you could
: "${ARCH:=$(dpkg --print-architecture)}"
in the scripts to lazy-set the env var.
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1>/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list | ||
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg >/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=${ARCH}] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@roele That'll fetch package info for the other architecture as well, however.
The arch can just be omitted, too. Then it'll use the default Apt::Architectures, which is just the native amd64/arm64.
gtk-launch dropbox.desktop | ||
elif [[ $ARCH == "arm64" ]]; then | ||
#https://packages.ubuntu.com/noble/nautilus-dropbox | ||
echo "Dropbox is not supported on arm64 architecture." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not packaged, but it supported: https://github.com/dropbox/nautilus-dropbox?tab=readme-ov-file#building-dropbox-nautilus-extension
Maestral is an alternative, too: https://maestral.app
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
idk building from source seems kinda sketchy? we could do that but ehh...
Maestral seems nice, and is perhaps something @dhh would like also, perhaps as just a replacement for dropbox?
Thanks a lot for the amazing feedback @jeremy I'll work on it all tomorrow, current I don't have the time but thanks a lot for the deep thorough help I'll make it work tomorrow, thanks a lot I really mean it. |
Co-authored-by: Jeremy Daer <[email protected]>
Co-authored-by: Jeremy Daer <[email protected]>
Co-authored-by: Jeremy Daer <[email protected]>
Co-authored-by: Jeremy Daer <[email protected]>
Co-authored-by: Jeremy Daer <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks a lot for the amazing feedback, most of it should be finished by now thanks a lot again we wouldn't have done this without you
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1>/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list | ||
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg >/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=${ARCH}] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what do you mean? Current we use ARCH to get the architecture, ARCH is a global variable set in the main sh script ran on starting omakub. And then ARCH indeed is arm64 or amd64, whatever ARCH is automatically set to at the start. What do you mean here, what do I need to change?
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1>/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list | ||
wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg >/dev/null | ||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=${ARCH}] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so ARCH is dynamically set based on what architecture you use, so just doing arch=${ARCH} should work no?
sudo apt update | ||
sudo apt install -y signal-desktop | ||
elif [[ $ARCH == "arm64" ]]; then | ||
echo "Signal Desktop is only available for amd64 architecture." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh wow, sounds great I'il look into it soon :D
gtk-launch dropbox.desktop | ||
elif [[ $ARCH == "arm64" ]]; then | ||
#https://packages.ubuntu.com/noble/nautilus-dropbox | ||
echo "Dropbox is not supported on arm64 architecture." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
idk building from source seems kinda sketchy? we could do that but ehh...
Maestral seems nice, and is perhaps something @dhh would like also, perhaps as just a replacement for dropbox?
I'il fix the other stuff soon, I got an exam to take tomorrow so currently I'm working for that, sorry to let y'all down for now |
For Neovim, the latest available version for ARM in the apt repository is 0.7.2, even when using
|
An alternative to install neovim could be using
https://github.com/MordechaiHadad/bob
El mié, 12 de jun de 2024, 23:22, Clay26 ***@***.***>
escribió:
… For Neovim, the latest available version for ARM in the apt repository is
0.7.2, even when using ppa:neovim-ppa/stable, which is not supported by
LazyVim (see requirements
<https://www.lazyvim.org/#%EF%B8%8F-requirements>). One option is to
install from source. Here's how I currently install Neovim on my ARM
machines (credit to Carlos Hurtado
<https://carlosahs.medium.com/how-to-install-neovim-from-source-on-ubuntu-20-04-lts-524b3a91b4c4>
):
sudo apt-get install ninja-build \
gettext libtool libtool-bin \
autoconf automake cmake g++ \
pkg-config unzip
git clone https://github.com/neovim/neovim.git
cd neovim
git pull
git checkout stable
sudo make CMAKE_BUILD_TYPE=Release CMAKE_INSTALL_PREFIX=/opt/nvim install
echo 'export PATH="/opt/nvim/bin:$PATH"' >> ~/.bashrc
—
Reply to this email directly, view it on GitHub
<#29 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAXURICHP6FW6KF477CZODZHD67ZAVCNFSM6AAAAABI6KJ3KSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRUGIZDSNZRHA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | ||
sudo apt install -y ./google-chrome-stable_current_amd64.deb | ||
rm google-chrome-stable_current_amd64.deb | ||
elif [[ $ARCH == "arm64" ]]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
chromium has no widevine on arm64, thereofre cannot play netflix, spotify etc.
Also it might require certain flags for launching with gpu acceleration suuport to watch youtube properly. (guess the latter can only be properly tested on the actual device)
For widevine people often pull some bins from chromeos projects
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After some recent reserach on this, there is still no binary package with widevine for ubuntu or an arm browser which ships with it.
AsahiLinux is hosting a widevine installer script from crhomeos project which is pulling it from googleapis.com
And Brave browser published a manual how to link it #28903.
Chrome has released an arm64 version for windows. Guess a an arm chrome with widevine support is also likely to happen in future. But for now, probably going asahilinux way is best: adding custom installer, updater via chromeos binaries. Probably its best done in another PR once arm support ist merged
Version=1.0 | ||
Name=Spotify | ||
Comment=Spotify online music player | ||
Exec=xdg-open --app=https://open.spotify.com/ --name=Spotify |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this opening in Chromium? I believe that also won't run without widevine
Hi @iljo-dp, I wanted to check in on this PR. Are you still working on it? Is there anything I can assist with to help move this forward? Thanks! |
I believe we also need to build alacrity from source since there's no available packages for aarch64 |
You can install alacritty using snap: It works out of the box on a fresh arm64 Ubuntu install |
This PR needs a major overhaul. Anyone interested in investigating? For now, I'd prefer if we just don't install an application if it's not available as arm64. Then we fill in as they become available. |
Any news on this PR?, it is essentially aims the same as #227. In 227 if things fail, installation continues, essentially skipping those that are faulty/Not available and generates a report in the root dir so that they can be retried later as they are available. |
Hey I'm trying to incoporate arm64 support under this script as mentioned in
Currently NOT every app will work, with the biggest app that doesn't work being chrome
We can go chrome flatpak for example here, but leaving that up to you @dhh
Currently I am NOT finished doing every app and checking every package.
A good rule of thumb, If I haven't changed anything it probability works on arm unless it is farther down the list then docker.sh
Further I haven't checked YET
I haven't also done neovim(even though it is easy) since I was waiting for the other pull request about neovim to be finished before doing neovim stuff in this pull