Installation History app

I have just published a little app on Chum: Install History.

It’s a viewer for the Zypper /var/log/zypp/history, i.e. it displays the times when packages were installed and uninstalled. Nothing terribly interesting, but as zypper/packagekit sometimes install more than is immediately obvious – especially when you have third-party repos enabled – it may give some insight where packages come from.

App is here, best installed through Chum GUI.

After installing, it will show up in the Settings app.

Source code is here, contributions welcome (esp. the search function would benefit from some improvements)! Also interested in whether it works on SFOS < 4, as I’m not sure there is a zypper log, or if its in the same location.

17 Likes

It works perfect on my Sony Xperia 10ii aarch64 SFOS 4.3. Thanky very much!

1 Like

It is, the content of /var/log/zypp/history on my Xperia X starts with Jolla’s repositories being added (radd) during its initial boot after flashing SailfishOS 2.2.0 in May 2018.

But, though I was able to install install-history 0.9.7 via SailfishOS:Chum GUI on this Xperia X (currently with SFOS 3.2.1 installed), there is no desktop icon.
Starting it at the command line per install-history fails with command not found, while starting per sailfish-qml install-history creates an all white window and outputs at the command line, Specified desktop file does not exist "/usr/share/applications/install-history.desktop".

Side note: Slava Monich’s harbour-lib might ease supporting a wide span of SailfishOS releases.

1 Like

Thanks for testing!

The app does not have a desktop icon, it adds an entry in the Settings. Please look there.

This was done for one thing to avoid problems with sailjail, which prevents reading that log file, and also because IMHO it fits in he info section of the settings.

I will look at the library, although atm almost all of my apps including this one are QML only without C++ parts.

1 Like

here a screenshot if I open this feature…

Ah so it’s a bit cramped on lower res screens (developed on an X10).
I wonder how to solve this, without cutting off text (which hides information) or line-break
ing (which is ugly)

Oh, a case of not fully RTFM on my side. I stopped reading at “sailjail”, because I was not interested in technical details. Thus I suggest to alter the description to:

Shows when packages have been installed or removed.

This app integrates itself into SailfishOS’ Settings app with a new entry there.<br />
This is necessary in order to read the zypper install log, due to SailJail.

Unfortunately, all I see there on my XperiaX@SFOS3.2.1 with install-history 0.9.7 is:

            Could not load page

I will look at the library, although atm almost all of my apps including this one are QML only without C++ parts.

Oh, sorry, then only the QML stuff there may be useful for you in general, but most likely not for install-history.

BTW, IMO it also is interesting to be able to determine when repositories have been added or removed. This information also seems to be recorded in that log file.

1 Like

JHm, possilby something in QML is too new for 3.2

Can you launch Settings from terminal, open install history and see if there are any complaints on the console?

,---
| Sailfish OS 3.2.1.20 (Nuuksio)
'---
[nemo@sailfish ~]$ jolla-settings
[D] unknown:0 - Using Wayland-EGL
[W] unknown:809 - file:///usr/lib/qt5/qml/Sailfish/Silica/PageStack.qml:809: Error: Error while loading page: file:///usr/share/install-history/qml/pages/MainPage.qml:41 Invalid property assignment: "acceptableInput" is a read-only property

[nemo@sailfish ~]$ 

… and that error message is correct! Weirdly not fatal on later versions apparently.

Kindly test install-history-0.9.10 which should fix that, and some more about the search

1 Like

Noted as a possible addition.

Looking through the history file though, recoding radd events seems fine, but repos get rremoved a lot without obvious user interaction - not sure why but maybe it’s connected to ssu-disabled repos, or something Storeman or chum-gui do.
So that would clutter the list a lot.

1 Like

For me its good and if will read all I can make smaller the text settings. I use the biggest because I am old :frowning:

install-history 0.9.10 is working well on SFOS 3.2.1.

Thank you very much.

No, it is not cramped due to a lower resolution or different aspect ratio (e.g., on an Xperia X: 1920x1080 = 16:9), AFAIU @rdomschk has deliberately set the font size to “largest”.

IMO the layout of the two line entries, each starting with a “+”- or “-”-icon and concluding with the app icon (if extant), is really fine by all aspects: text sizes, icon sizes, text colouration etc. :smiley:

