Skip to content

Fix packaging for ubuntu questing#4717

Merged
dirkhh merged 3 commits intosubsurface:masterfrom
hyperair:fix-ubuntu-questing-packaging
Feb 26, 2026
Merged

Fix packaging for ubuntu questing#4717
dirkhh merged 3 commits intosubsurface:masterfrom
hyperair:fix-ubuntu-questing-packaging

Conversation

@hyperair
Copy link
Contributor

Describe the pull request:

  • Bug fix
  • Functional change
  • New feature
  • Code cleanup
  • Build system change
  • Documentation change
  • Language translation

Pull request long description:

Fix build failures of the subsurface package in the releases and daily PPAs in ubuntu questing, caused by unsatisfiable build-dependency libqt5webkit5-dev.

There is also a separate issue of subsurface-qt-private-headers not having been properly copied to questing in the PPA, but I can't fix that in a PR.

Changes made:

  • Change packaging/ubuntu/make-package.sh to swap out the libqt5webkit5-dev build-dep for qtwebengine5-dev on Ubuntu Questing
  • Disable LTO optimization (enabled by default in Ubuntu questing) to prevent segfaulting during application startup.

Related issues:

Additional information:

Documentation change:

Mentions:

@Saviq @mikeller @dirkhh

@github-actions
Copy link

Artifacts:
Subsurface-Linux-AppImage-6.0.5539-patch.2.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@github-actions
Copy link

@github-actions
Copy link

Artifacts:
Subsurface-Android-6.0.5539-patch.2.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@github-actions
Copy link

Artifacts:
Subsurface-Windows-6.0.5539-patch.2.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@dirkhh
Copy link
Collaborator

dirkhh commented Feb 12, 2026

Webengine support will be removed. This is a 150MB monster library that is not the right tool for the job.
We are working on a different toolkit to use for user manual and printing and will make this switch together with the overall switch to Qt 6 for building Subsurface. For now I think Ubuntu 25.10 will remain unsupported - we could consider just dropping print/user manual in the meantime. I might look into that if I have time.

@hyperair
Copy link
Contributor Author

Would you consider merging a PR that disables print/user manual support for Ubuntu 25.10 so that Ubuntu 25.10 users at least have a usable Subsurface version? Because The 25.04 version isn't installable in 25.10 right now and it would suck to need to run subsurface in a VM.

@mikeller
Copy link
Member

Would you consider merging a PR that disables print/user manual support for Ubuntu 25.10 so that Ubuntu 25.10 users at least have a usable Subsurface version? Because The 25.04 version isn't installable in 25.10 right now and it would suck to need to run subsurface in a VM.

Go for it - help is appreciated and it's great if we can avoid leaving 25.10 users high and dry until we get Qt6 support done.

Bonus points if the user manual action opens https://subsurface-divelog.org/subsurface-user-manual/ in a browser until we get native manual support back.

hyperair added a commit to hyperair/subsurface that referenced this pull request Feb 25, 2026
Webengine support will be removed[1], and Ubuntu 25.10 has removed
libqt5webkit5-dev, so turn webkit-using features off.

[1] subsurface#4717 (comment)
@hyperair
Copy link
Contributor Author

@mikeller @dirkhh Done, please have a look:

  • Ubuntu questing has libqt5webkit5-dev build-dep dropped, and is built with NO_USERMANUAL=ON and NO_PRINTING=ON
  • When NO_USERMANUAL is set, the User manual menuitem will no longer be removed from the Help menu; instead it will launch https://subsurface-divelog.org/subsurface-user-manual/ in a browser using QDesktopServices::OpenUrl.

@github-actions
Copy link

Artifacts:
Subsurface-Linux-AppImage-6.0.5539-patch.4.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@github-actions
Copy link

Artifacts:
Subsurface-Android-6.0.5539-patch.4.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@github-actions
Copy link

Artifacts:
Subsurface-Windows-6.0.5539-patch.4.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

Copy link
Member

@mikeller mikeller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to do the trick. Rebasing once #4732 has been merged should fix the Fedora build problem.

@dirkhh you are the expert on the ubuntu build system - what do you think?

In a future pull request we could probably also add the selected language to the URL as ?lang=en_GB and similar.

@mikeller
Copy link
Member

Oh and @hyperair you will have to fix the sign-off on your commit messages, see https://github.com/subsurface/subsurface/pull/4717/checks?check_run_id=64790567736.

Copy link
Collaborator

