flattool / warehouse

A versatile toolbox for viewing flatpak info, managing user data, and batch managing installed flatpaks
GNU General Public License v3.0
292 stars 31 forks source link

Downgrade broken (again?) #104

Closed VortexAcherontic closed 7 months ago

VortexAcherontic commented 8 months ago

Describe the issue in detail

If applicable, provide steps to reproduce the issue

Run flatpak run io.github.flattool.Warehouse in a terminal and if applicable, show any output

Traceback (most recent call last):
  File "/app/share/warehouse/flattool_gui/downgrade_window.py", line 114, in <lambda>
    task.run_in_thread(lambda *_: self.get_commits())
                                  ^^^^^^^^^^^^^^^^^^
  File "/app/share/warehouse/flattool_gui/downgrade_window.py", line 76, in get_commits
    self.versions.append([commits[i], changes[i], dates[i]])
                                      ~~~~~~~^^^
IndexError: list index out of range
heliguy4599 commented 7 months ago

Hello! Can you tell me at what one of the apps you were trying to downgrade was? Also could you tell me the output of flatpak --version?

VortexAcherontic commented 7 months ago

Sure thing can do.

flatpak --version
Flatpak 1.15.6

So far I tried to rollback OBS Studio and 0 A.D.
Just now I also tied Armagetron Advanced, Audacity, Warehouse itself and ProtonUp-Qt. All show the same error in the logs. Which leads me to the conclusion it is not working for all my flats.

heliguy4599 commented 7 months ago

Hello. Sorry, I haven't been able to recreate this, even with the same version of Flatpak, and with the same apps. I don't have many ideas as to why this would be happening. What distro are you on? I tried it on Arch because Arch has Flatpak 1.15.

VortexAcherontic commented 7 months ago

How to some run the app from source? What I did to look into it myself was:

meson setup builddir && cd builddir
meson compile
./src/warehouse 
Traceback (most recent call last):
  File "/opt/datalake/vortex/develop/warehouse/builddir/./src/warehouse", line 42, in <module>
    resource = Gio.Resource.load(os.path.join(pkgdatadir, 'warehouse.gresource'))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-file-error-quark: Failed to open file “/usr/local/share/warehouse/warehouse.gresource”: open() failed: No such file or directory (4)

How do I overwrite the gressource path to the one next to the executable eg. how to test this app locally?

What distro are you on?

openSUSE Aeon (based on openSUSE Tumbleweed)

VortexAcherontic commented 7 months ago

Did a quick test in a VM with a basic setup so I do not have any fancy additional flatpak repos or maybe some customization I have possibly made which could interfere with this. But also there I'm getting the exact same issue (openSUSE Kalpa, also based on openSUSE Tumlbeweed)

Edit: Tested it inside openSUSE 15.5 Leap VM with flatpak 1.14.5 which gives also the same error.

Edit 2: Ubuntu 22.04 LTS VM, same error, flatpak: 1.14.4

Edit 3: CachyOS (Arch based) VM, flatpak 1.15.6, also not working.

A wild guess: I have in all tests added the flathub repo --user wide not system wide. May this be the root cause?

heliguy4599 commented 7 months ago

I have done these similar tests myself and for the life of me I cannot get this bug to appear, I really have no clue. I've tried different virtual machines of the OSes listed and no such errors. I'll have to talk with more people and come at this from a different angle...

VortexAcherontic commented 7 months ago

I have done these similar tests myself and for the life of me I cannot get this bug to appear, I really have no clue. I've tried different virtual machines of the OSes listed and no such errors. I'll have to talk with more people and come at this from a different angle...

Many thanks for looking into it. I myself will do more testing and try different things until I found a working configuration 😅 If I do I will report back asap.

Sorry for reporting this rather frustrating issue.

VortexAcherontic commented 7 months ago

OMG you won't believe me. I just set my openSUSE Kalpa VM from German to English and guess what .. it works now ... HOW can this be a locale issue? o.O

locale of working system:

locale
LANG=en_DK.UTF-8
LC_CTYPE="en_DK.UTF-8"
LC_NUMERIC="en_DK.UTF-8"
LC_TIME="en_DK.UTF-8"
LC_COLLATE="en_DK.UTF-8"
LC_MONETARY="en_DK.UTF-8"
LC_MESSAGES="en_DK.UTF-8"
LC_PAPER="en_DK.UTF-8"
LC_NAME="en_DK.UTF-8"
LC_ADDRESS="en_DK.UTF-8"
LC_TELEPHONE="en_DK.UTF-8"
LC_MEASUREMENT="en_DK.UTF-8"
LC_IDENTIFICATION="en_DK.UTF-8"
LC_ALL=

Locale of borken system(s):

locale
LANG=de_DE.UTF-8
LC_CTYPE=de_DE.UTF-8
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Output of the log command on a de_DE system:

flatpak remote-info --log flathub io.github.flattool.Warehouse/x86_64/stable --user

Warehouse - Verwalten Sie alles rund um Flatpak

     Kennung: io.github.flattool.Warehouse
         Ref: app/io.github.flattool.Warehouse/x86_64/stable
 Architektur: x86_64
       Zweig: stable
     Version: 1.5.1
      Lizenz: GPL-3.0-only
    Sammlung: org.flathub.Stable
Herunterladen 1,8 MB
 Installiert: 2,3 MB
    Laufzeitumgebung: org.gnome.Platform/x86_64/45
         Sdk: org.gnome.Sdk/x86_64/45

      Commit: 08ef8cf5496617cf084701a5b6be1b09d7facd06d96d97242398be44b6101457
      Parent: 6214dd169d20013b21aeb491f5c95daf87a1bef901c952712d112612c9b0c3d6
     Betreff: Update io.github.flattool.Warehouse.json (fc7a490b)
       Datum: 2024-03-08 18:33:37 +0000
     Verlauf: 

      Commit: 6214dd169d20013b21aeb491f5c95daf87a1bef901c952712d112612c9b0c3d6
     Betreff: Update io.github.flattool.Warehouse.json (32e2d1e4)
       Datum: 2024-03-06 04:02:13 +0000

      Commit: b319bd7d251bd6093fb4010b2da30fb9ba6b0f83c52573fc49802da86239d210
     Betreff: Update to 1.4.0 (363ff137)
       Datum: 2023-12-18 05:18:37 +0000

      Commit: 031801689c431abc5fa5f08c6f6eb3dd893349e052138d8eda94f5b86e6e852e
     Betreff: Rerelease 1.3.0 (4af07eed)
       Datum: 2023-10-24 04:48:20 +0000

      Commit: f24adcf87f84607662ebab8375a524e04c66f49ae2e8f47159f44b68bd8b19b6
     Betreff: Update to 1.3.0 (953baf63)
       Datum: 2023-10-24 02:11:21 +0000

      Commit: 682f20e5aae4a1844361875639f74e5f4bcdf8d80577f305a1dbde2e05c68b42
     Betreff: Update io.github.flattool.Warehouse.json (ed66c5c4)
       Datum: 2023-10-15 23:49:39 +0000

      Commit: 8a7c2b2eeedbb7d8baa7e676ab107bcd63acd1a8d576cb34f9fa3af4350c9572
     Betreff: Update io.github.flattool.Warehouse.json (ed66c5c4)
       Datum: 2023-10-15 23:49:39 +0000

      Commit: 30a11381382aa2987f7af4a543d5e6ca573656f53b6689ae72119c1e10a50035
     Betreff: Update io.github.flattool.Warehouse.json (30373471)
       Datum: 2023-10-12 02:47:42 +0000

      Commit: c345977247210a98565e87900001d14e60e45c6b69e901ad30e25882f649cbdb
     Betreff: Update io.github.flattool.Warehouse.json (1ace7221)
       Datum: 2023-10-06 06:20:42 +0000

      Commit: 6f8e47699ebdf46b491decaebacc8c74ebaef8913cdb34c371188d2adf445c46
     Betreff: Update to 1.1.0 (b87f626e)
       Datum: 2023-10-05 06:13:29 +0000

      Commit: 510449e16535f2b28ef0ae9a53b0df119494e32d36a5572e0db1c44e96d9b08f
     Betreff: Update io.github.flattool.Warehouse.json (44178795)
       Datum: 2023-09-29 07:54:50 +0000

Output of the log command on an en_XX system:

flatpak remote-info --log flathub io.github.flattool.Warehouse/x86_64/stable --user

Warehouse - Manage all things Flatpak

        ID: io.github.flattool.Warehouse
       Ref: app/io.github.flattool.Warehouse/x86_64/stable
      Arch: x86_64
    Branch: stable
   Version: 1.5.1
   License: GPL-3.0-only
