Alex313031 / thorium

Chromium fork named after radioactive element No. 90. Windows and MacOS/Raspi/Android/Special builds are in different repositories, links are towards the top of the README.md.
https://thorium.rocks/
BSD 3-Clause "New" or "Revised" License
4.74k stars 146 forks source link

Repos for other Linux distros #606

Open AidanNotFunny opened 6 months ago

AidanNotFunny commented 6 months ago

Is your feature request related to a problem? Please describe. Thorium only has repos for Debian and Arch (official deb repo, AUR), so users of most other distros such as Fedora, Rocky, RHEL, openSUSE, etc. are left in the dark. I, myself, am an openSUSE TW user and having to manually install each new RPM can get quite old.

Describe the solution you'd like, including relevant patches or source Repos for many other distros, even if they're not included in the main distro's repo, at least have instructions to add the thorium repo yourself. It can clearly be done with the deb repo, so why can't we have other repos too?

Additional Notes I understand that maintaining a repo is probably not as simple as just pressing the "make repo" button, so maybe you could enlist community members or other people to help maintain the repos. The community is clearly willing to do it (AUR), so it's something to consider. Thorium is an excellent browser, and this would only serve to make it more accessible for all.

Alex313031 commented 6 months ago

@MrGamerDoesGames Yes, someone else would have to help. We are at our limit with the deb repo, with so many downloads approaching the bandwidth limit for the service that hosts the server.

I also don't have any experience with setting up an .rpm repo.

If someone wants to help or offer up a server to host them on, I would be more than happy to make an .rpm repo.

AidanNotFunny commented 6 months ago

@MrGamerDoesGames Yes, someone else would have to help. We are at our limit with the deb repo, with so many downloads approaching the bandwidth limit for the service that hosts the server.

I also don't have any experience with setting up an .rpm repo.

If someone wants to help or offer up a server to host them on, I would be more than happy to make an .rpm repo.

How difficult is setting up and maintaining a repo? I can't provide the servers, but I can possibly set it up and maintain it if it's within my bounds of knowledge. I've never done anything like this before, but I'm willing to try for a project I love. Maybe there's a resource like the AUR that can provide servers?

OliverKreitmeyer commented 6 months ago

That would be great, I am currently using Ubuntu and the main reason that is stopping me from switching to Fedora is the fact that there is no official repo for it. Unfortunately I don't have the necessary knowledge or skills to help out myself.

AidanNotFunny commented 6 months ago

After looking it up, a solution may be to add the files to the Factory or Project repos. I've switched to Arch Linux in this time so I can't test it myself anymore, but any other openSUSE users out there can. @OliverKreitmeyer , as for Fedora, I've never used it and likely never will, but from my understanding setting up a Copr repo is not that hard.

OliverKreitmeyer commented 6 months ago

After looking it up, a solution may be to add the files to the Factory or Project repos. I've switched to Arch Linux in this time so I can't test it myself anymore, but any other openSUSE users out there can. @OliverKreitmeyer , as for Fedora, I've never used it and likely never will, but from my understanding setting up a Copr repo is not that hard.

Ill look into it, thx.

Fiffian commented 6 months ago

@OliverKreitmeyer @MrGamerDoesGames Until we figure this repo out, the following script searches for new AVX2.rpm release, downloads and update the browser. I tested this on opensuse TW and 100% works. If you use topgrade to update your system, in the topgrade.toml file, you add it under [commands] section like this: thorium = "bash /path/to/script.sh"

#!/bin/bash

# Function to compare version numbers
version_gt() { 
    test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; 
}

# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# GitHub repository details
REPO_OWNER="thorium-browser"
REPO_NAME="thorium"

# Define the file pattern for the AVX2 RPM based on the OCR result
FILE_PATTERN="thorium-browser_.*_AVX2.rpm"

# Fetch the latest release info from GitHub
latest_release=$(curl -s "https://api.github.com/repos/Alex313031/Thorium/releases/latest")
latest_version=$(echo "$latest_release" | jq -r '.tag_name' | sed 's/M//') # Remove the 'M' prefix from the version if present
download_url=$(echo "$latest_release" | jq -r ".assets[] | select(.name | test(\"$FILE_PATTERN\")) | .browser_download_url")

# Ensure the download URL was found
if [ -z "$download_url" ]; then
    echo -e "${RED}Error: Download URL for the latest AVX2 RPM release could not be found.${NC}"
    exit 1
fi

# Determine the currently installed version of Thorium browser
current_version=$(rpm -q thorium-browser --qf "%{VERSION}\n" | sed 's/M//') # Remove the 'M' prefix from the version if present

# Log the versions being compared
echo -e "\n${YELLOW}Checking for updates...${NC}"
echo -e "Latest version on GitHub: ${GREEN}$latest_version${NC}"
echo -e "Currently installed version: ${RED}$current_version${NC}\n"

# Compare versions and proceed with installation if needed
if version_gt $latest_version $current_version; then
    echo -e "${GREEN}A new version of Thorium Browser is available: $latest_version${NC}"
    echo -e "${YELLOW}Downloading and installing the update...${NC}\n"

    # Download the latest release
    wget -O thorium-update.rpm "$download_url"

    # Install the update
    sudo zypper --no-gpg-checks install -y thorium-update.rpm

    # Remove the downloaded file after installation
    rm thorium-update.rpm

    echo -e "\n${GREEN}Thorium Browser has been updated to version $latest_version${NC}"
else
    echo -e "${GREEN}Thorium Browser is up to date.${NC}\n"
fi