Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add org.freedesktop.Sdk.Extension.wxwidgets #3077

Conversation

tinywrkb
Copy link

@tinywrkb tinywrkb commented Apr 28, 2022

Please confirm your submission meets all the criteria

  • I have read the App Requirements and App Maintenance pages.
  • My pull request follows the instructions at App Submission.
  • I am using only the minimal set of permissions. (If not, please explain each non-standard permission.)
  • All assets referenced in the manifest are redistributable by any party. If not, the unredistributable parts are using an extra-data source type.
  • I am an upstream contributor to the project. If not, I contacted upstream developers about submitting their software to Flathub. Link: Flatpak SDK extension wxWidgets/wxWidgets#22370
  • I own the domain used in the application ID or the domain has a policy for delegating subdomains (e.g. GitHub, SourceForge).
  • Any additional patches or files have been submitted to the upstream projects concerned. (If not, explain why.)

This SDK extension packages wxWidgets, WebKitGTK, and their dependencies.
I'm not developing wxWidgets apps, but a while back I took over the maintenance of Codeblocks IDE (I was nostalgic), which its maintainer and original submitter was MIA.
As a wxWidgets app, an important feature of Codeblocks is its support for wxWidgets development, and the previous Flatpak maintainer did not take this into consideration.

When I started maintaining the app, I quickly switched the runtime to Gnome due to the availability WebKitGTK, and bundled wxWidgets' development files (headers, pkgconfig, ...) to have some sort of wxWidgets development environment, but I don't think this is the way forward.
Instead, I'm proposing adding a wxWidgets Freedesktop SDK extension which could work with any IDE.

Relevant Codeblocks app changes flathub/org.codeblocks.codeblocks#21

This is still WIP, so it's marked as draft.

@tinywrkb
Copy link
Author

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 88712

@flathubbot
Copy link

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

flatpak install --user https://dl.flathub.org/build-repo/86529/org.freedesktop.Sdk.Extension.wxwidgets.flatpakref

@tinywrkb tinywrkb force-pushed the org.freedesktop.Sdk.Extension.wxwidgets branch from 4bbc4d2 to c438050 Compare April 29, 2022 00:04
@tinywrkb
Copy link
Author

tinywrkb commented Apr 29, 2022

Per wxWidgets' developer recommendation, I switch to wxWidgets 3.1.x development releases, and will switch back to stable after the 3.2.0 release will be out.

What's blocking this now is mainly doing more testing. Done
I might revise the deployment script, install.sh, though that much lower priority, and might be done post merge. Done

@tinywrkb
Copy link
Author

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 88826

@flathubbot
Copy link

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

flatpak install --user https://dl.flathub.org/build-repo/86642/org.freedesktop.Sdk.Extension.wxwidgets.flatpakref

@tinywrkb tinywrkb force-pushed the org.freedesktop.Sdk.Extension.wxwidgets branch from 10e4257 to e468028 Compare April 29, 2022 15:35
@tinywrkb
Copy link
Author

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 88903

@flathubbot
Copy link

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

flatpak install --user https://dl.flathub.org/build-repo/86721/org.freedesktop.Sdk.Extension.wxwidgets.flatpakref

@tinywrkb tinywrkb force-pushed the org.freedesktop.Sdk.Extension.wxwidgets branch from e468028 to eef6472 Compare May 1, 2022 15:50
@tinywrkb tinywrkb changed the title [WIP] Add org.freedesktop.Sdk.Extension.wxwidgets Add org.freedesktop.Sdk.Extension.wxwidgets May 1, 2022
@tinywrkb tinywrkb marked this pull request as ready for review May 1, 2022 15:51
@tinywrkb
Copy link
Author

tinywrkb commented May 1, 2022

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 89235

@flathubbot
Copy link

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

flatpak install --user https://dl.flathub.org/build-repo/87043/org.freedesktop.Sdk.Extension.wxwidgets.flatpakref

@tinywrkb
Copy link
Author

tinywrkb commented May 1, 2022

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 89249

@tinywrkb
Copy link
Author

tinywrkb commented May 1, 2022

This should be ready now.
I went through all the code samples of wxWidgets, and they can be built and run correctly as far as I can tell.
Also built and run with this extension the Flathub app net.sourceforge.GrandOrgue, and Codeblock (svn trunk version).

@tinywrkb tinywrkb force-pushed the org.freedesktop.Sdk.Extension.wxwidgets branch from e944e07 to eaaebb6 Compare May 10, 2022 14:13
@tinywrkb
Copy link
Author

Last push just renames the examples.

@tinywrkb
Copy link
Author

Hence the reason for wondering if maybe it would be better to place it in a separate sdk extension.

No, there's no way to keep these extensions in sync and not break ABI without manual intervention of a Flathub admin keeping ostree refs from being published until both extensions are rebuilt. We will be going to need a separate Flatpak branch for each WebKitGTK release that breaks ABI, and after it's published to update wxWidgets to use the new WebKitGTK branch. I asked similar question about handling cross-Flatpak-ref ABI dependency here.

