flathub / com.inform7.IDE

https://flathub.org/apps/details/com.inform7.IDE
0 stars 2 forks source link

Update GNOME Runtime to 45 #13

Closed Zishan-Rahman closed 1 year ago

Zishan-Rahman commented 1 year ago

I'm aware that there's already a PR open at the moment for updating the GNOME runtime to 44: flathub/com.inform7.IDE#11

However, @ptomato (sorry for the ping), I believe you mentioned having problems with compiling projects under runtime 44 (and a few other things). Since GNOME 45 recently got released, I thought I'd update the runtime further, as version 44 reaches EOL next year, while version 45 reaches EOL the following year. Whether this runtime update has any effect on the issues you have mentioned I'm not sure yet, as I haven't tried it myself yet. I do think it's worth trying, just to see if things somehow change, but that's just my opinion.

flathubbot commented 1 year ago

Started test build 72488

flathubbot commented 1 year ago

Build 72488 failed

Zishan-Rahman commented 1 year ago
../meson.build:71:12: ERROR: Problem encountered: One or more required GStreamer elements were not found.
    You will have to install your system's "base", "good", and "bad" plugins
    packages. Try looking for names such as: gstreamer1-plugins-base,
    gstreamer1-plugins-good, gstreamer1-plugins-bad-free,
    gstreamer1-plugins-bad-free-extras, gstreamer1.0-plugins-base,
    gstreamer1.0-plugins-good, gstreamer1.0-plugins-bad

A full log can be found at /run/build/chimara/_flatpak_build/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
FB: host_command_exited_cb 2073460 256

:thinking:

ptomato commented 1 year ago

Yes, trying is appreciated, thanks!

I would guess that this failure is due to the freedesktop runtime updating gstreamer-plugins-bad. Freedesktop doesn't include the modplug plugin, so we have to build gstreamer-plugins-bad again in the app's manifest with just that plugin: https://github.com/flathub/com.inform7.IDE/blob/master/com.inform7.IDE.yml#L129-L147 However, the version must match freedesktop exactly. So my suggestion would be to find what git tag and commit is used by whatever version of freedesktop underlies the GNOME 45 runtime, and update Inform's manifest to match that.

Zishan-Rahman commented 1 year ago

Yes, trying is appreciated, thanks!

I would guess that this failure is due to the freedesktop runtime updating gstreamer-plugins-bad. Freedesktop doesn't include the modplug plugin, so we have to build gstreamer-plugins-bad again in the app's manifest with just that plugin: https://github.com/flathub/com.inform7.IDE/blob/master/com.inform7.IDE.yml#L129-L147 However, the version must match freedesktop exactly. So my suggestion would be to find what git tag and commit is used by whatever version of freedesktop underlies the GNOME 45 runtime, and update Inform's manifest to match that.

Thanks for your suggestion. I had a look at the GNOME runtime repository. The GNOME 45.0 runtime uses the Freedesktop SDK 23.08.0. The Freedesktop SDK 23.08.0 uses the same version of gstreamer-plugins-bad as the version of GStreamer it uses for everything else, GStreamer 1.22.5-0. As it turns out, the development of gstreamer-plugins-bad no longer happens in its own repo. It's now developed in the GStreamer monorepo itself, along with all the other plugins. So we need a new plan for how to build gstreamer-plugins-bad specifically, for the modplug plugin.

There are several ways we could go about it, but since the GStreamer project provides their own source code tarballs for gstreamer-plugins-bad (and, I'm sure, other modules) specifically, I ultimately decided to use the specific one we need from there. We could maybe find out how to use the GStreamer monorepo to build only gstreamer-plugins-bad for the modplug plugin in the future, but right now getting the Flatpak itself built is more important, and this is most likely the easiest way to achieve this at the moment. I just pushed the commit that takes care of this change (hopefully it works) :+1:

flathubbot commented 1 year ago

Started test build 72582

Zishan-Rahman commented 1 year ago
Run-time dependency webkit2gtk-4.0 found: NO (tried pkgconfig and cmake)

../meson.build:61:9: ERROR: Dependency "webkit2gtk-4.0" not found, tried pkgconfig and cmake

I'll use the aforementioned GNOME 44 update PR to deal with this. hfiguiere made a branch in this repository for his PR so I'm going to try merging it with mine.

Zishan-Rahman commented 1 year ago

By merging hfiguiere's PR, I found out that he already managed to build the gstreamer-plugins-bad module using the GStreamer monorepo. I can't believe I struggled with that now :man_facepalming:

Now all that's left to do is to update the tag and commit before I push again :+1:

flathubbot commented 1 year ago

Build 72582 failed

flathubbot commented 1 year ago

Started test build 72591

flathubbot commented 1 year ago

Build 72591 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/55244/com.inform7.IDE.flatpakref
Zishan-Rahman commented 1 year ago

@ptomato I'm also updating the appdata.xml with a patch to include updated links and other changes to make it look better on Flathub and clarify some confusions. For example, even though Inform is no longer proprietary, it currently says it is on Flathub, so hopefully this should fix that. It also denotes the last change as being made over 8 years ago, which is also misleading as both Inform and the Linux IDE have had major releases last year. The new appdata.xml also makes distinctions between the actual Inform design system and this IDE, as this Flatpak is meant to be for the whole IDE and it might be better to clarify that here. I also copied the paragraphs from README.md that were missing in appdata.xml.

It should look like this after the patch is applied:

<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>com.inform7.IDE</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-3.0</project_license>
  <content_rating type="oars-1.0" />
  <name>Inform 7 IDE</name>
  <summary>Write interactive fiction</summary>
  <keywords>
    <keyword translate="no">IDE</keyword>
    <keyword>interactive fiction</keyword>
    <keyword translate="no">inform</keyword>
    <keyword translate="no">GNOME</keyword>
    <keyword translate="no">GTK</keyword>
    <keyword>development</keyword>
  </keywords>
  <description>
    <p>
      Inform 7 IDE, also known as GNOME Inform, is a development environment
      for building interactive fiction on Linux with the Inform design system.
      Initially in development since 2006, and stemming from prior development
      of the Inform system, which was originally released in 1993, the system
      was released as free and open-source software under the Artistic License
      2.0 in 2022. This IDE is built with GNOME and released as free-and-open-source
      software under the GPLv3.
    </p>
    <p>
      Inform is a design system for interactive fiction based on natural
      language, a new medium of writing which came out of the "text adventure"
      games of the 1980s.
      It has been used by many leading writers of IF over the last twenty
      years, for projects ranging from historical reconstructions, through
      games, to art pieces, which have won numerous awards and competitions.
    </p>
    <p>
      Inform's educational users span a uniquely wide age range, from primary
      schools to graduate computer science classes.
      Although Inform has also been used for commercial commissions, in
      architecture, in the games industry and in advertising (most recently
      for a major 2014 product launch), its primary aim is to help and to
      encourage individual writers to express themselves in a new medium.
      In a single evening with Inform, it's possible to write a vignette and
      publish it as an interactive website, playable on any browser.
    </p>
    <p>
      The Inform project was created by Graham Nelson in 1993 and first came to
      the Macintosh Programmer's Workshop in 1995, and is now available as an app.
      It combines the core Inform software with full documentation, including two
      books and nearly 500 fully working examples. Connecting to the Inform website,
      it can automatically download and update extensions from a fully curated Public
      Library used by the world-wide Inform community. The app offers richly detailed
      indexing of projects and scales from tiny fictions like "Kate is a woman in the
      Research Lab" right up to enormous imaginary worlds whose source text runs to
      over 3 million words. Features for automated testing, packaging and releasing
      round out a fully-featured development environment for IF.
    </p>
    <p>
      Inform is free, with no strings attached. What you make with it is yours, to
      publish on your website, sell, or give to your friends. There's a vibrant community
      of users who welcome newcomers (and the app will help you find a high-traffic forum
      for discussions). Lastly, Inform is continuously maintained and developed. All bug
      reports are examined and acted on (and the app will show you how to post them).
    </p>
    <p>
      The source code behind the Inform 7 design system itself is linked here:
      https://github.com/ganelson/inform/
    </p>
    <p>
      The source code behind this IDE is linked here:
      https://github.com/ptomato/inform7-ide/
    </p>
  </description>
  <launchable type="desktop-id">com.inform7.IDE.desktop</launchable>
  <screenshots>
    <screenshot type="default">
      <image>https://raw.githubusercontent.com/ptomato/inform7-ide/main/pixmaps/screenshots/source.png</image>
    </screenshot>
    <screenshot>
      <image>https://raw.githubusercontent.com/ptomato/inform7-ide/main/pixmaps/screenshots/skein.png</image>
    </screenshot>
    <screenshot>
      <image>https://raw.githubusercontent.com/ptomato/inform7-ide/main/pixmaps/screenshots/welcome.png</image>
    </screenshot>
  </screenshots>
  <url type="homepage">https://ganelson.github.io/inform-website/</url>
  <url type="bugtracker">https://ganelson.github.io/inform-website/bugs/</url>
  <url type="help">https://ganelson.github.io/inform-website/doc/</url>
  <url type="donation">https://ganelson.github.io/inform-website/donate/</url>
  <url type="vcs-browser">https://github.com/ptomato/inform7-ide</url>
  <url type="contribute">https://github.com/ganelson/inform/</url>
  <releases>
    <release version="2.0.0" date="2022-09-03">
      <description>
        <p>
          Long-awaited 2.0.0 release, corresponding to Inform 10.1.2.
        </p>
        <p>
          Inform 10.1.2 was released on August 31st 2022, with changes to the build manager
          to fix sandboxing issues on Linux that prevented the building and publishing of a
          Linux build of Inform 10.1.1, as well as 10 other bug fixes.
        </p>
      </description>
    </release>
  </releases>
</component>
flathubbot commented 1 year ago

Started test build 72608

Zishan-Rahman commented 1 year ago

bot, build

flathubbot commented 1 year ago

Queued test build for com.inform7.IDE.

Zishan-Rahman commented 1 year ago

bot, build

flathubbot commented 1 year ago

Queued test build for com.inform7.IDE.

flathubbot commented 1 year ago

Build 72608 failed

flathubbot commented 1 year ago

Started test build 72615

Zishan-Rahman commented 1 year ago
FB: Running: git remote add --mirror=fetch origin https://github.com/ganelson/intest.git
FB: Running: git cat-file -e v2.1.0
FB: Running: git --version
FB: Git version: 2.42.0.0
FB: Running: git ls-remote origin
fatal: unable to access 'https://github.com/ganelson/intest.git/': Failed sending data to the peer
Failed to download sources: module inform: Child process exited with code 128
program finished with exit code 1

I didn't change anything about the intest source in the manifest, so this shouldn't be happening. Maybe it was a server issue. I'll try it again.

Zishan-Rahman commented 1 year ago

bot, build

flathubbot commented 1 year ago

Queued test build for com.inform7.IDE.

flathubbot commented 1 year ago

Build 72615 failed

flathubbot commented 1 year ago

Started test build 72622

flathubbot commented 1 year ago

Build 72622 failed

flathubbot commented 1 year ago

Started test build 72626

flathubbot commented 1 year ago

Build 72626 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/55279/com.inform7.IDE.flatpakref
ptomato commented 1 year ago

Unfortunately with the testing build, compilation fails in the same way as https://github.com/flathub/com.inform7.IDE/pull/11#issuecomment-1599180144

I'm not sure what to suggest, maybe looking carefully at the output of the "build inform" step to see if there are any errors that didn't halt the process?

In the meantime, would you be interested in submitting the webkitgtk-4.1 change and the improvements to the appdata XML over at ptomato/inform7-ide? We can at least incorporate those improvements already.

Zishan-Rahman commented 1 year ago

Unfortunately with the testing build, compilation fails in the same way as #11 (comment)

I'm not sure what to suggest, maybe looking carefully at the output of the "build inform" step to see if there are any errors that didn't halt the process?

Thanks for your advice. I'll let you know when I've tried that out myself.

In the meantime, would you be interested in submitting the webkitgtk-4.1 change and the improvements to the appdata XML over at ptomato/inform7-ide? We can at least incorporate those improvements already.

@ptomato I've opened 2 PRs in your Inform 7 IDE repository: ptomato/inform7-ide#32, which takes care of the webkitgtk-4.1 change, and ptomato/inform7-ide#33, which takes care of the appdata.xml improvements.

Zishan-Rahman commented 1 year ago

bot, build

flathubbot commented 1 year ago

Queued test build for com.inform7.IDE.

flathubbot commented 1 year ago

Started test build 74596

flathubbot commented 1 year ago

Build 74596 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/57247/com.inform7.IDE.flatpakref
ptomato commented 1 year ago

I figured out the problem that was making the Inform compiler unusable, or at least a workaround for it. The versions of GCC in runtimes 43 and later either miscompiles Inform when optimization is turned on, or (more likely) there is undefined behaviour in Inform that these newer versions of GCC handle differently than Clang. The workaround is to turn off optimization. This is probably temporary until the next version of Inform is released.

I've pushed an update to the development Flatpak manifest, https://github.com/ptomato/inform7-ide/commit/b8be210a336179c4c7592be7599c90d5f291c8f0 and you can probably adapt it to this PR.

flathubbot commented 1 year ago

Started test build 74973

flathubbot commented 1 year ago

Started test build 74975

flathubbot commented 1 year ago

Started test build 74976

Zishan-Rahman commented 1 year ago

74976 is the test build we're after (once it's built, of course).

flathubbot commented 1 year ago

Build 74975 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/57608/com.inform7.IDE.flatpakref
flathubbot commented 1 year ago

Build 74976 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/57609/com.inform7.IDE.flatpakref
flathubbot commented 1 year ago

Build 74973 successful To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/57606/com.inform7.IDE.flatpakref
Zishan-Rahman commented 1 year ago

@ptomato (sorry for the ping) Rejoice! I tried compiling and running the Actor's Studio example under the test build, and now it works! Compiling a .gblorb file for release with the Flatpak works too. Now I need to learn, among other things, how to run it (well, I'm still a novice towards the Inform and broader interactive fiction ecosystems in general)! :sweat_smile:

I tried seeking out the problems by running the Flatpak through the command line, but, sadly, the console messages were not of much help (lots of Gtk-Message: XX:XX:XX.XXX: Failed to load module "xapp-gtk3-module"). I'm glad you managed to find them out and fix them eventually. Thanks for all your help! Hopefully this can get merged as soon as possible :+1:

Also, once this is merged, https://github.com/flathub/com.inform7.IDE/pull/11 can be closed. I already merged the commits from that PR into this one, anyway.