Collection: org.flathub.Stable
  Download: 1,8 MB
 Installed: 2,3 MB
   Runtime: org.gnome.Platform/x86_64/45
       Sdk: org.gnome.Sdk/x86_64/45

    Commit: 08ef8cf5496617cf084701a5b6be1b09d7facd06d96d97242398be44b6101457
    Parent: 6214dd169d20013b21aeb491f5c95daf87a1bef901c952712d112612c9b0c3d6
   Subject: Update io.github.flattool.Warehouse.json (fc7a490b)
      Date: 2024-03-08 18:33:37 +0000
   History: 

    Commit: 6214dd169d20013b21aeb491f5c95daf87a1bef901c952712d112612c9b0c3d6
   Subject: Update io.github.flattool.Warehouse.json (32e2d1e4)
      Date: 2024-03-06 04:02:13 +0000

    Commit: b319bd7d251bd6093fb4010b2da30fb9ba6b0f83c52573fc49802da86239d210
   Subject: Update to 1.4.0 (363ff137)
      Date: 2023-12-18 05:18:37 +0000

    Commit: 031801689c431abc5fa5f08c6f6eb3dd893349e052138d8eda94f5b86e6e852e
   Subject: Rerelease 1.3.0 (4af07eed)
      Date: 2023-10-24 04:48:20 +0000

    Commit: f24adcf87f84607662ebab8375a524e04c66f49ae2e8f47159f44b68bd8b19b6
   Subject: Update to 1.3.0 (953baf63)
      Date: 2023-10-24 02:11:21 +0000

    Commit: 682f20e5aae4a1844361875639f74e5f4bcdf8d80577f305a1dbde2e05c68b42
   Subject: Update io.github.flattool.Warehouse.json (ed66c5c4)
      Date: 2023-10-15 23:49:39 +0000

    Commit: 8a7c2b2eeedbb7d8baa7e676ab107bcd63acd1a8d576cb34f9fa3af4350c9572
   Subject: Update io.github.flattool.Warehouse.json (ed66c5c4)
      Date: 2023-10-15 23:49:39 +0000

    Commit: 30a11381382aa2987f7af4a543d5e6ca573656f53b6689ae72119c1e10a50035
   Subject: Update io.github.flattool.Warehouse.json (30373471)
      Date: 2023-10-12 02:47:42 +0000

    Commit: c345977247210a98565e87900001d14e60e45c6b69e901ad30e25882f649cbdb
   Subject: Update io.github.flattool.Warehouse.json (1ace7221)
      Date: 2023-10-06 06:20:42 +0000

    Commit: 6f8e47699ebdf46b491decaebacc8c74ebaef8913cdb34c371188d2adf445c46
   Subject: Update to 1.1.0 (b87f626e)
      Date: 2023-10-05 06:13:29 +0000

    Commit: 510449e16535f2b28ef0ae9a53b0df119494e32d36a5572e0db1c44e96d9b08f
   Subject: Update io.github.flattool.Warehouse.json (44178795)
      Date: 2023-09-29 07:54:50 +0000

I think the errors comes form these lines in the code as it can not replace things properly as the text is different:

warehouse

/downgrade_window.py
commits = []
        changes = []
        dates = []
        for i in range(len(data)):
            line = data[i]

            if "Commit:" in line:
                commits.append(line.replace("Commit: ", ""))

            if "Subject:" in line:
                changes.append(line.replace("Subject: ", ""))

            if "Date:" in line:
                dates.append(line.replace("Date: ", ""))

I think it should either be changed to also add LC_ALL=C to the flatpak spawn command in order to get the output in English or these text needs to be localized as well.

Running: LC_ALL=C flatpak remote-info --log flathub io.github.flattool.Warehouse/x86_64/stable --user on a de_DE host outputs things in English just fine.

heliguy4599 commented 7 months ago

Wow you came to the same possible answer just as Axtlos, a friend, did. Can you go to this GitHub Action and download the Flatpak file there, install it, and see if the bug is fixed? You'll also need to have 'org.gnome.Platform/x86_64/46' installed as I've upgraded to Libadwaita 1.5

It contains an attempted fix for this by doing exactly what you said: prepending "LC_ALL=C" to the called command.

VortexAcherontic commented 7 months ago

How do I get the github action build to use locales as it seems to come without?

Edit: But since it runs the exact same code as I did locally I am very confident it should work just fine.

heliguy4599 commented 7 months ago

I'm sorry I do not know how. But, the shell command being ran should be agnostic to the localization of the app, as it's being ran on the host. So as long as your OS itself is set to the locale, you should be able to test this just fine I think.

VortexAcherontic commented 7 months ago

I'm sorry I do not know how. But, the shell command being ran should be agnostic to the localization of the app, as it's being ran on the host. So as long as your OS itself is set to the locale, you should be able to test this just fine I think.

Ah yes you are right, didn't thought abut it this way. Yeah it works very well. Many thanks ❤️

heliguy4599 commented 7 months ago

You're welcome, and thanks a bunch!