Bug: debian/control says qtbase5-dev>=5.2.0 but actually requires 5.13+

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

ok created an issue for this,

Build issue: debian/control Qt info out of date · Issue #320 · FashionFreedom/Seamly2D · GitHub

2 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”

:unicorn:

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