Skip to content

Releases: ivan-hc/AM

"AM" 6.5.1

16 Apr 14:53
a9e0c5c
Compare
Choose a tag to compare

Thanks to the effort of @Samueru-sama we also have support for completion in ZSH

This new release also brings with it many bug fixes, including the one about missing launchers in immutable distributions.

New Contributors

Full Changelog: 6.5...6.5.1

"AM" 6.5

08 Apr 12:41
4446a7f
Compare
Choose a tag to compare

New option "neodb", to configure your third-party repositories with ease!

Given the guide about the "neodb" configuration file, at https://github.com/ivan-hc/neodb , now you can create it and add repositories using both "AM" and "AppMan".

USAGE:

To add a new repository, run the following command:

am neodb

or

appman neodb

You will be given three prompts:

  1. Give a name to the repository (this is optional, if blank it will be named "[ Unknown repo ]");
  2. Copy/paste the URL of a random script from your repository custom to set the source directory online, if not valid, exits (see here to made it a valid one);
  3. Copy/paste the URL of the $arch-apps list used by options -a, -l and -q, if not valid, exits (see here to made it a valid one).

NOTE: If prompts 2 and 3 are blank or are invalid URLs/files, the process will exit and you will have to start over.

The "neodb" configuration file will be created only on the first successful attempt.

By default the "STATUS=quiet" flag that let the main CLI to show the message "Source: Third party repositories are enabled" is commented out (i.e. starts with "#"). To quick uncomment the flag (without having to open a text editor), run the command:

am neodb --silent

or

appman neodb --silent

this way the message will no longer appear.

Remove/disable third paty repositories

  • To remove third party repositories, go to the directory where the "neodb" configuration file is located and do it manually.
  • To disable all third party repositories, just remove/rename the "neodb" configuration file.

Again, visit https://github.com/ivan-hc/neodb for more information about custom repositories.


Other changes

  • New function to remove references to URLs, elements used by the option "-a" and limit message length to a maximum of 80 characters in "-l" and "-q" (module database.am);
  • Updated the "-h"/"help" message and the README with the new option;
  • Various code cleaning and bug fixes in some installation scripts;
  • Installation script in the database for the x86_64 architecture: 1964

What's Changed

Full Changelog: 6.4.1...6.5

"AM" 6.4.1

06 Apr 20:57
6bdc7ab
Compare
Choose a tag to compare

New "neodb" configuration file has been improved!