@dirkhh dirkhh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind adding a Signed-off-by to the last two commits?
I think I'd prefer if you rebased the commits to avoid the bit of back-and-forth with QWebEngine, but that's not required.
Other than that this looks great.
But we try not to merge things without SOB, so I'll submit this as a "Request changes" even though I approve the changes themselves...


# newer ubuntu releases no longer have libqt5webkit5-dev, so use
# qtwebengine5-dev instead
sed -i 's/libqt5webkit5-dev/qtwebengine5-dev/' debian/control
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are going a bit back and forth here between this commit and the rest of the series... not a huge problem, but maybe we should rebase / combine these commits for them to make more sense...

diveList->scrollTo(diveList->model()->index(0, 0), QAbstractItemView::PositionAtCenter);
#ifdef NO_USERMANUAL
ui.menuHelp->removeAction(ui.actionUserManual);
#endif
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this makes the name of the #define a bit illogical, but it's temporary in many ways, so I'm not too worried.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this makes the name of the #define a bit illogical, but it's temporary in many ways, so I'm not too worried.

@dirkhh Maybe NO_HARD_TO_BUILD_USERMANUAL 😁
Jokes aside, I've been toying with the thought of moving the desktop manual completely to the web version for some time. This would cut some scope from the list of things that are currently hard-to-do for us in Qt6, and after all this has been working fine for the mobile version for a long time, with no user complaints for what I can tell.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well ... User manual works fine with Qt6 and QLiteHtml 😁

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works - not sure I find the current look so fine:

image

So all in all I am wondering if we shouldn't see the effort that went into making this work with QLiteHtml as sunk cost, and avoid future effort to keep this working and possibly make it look better by moving to the browser-based approach...

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dive site without Internet. Liveaboard.
Not needing the Internet to look at the manual is useful.
That's why we did all this in the first place

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dive site without Internet. Liveaboard. Not needing the Internet to look at the manual is useful. That's why we did all this in the first place

My hunch would be that more people who get into this situation will be bringing a mobile phone rather than a laptop, and we seem to be happy to accept this shortcoming there...

But point taken. If this is a concern then we can simply open the packaged HTML user manual in the system default browser, like what #4735 does. Or we could even package the PDF manual for a smaller, more compact binary, and open it in the system viewer.

Ubuntu 25.10 has removed libqt5webkit5-dev and webengine support will be
removed[1], so turn webkit-using features off.

[1] subsurface#4717 (comment)

Signed-off-by: Chow Loong Jin <hyperair@debian.org>
Building subsurface with lto turned on (default in ubuntu questing and above)
causes subsurface to segfault on startup.

Also cleanup the typo'd DEB_BUILD+OPTIONS env var which was not doing anything.

Signed-off-by: Chow Loong Jin <hyperair@debian.org>
Signed-off-by: Chow Loong Jin <hyperair@debian.org>
@hyperair hyperair force-pushed the fix-ubuntu-questing-packaging branch from ea34a8e to b0f42d9 Compare February 26, 2026 00:59
@hyperair
Copy link
Contributor Author

@dirkhh Done.

Could you also fix the package copies for subsurface-qt-private-headers in the PPAs please?

image image

I think you'll need to redo the copy, selecting the "Copy existing binaries" option as opposed to "Rebuild the copied sources" when doing the copy to have it work.

@github-actions
Copy link

Artifacts:
Subsurface-Linux-AppImage-6.0.5539-patch.3.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@github-actions
Copy link

Artifacts:
Subsurface-Android-6.0.5539-patch.3.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

@github-actions
Copy link

Artifacts:
Subsurface-Windows-6.0.5539-patch.3.pull-request.fix-ubuntu-questing-packaging
WARNING: Use at your own risk.

Copy link
Collaborator

@dirkhh dirkhh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks - I once again tried to get Launchpad to copy those private header packages

@dirkhh dirkhh merged commit 64dd87c into subsurface:master Feb 26, 2026
23 checks passed
dirkhh pushed a commit that referenced this pull request Feb 26, 2026
Ubuntu 25.10 has removed libqt5webkit5-dev and webengine support will be
removed[1], so turn webkit-using features off.

[1] #4717 (comment)

Signed-off-by: Chow Loong Jin <hyperair@debian.org>
@dirkhh
Copy link
Collaborator

dirkhh commented Feb 26, 2026

Thank you for working on this. On my third attempt the copying of the private headers worked and I verified that we now have a Subsurface-daily package for 25.10

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.

3 participants