After considering this again, I see that WebKitGTK has semi-annual schedule for major releases, so maybe if we're not strict as the Freedesktop runtime about adding new symbols, and don't mind stating that we can't promise that downgrading the WebKitGTK extension won't break ABI of code linked against the latest WebKitGTK build, then I guess a WebKitGTK extension is achievable without too much trouble.
We will need 2 branches for each runtime version, so a total of 4 maintained branches, and maybe retire some of them earlier than the runtime.
I'm not sure yet what the best way to wire-up ABI checks of minor releases, or should we just trust upstream.

@tinywrkb
Copy link
Author

Hence the reason for wondering if maybe it would be better to place it in a separate sdk extension.

No, there's no way to keep these extensions in sync and not break ABI without manual intervention of a Flathub admin keeping ostree refs from being published until both extensions are rebuilt. We will be going to need a separate Flatpak branch for each WebKitGTK release that breaks ABI, and after it's published to update wxWidgets to use the new WebKitGTK branch. I asked similar question about handling cross-Flatpak-ref ABI dependency here.

After considering this again, I see that WebKitGTK has semi-annual schedule for major releases, so maybe if we're not strict as the Freedesktop runtime about adding new symbols, and don't mind stating that we can't promise that downgrading the WebKitGTK extension won't break ABI of code linked against the latest WebKitGTK build, then I guess a WebKitGTK extension is achievable without too much trouble. We will need 2 branches for each runtime version, so a total of 4 maintained branches, and maybe retire some of them earlier than the runtime. I'm not sure yet what the best way to wire-up ABI checks of minor releases, or should we just trust upstream.

I take this back. I've been criticized for doing something similar in an extension. Avoiding ABI breaking by setting a branch version.
I'm not going to bother with this when no official Flathub guidelines document how to avoid ABI breakage between different Flatpak refs/packages.
This is a Flatpak limitation that should be fixed, and I won't try to work around.

I have no further changes planned to this PR, and it's ready to be merged.

@4c0n
Copy link

4c0n commented May 12, 2022

Hence the reason for wondering if maybe it would be better to place it in a separate sdk extension.

No, there's no way to keep these extensions in sync and not break ABI without manual intervention of a Flathub admin keeping ostree refs from being published until both extensions are rebuilt. We will be going to need a separate Flatpak branch for each WebKitGTK release that breaks ABI, and after it's published to update wxWidgets to use the new WebKitGTK branch. I asked similar question about handling cross-Flatpak-ref ABI dependency here.

After considering this again, I see that WebKitGTK has semi-annual schedule for major releases, so maybe if we're not strict as the Freedesktop runtime about adding new symbols, and don't mind stating that we can't promise that downgrading the WebKitGTK extension won't break ABI of code linked against the latest WebKitGTK build, then I guess a WebKitGTK extension is achievable without too much trouble. We will need 2 branches for each runtime version, so a total of 4 maintained branches, and maybe retire some of them earlier than the runtime. I'm not sure yet what the best way to wire-up ABI checks of minor releases, or should we just trust upstream.

I take this back. I've been criticized for doing something similar in an extension. Avoiding ABI breaking by setting a branch version.
I'm not going to bother with this when no official Flathub guidelines document how to avoid ABI breakage between different Flatpak refs/packages.
This is a Flatpak limitation that should be fixed, and I won't try to work around.

I have no further changes planned to this PR, and it's ready to be merged.

Totally agree that it would be great to have more guidelines and information on this subject.
Too bad communication seems difficult when it comes to matters like this, I recently tried proposing for more guidelines on the discourse forum, but also did not get any useful response so far.
I truly hope communication will improve for Flathub and its community.

@tinywrkb
Copy link
Author

tinywrkb commented Jul 6, 2022

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 99256

@flathubbot
Copy link

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

flatpak install --user https://dl.flathub.org/build-repo/96984/org.freedesktop.Sdk.Extension.wxwidgets.flatpakref

@tinywrkb tinywrkb force-pushed the org.freedesktop.Sdk.Extension.wxwidgets branch from d3b62aa to 9349fb6 Compare July 10, 2022 00:48
@tinywrkb
Copy link
Author

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 100012

@tinywrkb tinywrkb force-pushed the org.freedesktop.Sdk.Extension.wxwidgets branch from 9349fb6 to 3bbd518 Compare July 10, 2022 01:25
@flathubbot
Copy link

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

flatpak install --user https://dl.flathub.org/build-repo/97742/org.freedesktop.Sdk.Extension.wxwidgets.flatpakref

@tinywrkb
Copy link
Author

tinywrkb commented Sep 9, 2022

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 109310

@flathubbot
Copy link

Build 109310 failed

@tinywrkb
Copy link
Author

bot, build org.freedesktop.Sdk.Extension.wxwidgets

@flathubbot
Copy link

Queued test build for org.freedesktop.Sdk.Extension.wxwidgets.

@flathubbot
Copy link

Started test build 111363

@flathubbot
Copy link

Build 111363 failed

@flathubbot
Copy link

This PR hasn't received any updates in a year and will be automatically closed in 14 days. Feel free to re-open it if you plan to continue working on that pull request or think it deserves attention from Flathub admins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants