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

Update kde-neon extension #123

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

furgo16
Copy link
Contributor

@furgo16 furgo16 commented Oct 7, 2024

Update to latest platform and build snap versions as described on https://snapcraft.io/docs/kde-neon-extension

Ultimately, I'd like to:

  1. Update external dependencies (mainly OCCT)
  2. Explore an upgrade to core24 => not doable or necessary.  snapcraft extensions lists the supported base snap to be up to core22 for both the kde-neon and kde-neon-6 snaps
  3. Provide a Qt 6 build => explore kde-neon-6 extension

Research

  1. Snapcraft extensions documentation
  2. kde-neon extension usage documentation
  3. kde-neon extension source code see also its Python file.
  4. kde-neon-6 extension comments
  5. Snapcraft: Qt 5 KDE applications documentation
  6. KDE 5 Frameworks platform/content snap source code
  7. KF5 launcher source code
  8. KDE 5 Frameworks snap source code (yet another location?)

@luzpaz
Copy link
Collaborator

luzpaz commented Oct 16, 2024

What's delaying this ? (1.0 release?)

@furgo16
Copy link
Contributor Author

furgo16 commented Oct 16, 2024

Last time I tried a build with these changes, it failed. The kde-neon extension has no documentation that I could find that explained that (I read https://snapcraft.io/docs/kde-neon-extension), or even how we use it in snapcraft.yaml. I could not find where the source code is, either. That, and lack of time are the reasons.

@furgo16
Copy link
Contributor Author

furgo16 commented Oct 16, 2024

The build error: https://github.com/furgo16/FreeCAD-snap/actions/runs/11372445768/job/31636779466#step:4:1215

:: CMake Error at /snap/kf5-5-113-qt-5-15-11-core22-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake:26 (message):
::   The imported target "Qt5::UiTools" references the file
::
::      "/snap/kf5-5-113-qt-5-15-11-core22-sdk/current/usr/lib/x86_64-linux-gnu/libQt5UiTools.a"
::
::   but this file does not exist.  Possible reasons include:
::
::   * The file was deleted, renamed, or moved to another location.
::
::   * An install or uninstall procedure did not complete successfully.
::
::   * The installation package was faulty and contained
::
::      "/snap/kf5-5-113-qt-5-15-11-core22-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake"
::
::   but not all the files it references.
::
:: Call Stack (most recent call first):
::   /snap/kf5-5-113-qt-5-15-11-core22-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake:130 (_qt5_UiTools_check_file_exists)
::   /snap/kf5-5-113-qt-5-15-11-core22-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake:342 (_populate_UiTools_target_properties)
::   /snap/kf5-5-113-qt-5-15-11-core22-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package)
::   cMake/FreeCAD_Helpers/SetupQt.cmake:30 (find_package)
::   CMakeLists.txt:81 (include)

@ScarlettGatelyMoore I see that you've helped with the FreeCAD snap in the past. Would you happen to know why this build error is happening when upgrading the kde-neon extension? Thanks!

@luzpaz
Copy link
Collaborator

luzpaz commented Oct 19, 2024

Why KDE Neon and not Plasma ? or are you making a separate option for Neon ?

@ScarlettGatelyMoore
Copy link
Contributor

So sorry, Our ability to update qt5 content packs was removed for awhile. I am however making new ones as we speak. Are you still qt5 or qt6? I can help, but not til Monday I am afraid.

@furgo16
Copy link
Contributor Author

furgo16 commented Oct 20, 2024

So sorry, Our ability to update qt5 content packs was removed for awhile. I am however making new ones as we speak. Are you still qt5 or qt6? I can help, but not til Monday I am afraid.

@ScarlettGatelyMoore thank you! Monday, or in your own time, would be fine. We're just glad to get any help or advice at all! The upcoming FreeCAD 1.0 release will still be on Qt5, which is the priority for this snap, and what we want to have in shape for now. However, FreeCAD builds with Qt6, and at some point we'd like to have an additional Qt6 snap build for testers.

Given that FreeCAD is a Qt, but not KDE app, is it worth keeping going the kde-neon way for our snap, or is there a better way in terms of maintenance? The main issue right now for us documentation. Whenever there is an issue like the present one, generally we're generally at a loss to know how to fix it.

Why KDE Neon and not Plasma ? or are you making a separate option for Neon ?

@luzpaz check out https://snapcraft.io/docs/supported-extensions and the links in the issue description. If I understand it correctly, kde-neon is a snapcraft extension that was developed KDE Neon. However, since it has dependencies on Qt snaps, it is often used by non-KDE snaps as a convenience method of pulling the Qt libraries. While it includes KDE libraries too, which would generally not be needed by non-KDE snaps, it also sets up desktop-related functionality at build and run time. In summary, it's a convenience tradeoff.

@ScarlettGatelyMoore
Copy link
Contributor

I maintain both the kde-neon and kde-neon-6 extension as well as qt snaps. The problem is the lack of qt5 snaps due to reason out of my control. This is now fixed and I am working on them. Will be here tomorrow to get this sorted.

@ScarlettGatelyMoore
Copy link
Contributor

Still working on the content snaps, I will then need to update snapcraft to use them.

@furgo16
Copy link
Contributor Author

furgo16 commented Oct 23, 2024

@ScarlettGatelyMoore thanks! Is there anything we can do to help? Could you point us to the source code of the content/platform and SDK snaps?

@ScarlettGatelyMoore
Copy link
Contributor

Hi, the documentation is here https://community.kde.org/Guidelines_and_HOWTOs/Snap
Currently only for qt6 as we removed qt5 support. That is however changing. kf5-core22-sdk is here: https://invent.kde.org/neon/snap-packaging/kf5-core-sdk no runtime until sdk succeeds. I also want to note I am a bit on the slow side due to complications with a broken arm. Thanks for your patience.

@ScarlettGatelyMoore
Copy link
Contributor

Core24 support awaits canonical/snapcraft#5092

I will also have to do similiar with kde-neon for qt5.

But for now we can do core22 as it will be a much smaller PR and merged quicker.

@ScarlettGatelyMoore
Copy link
Contributor

Content packs are done. I have added qt5 support to canonical/snapcraft#5092 now I just need them to merge. Thanks for your patience.

@furgo16
Copy link
Contributor Author

furgo16 commented Nov 9, 2024

@ScarlettGatelyMoore thank you. I've subscribed to the snapcraft PR, but I must admit I'm a bit lost as to how this will affect us.

We would appreciate some guidance for our use case (the upcoming FreeCAD 1.0 release, Qt5-based)? I.e.:

  • Is the kde-neon extension still a good fit for packaging the FreeCAD snap?
  • Should we be updating it? If yes, to core24, core22?
  • Will we be able to easily upgrade the snap to Qt6 after our 1.0 release? Note: this question is about snap packaging, not the sources, as there are already FreeCAD Qt6 builds available

Thanks!

@furgo16
Copy link
Contributor Author

furgo16 commented Dec 8, 2024

@ScarlettGatelyMoore have you had the chance of looking at the questions in the previous comment? Thanks!

@ScarlettGatelyMoore
Copy link
Contributor

Gosh sorry I missed the question. I am in the hospital with on going issues and infection of broken arm.

Once that pr is merged and snapcraft is released, you can move to core24. You can move to qt6 now by using kde-neon-6 extension. I honestly don't know why canonical/snapcraft#5092 is taking so long. Sorry.

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