-
Notifications
You must be signed in to change notification settings - Fork 539
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
Changes from 19 commits
c66f2a2
5ffac79
c673732
91c281c
6051277
8c9229d
5af99db
8b5ab67
0e96d17
732cc1a
7ba361a
c92a13a
979e4cd
867b0a1
9e18caa
7fb06b3
5812853
92e7c77
0d4e348
0398452
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,12 @@ | ||
cd ~/Downloads | ||
wget https://downloads.1password.com/linux/debian/amd64/stable/1password-latest.deb | ||
sudo apt install -y ./1password-latest.deb | ||
rm 1password-latest.deb | ||
cd - | ||
if [[ $ARCH == "amd64" ]]; then | ||
wget https://downloads.1password.com/linux/debian/amd64/stable/1password-latest.deb | ||
sudo apt install -y ./1password-latest.deb | ||
rm 1password-latest.deb | ||
elif [[ $ARCH == "arm64" ]]; then | ||
curl -sSO https://downloads.1password.com/linux/tar/stable/aarch64/1password-latest.tar.gz | ||
sudo tar -xf 1password-latest.tar.gz | ||
sudo mkdir -p /opt/1Password | ||
sudo mv 1password-*/* /opt/1Password | ||
sudo /opt/1Password/after-install.sh | ||
rm 1password-latest.tar.gz | ||
fi |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,9 @@ | ||
cd ~/Downloads | ||
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 | ||
cd - | ||
if [[ $ARCH == "amd64" ]]; then | ||
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 commentThe reason will be displayed to describe this comment to others. Learn more. chromium has no widevine on arm64, thereofre cannot play netflix, spotify etc. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 |
||
sudo apt install chromium-browser -y | ||
fi | ||
cd - |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && | ||
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg && | ||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null && | ||
sudo apt update && | ||
sudo apt install gh -y | ||
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg && | ||
echo "deb [arch=$ARCH signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null && | ||
sudo apt update && | ||
sudo apt install gh -y | ||
iljo-dp marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
# Gum is used for the Omakub commands for tailoring Omakub after the initial install | ||
cd ~/Downloads | ||
GUM_VERSION="0.14.1" # Use known good version | ||
wget -O gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_amd64.deb" | ||
wget -O gum.deb "https://github.com/charmbracelet/gum/releases/latest/download/gum_${GUM_VERSION}_${ARCH}.deb" | ||
sudo apt install -y ./gum.deb | ||
rm gum.deb | ||
cd - | ||
cd - |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,11 @@ | ||
cd ~/Downloads | ||
LOCALSEND_VERSION=$(curl -s "https://api.github.com/repos/localsend/localsend/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') | ||
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-x86-64.deb" | ||
#For some reason, Localsend uses x86_64 instead of amd64 for naming, which means we can't use the variable ARCH for a 1 liner | ||
iljo-dp marked this conversation as resolved.
Show resolved
Hide resolved
|
||
if [[ $ARCH == "arm64" ]]; then | ||
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-arm-64.deb" | ||
elif [[ $ARCH == "amd64" ]]; then | ||
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-x86-64.deb" | ||
fi | ||
sudo apt install -y ./localsend.deb | ||
rm localsend.deb | ||
cd - | ||
cd - |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
# FIXME: Get this out of snap | ||
sudo snap install pinta | ||
sudo add-apt-repository -y ppa:pinta-maintainers/pinta-stable | ||
sudo apt-get update | ||
sudo apt-get install -y pinta | ||
iljo-dp marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,11 @@ | ||
wget -qO- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor >signal-desktop-keyring.gpg | ||
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg >/dev/null | ||
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | | ||
sudo tee /etc/apt/sources.list.d/signal-xenial.list | ||
sudo apt update | ||
sudo apt install -y signal-desktop | ||
|
||
if [[ $ARCH == "amd64" ]]; then | ||
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | | ||
sudo tee /etc/apt/sources.list.d/signal-xenial.list | ||
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 commentThe reason will be displayed to describe this comment to others. Learn more. See https://github.com/adamthiede/signal-desktop-builder for an option here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oh wow, sounds great I'il look into it soon :D There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or use snap: |
||
fi |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,20 @@ | ||
curl -sS https://download.spotify.com/debian/pubkey_6224F9941A8AA6D1.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg | ||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/spotify.gpg] http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list | ||
sudo apt update | ||
sudo apt install -y spotify-client | ||
if [[ $ARCH == "amd64" ]]; then | ||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/spotify.gpg] http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list | ||
sudo apt update | ||
sudo apt install -y spotify-client | ||
elif [[ $ARCH == "arm64" ]]; then | ||
cat <<EOF > ~/.local/share/applications/Spotify.desktop | ||
[Desktop Entry] | ||
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 commentThe 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 |
||
Terminal=false | ||
Type=Application | ||
Icon=/home/$USER/.local/share/omakub/web-apps/icons/Spotify.png | ||
Categories=GTK,Network,Music; | ||
MimeType=text/html;text/xml;application/xhtml_xml; | ||
StartupNotify=true | ||
EOF | ||
fi |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,21 @@ | ||
cd ~/Downloads | ||
wget https://zoom.us/client/latest/zoom_amd64.deb | ||
sudo apt install -y ./zoom_amd64.deb | ||
rm zoom_amd64.deb | ||
cd - | ||
if [[ $ARCH == "amd64" ]]; then | ||
wget https://zoom.us/client/latest/zoom_amd64.deb | ||
sudo apt install -y ./zoom_amd64.deb | ||
rm zoom_amd64.deb | ||
elif [[ $ARCH == "arm64" ]]; then | ||
cat <<EOF > ~/.local/share/applications/Zoom.desktop | ||
[Desktop Entry] | ||
Version=1.0 | ||
Name=Zoom | ||
Comment=Zoom online meetings | ||
Exec=xdg-open --app="https://zoom.us/meeting" --name=Zoom | ||
Terminal=false | ||
Type=Application | ||
Icon=/home/$USER/.local/share/omakub/web-apps/icons/Zoom.png | ||
Categories=GTK; | ||
MimeType=text/html;text/xml;application/xhtml_xml; | ||
StartupNotify=true | ||
EOF | ||
fi | ||
cd - |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,12 @@ | ||
# Install mise for managing multiple versions of languages. See https://mise.jdx.dev/ | ||
sudo apt update -y && sudo apt install -y gpg sudo wget curl | ||
sudo install -dm 755 /etc/apt/keyrings | ||
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 commentThe reason will be displayed to describe this comment to others. Learn more. Nit: i guess you could also set There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 commentThe 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 commentThe 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. |
||
sudo apt update | ||
sudo apt install -y mise | ||
|
||
# Install default languages | ||
mise use --global [email protected] | ||
mise use --global node@lts | ||
mise use --global go@latest | ||
mise use --global go@latest |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,7 @@ | ||
sudo apt install -y nautilus-dropbox | ||
gtk-launch dropbox.desktop | ||
if [[ $ARCH == "amd64" ]]; then | ||
sudo apt install -y nautilus-dropbox | ||
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 commentThe 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 commentThe 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... |
||
fi |
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
in the scripts to lazy-set the env var.