Skip to content

feat(metainfo,desktop): polish for Flathub listing readiness - #17

Merged
got3nks merged 1 commit into
amule-org:masterfrom
got3nks:feat/metainfo-desktop-polish
Jun 8, 2026
Merged

feat(metainfo,desktop): polish for Flathub listing readiness#17
got3nks merged 1 commit into
amule-org:masterfrom
got3nks:feat/metainfo-desktop-polish

Conversation

@got3nks

@got3nks got3nks commented Jun 8, 2026

Copy link
Copy Markdown

Summary

Three small polish items that improve how the aMule listing renders on Flathub and how the app shows up in Linux launchers:

  1. org.amule.aMule.metainfo.xml — the <release version="3.0.0"> entry now carries <description> and <url>. Without them, the Flathub catalogue page shows only the date; with them, it shows a short "What's New" blurb + a Read-more link to the 3.0.0 blog post.
  2. org.amule.aMule.desktop — adds GenericName= ("P2P File Sharing Client") and Keywords=. GenericName improves the app's secondary label in modern launchers (KDE Plasma's krunner, GNOME Shell's overview, Cinnamon's app picker). Keywords increase search recall against alternative spellings (p2p / peer-to-peer, ed2k / edonkey, etc.).
  3. org.amule.aMule.gui.desktop — same GenericName= + Keywords= treatment for amuleGUI.

GenericName is translated into the same locale set already covered by the existing Comment[lang]= entries on each desktop file. Keywords are kept English-only — the freedesktop spec allows Keywords[lang]= but it's rarely used in practice and the English terms cover the vast majority of launcher queries.

Validation

  • appstreamcli validate --strict --pedantic --no-net: ✔ passes (1 pedantic warning unchanged — uppercase letter in app-id).
  • desktop-file-validate on both desktop files: ✔ clean.

Refs

Continues the Flathub-readiness work started in #15 (icon refresh) and #16 (Flathub-strict manifest staging). Once this lands, #16's pending SHA bump is the last mechanical item before submitting to flathub/flathub.

- metainfo: release entry gets <description> + <url>. Flathub renders
  these in the listing's "What's New" panel; without them the catalogue
  shows only the release date.
- desktop files: add GenericName + Keywords. GenericName improves the
  app's secondary label in modern launchers (KDE Plasma's krunner,
  GNOME Shell's overview); Keywords help search match alternative
  spellings (p2p/peer-to-peer, ed2k/edonkey, etc.).

Translations for GenericName cover the same locale set already present
in the existing Comment[lang]= entries on each desktop file. Keywords
are kept English-only — the freedesktop spec allows Keywords[lang] but
it's rarely used in practice and English search terms cover the vast
majority of launcher queries.
@got3nks
got3nks merged commit eb75041 into amule-org:master Jun 8, 2026
10 checks passed
got3nks added a commit that referenced this pull request Jun 8, 2026
Stages the Flathub-strict version of the aMule Flatpak manifest in `packaging/flathub/` — the file that will be submitted to flathub/flathub once domain attestation for the app-id is resolved. Differences from the internal `packaging/linux/flatpak/org.amule.aMule.yaml.in`:

- All `${...}` template variables resolved to concrete values (Flathub forbids envsubst).
- The amule source: `branch:` swapped for `tag: + commit:` (Flathub forbids mutable refs).
- The cryptopp source: existing tag augmented with a pinned commit.

Pinned at master tip post-#15 (icon refresh), #17 (metainfo / desktop polish), and #19 (ENABLE_BFD option). Carries -DENABLE_BFD=NO so the Flathub-built bundle inherits the libbfd-runtime-missing fix.

Companion file `packaging/flathub/README.md` documents the two-manifest layout, the submission flow against flathub/flathub:new-pr, and how to refresh the pin on each new aMule release tag.
@got3nks
got3nks deleted the feat/metainfo-desktop-polish branch June 8, 2026 16:32
got3nks added a commit that referenced this pull request Jun 14, 2026
…atforms

The macOS-only `std::_Exit(0)` block in OnExit() was added to dodge a
wxWebSessionURLSession dtor bug under wx 3.3.2. Turns out the
Linux backend (wxWebSessionCURL, wx 3.2.6) hits the same class of
shutdown crash: its dtor calls curl_multi_cleanup, libcurl invokes the
registered socket callback (wxWebSessionCURL::SocketCallback) to drop
tracked sockets, and that callback dereferences session state the
dtor's earlier steps have already torn down. wxASSERT fires,
wxFatalSignalHandler raise(SIGABRT)s.

Verified with a debug-symbol Flatpak + gdb on a user-supplied core,
fully symbolicated:

    #19 main                                amule-gui.cpp:98
    #18 wxEntry                             wx/init.cpp:500
    #17 wxEntryCleanup                      wx/init.cpp:205
    #16 wxModule::CleanUpModules            wx/module.cpp:191
    #15 wxModule::DoCleanUpModules          wx/module.cpp:200
    #14 wxRefCounterMT::DecRef
        wxWebSession::Close                 wx/webrequest.cpp:1074
    #13 wxWebSessionCURL::~wxWebSessionCURL wx/webrequest_curl.cpp:932
    #12 wxWebSessionCURL::~wxWebSessionCURL wx/webrequest_curl.cpp:929
    #11-#6 libcurl curl_multi_cleanup
    #5  wxWebSessionCURL::SocketCallback    wx/webrequest_curl.cpp:1047
    #4  raise()
    #3  wxFatalSignalHandler                wx/unix/utilsunx.cpp:1523
    #0  abort

Same justification used for the macOS guard applies on every
platform: by this point in OnExit we have saved state, joined
threads, and flushed logs -- nothing aMule-owned remains to clean up.
_Exit bypasses atexit and static destructors uniformly, so the buggy
wx dtor never runs and the process terminates cleanly.

Remove this once the upstream wx fix lands in a release we depend on.

Reported in #18.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant