github ivan-hc/AM 10.7
"AM" 10.7

2 hours ago

IT'S OVER 9000!!!

The database has tripled in less than two months. The number of applications has increased exponentially, despite removals:

itsover9000gif

As I write this, these are the data: 9233 unique apps (8819 AppImage packages + 414 standalone/portable programs).

Check them all at https://portable-linux-apps.github.io

This has been made possible through improvements to the automation of the -t option—which is used for creating scripts—as well as the addition of new workflows to identify sources tracked by appimage.github.io, all of which have been carefully reviewed by hand by myself and other users.

I will return to the -t option later. But for now, here are all the updates, in chronological order.


Prevent the user from installing the same app twice in parallel

This is an improvement for the parallel installations introduced in "AM" 9.5 and 9.6

by @ivan-hc in #2747


Use "find -H" with "-maxdepth 2" to set $ARGPATHS

Fixed a bug involving apps installed in symbolically linked directories that caused a loop in the identification of installed applications.

by @ivan-hc in #2756


did-you-mean: notify about apps sharing the same name prefix

When an installation begins, the names of apps similar to the one being installed are displayed.

by @cheack in #2767


Update template.am (option -t)

The -t option now supports automation when used with -y; descriptions appear in green and can be translated on the fly using trans, while URLs ending in "appimage" are highlighted in yellow.

This has significantly streamlined the creation of installation scripts, speeding up the local process while also tracking errors in the descriptions (so they can be corrected by the script's creator). This is particularly beneficial for AppImages hosted on GitHub that are available as standalone files (i.e., not bundled within TAR or ZIP archives).

Templates are cached to reduce the load from repeated downloads—a highly useful feature when generating hundreds or thousands of scripts at once.

Performance has also seen a substantial improvement.

Personally, I compile lists of applications from GitHub repositories—gathered from pull requests and issues on appimage.github.io, which has been very active lately in tracking such entries—into a sources.txt file, using the format "USER/PROJECT". I then use this file with the following simple command:

export APPIMAGE_DEFAULT="1"; ARGS=$(cat sources.txt); for a in $ARGS; do am -y -t https://github.com/"$a"; done

Having become quite adept at reading through the quick prompts, I’ve managed to clock my own workflow, reaching a pace of 15 scripts created per minute (provided no corrections were needed).

The new -t option automatically extracts the project name—stripping away any unnecessary parts—displays the GitHub repository, and asks for confirmation of the name. If you approve (and the $APPIMAGE_DEFAULT variable is set), the process completes automatically—especially when the -y flag is included alongside -t, as shown in the command above. The only exception is if the description is empty; in that case, it will ask you to provide one, while also linking back to the source repository so you can look it up yourself.

Want to add your own AppImage from GitHub?

Run the command

am -y -t https://github.com/user/project

or just

am -t https://github.com/user/project

You’ll likely find yourself doing this quite often!

by @ivan-hc in #2788 #2810 #2892 #2905

Also, option -t now warn about similar app names.

by @cheack in #2975


Suggest installed apps on remove when the name does not match

Now, removal options take into account your installed apps, even if you mistype the name.

by @cheack in #2797 #2800 #2802


Update install.am - check/fix appimages with broken/missing icons

While working on adding apps via the -t flag, I discovered that many of them—specifically Tauri-based AppImages—do not comply with the .DirIcon specifications, which govern the inclusion of valid icons within an AppImage's AppDir. Consequently, these icons cannot be extracted from the package.

This change addresses the issue in a way that differs from the approach mandated by the AppImage specifications (as well as the workflows used on appimage.github.io itself—a point of significant frustration for its maintainer and owner), fixing it completelly.

by @ivan-hc in #2822


Merge enhanced scripts into multi-choice scripts

Many scripts related to pkgforge-dev's "enhanced" apps are now combined into multiple-choice scripts, where official or alternative variants of certain applications exist. This significantly reduces duplicates of the same apps in our lists.

by @kazam0180 in #2850

NOTE: If you still want to install the same app from two different sources on the same system, consider using the -e option.


Option apikey

Fixed a bug related to the API key, where the user's key was being saved and not removed from within the AM-updater files—even when it had expired or the file containing it had been deleted.

Also, am apikey without an argument printed only "ERROR: Wrong expression, validation failed!", which doesn't say that a token is expected. Passing the token as an argument also leaves it in the shell history.

Now am apikey asks for the token with hidden input, and the errors say what is wrong (empty input, or not a ghp_/ghs_/github_pat_ token). am apikey TOKEN and am apikey del work as before.

by @cheack in #2880 #2952 #2965


Notify the user that the proxy is starting

AM now notifies the user if the proxy is in use once the limit has been reached.

by @ivan-hc in #2893


Remove the 178 "am-utils", now moved to "am-extras"

The am-utils (basic command line utilities) have now been moved to a third-party database. Use the .amutils extension or the --amutils flag to install them.

Run -h and scroll to the bottom of the manual to see flags and commands related to third-party databases.

by @ivan-hc in #2895 #2896

These removals have significantly reduced the number of portable apps in the AM database, but they haven't made a major dent in it, given the increase in the number of AppImages currently available.


Add markdown option for about command

Added a --markdown flag (or -m sub-option), to be used after the -a (or about) option, to display app descriptions and sources in Markdown format directly in the terminal.

by @kazam0180 in #2931


Add backup/restore support for .env files

This will be the focus of the upcoming releases. Stay tuned ;)

