[libvips] new port#50188
Conversation
…leanup of options
|
Hello, libvips maintainer here. This looks nice! I noticed:
|
|
Hey @jcupitt thanks for coming by! :D About using HEAD, it's for coming around an issue: libvips/libvips#4819 Thanks for the dependencies list, I think it's up to the comunity to choose which dependencies we need to support. BTW, regarding dependencies, I'd prefer any way to sync them automatically, so we don't have to keep maintaining different sources of truth every time there's an update |
|
Regarding optional dependencies, I don't know the vcpkg policy here. Homebrew's policy (for example) is to include all possible dependencies and hope that that reduces the need for source compiles by users. libvips has a feature to make this safe: you can set the env var That won't fix licence issues though. For example, poppler is GPL and I expect many vcpkg users will not want to expose themselves to potential legal problems by using it. PDFium would be a safer choice, if possible. |
|
We're hoping to get 8.18.1 done in a few days, so hopefully it's not a problem.
It's tricky, unfortunately. Every package manager uses different names for packages (!!!??! argh), and everyone will have strong views about which packages they should include or not include (eg. poppler vs. PDFium). It would be hard to have a single source of truth :( |
awesome :D Regarding dependencies, let's see if someone from vcpkg can tell us more about it. |
|
|
|
Yep, the idea is to wait for the new 8.18.1 version to use that one as official :) And about options and dependencies, the idea also, was to make libvips with the lesser or default options as a minimal build, and through vcpkg features add those options like I have now for adding png support, tiff support, etc. |
|
EDIT: oops, now I read a bit more I see vcpkg is source only, sorry for any confusion!
I think that would need users to compile the thing from source, wouldn't it? Doesn't vcpkg ship binaries? libvips has a plugin mechanism which is used for loaders like heic and openslide, have a look in lib/modules: So those could be shipped separately as binaries, but I imagine that's probably too complex. It'd be simpler to have a separate eg. |
|
Oh, I'm don't know about shipping binaries, I think I read somewhere it was discouraged unless it was really necessary. |
…there's no option to build them
|
Added the 'fix' for disabling fuzz in the meantime. I think it's ready for merging if there's no issue in azure pipelines :) |
|
From the pr checks, they fail on building, but I can't see why. |
| ## tools are built by default, uncomment this for next libvips version where | ||
| ## there's a tools option in the FEATURES and MESON OPTIONS file. | ||
| #if("tools" IN_LIST FEATURES) | ||
| vcpkg_copy_tools( |
There was a problem hiding this comment.
Does it make sense to try to build these when cross compiling?
There was a problem hiding this comment.
ah, good question!
So far, I've seen people using the command line tools, so I wanted to let people have the option to copy them into the bin output directory.
When cross compiling I'd guess we would like to maintain them for anyone creating a package or distribution maybe?
@jcupitt what do you think?
|
Marked draft due to build failures, please feel free to press Ready for review if you need another look. Thanks for your submission! |
| "tools": { | ||
| "description": "Build tools." | ||
| }, |
There was a problem hiding this comment.
This feature isn't connected.
GPT-5.5 observes that
the
toolsfeature is not connected to the build in 8.18.2: upstream has notoolsMeson option for the portfile parser to enable, andvcpkg_copy_tools()currently runs unconditionally. This is blocking because the default package installsvips.exe,vipsedit.exe,vipsheader.exe, andvipsthumbnail.exeeven whenlibvips[tools]is not selected.
There was a problem hiding this comment.
ah yep, I'm copying tools directly because meson already builds them.
maybe I should check if the tools option is in the feature list and enable the copy in that case.
as John says, for 8.19 we should update the port because it already has the option in meson
should I do this?
|
Drafting due to the unconnected feature and
above |
|
Hi @BillyONeal, git master libvips has a https://github.com/libvips/libvips/blob/master/meson_options.txt#L28-L31 This will be released as libvips 8.19 later this summer. I think the idea is that this vcpkg option will be connected up then. |
|
Hi! I removed the tools feature and put a comment so we can update the port when the new version is released. The arm64_osx test fails because some "curl: (55) Send failure: No buffer space available", but other arches pass the test successfully, I understand it's not a port failure, isn't it? I'll set this ready for review :) |
Owner-Projectform.vcpkg.json, or explicitly disabled through patches or build system arguments such as CMAKE_DISABLE_FIND_PACKAGE_Xxx or VCPKG_LOCK_FIND_PACKAGEvcpkg.jsonmatches what upstream says.vcpkg.jsonmatches what upstream says../vcpkg x-add-version --alland committing the result.Hey folkz!
I'd like to add the libvips port :) ( https://github.com/libvips/libvips )
I know it has
libas prefix, but if you look for it everywhere is usinglibvipsas the name, also, the github repo is calledlibvips/libvips.In repoloy webpage I can see some repositories using it as libvips, or as vips only. (BTW: the https://repology.org//versions url doesn't seem to work)
libvips on google:

Furthermore, if you remove the lib prefix, you can confound it with a sandwich restaurants chain :P
vips on google:

I'll let the owner and team of libvips/vips about this PR for if they want to say anything too.
Let me know if I should change the port name to
vipsonly instead.A couple thing that I'd like to discuss:
I set this in the portfile in the meantime:
Is there any workaround to use the --head flag from my projects' vcpkg.json manifest?
I was taking a look at this conversation: #17805 but I didn't find any way to force using head version.
I've put some optional dependencies as features in the port, they're listed here:
** https://github.com/libvips/libvips?tab=readme-ov-file#optional-dependencies
** https://github.com/libvips/libvips/blob/master/meson_options.txt
Is there a way to automatically parse those options in the .txt file and provide them in the vcpkg.json or in any other way so we don't have to keep maintaining the port if anything upstream changes?
I guess that if there's no way, I should put every option in libvips as a feature in vcpkg, isn't it?
About the usage file, as it doesn't provide any cmake files to use, when building the port it shows the following snippet,I think it's enough, let me know if there's any better way to show it:
I'm still working on building and linking libvips with the project I'm working on, but I wanted to open this draft PR to discuss anything related or missing about the configuration in the different platforms so we can team up.
Let me know if there's any suggestion, improvement, etc.
Thanks! :)