My suggestions, now that I have seen install-history:

  1. The date labels between the entries proper have a strange “flow”, altering at least three times:
    Today, Yesterday, then Sunday (today - 3), Saturday (today - 4), Friday (today - 5), Wednesday (today - 6), then Februray (month of (day - 7)), February, February, February, …, January, …, March, then 2021, 2021, 2021, …, 2020, 2020, …, 2019, 2019, …, 2018, 2018.
    This omits the precise date (> 6 days ago) or does not properly name it (“Which date was last Sunday?”), even though the exact date can be retrieved from each individual entry.

    • Please always provide a full date with a spelled out month, e.g. 31 January 2022, do not omit the day of the month (as always, currently), plus either the year or the month.
    • Please alter the naming scheme at most once (i.e., 0 or 1 time): I.e., either always use the aforementioned full date format (31 January 2022) or start with Today and Yesterday, then switch to the aforementioned full date format.
      Personally I would prefer the simpler approach of consistently displaying the full date format with a spelled out month.

    Edit / change of opinion: After thinking about this point for a while, I think these separators are just superfluous, because the exact date can always be retrieved from each individual entry. These “date separators” simply consume space unnecessarily without providing any additional information. Side note: This is more prevalent in landscape orientation.
    Altered suggestion: Eliminate the “date separators”.

  2. The search selection field does occupy quite some space (even with the search field proper closed), especially in landscape orientation: Please move its functionality to pulley menu entries.

    I.e., if the search field is hidden, display two pulley menu entries “Search for date” and “Search for name” (the latter being the lower one, as currently in the selection menu), and if one of them is active, substitute this one by “Close search field”.

  3. WRT “radd” and “rremove” events (adding and removing of repositories)

    • that would clutter the list a lot.

      Oh, I considered these to be optionally displayed. For example by another pulley menu entry displaying either “Show repository events” (when inactive) or “Hide repository events” (when active).
      When active, IMO these repo-related entries should be seamlessly interleaved with the events for adding and removing packages.

    • IMO displaying such events needs two additional icons for adding and removing repositories, which are distinctively different (by colour and symbol) from the extant ones for package events.
      E.g., a small circle symbol “” on a blue background for an radd event and a medium-sized saltire (diagonal cross, also called Saint Andrew’s Cross) “X” on a yellow background for an rremove entry.

    • repos get rremove'd a lot without obvious user interaction - not sure why but maybe it’s connected to ssu-disabled repos, or something Storeman or chum-gui do.

      Maybe we can develop a scheme (algorithm) for not displaying irrelevant rremove entries later. Being able to easily observe (by the help of install-history) when they are recorded (e.g., during SailfishOS upgrades etc.) will make it much easier to determine which are irrelevant.

  4. Old suggestion, but overhauled: Enhance package description

    Shows when packages have been installed or removed.

    Install-history integrates into the SailfishOS’ Settings application with a new entry in the "Info" section there.

  5. Suggestion: Alter the statement nnn records (technical term) to nnn entries (common term).

  6. Topic: “No line-breaking, because a mix of two and three line entries would be visually disturbing.”

    I believe the proper solution for this is to present the full information for an entry in a separate page, which opens when long-pressing an entry.


HTH

Well, On my Jolla C (with normal font size) it still is a bit cramped.

What if you only leave the hour in the description of the installed app and add the date and day and year on the right where you now see the day and month between the apps.

Or leave the icons out. There is a search function so no need to see icons.

My 2 cents.

AFAIU this is the regular look, which is fine IMO. Smaller fonts would make it really hard to read.

Note that the second line of an entry never overflows to the right, hence this is a non-issue IMO.
And without a date, the time is hard to comprehend as such: 15:41 could mean anything.

Yes, omitting the application icons would alleviate the issue a tiny bit, but IMO they are a nice visual gimmick. And the icons at the left are essential.

OK, here’s a better example. There is text outside screen, and that is not OK IMO.

I know and @nephros knows:

But IMO he met the right decision: No line-breaking, because a mix of two and three line entries would be visually disturbing.

The easy workaround for this is to use landscape orientation!
Then only very few entries are too long, still.

I believe the proper solution is to present the full information for an entry in a separate page, which opens on long-pressing an entry.

P.S.: I captured this as point 6 in my list of suggestions.

So, about those repo events:

I after almost finishing the repo event things, I noticed that user-added repos are not recorded in the log, i.e. there are no radd events for repos that are in the ssu “user” list.

Add to that those spurious rremove events (which do reference user-added repos it seems*) ), what remains useful to display are the add/remove events for official Jolla/system-wide repos - and those change very little, basically only when upgrading releases.

I have therefore ceased development of that feature as basically WONTFIX/WOULDHAVEABEENNICE. If anyone wants to pick up where I left it, it’s in this branch.

*) I suspect it’s Storeman’s “remove repos with no installed apps” feature which does that, but not at all sure.

2 Likes