Hi,
I tried to build Seamly2D from source on my Ubuntu 18.04 and it failed. It turns out that commit bb3d1bdf93efbe1aa4120c2fb0b1460807983f6e made a small change:
- list.swap(k, s-(1+k));
+ list.swapItemsAt(k, s-(1+k));
swapItemsAt is a new function only added since Qt5.13 (released 2019-06-19). My Ubuntu only has 5.9. If I revert the above one-line change it all builds fine.
So either the above should be changed back or the build requirements bumped.
3 Likes
@rode_kater
Does this mesh with your tool versions on Ubuntu 18.04? Do we need to add or remove anything?
- debhelper (>= 12.1.1)
- qtbase5-dev (>= 5.13.0)
- libqt5svg5-dev (>= 5.13.0)
- g++ (>= 7.3.0)
- qt5-default (>= 5.13.0)
- qttools5-dev-tools (>= 5.13.0)
- libqt5xmlpatterns5-dev (>= 5.13.0)
- Standards-Version: 3.9.5
Dependencies:
- libc6 (>= 2.4)
- libgcc1 (>= 1:8.4.0)
- libqt5core5a (>= 5.13.0) | libqt5core5 (>= 5.13.0)
- libqt5gui5 (>= 5.13.0) | libqt5gui5-gles (>= 5.13.0)
- libqt5printsupport5 (>= 5.13.0)
- libqt5svg5 (>= 5.13.0)
- libqt5widgets5 (>= 5.13.0)
- libqt5xml5 (>= 5.13.0)
- libqt5xmlpatterns5 (>= 5.13.0)
- libstdc++6 (>= 8.4.0)
2 Likes
I’m looking at the debug messages on Launchpad for the Ubuntu build. I may add need to add additional packages like OpenGL.
1 Like
Those version look like those for Ubuntu 20.04, I think more like:
debhelper (>= 11)
qtbase5-dev (>= 5.9.0)
libqt5svg5-dev (>= 5.9.0)
g++ (>= 7.3.0)
qt5-default (>= 5.9.0)
qttools5-dev-tools (>= 5.9.0)
libqt5xmlpatterns5-dev (>= 5.9.0)
Standards-Version: 3.9.5
And
libc6 (>= 2.4)
libgcc1 (>= 1:8.4.0)
libqt5core5a (>= 5.9.0) | libqt5core5 (>= 5.9.0)
libqt5gui5 (>= 5.9.0) | libqt5gui5-gles (>= 5.9.0)
**libqt5network5 (>= 5.9.0)**
libqt5printsupport5 (>= 5.9.0)
libqt5svg5 (>= 5.9.0)
libqt5widgets5 (>= 5.9.0)
libqt5xml5 (>= 5.9.0)
libqt5xmlpatterns5 (>= 5.9.0)
libstdc++6 (>= 8.4.0)
Besides having only Qt5.9, the only thing missing was the libqt5network5. Incidentally, I know the debian packaging tools can generate these lists for you.
1 Like
Yeah, I figured there must be a tool for this!
1 Like
Launchpad is so tricky to set up. It’s why we wanted to move to an .appimage distribution, which is working great.
Why don’t we just drop Launchpad?
1 Like
Currently investigating how to define dependencies on Launchpad to use Qt 5.13.2, which is what our code requires. This is not a simple issue. I specified Qt 5.13.2 on Bionic and Xenial, and 5.14.2 on Focal in the Launchpad dependencies (the debian/control file in our repo only specifies the minimum version required.) But these packages weren’t installed so the build failed again. Today I enabled Backports in Launchpad dependencies which allows their server build script to install unsupported packages. Hopefully this is the fix.
Also I’m creating a debian package of Seamly2d from command line on Bionic with Qt 5.13.2. This should create a new debian/control file with all the correct dependencies for our current build.
2 Likes
Could we just drop the Ubuntu ppa build on Launchpad and focus on maintaining our appimage build?
We don’t have any other builds for specific distros, all our Linux users can download the .appimage.
This make maintenance so much simpler.
Anybody else want to drop the Launchpad ppa build for Ubuntu?
3 Likes
The only drawback I can see with that is that I can’t Favorite the appimage onto my Dock. But as long as the source remains easily accessible I can always build it myself if I get tired of having to open it from the directory. So far the benefits outweigh the slight disadvantages.
So you can count me as an “Aye”
1 Like
Yeah I’d like to improve the current linux build to be a tarball which includes a .png icon file, and a desktop file (for ubuntu) and similar files for other distros, and a script which copies these files where they need to go for each distro.
2 Likes
That’s why I suggested to Roman to make that change conditional, which would have left it compatible with 5.9, but he said he doesn’t like to use conditionals???
I’m using 5.15 and can get upto 250+ deprecation warnings everytime I build in Creator.
2 Likes
Somewhat OT, but I found this tool to show WIndows dependencies. It works great. Still trying to find a way to grab all the linux dependencies without relying on the debian/control file, so that we can create a new debian/control file appropriate for latest distros, and enforce using qt 5.13.2 or later.
1 Like
With this change in the control file
Package: seamly2d
Architecture: i386 amd64
+Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Pattern making program.
and
- dh_shlibdeps -Llibqmuparser2 -l$(CURDIR)$(LIBPATH) -Llibvpropertyexplorer -l$(CURDIR)$(LIBPATH)
+ dh_shlibdeps -xlibqmuparser2 -xlibvpropertyexplorer
It generates the following:
Depends=libc6 (>= 2.14), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.0), libqt5printsupport5 (>= 5.3.0), libqt5svg5 (>= 5.6.0~beta), libqt5widgets5 (>= 5.2.0), libqt5xml5 (>= 5.2.0), libqt5xmlpatterns5 (>= 5.0.2), libstdc++6 (>= 5.2)
(this is with the patch to remove the dependency of 5.13)
1 Like
@rode_kater Super! Thanks for this. I’ll update my local control file on Ubuntu 18.04 & test.
1 Like