- This topic has 8 replies, 1 voice, and was last updated 3 months, 2 weeks ago by John Cupit.
-
AuthorPosts
-
-
NickGuest
There’s already an apt package for libvips – a tool that is FAR faster and less resource-intensive than imagick for converting and processing images – but it is fairly out of date on most Ubuntu OSs. 24.04 Noble seems to have the latest version, and will be released in a few months, but that doesn’t help people running Jammy, Focal etc…
Would you consider adding a package for libvips42? The main problem that I foresee is that it has a lot of dependencies… Though, it might be possible to create a single static binary with all depenedencies – https://github.com/libvips/libvips/discussions/3426
Here’s how to use it in php, which is probably of interest to you https://github.com/libvips/php-vips
Thanks!
-
Thijs EilanderKeymaster
Hi,
I can rebuild for Trixie, Noble, Bookworm, Jammy, Bullseye.
Focal, Buster and Bionic have a meson version of < 0.55 and the latest libvip needs > 0.55It’s building now, please test it and let me know ;-)
-
NickGuest
Thanks! It seems to work well, except it doesn’t upgrade most of the (considerable amount of) dependencies.
A quick check can be seen here:
https://packages.ubuntu.com/jammy/libvips42
vs
https://packages.ubuntu.com/noble/libvips42libheif and libwebp are the one I’m particularly interested in, for AVIF and WEBP image support.
But I also overrode jammy as noble in the various repo files (e.g. /etc/apt/sources.list) and there seem to be considerable other differences as well. Is this simply unavoidable? I can provide comprehensive lists of package differences if you like
-
NickGuest
Thanks! It seems to work well, except it doesn’t upgrade most of the (considerable amount of) dependencies.
A quick check can be seen here:
https://packages.ubuntu.com/jammy/libvips42
vs
https://packages.ubuntu.com/noble/libvips42libheif and libwebp are the one I’m particularly interested in, for AVIF and WEBP image support.
But I also overrode jammy as noble in the various repo files (e.g. /etc/apt/sources.list) and there seem to be considerable other differences as well. Is this simply unavoidable? I can provide comprehensive lists of package differences if you like
-
Thijs EilanderKeymaster
Hi,
The Noble package doesn’t build on Jammy, so I used an older package as base and updated it to the latest version of libvips.
If I understand you correctly you want updated packages for webp and avif as well, but then I have to repackage them too, and their dependencies, and their dependencies ;-) The Noble package might have some dependencies which Jammy (and below) simply doesn’t have so I have to create new packages too.
I’m afraid that’s not easily being achieved. It’s easier to create a noble docker with the packages and use that or upgrade to the release candidate of Noble itself for the time being.
-
Nick ChomeyGuest
That all makes sense and is what I suspected would be the case when I opened this thread. Thanks for the consideration, and for doing what you were able to do – its certainly much better than nothing at all.
I’ll deploy noble when it is released in a couple months. But you are probably right that Docker is the right tool for this job (and surely most others) – I should look into putting my entire configuration into an image and then I can easily handle specific packages and dependencies.
-
John CupittGuest
Hello, libvips maintainer here, thank you for making this package!
I would make a few changes to the jammy deb for 8.15:
1. Swap libgsf for libarchive. We’ve got a new backend for dzsave and moved on from the slightly clumsy libgsf. Performance is better too. Without this change libvips won’t be able to write deepzoom / gmaps / etc. pyramids.
2. Remove libmatio. This library is extremely insecure by design (no attempt is made to validate input) and can be trivially hacked. It should not be exposed to internet data, IMO. It’s used to load Matlab save files, which is not a common thing, so I think most people would not miss it.
3. I would consider removing libmagick* as well. libvips uses it for formats like BMP and ICO, which are (arguably) not widely used. Including it brings in a range of security issues.
4. You could consider removing libexr. Again, EXR images are not widely used, and you save some bytes off your package.
5. I would also remove libopenslide. This is an extreme minority set of formats useful only in the digital pathology community.
6. 8.15 still has orc support, but has a new SIMD backend based on libhwy. If you can bear to package it, swapping orc for hwy would be useful.
7. 8.15 supports libspng as well as libpng. If libspng is packaged, it’s faster and safer than libpng.
8. I would remove nip2 from the recommended list. It (annoyingly) brings in most of X11 unless users remember to turn on –no-install-recommends.
-
NickGuest
Wow, great insights! Do you have any suggestions about my concern that this package installs some different dependency versions than if you override apt to use Ubuntu 24.04 Noble?
Here’s the packages they each version installs.
https://packages.ubuntu.com/jammy/libvips42
https://packages.ubuntu.com/noble/libvips42But using this package doesn’t install all the versions from noble – some remain older, like libheif and libwebp.
Does that matter for libvips? Or will it happily use whatever dependency version is available?
-
John CupitGuest
libvips has a set of minimum required versions (enforced be meson), but as long as you meet the minimum, it should all work. The summary table at the end of
meson setup
lists the detected versions and whether or not they will work. We try to be flexible, so (for example) it still builds on rhel7.
-
-
AuthorPosts