teams-for-linux
teams-for-linux copied to clipboard
Add `latest-linux-x86_64.AppImage` and `latest-linux-aarch64.AppImage` download link
Is your feature request related to a problem? Please describe.
It's very useful to have a direct download link to the latest AppImage version for both x86_64 and aarch64, not having to research which version the file name contains and adapt scripts manually. There is already a latest-linux.yml but no latest-linux.AppImage.
Describe the solution you'd like
I would like to have a latest-linux-x86_64.AppImage and latest-linux-aarch64.AppImage (like Fedora Asahi Remix OS uses) which maybe is the same as latest-linux-arm64.AppImage.
firejail sandbox How to properly invoke execution via sandbox firejail for the different types of packages offered. Examples of what could work:
firejail --appimage --profile=/etc/firejail/teams-for-linux.profile teams-for-linux.AppImage
firejail --profile=/etc/firejail/teams-for-linux.profile electron "/usr/share/teams-for-linux"
Describe alternatives you've considered Using manual download/install scripts to detect architecture and set the file name version to latest version manually.
Sorry, I didn't get this requirement. Did you @IsmaelMartinez? I'm not so experienced in packaging. Could you elaborate?
No idea how to do that. We use electron-build for creating packages, but I have no clue how to archive this
More info in https://www.electron.build/configuration/appimage.html
Whoever i can see in that page this message:
This line shows how we build AppImage https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/package.json#L89 maybe we need to change the way we do it. Have a play and shout if you get any questions. Any contributions are greatly welcome.
also, you can invoke the build of the app image by using yarn run dist:linux:appimage (see https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/package.json#L31 )
The https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/CONTRIBUTING.md has more info on how to build it from source if you want to validate anything.
Thank you for your comments. I will try to describe in detail what I think is needed, using linphone.AppImage as example.
DISCLAIMER
I saw that there is a new repository which of course would solve updates for teams-for-linux. Something similar could maybe be achieved, for all OS, by using build.opensuse.org, getting inspiration from signal-desktop packaging, which also uses electron and needs to download the dependencies first and then build in offline mode.
Thinking a bit, the file latest-linux.yml could be parsed by an install script to figure out at least the newest file name AppImage has, but has not direct link to it, which would then have to be created manually = prone to errors once the location changes. Better still is to have a direct link to the latest built AppImage, for both architectures x86_64 and aarch64 ( = arm64) accessible for maintainer script upon each new build.
Background
Users which demand user friendliness usually find it difficult to update software out of a repository that takes care of the updates once you set it up in the OS.
Example: linphone AppImage
Linphone has a directory with both development snapshots as well as releases.
There is a link https://linphone.org/releases/linux/latest_app which directs the download to the correct file. Try:
wget "https://linphone.org/releases/linux/latest_app"
to see it in action. A download script does not need advanced scripting to parse a webpage to somehow figure out the download link to the latest AppImage. It is enough with one link, that in turn points to the latest AppImage, set by the maintainer.
Development beta version is found in /snapshots but does not have a direct link to the latest version, forcing a script to parse the page and somehow figure out which version is the latest one to use.
teams-for-linux AppImage is stored in different directories .../v1.2.3/... and then on top of that the AppImage also has its version inside those different directories. Since it requires some effort to figure out when there is a new release, where the new AppImage is located, I suggest to have, somewhere on internet, a link which is always the same but gets updated to point to the latest AppImage that has been built by the maintainer.
A user install script would then only have:
function download-latest-teams-for-linux () {
if [ "$(arch)" == "x86_64] ]; then
wget -O teams-for-linux.AppImage "https://some-domain.org/releases/latest_x86_64_appimage
chmod +x teams-for-linux.AppImage
fi
if [ "$(arch)" == "aarch64] ]; then
wget -O teams-for-linux.AppImage "https://some-domain.org/releases/latest_aarch64_appimage
chmod +x teams-for-linux.AppImage
fi
}
download-latest-teams-for-linux
firejail --appimage --profile=/etc/firejail/teams-for-linux.profile teams-for-linux.AppImage
No need to create new packages with new versions to update to latest AppImage on the fly. Enough to run the function (maybe sudo to put the file in /opt/appimages for all users on a computer instead of multiple files in each user's home directory).
The big question
- Where should a link to the latest AppImage be put in github, pointing to the correct latest asset AppImage?
- Can this be scripted to be automatically updated when github build service builds a new AppImage? Then no maintainer would have to update the link manually.
A wee idea but you might be able to archive the same by querying the github api. You can get the latest version assets location https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#get-the-latest-release and then get the location of the file playing with the release-asset https://docs.github.com/en/rest/releases/assets?apiVersion=2022-11-28#get-a-release-asset . You can use jq to parse the json response, etc.
That should get you there, I think. Ta
Closed as workaround is provided