by @ivan-hc in #2936


Refactoring

AM and its modules strive to be increasingly POSIX-compliant

by @cheack in #2956 by @cheack in #2960

by @ivan-hc in #2912

Option reinstall to save the previous choice

For those who install apps using multiple-choice scripts, there are some important updates:

  • Reinstallation now includes apps with a locked version (if forced).
  • Your previous selections are automatically reapplied during reinstallation.

Do you often choose specific app versions across various scripts and find it tedious to make those same selections every single time? Now you don’t have to!

by @ivan-hc, still in #2912


The appimagetool "drama": I switch AppImage/appimagetool to ivan-hc/appimagetool (fork)

ref AppImage/appimagetool#138

To prevent further unfortunate incidents down the line, "AM" will use a fork of appimagetool as a fallback, until we are certain that appimagetool continues to function as it should.

The installation script will keep let the choice for the official one, but it will be a multi choose one.

by @ivan-hc, again in #2912


Conclusions

It took me an hour and a half to write these release notes. But it was worth it!

There have been so many changes to this project and our catalog (https://portable-linux-apps.github.io) that it could arguably justify a version 11 release; however, I’ve held off, as more radical changes are still on the horizon.

The only downside is the aforementioned incident involving the AppImage/appimagetool project. While they did listen to my feedback—and that of other users—the situation has left me increasingly wary of the decisions being made upstream. I invite you to check the linked issue for a full picture of what happened.

Thanks to the Pkgforge team, I have already migrated my "classic" AppImage projects to their uruntime-based appimagetool (which includes DWARFS support)—I’m even using it right now for the Firefox AppImage I’m writing this from. Meanwhile, Archimage and portable2appimage are using my own fork of appimagetool, which I’ll keep as a fallback—a precautionary measure to avoid any further unpleasant surprises. I’ve also forked type2-runtime, just in case any unwelcome changes are introduced there without warning.

I would have gladly continued working with the main AppImage project and its tools, promoting them as I always have. But this latest incident has made me deeply distrustful of their decision-making. I wish I could trust their lead, but after five years of conflict, I believe it’s time to keep my distance.

As I’ve mentioned before, my new job often keeps me away from my PC—and by extension, GitHub—and I’d prefer to spend the limited time I do have refining my own projects. For context, the pull request that led to this release took two weeks to be merged.

That’s just too long for my standards. I have wasted too much time fixing things that previously worked, but which the AppImage project leader suddenly decided to break.

My solution is drastic, yet necessary to ensure that my projects can continue even if I were to suddenly disappear from GitHub. It is the users who make a project great. This project grows thanks to all of you—by reporting bugs and contributing to the code—and I thank each and every one of you!

What's Changed

New Contributors

Full Changelog: 10.6...10.7

Don't miss a new AM release

NewReleases is sending notifications on new releases.