Souk issueshttps://gitlab.gnome.org/haecker-felix/souk/-/issues2023-08-18T17:38:33Zhttps://gitlab.gnome.org/haecker-felix/souk/-/issues/65twig / circle integration2023-08-18T17:38:33Zoilipheisttwig / circle integrationIf this ever becomes a software centre designed around GNOME™ as a platform rather than something tailored around the needs of umpteen different distros then it might make sense to offer a mechanism for notifying the user of news and upd...If this ever becomes a software centre designed around GNOME™ as a platform rather than something tailored around the needs of umpteen different distros then it might make sense to offer a mechanism for notifying the user of news and updates to the platform itself along with apps which are part of circle ( TWIG seems like a good candidate ).
You could imagine taking it further and including a link to e.g mastodon account in appstream metadata in future for allowing app developers to integrate with the software centre in a similar way to how its done on lets say steam.
This could be a good way of widening the net through the opt in contribution towards user studies for scenarios where privacy-preserving telemetry is a hard no from some users whilst opt in user studies are considered perfectly acceptable to them.
![alt text](https://steamuserimages-a.akamaihd.net/ugc/2019354646395979163/C800AF369E7202535321176603482BF4A325E6D0/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false "Title Text")
```https://gitlab.gnome.org/haecker-felix/souk/-/issues/60Feature request - Provide a flatpak for Souk nightly2021-08-07T10:50:59ZChetan VardhanFeature request - Provide a flatpak for Souk nightlyIs it possible to provide nightly builds of Souk via a flatpak?
That would make the software much easier to try and report bugs, for everyoneIs it possible to provide nightly builds of Souk via a flatpak?
That would make the software much easier to try and report bugs, for everyonehttps://gitlab.gnome.org/haecker-felix/souk/-/issues/59[Question] When Compiling Souk through GNOME-Builder, The App Does Not Fetch ...2021-05-27T10:59:20ZSaroufim[Question] When Compiling Souk through GNOME-Builder, The App Does Not Fetch Flatpak Data. What To Do?If I pull and compile the app through gnome-builder, the app successfully starts and I get to see an empty UI with no actual appdata or any flatpak data of any kind. Am I missing something? PS: I'm running fedora silverblue so the fedora...If I pull and compile the app through gnome-builder, the app successfully starts and I get to see an empty UI with no actual appdata or any flatpak data of any kind. Am I missing something? PS: I'm running fedora silverblue so the fedora oci is enabled.https://gitlab.gnome.org/haecker-felix/souk/-/issues/58will have the downgrade/mask feature?2021-05-25T18:52:39ZFast OSwill have the downgrade/mask feature?First of all, congratulations on the software and the initiative!
I would like to know if you have plans to implement easy downgrade / mask update for flatpak's?
It is not very common to need it, but sometimes it is necessary to preven...First of all, congratulations on the software and the initiative!
I would like to know if you have plans to implement easy downgrade / mask update for flatpak's?
It is not very common to need it, but sometimes it is necessary to prevent the update and keep an old version until the new one is resolved...https://gitlab.gnome.org/haecker-felix/souk/-/issues/55Banner Carousel2021-02-18T10:20:12ZTobias BernardBanner CarouselGNOME Software has an implementation of the new banners now https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/621, I assume a lot of that work could be re-used here :)GNOME Software has an implementation of the new banners now https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/621, I assume a lot of that work could be re-used here :)https://gitlab.gnome.org/haecker-felix/souk/-/issues/53Souk crashes on exit2021-02-09T17:43:37ZJames Westmanjames@jwestman.netSouk crashes on exitTo reproduce:
1. Start Souk
2. The loading screen appears
3. Click the close button
4. The window closes, and (in Fedora) a notification appears that Souk has crashed
Tested in 9381b9f14024b68d84380157cd97c1363d45f739.
Stack trace:
```...To reproduce:
1. Start Souk
2. The loading screen appears
3. Click the close button
4. The window closes, and (in Fedora) a notification appears that Souk has crashed
Tested in 9381b9f14024b68d84380157cd97c1363d45f739.
Stack trace:
```
#0 0x00007ffff72aa95a in g_type_check_instance_cast () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#1 0x00007ffff7fa1aaa in G_LIST_MODEL (ptr=0xaaaaaaaaaaaaaaaa) at /usr/include/glib-2.0/gio/glistmodel.h:36
#2 update_view_switcher_visible (self=0x5555567fe5b0) at ../src/adw-view-switcher-title.c:110
#3 0x00007ffff7288f3f in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4 0x00007ffff729bd4b in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5 0x00007ffff72a2861 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff72a29c3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff7918636 in gtk_stack_dispose () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#8 0x00007ffff728e4d3 in g_object_unref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007ffff7f9eb65 in unset_stack (self=0x55555682cd20) at ../src/adw-view-switcher.c:275
#10 0x00007ffff7f9f32f in unset_stack (self=0x55555682cd20) at ../src/adw-view-switcher.c:332
#11 adw_view_switcher_dispose (object=0x55555682cd20) at ../src/adw-view-switcher.c:332
#12 0x00007ffff728e4d3 in g_object_unref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff717ed82 in g_hash_table_remove_all_nodes.part () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff7180953 in g_hash_table_remove_all () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff71809a2 in g_hash_table_destroy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff717ed82 in g_hash_table_remove_all_nodes.part () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff7180953 in g_hash_table_remove_all () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff71809a2 in g_hash_table_destroy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff717200e in g_data_set_internal () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff79b2be3 in gtk_widget_dispose () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#21 0x00007ffff728e4d3 in g_object_unref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007ffff779f375 in gtk_box_dispose () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#23 0x00007ffff728e4d3 in g_object_unref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#24 0x00007ffff791656e in stack_remove () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#25 0x00007ffff791864d in gtk_stack_dispose () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#26 0x00007ffff728e4d3 in g_object_unref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ffff717ed82 in g_hash_table_remove_all_nodes.part () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff7180953 in g_hash_table_remove_all () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff71809a2 in g_hash_table_destroy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff717ed82 in g_hash_table_remove_all_nodes.part () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff7180953 in g_hash_table_remove_all () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff71809a2 in g_hash_table_destroy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff717200e in g_data_set_internal () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007ffff79b2be3 in gtk_widget_dispose () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#35 0x00007ffff777639f in gtk_application_window_dispose () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#36 0x00005555556dc6b8 in glib::subclass::object::dispose (obj=0x5555567fa450)
at /home/jwestman/.var/app/org.gnome.Builder/cache/gnome-builder/projects/souk/builds/de.haeckerfelix.Souk.Devel.json-flatpak-org.gnome.Platform-x86_64-master-main/target/cargo-home/git/checkouts/gtk-rs-48ef14c1f17c79fb/dd1c0cd/glib/src/subclass/object.rs:111
#37 0x00007ffff728e4d3 in g_object_unref () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#38 0x00007ffff7888b2d in gtk_propagate_event_internal () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#39 0x00007ffff7889283 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#40 0x00007ffff79c4e10 in surface_event () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#41 0x00007ffff7ab7587 in _gdk_marshal_BOOLEAN__POINTER () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#42 0x00007ffff7ae1273 in gdk_surface_event_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#43 0x00007ffff7288f3f in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#44 0x00007ffff729bd4b in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#45 0x00007ffff72a21a6 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#46 0x00007ffff72a29c3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#47 0x00007ffff7ae4c1a in gdk_surface_handle_event () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#48 0x00007ffff7b32aae in gdk_event_source_dispatch () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#49 0x00007ffff7192e7b in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007ffff7193128 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007ffff71931f3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff73bc71d in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#53 0x0000555555853c22 in <O as gio::application::ApplicationExtManual>::run (self=0x7fffffffdec8, argv=...) at /home/jwestman/.var/app/org.gnome.Builder/cache/gnome-builder/projects/souk/builds/de.haeckerfelix.Souk.Devel.json-flatpak-org.gnome.Platform-x86_64-master-main/target/cargo-home/git/checkouts/gtk-rs-48ef14c1f17c79fb/dd1c0cd/gio/src/application.rs:23
#54 0x00005555557ca869 in souk::app::SoukApplication::run () at ../src/app.rs:147
#55 0x000055555586cc63 in souk::main () at ../src/main.rs:58
```https://gitlab.gnome.org/haecker-felix/souk/-/issues/52Make use of new Adw Reordering API / Ensure that transition gets played for e...2021-02-06T21:35:51ZFelix Häckerhaeckerfelix@gnome.orgMake use of new Adw Reordering API / Ensure that transition gets played for every page changeFollow up of https://gitlab.gnome.org/haecker-felix/souk/-/merge_requests/59
The crossfade transition doesn't get played from package details -> package details page, since it's the same page just with changed content.Follow up of https://gitlab.gnome.org/haecker-felix/souk/-/merge_requests/59
The crossfade transition doesn't get played from package details -> package details page, since it's the same page just with changed content.https://gitlab.gnome.org/haecker-felix/souk/-/issues/51Error when generating po file through Damned Lies2021-01-24T11:52:39ZPhilipp KiemleError when generating po file through Damned LiesIn Damned Lies, GNOME's translation tool, the `souk`package fails to generate a `po` file.
The following error message appears (The first line is translated from German, original English wording may be different):
```
Error when checkin...In Damned Lies, GNOME's translation tool, the `souk`package fails to generate a `po` file.
The following error message appears (The first line is translated from German, original English wording may be different):
```
Error when checking with "intltool-update -m".
xgettext --files-from POTFILES.in --directory /var/www/djamnedlies/data/scratchdir/git/souk --from-code utf-8 --add-comments --output souk.pot --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dcgettext:2 --keyword=g_dngettext:2,3 --keyword=g_dpgettext2:2c,3 --flag=N_:1:pass-c-format --flag=C_:2:pass-c-format --flag=NC_:2:pass-c-format --flag=g_dngettext:2:pass-c-format --flag=g_strdup_printf:1:c-format --flag=g_string_printf:2:c-format --flag=g_string_append_printf:2:c-format --flag=g_error_new:3:c-format --flag=g_set_error:4:c-format --keyword=i18n --keyword=i18n_f --keyword=i18n_k --keyword=ni18n:1,2 --keyword=ni18n_f:1,2 --keyword=ni18n_k:1,2 --msgid-bugs-address https://gitlab.gnome.org/haecker-felix/souk/-/issues
xgettext: error while opening "POTFILES.in" for reading: No such file or directory
```
Is `souk` not meant to be translated yet? It seems like simply renaming `POTFILES` to `POTFILES.in` would do the trick, but I pretty much don't know anything about how DL works in the backend. Hence the Issue and no merge request right away ;)https://gitlab.gnome.org/haecker-felix/souk/-/issues/50Download statistics per app2021-05-01T11:28:00ZJB IngramDownload statistics per appRight now is it technically possible to get download statistics per app from souk, or is it something that needs to be implemented first on the flathub repos?
CheersRight now is it technically possible to get download statistics per app from souk, or is it something that needs to be implemented first on the flathub repos?
Cheershttps://gitlab.gnome.org/haecker-felix/souk/-/issues/49Make all subclasses/composite templates use a `mod` pattern2021-01-22T07:43:34ZChristopher DavisMake all subclasses/composite templates use a `mod` patternThe following discussion from !57 should be addressed:
- [ ] @haecker-felix started a [discussion](https://gitlab.gnome.org/haecker-felix/souk/-/merge_requests/57#note_1012059): (+1 comment)
> Hmm I see you're also not a big fan o...The following discussion from !57 should be addressed:
- [ ] @haecker-felix started a [discussion](https://gitlab.gnome.org/haecker-felix/souk/-/merge_requests/57#note_1012059): (+1 comment)
> Hmm I see you're also not a big fan of the `FooBarPrivate` pattern? Other subclasses are already using the "Private" pattern, would't it make sense here to use the same pattern here? When we're changing it to the own `mod` one, we should do it for all other subclasses too, so the codebase is consistently.https://gitlab.gnome.org/haecker-felix/souk/-/issues/48Search fails with multiple words2021-01-17T06:02:27ZJohnSearch fails with multiple wordsNo search results appear when the search string contains a space. I've been able to reproduce this when attempting to search for Sound Recorder, Sound Juicer, Pika Backup, Mark Text, and Text Editor.
![Demo](/uploads/9975c6f3cfa54e40efa...No search results appear when the search string contains a space. I've been able to reproduce this when attempting to search for Sound Recorder, Sound Juicer, Pika Backup, Mark Text, and Text Editor.
![Demo](/uploads/9975c6f3cfa54e40efab7fb35d369cdd/Screencast_from_01-17-2021_12_57_36_AM.webm)https://gitlab.gnome.org/haecker-felix/souk/-/issues/47Scrolling the screenshot gallery to fasts scrolls the app page too2021-01-07T18:14:07ZAlvar LagerlöfScrolling the screenshot gallery to fasts scrolls the app page tooWhen using the mouse to scroll the screenshot gallery on app pages, one has to scroll by only one "tick" at a time to avoid scrolling the whole page with at the same time.When using the mouse to scroll the screenshot gallery on app pages, one has to scroll by only one "tick" at a time to avoid scrolling the whole page with at the same time.https://gitlab.gnome.org/haecker-felix/souk/-/issues/46Layout shift when loading app pages2021-01-07T17:59:27ZAlvar LagerlöfLayout shift when loading app pagesThe layout shifts down significantly when the screenshots have been loaded. Since the height of the sliding gallery is always the same, this should be fixable by setting a fixed height or using some kind of skeleton placeholders before t...The layout shifts down significantly when the screenshots have been loaded. Since the height of the sliding gallery is always the same, this should be fixable by setting a fixed height or using some kind of skeleton placeholders before the loading is complete.https://gitlab.gnome.org/haecker-felix/souk/-/issues/45Open button not showing up2021-01-04T09:35:13ZAlvar LagerlöfOpen button not showing upI was able to produce this layout after pressing install. Unfortunately I am unable to reproduce. I'm very sorry that this might be uninformative. ![screenshot](/uploads/d8963b919b40fc918f83ada74e875d93/image.png)I was able to produce this layout after pressing install. Unfortunately I am unable to reproduce. I'm very sorry that this might be uninformative. ![screenshot](/uploads/d8963b919b40fc918f83ada74e875d93/image.png)https://gitlab.gnome.org/haecker-felix/souk/-/issues/44Gallery for app screenshots2021-01-03T19:34:24ZAlvar LagerlöfGallery for app screenshotsOne of my biggest gripes with Gnome software has always been that I am unable to properly see the screenshots provided by apps. With flatpaks being the future, I would love if you could consider a way to view these screenshots in a bigge...One of my biggest gripes with Gnome software has always been that I am unable to properly see the screenshots provided by apps. With flatpaks being the future, I would love if you could consider a way to view these screenshots in a bigger way, maybe kind of like how GitLab does their gallery viewer.https://gitlab.gnome.org/haecker-felix/souk/-/issues/43Search is not activated on keypress2021-01-02T14:20:21ZMaximilianoSearch is not activated on keypressPressing, say 'a', anywhere were the search button is visible should open the search bar with 'a' already typed in.Pressing, say 'a', anywhere were the search button is visible should open the search bar with 'a' already typed in.https://gitlab.gnome.org/haecker-felix/souk/-/issues/42Other apps by developer: weird app card sizing2021-01-15T16:25:56ZTobias BernardOther apps by developer: weird app card sizingFor some developers, the app cards take up the entire width as they should:
![image](/uploads/e46165df4aa7d03be413c8d57338d408/image.png)
But for others, the layout collapses like this:
![image](/uploads/fdd69aaea8187573e531f10de765d5...For some developers, the app cards take up the entire width as they should:
![image](/uploads/e46165df4aa7d03be413c8d57338d408/image.png)
But for others, the layout collapses like this:
![image](/uploads/fdd69aaea8187573e531f10de765d5fa/image.png)
I wonder if it's related to the length of the description and/or #40?https://gitlab.gnome.org/haecker-felix/souk/-/issues/39Implement sideloading of external resources2020-12-29T16:31:17ZFelix Häckerhaeckerfelix@gnome.orgImplement sideloading of external resourcesThere are several ways of sideloading / adding new external sources / applications in Flatpak. This includes following types:
- Flatpak Repositories (`.flatpakrepo` files)
- Example: https://flathub.org/repo/flathub.flatpakrepo
- Flat...There are several ways of sideloading / adding new external sources / applications in Flatpak. This includes following types:
- Flatpak Repositories (`.flatpakrepo` files)
- Example: https://flathub.org/repo/flathub.flatpakrepo
- Flatpak applications
- Flatpak bundles (`.flatpak` files)
- The application itself is already included in the bundle file
- No additional download of application needed
- A repository _may_ be included for further updates of the application
- Flatpak Ref (`.flatpakref` files)
- Describes a remote application *and* the remote repository of the application
- Download of application is needed
- Adds repository if not added yet
- Example: https://dl.flathub.org/repo/appstream/com.spotify.Client.flatpakref
## Notes
From design POV I think it's better to have a small dialog window for adding "external" resources, and not the main app window, to communicate to the user the message _"hey - this is something external, which isn't included in your trusted appstore"_.
## Relevant art
Windows 10
![image](/uploads/7de7b74b1c953aa0f6853241914579db/image.png)
![image](/uploads/562f278b7292151f2a84d8f3526d1071/image.png)
Elementary OS
![image](/uploads/5deef1c60251d7f9e34debe1fdaedc86/image.png)https://gitlab.gnome.org/haecker-felix/souk/-/issues/38Database doesn't get rebuilt2020-12-26T12:21:01ZFelix Häckerhaeckerfelix@gnome.orgDatabase doesn't get rebuiltDB rebuilt thread hangs and doesn't do anything.
```
let name = remote.get_name().unwrap().to_string();
let refs = flatpak_backend
.get_system_installation()
.list...DB rebuilt thread hangs and doesn't do anything.
```
let name = remote.get_name().unwrap().to_string();
let refs = flatpak_backend
.get_system_installation()
.list_remote_refs_sync(&name, gio::NONE_CANCELLABLE);
```
https://gitlab.gnome.org/haecker-felix/souk/-/blob/173d53d6909621a7e42aea9a851162c311cadf7d/src/db/database.rs#L220
For some reasons something blocks `flatpak_installation_list_remote_refs_sync ()`. Never had this problem before.
https://docs.flatpak.org/en/latest/libflatpak-api-reference.html#flatpak-installation-list-remote-refs-synchttps://gitlab.gnome.org/haecker-felix/souk/-/issues/37User/system Flatpak UX2021-03-23T08:11:23ZTobias BernardUser/system Flatpak UXWe currently support system flatpaks only, and ignore user ones. However, seeing as flatpak supports this we probably do need to at some point. Since GNOME Software doesn't have any UI for this there's not really any relevant art, and th...We currently support system flatpaks only, and ignore user ones. However, seeing as flatpak supports this we probably do need to at some point. Since GNOME Software doesn't have any UI for this there's not really any relevant art, and the pros/cons and use cases around this are a bit unclear to me. I'd appreciate if someone with more Flatpak knowledge could provide a detailed comparison of the two.
Potential use cases to think about:
- I want to update to the latest version of Inkscape because I want to use a cool new feature, but another user wants to keep an older version because there's a crashing bug in a feature they use all the time
- I got a new laptop and want to move over all my stuff. With user Flatpaks I can just copy over the entire home directory and all my apps will be there.
- A system version of Geary is already installed by someone else, but I want to have my own version so I can back up all my apps more easily
- 3 different users installed the same app as a user Flatpak. Is there some way we could avoid downloading updates separately 3 times?
These are just what came to mind now, please add any other scenarios/use cases you can think of around this.
Relevant to #32