Skip to content

Add Smaragd - #6579

Merged
probonopd merged 1 commit into
masterfrom
discover/Smaragd
Oct 3, 2026
Merged

probonopd merged 1 commit into
masterfrom
discover/Smaragd

Conversation

@probonopd

Copy link
Copy Markdown
Member

Repository: https://github.com/ljantzen/smaragd

  • Stars: 5
  • Release with the AppImage: v1.2.1 (2026-09-22T19:43:12Z)
  • AppImage asset: smaragd-1.2.1-x86_64.AppImage
  • License: GPL-3.0

Found by .github/workflows/discover-apps.yml, which looks for GitHub
repositories that publish AppImages but are not in the catalog yet. This
entry was not tested by a human; please review it before merging.

Discovered on GitHub as publishing AppImages on its releases, by
discover-apps.yml. Needs a maintainer's review.
@github-actions github-actions Bot added the error-not-an-appimage Test failed: the downloaded file is not a valid AppImage label Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

❌ Test failure

@ljantzen: this pull request adds the AppImage from your GitHub repository to the AppImage catalog; the test reports the following. Could you have a look?

  • The downloaded file is not an AppImage (maybe an HTML page). Please use a direct download link.

First error in the log:

Unknown file detected
BeingTested.AppImage: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, BuildID[sha1]=804289becc7fc6672c279ca50542e32508c1e518, stripped

What next: once the AppImage is fixed (e.g. in a new release), comment /retest here to test it again. If it should not be in the catalog after all, close this pull request; an app that is already in the catalog can be removed by a maintainer with /remove.

Commit cc45fb9. Full log

@ljantzen

Copy link
Copy Markdown

Not sure what the bot is testing, but the appimage is good.

file smaragd-1.2.1-x86_64.AppImage 
smaragd-1.2.1-x86_64.AppImage: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, BuildID[sha1]=804289becc7fc6672c279ca50542e32508c1e518, stripped

Just downloaded it, chmod 755 smaragd-1.2.1-x86_64.AppImage && ./smaragd-1.2.1-x86_64.AppImage runs fine.

@probonopd probonopd added bug manual-check-needed A maintainer needs to check this PR, see its comments labels Sep 29, 2026
@probonopd

probonopd commented Sep 29, 2026 •

Copy link
Copy Markdown
Member Author

Thanks for checking, @ljantzen — and sorry for the confusing rejection.

Our test decides the AppImage type from three "magic" bytes at offset 8 of the file, expecting 41 49 02 (AI\x02) for a type‑2 AppImage. Yours has 00 49 02 there — the leading A (0x41) is zero:

offset 0:  7f 45 4c 46 02 01 01 00  00 49 02 ...
                                      ^ offset 8: should be 0x41 ('A'), but is 0x00

Offset 8 is also the ELF EI_ABIVERSION field, and offsets 9–10 are EI_PAD. Your binary is stripped, and stripping/normalising the static‑pie ELF reset EI_ABIVERSION (offset 8) back to 0x00 — wiping the magic's A, while I (offset 9) and \x02 (offset 10) survived in the ignored pad bytes.

It is otherwise a perfectly valid type‑2 AppImage: built with AppImage/type2-runtime, with the SquashFS filesystem starting at offset 194183.

How did the AppImage runtime get stripped, do you know?

@ljantzen

ljantzen commented Sep 29, 2026 •

Copy link
Copy Markdown

Probably related to this

I now realize that I implemented that to fix a problem on the computer I developed on, not the image itself. I will revert the appimage patching to conform to standards. Thanks for the headsup. Will do this later today or maybe tomorrow.

@ljantzen

Copy link
Copy Markdown

Release 1.3.2 should be good. Out now.

@probonopd

Copy link
Copy Markdown
Member Author

/retest

@probonopd probonopd closed this Sep 29, 2026
@probonopd probonopd reopened this Sep 29, 2026
@github-actions github-actions Bot added error-app-exits Test failed: the application quit or crashed right after starting and removed error-not-an-appimage Test failed: the downloaded file is not a valid AppImage labels Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

❌ Test failure

Compatibility: not self-contained: uses the C library of the system; references glibc 2.35

  • The application quit or crashed right after starting. The error below usually shows why.

First error in the log:

ERROR: The application exited within 11 seconds instead of showing a window

What next: once the AppImage is fixed (e.g. in a new release), comment /retest here to test it again. If it should not be in the catalog after all, close this pull request; an app that is already in the catalog can be removed by a maintainer with /remove.

Commit cc45fb9. Full log

@ljantzen

Copy link
Copy Markdown

/retest

@probonopd probonopd closed this Sep 29, 2026
@probonopd probonopd reopened this Sep 29, 2026
@github-actions github-actions Bot added screenshot-ok Test passed; the screenshot was checked and looks fine and removed error-app-exits Test failed: the application quit or crashed right after starting labels Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Test passed

Please check that the screenshot shows the application's main window.

Smaragd

Smaragd

Compatibility: not self-contained: uses the C library of the system; references glibc 2.35

Warnings:

Commit cc45fb9. Full log

@ljantzen

ljantzen commented Oct 3, 2026 •

Copy link
Copy Markdown

Do you need more from me? I'd appreciate if you used one of the images on the project homepage instead of the one captured by your pipeline . Thanks!

https://ljantzen.github.io/smaragd/white-desktop.png

@probonopd

Copy link
Copy Markdown
Member Author

/appstream

@probonopd
probonopd merged commit bae56b3 into master Oct 3, 2026
4 of 6 checks passed
@probonopd
probonopd deleted the discover/Smaragd branch October 3, 2026 09:24
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

How to add AppStream metadata (and your own screenshots)

The catalog page of an application can show a description, a summary, links and, above all, screenshots of your choice. They come from an AppStream metainfo file inside the AppImage.

1. Write the file. Save it as usr/share/metainfo/<id>.metainfo.xml inside the AppDir (the directory the AppImage is made from), where <id> is the <id> of the file, e.g. io.github.yourname.YourApp:

<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>io.github.yourname.YourApp</id>
  <name>YourApp</name>
  <summary>One line saying what it does</summary>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>MIT</project_license>
  <description>
    <p>A few sentences about the application.</p>
  </description>
  <launchable type="desktop-id">yourapp.desktop</launchable>
  <url type="homepage">https://github.com/yourname/YourApp</url>
  <screenshots>
    <screenshot type="default">
      <caption>The main window</caption>
      <image>https://raw.githubusercontent.com/yourname/YourApp/main/screenshots/main.png</image>
    </screenshot>
  </screenshots>
  <releases>
    <release version="1.0.0" date="2024-01-31"/>
  </releases>
</component>
  • <launchable> names the .desktop file of the AppImage.
  • The screenshot is a web address (https://…) of a PNG image that stays there, e.g. a file in your repository. The file itself does not go into the AppImage.
  • <project_license> is the license of the application, as an SPDX identifier.

2. Check it: appstreamcli validate --no-net usr/share/metainfo/<id>.metainfo.xml (from the appstream package of your distribution).

3. Put it into the AppImage.

  • appimagetool, linuxdeploy, and other tools that build from an AppDir: copy the file to AppDir/usr/share/metainfo/ before building. appimagetool checks it while building.
  • electron-builder: add it to the AppImage with extraFiles, e.g. in package.json: "linux": { "extraFiles": [ { "from": "build/<id>.metainfo.xml", "to": "usr/share/metainfo/<id>.metainfo.xml" } ] }.
  • Other tools: see https://docs.appimage.org/packaging-guide/optional/appstream.html

4. Publish a new release with the new AppImage, then comment /retest on the pull request.

Note about screenshots: the automated test still runs the application and takes a screenshot of its own. The test needs it to check that the application starts and shows a window, so the test has to pass as before. But if the AppStream metadata names a screenshot, the catalog page shows that screenshot (the one marked type="default", else the first) instead of the automated one.

@ljantzen

ljantzen commented Oct 3, 2026

Copy link
Copy Markdown

/retest

@probonopd probonopd mentioned this pull request Oct 3, 2026
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

This pull request is merged, so its entries are tested again in a new pull request: #9680. Please follow the test there (comment /retest there to test again); this conversation is locked now.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Oct 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

auto-discovered bug manual-check-needed A maintainer needs to check this PR, see its comments screenshot-ok Test passed; the screenshot was checked and looks fine

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants