Skip to content

[openimageio] Update to v2.3.17.0, revise dependencies and export#23918

Merged
ras0219-msft merged 38 commits intomicrosoft:masterfrom
dg0yt:openimageio
Jul 29, 2022
Merged

[openimageio] Update to v2.3.17.0, revise dependencies and export#23918
ras0219-msft merged 38 commits intomicrosoft:masterfrom
dg0yt:openimageio

Conversation

@dg0yt
Copy link
Copy Markdown
Contributor

@dg0yt dg0yt commented Apr 1, 2022

Systematic review of dependencies lookup and export, based on log files and exported config.

  • What does your PR fix?

    Update to 2.3.17.0. Resolves [OpenImageIO] update to 2.3.14 #24337.
    Fixes [openimageio:x64-linux] build failure #13621.
    Fixes broken imports and exports.
    Cleanup.
    Guards against requesting the opencolorio feature unless using an old opencolorio port version which still uses the openexr Imath. (Not a regression in this update. Eventually to be fixed by updating openexr.)
    [libheif] Burns dll import into header. Fixes mingw builds.

  • Which triplets are supported/not supported? Have you updated the CI baseline?

    unchanged, no

  • Does your PR follow the maintainer guide?

    yes

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

    yes

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 27fd32e91c172e8b8a2ee338efc088a0c0103348 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index efc94fc..4d1ad68 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3606,7 +3606,7 @@
     },
     "libheif": {
       "baseline": "1.12.0",
-      "port-version": 3
+      "port-version": 4
     },
     "libhsplasma": {
       "baseline": "2021.06.08",
@@ -5042,7 +5042,7 @@
     },
     "opencolorio": {
       "baseline": "2.1.1",
-      "port-version": 2
+      "port-version": 3
     },
     "opencolorio-tools": {
       "baseline": "1.1.1",
@@ -5094,7 +5094,7 @@
     },
     "openimageio": {
       "baseline": "2.3.10.1",
-      "port-version": 3
+      "port-version": 4
     },
     "openjpeg": {
       "baseline": "2.4.0",
diff --git a/versions/l-/libheif.json b/versions/l-/libheif.json
index 437397e..95af0da 100644
--- a/versions/l-/libheif.json
+++ b/versions/l-/libheif.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "ab5e321e86fac0cd2ce573c34139b5f9b90c7e44",
+      "version": "1.12.0",
+      "port-version": 4
+    },
     {
       "git-tree": "9638a1f823a06ad68484b408f5640ac2204b5262",
       "version": "1.12.0",
diff --git a/versions/o-/opencolorio.json b/versions/o-/opencolorio.json
index ac45782..13ccc97 100644
--- a/versions/o-/opencolorio.json
+++ b/versions/o-/opencolorio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "bccc56a47205030d78dc21c4aa006095a5a11056",
+      "version-semver": "2.1.1",
+      "port-version": 3
+    },
     {
       "git-tree": "80e8a46f8c1c2cd748834cd225edbe127a489d5a",
       "version-semver": "2.1.1",
diff --git a/versions/o-/openimageio.json b/versions/o-/openimageio.json
index 8215424..8cc32fc 100644
--- a/versions/o-/openimageio.json
+++ b/versions/o-/openimageio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "36e5096266b3b250b3d660e903010b6da0c6715b",
+      "version": "2.3.10.1",
+      "port-version": 4
+    },
     {
       "git-tree": "2fa8debd832d46f5ad96798be8a335b8a251c2ca",
       "version": "2.3.10.1",

You have modified or added at least one vcpkg.json where a "license" field is missing.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-openimageio/vcpkg.json

Valid values for the license field can be found in the documentation

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Apr 1, 2022

So, openimageio and opencolorio cannot be used together in their current configurations:

duplicate symbol 'printBits(char*, float)' in:
    /Users/vagrant/Data/installed/x64-osx/debug/lib/libHalf-2_5_d.a(half.cpp.o)
    /Users/vagrant/Data/installed/x64-osx/debug/lib/libImath-3_1_d.a(half.cpp.o)
duplicate symbol 'printBits(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, float)' in:
    /Users/vagrant/Data/installed/x64-osx/debug/lib/libHalf-2_5_d.a(half.cpp.o)
    /Users/vagrant/Data/installed/x64-osx/debug/lib/libImath-3_1_d.a(half.cpp.o)

This is one "half" from imath, and another one from openexr. IIRC opencolorio might use the one from openexr, too. But I don't know the roadmap of these projects.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Apr 1, 2022

This is one "half" from imath, and another one from openexr. IIRC opencolorio might use the one from openexr, too. But I don't know the roadmap of these projects.

Well, there is #20957.

@JackBoosY JackBoosY added the category:port-bug The issue is with a library, which is something the port should already support label Apr 2, 2022
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 27fd32e91c172e8b8a2ee338efc088a0c0103348 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index 9b5c105..45937da 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3606,7 +3606,7 @@
     },
     "libheif": {
       "baseline": "1.12.0",
-      "port-version": 3
+      "port-version": 4
     },
     "libhsplasma": {
       "baseline": "2021.06.08",
@@ -5042,7 +5042,7 @@
     },
     "opencolorio": {
       "baseline": "2.1.1",
-      "port-version": 2
+      "port-version": 3
     },
     "opencolorio-tools": {
       "baseline": "1.1.1",
@@ -5094,7 +5094,7 @@
     },
     "openimageio": {
       "baseline": "2.3.10.1",
-      "port-version": 3
+      "port-version": 4
     },
     "openjpeg": {
       "baseline": "2.4.0",
diff --git a/versions/l-/libheif.json b/versions/l-/libheif.json
index 437397e..95af0da 100644
--- a/versions/l-/libheif.json
+++ b/versions/l-/libheif.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "ab5e321e86fac0cd2ce573c34139b5f9b90c7e44",
+      "version": "1.12.0",
+      "port-version": 4
+    },
     {
       "git-tree": "9638a1f823a06ad68484b408f5640ac2204b5262",
       "version": "1.12.0",
diff --git a/versions/o-/opencolorio.json b/versions/o-/opencolorio.json
index ac45782..f829976 100644
--- a/versions/o-/opencolorio.json
+++ b/versions/o-/opencolorio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "cf87eca7ec0aa9537516a68d321e38de249bf6f2",
+      "version-semver": "2.1.1",
+      "port-version": 3
+    },
     {
       "git-tree": "80e8a46f8c1c2cd748834cd225edbe127a489d5a",
       "version-semver": "2.1.1",
diff --git a/versions/o-/openimageio.json b/versions/o-/openimageio.json
index 8215424..8cc32fc 100644
--- a/versions/o-/openimageio.json
+++ b/versions/o-/openimageio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "36e5096266b3b250b3d660e903010b6da0c6715b",
+      "version": "2.3.10.1",
+      "port-version": 4
+    },
     {
       "git-tree": "2fa8debd832d46f5ad96798be8a335b8a251c2ca",
       "version": "2.3.10.1",

You have modified or added at least one vcpkg.json where a "license" field is missing.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-openimageio/vcpkg.json

Valid values for the license field can be found in the documentation

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Apr 5, 2022

osx: Python problem, -l_PYTHON_INTERFACE_LIBS-NOTFOUND
linux: OpenCV problem, A required library with LAPACK API not found.
windows-static: libheif exports problem (attempted to fix it here, but not yet there). Resolved.

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 27fd32e91c172e8b8a2ee338efc088a0c0103348 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index 9b5c105..45937da 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3606,7 +3606,7 @@
     },
     "libheif": {
       "baseline": "1.12.0",
-      "port-version": 3
+      "port-version": 4
     },
     "libhsplasma": {
       "baseline": "2021.06.08",
@@ -5042,7 +5042,7 @@
     },
     "opencolorio": {
       "baseline": "2.1.1",
-      "port-version": 2
+      "port-version": 3
     },
     "opencolorio-tools": {
       "baseline": "1.1.1",
@@ -5094,7 +5094,7 @@
     },
     "openimageio": {
       "baseline": "2.3.10.1",
-      "port-version": 3
+      "port-version": 4
     },
     "openjpeg": {
       "baseline": "2.4.0",
diff --git a/versions/l-/libheif.json b/versions/l-/libheif.json
index 437397e..2a08feb 100644
--- a/versions/l-/libheif.json
+++ b/versions/l-/libheif.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "9c23770423cd9fb0768abbb9d19ecebc266addc5",
+      "version": "1.12.0",
+      "port-version": 4
+    },
     {
       "git-tree": "9638a1f823a06ad68484b408f5640ac2204b5262",
       "version": "1.12.0",
diff --git a/versions/o-/opencolorio.json b/versions/o-/opencolorio.json
index ac45782..f829976 100644
--- a/versions/o-/opencolorio.json
+++ b/versions/o-/opencolorio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "cf87eca7ec0aa9537516a68d321e38de249bf6f2",
+      "version-semver": "2.1.1",
+      "port-version": 3
+    },
     {
       "git-tree": "80e8a46f8c1c2cd748834cd225edbe127a489d5a",
       "version-semver": "2.1.1",
diff --git a/versions/o-/openimageio.json b/versions/o-/openimageio.json
index 8215424..8cc32fc 100644
--- a/versions/o-/openimageio.json
+++ b/versions/o-/openimageio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "36e5096266b3b250b3d660e903010b6da0c6715b",
+      "version": "2.3.10.1",
+      "port-version": 4
+    },
     {
       "git-tree": "2fa8debd832d46f5ad96798be8a335b8a251c2ca",
       "version": "2.3.10.1",

You have modified or added at least one vcpkg.json where a "license" field is missing.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-openimageio/vcpkg.json

Valid values for the license field can be found in the documentation

@Adela0814
Copy link
Copy Markdown
Contributor

Pinging @dg0yt for response. Is work still being done for this PR?

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 5, 2022

I will pick this up again.

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 9776b51b557bb2c20d79cf541f124c48d0c2c720 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
old mode 100755
new mode 100644
index 334cf9b..ffb13f8
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3682,7 +3682,7 @@
     },
     "libheif": {
       "baseline": "1.12.0",
-      "port-version": 3
+      "port-version": 4
     },
     "libhsplasma": {
       "baseline": "2022-05-19",
@@ -5134,7 +5134,7 @@
     },
     "opencolorio": {
       "baseline": "2.1.1",
-      "port-version": 2
+      "port-version": 3
     },
     "opencolorio-tools": {
       "baseline": "1.1.1",
@@ -5189,7 +5189,7 @@
       "port-version": 2
     },
     "openimageio": {
-      "baseline": "2.3.10.1",
+      "baseline": "2.3.17.0",
       "port-version": 4
     },
     "openjpeg": {
diff --git a/versions/l-/libheif.json b/versions/l-/libheif.json
index 437397e..2a08feb 100644
--- a/versions/l-/libheif.json
+++ b/versions/l-/libheif.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "9c23770423cd9fb0768abbb9d19ecebc266addc5",
+      "version": "1.12.0",
+      "port-version": 4
+    },
     {
       "git-tree": "9638a1f823a06ad68484b408f5640ac2204b5262",
       "version": "1.12.0",
diff --git a/versions/o-/opencolorio.json b/versions/o-/opencolorio.json
index ac45782..f829976 100644
--- a/versions/o-/opencolorio.json
+++ b/versions/o-/opencolorio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "cf87eca7ec0aa9537516a68d321e38de249bf6f2",
+      "version-semver": "2.1.1",
+      "port-version": 3
+    },
     {
       "git-tree": "80e8a46f8c1c2cd748834cd225edbe127a489d5a",
       "version-semver": "2.1.1",
diff --git a/versions/o-/openimageio.json b/versions/o-/openimageio.json
index 0fac6cd..14398bf 100644
--- a/versions/o-/openimageio.json
+++ b/versions/o-/openimageio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "2ef05d049079bcb1526d81dcd4b7a7adf7073af2",
+      "version": "2.3.17.0",
+      "port-version": 4
+    },
     {
       "git-tree": "4c60e9a4adf07bdd6ff8bf766f295af17d8a0818",
       "version": "2.3.10.1",

You have modified or added at least one vcpkg.json where you should check the license field.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-openimageio/vcpkg.json

Valid values for the license field can be found in the documentation

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 9776b51b557bb2c20d79cf541f124c48d0c2c720 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
old mode 100755
new mode 100644
index 334cf9b..ffb13f8
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3682,7 +3682,7 @@
     },
     "libheif": {
       "baseline": "1.12.0",
-      "port-version": 3
+      "port-version": 4
     },
     "libhsplasma": {
       "baseline": "2022-05-19",
@@ -5134,7 +5134,7 @@
     },
     "opencolorio": {
       "baseline": "2.1.1",
-      "port-version": 2
+      "port-version": 3
     },
     "opencolorio-tools": {
       "baseline": "1.1.1",
@@ -5189,7 +5189,7 @@
       "port-version": 2
     },
     "openimageio": {
-      "baseline": "2.3.10.1",
+      "baseline": "2.3.17.0",
       "port-version": 4
     },
     "openjpeg": {
diff --git a/versions/l-/libheif.json b/versions/l-/libheif.json
index 437397e..2a08feb 100644
--- a/versions/l-/libheif.json
+++ b/versions/l-/libheif.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "9c23770423cd9fb0768abbb9d19ecebc266addc5",
+      "version": "1.12.0",
+      "port-version": 4
+    },
     {
       "git-tree": "9638a1f823a06ad68484b408f5640ac2204b5262",
       "version": "1.12.0",
diff --git a/versions/o-/opencolorio.json b/versions/o-/opencolorio.json
index ac45782..f829976 100644
--- a/versions/o-/opencolorio.json
+++ b/versions/o-/opencolorio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "cf87eca7ec0aa9537516a68d321e38de249bf6f2",
+      "version-semver": "2.1.1",
+      "port-version": 3
+    },
     {
       "git-tree": "80e8a46f8c1c2cd748834cd225edbe127a489d5a",
       "version-semver": "2.1.1",
diff --git a/versions/o-/openimageio.json b/versions/o-/openimageio.json
index 0fac6cd..c3fd580 100644
--- a/versions/o-/openimageio.json
+++ b/versions/o-/openimageio.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "e4544e73e4ee5a96f1af74862e5808594a1865a5",
+      "version": "2.3.17.0",
+      "port-version": 4
+    },
     {
       "git-tree": "4c60e9a4adf07bdd6ff8bf766f295af17d8a0818",
       "version": "2.3.10.1",

You have modified or added at least one vcpkg.json where you should check the license field.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-openimageio/vcpkg.json

Valid values for the license field can be found in the documentation

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 7, 2022

So, the python3 wrapper blindly assumes an INTERFACE_LINK_LIBRARIES property for @PythonFinder_PREFIX@::Python... 😠

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 11, 2022

From expanded trace at https://dev.azure.com/vcpkg/public/_build/results?buildId=74899&view=results:
The x64-linux error starts at a FindLAPACK.cmake failure deep down in package dependencies:

: && /usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=cheev_  CMakeFiles/cmTC_9da28.dir/CheckFunctionExists.c.o -o cmTC_9da28  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/liblapack.a  /usr/lib/x86_64-linux-gnu/libm.a  /usr/lib/x86_64-linux-gnu/libgfortran.so.5  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libopenblas.a && :
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libm-2.31.a(e_logf.o): in function `__logf_ifunc':
(.text+0x146): undefined reference to `_dl_x86_cpu_features'

It doesn't link with --static (VCPKG_CRT_LINKAGE dynamic), but uses a static libm found via find_library. AFAIU the combination of static libm with shared libc is not allowed. Cf. https://bugzilla.redhat.com/show_bug.cgi?id=1433347
CC @Neumann-A

This failure causes the ceres package to not restore CMAKE_MODULE_PATH which in turn makes find_package(Robinmap) fail.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 11, 2022

Trying to pass set LAPACK_m_LIBRARY to m or -lm didn't help to pass check_function_exists.

@Neumann-A
Copy link
Copy Markdown
Contributor

Trying to pass set LAPACK_m_LIBRARY to m or -lm didn't help to pass check_function_exists.

Tried to change it to m.so instead ?

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 11, 2022

Tried to change it to m.so instead ?

find_library(... libm.so) provides the right lib.
However, LAPACK_m_library is just the tip of the iceberg. For openimageio, there is `libm.a´ from qt5 (many times) and from ffmpeg.

@Neumann-A
Copy link
Copy Markdown
Contributor

So it is more of a general problem than a lapack specific one.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 11, 2022

So it is more of a general problem than a lapack specific one.

AFAIU it is a very general problem with the official non-windows triplets in vcpkg, due to the combination of static library linkage with dynamic CRT linkage.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 12, 2022

To make the problem even more general, this is a list of libs in Ubuntu 18.04's package libc6-dev which have both shared and static variants.

/usr/lib/x86_64-linux-gnu/libanl.a
/usr/lib/x86_64-linux-gnu/libanl.so
/usr/lib/x86_64-linux-gnu/libBrokenLocale.a
/usr/lib/x86_64-linux-gnu/libBrokenLocale.so
/usr/lib/x86_64-linux-gnu/libc.a
/usr/lib/x86_64-linux-gnu/libc.so
/usr/lib/x86_64-linux-gnu/libcrypt.a
/usr/lib/x86_64-linux-gnu/libcrypt.so
/usr/lib/x86_64-linux-gnu/libdl.a
/usr/lib/x86_64-linux-gnu/libdl.so
/usr/lib/x86_64-linux-gnu/libm.a
/usr/lib/x86_64-linux-gnu/libm.so
/usr/lib/x86_64-linux-gnu/libmvec.a
/usr/lib/x86_64-linux-gnu/libmvec.so
/usr/lib/x86_64-linux-gnu/libnsl.a
/usr/lib/x86_64-linux-gnu/libnsl.so
/usr/lib/x86_64-linux-gnu/libpthread.a
/usr/lib/x86_64-linux-gnu/libpthread.so
/usr/lib/x86_64-linux-gnu/libresolv.a
/usr/lib/x86_64-linux-gnu/libresolv.so
/usr/lib/x86_64-linux-gnu/librt.a
/usr/lib/x86_64-linux-gnu/librt.so
/usr/lib/x86_64-linux-gnu/libutil.a
/usr/lib/x86_64-linux-gnu/libutil.so

IIUC they all belong to the CRT, requiring VCPKG_CRT_LINKAGE, thus cannot be left to an uninformed find_library when VCPKG_LIBRARY_LINKAGE != VCPKG_CRT_LINKAGE. Do we need a find_library overload which transforms the result?

openimageio at least needs dl, too

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 18, 2022

So should we merge #25805 first?

Order doesn't matter, except that #25805 becomes empty when you merge this one first. No merge conflict expected.

github-actions[bot]
github-actions bot previously approved these changes Jul 19, 2022
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where you should check the license field.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-opencv/vcpkg.json

Valid values for the license field can be found in the documentation

JackBoosY
JackBoosY previously approved these changes Jul 21, 2022
@JackBoosY
Copy link
Copy Markdown
Contributor

@Neumann-A Do you have any questions about this change?

Comment on lines +16 to +24
file(REMOVE
"${SOURCE_PATH}/src/cmake/modules/FindFFmpeg.cmake"
"${SOURCE_PATH}/src/cmake/modules/FindLibheif.cmake"
"${SOURCE_PATH}/src/cmake/modules/FindLibRaw.cmake"
"${SOURCE_PATH}/src/cmake/modules/FindLibsquish.cmake"
"${SOURCE_PATH}/src/cmake/modules/FindOpenCV.cmake"
"${SOURCE_PATH}/src/cmake/modules/FindOpenJPEG.cmake"
"${SOURCE_PATH}/src/cmake/modules/FindWebP.cmake"
)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It probably would have been port update friendly if those wouldn't be all removed but patched to do what you did to make them work correctly. Installing port dependent find modules is in general not a problem if all return a similar enough result.

Copy link
Copy Markdown
Contributor Author

@dg0yt dg0yt Jul 21, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the most ports and updates I observed, the changes are made where the package is used, not in the vendored Find module.
And I'm not convinced that patching find modules is more update friendly than patching the usage.
Also, I have already seen problems with custom find modules interfering with transitive dependencies.

@Neumann-A
Copy link
Copy Markdown
Contributor

@Neumann-A Do you have any questions about this change?

Is the m linkage solved or do we just assume it works somehow?

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 21, 2022

Is the m linkage solved or do we just assume it works somehow?

It is resolved by not using LINKSTATIC=ON. It would modify the library search suffix list.

(More information: This option does also toggle definitions designed to mark DLL imports from dependencies. In vcpkg, we don't need it when we fix it in the dependencies' headers (-> libheif update). Alternative: Keep passing LINKSTATIC=ON, but only patch out the suffix list code.)

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 26, 2022

Any objections to move to reviewed?

@Adela0814
Copy link
Copy Markdown
Contributor

I encountered the following issue when testing feature opencolorio:

Repro step: run .\vcpkg.exe install openimageio[opencolorio]:x64-windows

Error message in \vcpkg\buildtrees\openimageio\config-x64-windows-out.log:

CMake Error at src/cmake/externalpackages.cmake:172 (message):
  OpenColorIO and OpenEXR use incompatible versions of Imath.  You cannot use
  openimageio[opencolorio] for this configuration.
Call Stack (most recent call first):
  CMakeLists.txt:141 (include)

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 27, 2022

I think I made this error message very clear.

It is not a regression. It is not fixable until openexr3 is available in vcpkg. But user can (try to) select compatible versions in manifest mode.

@Adela0814 Adela0814 added info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. and removed requires:all-feature-testing labels Jul 27, 2022
@BillyONeal BillyONeal dismissed stale reviews from JackBoosY and github-actions[bot] via 99d9624 July 27, 2022 19:44
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where you should check the license field.

Details

If you feel able to do so, please consider adding a "license" field to the following files:

  • scripts/test_ports/vcpkg-ci-opencv/vcpkg.json

Valid values for the license field can be found in the documentation

Copy link
Copy Markdown
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really don't claim to understand everything you've done here, but this port seems like it has .... a lot of issues before you showed up, and you're adding much needed testing, thank you!

Added some =pass baseline entries, will merge once build comes back. Thanks!

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 27, 2022

This port is just illustrating problems with versions, features and testing in vcpkg. When opencolorio and imath were updated, no testing was done for openimageio[opencolorio]. And there is also the link to openexr, another versioning and dependency disaster, with two starved PR attempts...

@BillyONeal
Copy link
Copy Markdown
Member

:sigh: Our friend the intermittent x264 build failure on osx is here :/

@BillyONeal
Copy link
Copy Markdown
Member

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@ras0219-msft ras0219-msft merged commit 40ec948 into microsoft:master Jul 29, 2022
@ras0219-msft
Copy link
Copy Markdown
Contributor

Thanks for the PR and all the fixes (as always)!

We would like to improve testing of features, such as perhaps at least testing each feature of each changed port in the PR build.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jul 29, 2022

We would like to improve testing of features, such as perhaps at least testing each feature of each changed port in the PR build.

Testing each feature isolated and in combination? That's a lot a to build. And these blind spots remain:

  • running the package's native tests (ruled out by policy)
  • systematically testing exported config (but somewhat covered through downstream ports, including vpckg-ci-xxx)
  • systematically testing downstream ports with opt-in dependency (that's how port opencolorio became incompatible with openimageio already before this PR).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:port-bug The issue is with a library, which is something the port should already support info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[openimageio:x64-linux] build failure

6 participants