From now it is easier to create the configuration file (see https://github.com/ivan-hc/neodb), this is its simpler form:

#STATUS=quiet

[My generic repository name]
Source=https://your-domain.net/apps
List=https://your-domain.net/x86_64-apps

solved the issue related to third-party Markdown files, you don't need to create them anymore!

Here is how I've solved:

  • force "-l" and "-q" truncate lines to a max of 80 characters
  • now option "-a" get source's URL from the $arch-apps file directly

this is an example on how the description in -q and -a will appear for third party installation scripts:

Istantanea_2024-04-06_22-17-52 png

For more details, visit https://github.com/ivan-hc/neodb


Other changes

  • option "-i" now installs third party scripts without prompting if there is only one in the list
  • the same as -i (above) happens to "-d" while downloading third-party installation scripts, if unique
  • various bug fixes to some installation scripts

What's Changed

Full Changelog: 6.4...6.4.1

"AM" 6.4

04 Apr 18:14
8d817e9
Compare
Choose a tag to compare

It looks like PacMan, but it's not!

Add as many third party repositories as you want into the new "neodb" configuration file!

Converted the "neodb" script from the previous version into a simple configuration file, here it is in its minimal form:

#STATUS=quiet

[My generic repository name]
Source=https://your-domain.net/apps
List=https://your-domain.net/x86_64-apps
Markdowns=https://your-domain.net/info

Which options use the above values?

  • Source is used by -i/install and -d/download
  • List is used by -l/list and -q/query
  • Markdowns is used by -a/about (NOTE, this is still not implemented in version 6.4, it can be ignored for now)

#STATUS=quiet instead is called by "AM"/"AppMan", if uncommented, you will not receive any notification message about using a third-party database

Where should I place the "neodb" file?

The "$AMPATH" variable that you often find in the CLI and in modules indicates the path:

  • For "AM" the path is always /opt/am;
  • For "AppMan" instead is the "appman" directory into the path you decided to install the apps in your "$HOME", for example, if you've choosen "Applications", then the path will be $HOME/Applications/appman

For more details on how to create your own repository...

visit https://github.com/ivan-hc/neodb


Changes in modules:

All depends on your neodb configuration file:

  • Options -i/install and -d/download can now install/download from multiple sources, not just the 1960 installation scripts available since I published this release. If the app you've choosen is doubled (i.e. its available in more repositories) you'll receive a prompt similar to the one available in -o/overwrite and --rollback, so choose a number to select what URL to use;
  • Options -l/list and -q/query can now list all non-doubled results from all repositories you add;
  • Also the availability of the "neodb" configuration file is no more a limitation to install libraries, in no module.

NOTE: this new release's feature lacks of support for -a/about, however a "Markdowns" value in neodb is recommended for future implementations.

Full Changelog: 6.3...6.4

"AM" 6.3

03 Apr 00:26
c7413f2
Compare
Choose a tag to compare

It's the green light for third-party application databases!

Introduced a mechanism for using a third-party database, while maintaining the CLI from this repository. Simply introduce a BASH script named "neodb" in the "$AMPATH" directory. More details below (from the README).

Use your personal online database or a third-party one by adding a script called "neodb" in the installation folder of your CLI.

A template is available at https://github.com/ivan-hc/AM/blob/main/templates/neodb

This script is an example of how you can use third-party databases instead of the default one used in AM/AppMan (without having to change the CLI repository with the newrepo option).

It should be placed in $AMPATH (for "AM" it is always /opt/am, while for "AppMan" is the "appman" folder located in the path chosen to install the applications).
The purpose of each assigned value is explained on each of the five (5) variables available.

Content

In brief, the a "neodb" BASH script must contain as follows:

#!/usr/bin/env bash

APPSDB="https://raw.githubusercontent.com/IVAN-HC/AM/main/programs/$arch"
APPSLISTDB="https://raw.githubusercontent.com/IVAN-HC/AM/main/programs/$arch-apps"
AMCATALOGUE="https://PORTABLE-LINUX-APPS.GITHUB.IO"
AMCATALOGUEMARKDOWNS="https://raw.githubusercontent.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/main/apps"
#NEODBFLAG=nowarn

In the example, I used the default values used by "AM"/"AppMan".

Below is the meaning of each of the 5 variables listed.

Variables

  1. "$APPSDB" is a url that must point to an online directory containing the installation scripts (for the -i and -d options)
SYNTAX: https://yoursite.org/path/to/directory

EXAMPLE: APPSDB="https://yoursite.org/path/to/directory"

each file managed in the modules is called "$arg"

  1. "$APPSLISTDB" is the url that must point to an online $arch-apps file (for example "x86_64-apps", "$arch" is the architecture name).
    This file is the list of all available programs (for the -l, -q and -s options)
SYNTAX: https://yoursite.org/path/to/file/named/x86_64-apps

EXAMPLE: APPSLISTDB="https://yoursite.org/path/to/file/named/x86_64-apps"
  1. "$AMCATALOGUE" is the url of the main page of the catalog you want to use
SYNTAX: https://yoursite.org

EXAMPLE: AMCATALOGUE="https://PORTABLE-LINUX-APPS.GITHUB.IO"
  1. "$AMCATALOGUEMARKDOWNS" is a url that points to an online directory containing .md (Markdown) files containing the application description (for the -a option)
SYNTAX: https://yoursite.org/path/to/markdown/files/#

EXAMPLE: AMCATALOGUEMARKDOWNS="https://raw.githubusercontent.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/main/apps"

each file managed in the database.am module is called $arg.md

  1. "$NEODBFLAG" is of no use, if not to silence the "Source: ..." message about using a third-party repository, just uncomment it to disable the messages
#NEODBFLAG=nowarn

Motivation

Having reached version 6.3, I still don't know where the project will go and how far I can continue to support it. I opened too many projects at once, to the point of monopolizing the use of this CLI, and that wasn't what I wanted.

Everyone should be free to add as many applications as they want and maintain their own app database.

I hope that this version can help build a much more modern community database managed by many more people, to bring AppImages and portable apps in general to grow and compete with Flatpak and Snap.

I could disappear at any moment, and I don't want this database to end up in the cemetery of forgotten projects on github.

I wanted to build something long-lasting, and the application database must be too, and if managing it is a person who can suddenly disappear, then this project will be another of the many lost forever.

See the full guide at https://github.com/ivan-hc/neodb


Among the other new features introduced in this release:

  • added a "--less" suboption to the "-f" option to show only the number of applications;
  • removed code redundancies between the main CLI and some modules;
  • various code cleanups;
  • adaptation of new variables for the use of future new application databases to be used;
  • merge libraries with apps to simplify adaptation.

Mark this release as a starting point

New Contributors

Full Changelog: 6.2.1...6.3

"AM" 6.2.1

31 Mar 16:55
9d21f94
Compare
Choose a tag to compare
  • New module "database.am", including options -a/about, -l/list and -q/query;
  • Renamed module update-block.am to no-updates.am (the one that contains -b/backup, -o/overwrite, lock and unlock);
  • Removed modules "about.am" and "list-query.am", now merged in "database.am"

Full Changelog: 6.2...6.2.1

"AM" 6.2

30 Mar 11:29
c494b7a
Compare
Choose a tag to compare

Merged a lot of little modules to save time in "sync" and "update"

  • New update-block.am contains -b/backup, -o/overwrite, lock and unlock, i.e. all the four options you use to keep the installed version of your favourite apps;
  • Updated remove.am that now contains both -R (to quick remove without propting) and -r/remove (with prompt);
  • New devtools.am containt apikey and newrepo;
  • Now update.am includes also --force-latest;
  • New list-query.am, as the name suggests, contains -l/list and -q/query;
  • Options --enable-completion, --disable-completion and --user/appman for "AM" are built into APP-MANAGER;
  • New sandboxes.am contains --sandbox/--firejail and -H/--home;
  • The option -c/clean (from module clean.am) now can remove the old modules;
  • The option -w/web has been completelly removed (the command "am -a $APP-1 $APP-2 $APP-N | grep "://"" does better);
  • All obsolete modules are been completelly removed.

Full Changelog: 6.1.4...6.2

"AM" 6.1.4

30 Mar 05:35
553358c
Compare
Choose a tag to compare
  • Option --launcher: now you can add your local AppImages in $PATH (~/.local/bin) using a prompt:
    • if no (n), the script will create another script with the lowercased name of the AppImage, with extension ".appimage"
    • if yes (Y, default) you can choose the name you want, if the command exists or you leave blank, no symlink will be created.
  • Option -c or clean:
    • removed reference to the no longer supported "appdb" directory of early days;
    • remove the above mentioned dead symlinks and scripts if launchers created in --launcher are dead too.
  • Add new dependence "xdg-user-dirs", being the xdg-user-dir command a must have in many scripts due to different names of the same directories in variuos languages (for example, "Scrivania" is the italian of "Desktop");
  • Various code cleanups and bug fixes;
  • Installation scripts for x86_64 apps now available in the database: 1958.

Full Changelog: 6.1.3...6.1.4

"AM" 6.1

13 May 15:54
553358c
Compare
Choose a tag to compare

New option "nolibfuse"!

Now it is possible to convert old Type2 AppImages (dependent on libfuse2) to Type3 using the option nolibfuse.

am nolibfuse ${PROGRAM}

First the selected program type is checked, if it is a Type2 AppImage, it will be extracted and repackaged using the new version of appimagetool from https://github.com/probonopd/go-appimage :

  • If the installed AppImage can be updated via zsync, the update will take place while maintaining the status of Type3 AppImage;
  • if in the first case it succeeds without problems, the package will be repackaged as it was, but of Type 3;
  • if the script encounters problems (due to Appstream validation), it will attempt to delete the contents of the /usr/share/metainfo directory inside the AppImage, as a workaround (which will probably make updates via zsync unusable). This step helps export Type2 AppImages to Type3 (i.e. that do not use libfuse2), and in the case Appstream Validation prevents the creation of the new AppImage;
  • if this step does not succeed either, the process will end with an error and the AppImage will remain Type2.

See the video:

AM-6.1-convert-from-type2-to-type3-AppImages.mp4

When using the command nolibfuse for the first time, it will be added within the application's AM-updater script, so as to automatically start the conversion at each update!

Note, this may prolonging the update time, depending on the size of the AppImage.

As always, I suggest anyone to contact the developers to create their AppImage packages as Type3!

Not only does it help to no longer depend on libfuse2, but it significantly reduces the size of large AppImage packages (for example, Kdenlive went from 200 to 180 MB, while Libreoffice from 330 to 298 MB). Check it out and... spread the verb!

NOTE: This function does not guarantee the conversion of all AppImage packages, but is only a workaround.

However, I suggest that you contact upstream developers to update their packages and avoid relying on third-party tools (like mine) to solve such problems.

"AM"/"AppMan" is a package manager, and as such should only list them, install them, update them, remove them.

Consider nolibfuse an "extra" option that you could very well do without.

Other changes:

  • Option -u or update, add suboption --apps to update only the applications;
  • Fix error mesages in -c or clean;
  • Updated several installation scripts to use "zsync" and appimageupdatetool Type3 from https://github.com/ivan-hc/AppImageUpdate

Full Changelog: 6.0.5...6.1.4

"AM" 6.0.5

13 Mar 18:21
46e8af2
Compare
Choose a tag to compare
  • Option about:
    • remove multiple blank lines in messages (new fix)
  • Option install:
    • fix bad sostitution in local directories under a custom "opt" folder (AppMan)
    • "return 0" for the --debug or --force-latest suboptions
    • most installation scripts create a "version" file containing a URL, number, or word. This happens after downloading the app. Let's use this opportunity to identify the success of the installation. If the file is empty, the app will be deleted, as it is not installed
    • groups post-installation messages to make the output messages more consistent, even if there are errors
    • hide "squashfs-root" messages
  • Option template:
  • The main script, "APP-MANAGER" (for the option newrepo):
    • the message relating to the new enabled repositories is less invasive, guaranteeing better aesthetics in the event that (whatever the fate) this project should no longer be maintained by me and other developers want to continue adding and distributing software (while maintaining the awareness that the repository in use is not this one)
  • Installation scripts:
    • various bug fixes
    • adapted many scripts to the latest available templates
    • installation scripts for x86_64 programs that are currently available in the database, 1954