Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

protobuf v21.6 #163

Merged
merged 3 commits into from
Sep 23, 2022
Merged

Conversation

regro-cf-autotick-bot
Copy link
Contributor

@regro-cf-autotick-bot regro-cf-autotick-bot commented Sep 14, 2022

It is very likely that the current package version for this feedstock is out of date.

Checklist before merging this PR:

  • Dependencies have been updated if changed: see upstream
  • Tests have passed
  • Updated license if changed and license_file is packaged

Information about this PR:

  1. Feel free to push to the bot's branch to update this PR if needed.
  2. The bot will almost always only open one PR per version.
  3. The bot will stop issuing PRs if more than 3 version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR.
  4. If you want these PRs to be merged automatically, make an issue with @conda-forge-admin,please add bot automerge in the title and merge the resulting PR. This command will add our bot automerge feature to your feedstock.
  5. If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase @conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

Dependency Analysis

Please note that this analysis is highly experimental. The aim here is to make maintenance easier by inspecting the package's dependencies. Importantly this analysis does not support optional dependencies, please double check those before making changes. If you do not want hinting of this kind ever please add bot: inspection: false to your conda-forge.yml. If you encounter issues with this feature please ping the bot team conda-forge/bot.

Analysis by source code inspection shows a discrepancy between it and the the package's stated requirements in the meta.yaml.

Packages found by source code inspection but not in the meta.yaml:

  • datasets
  • oauth2client
  • yattag
  • google-api-python-client
  • httplib2
  • blocked-matrix-utils
  • mox

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/3056093323, please use this URL for debugging.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@xylar
Copy link
Contributor

xylar commented Sep 16, 2022

@h-vetinari, any intuition about the failing Windows builds here? Nothing changed in the python dependencies since the last build so I suspect this is coming from libprotobuf.

  "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:D:\bld\protobuf_1663295491112\_h_env\Library\lib /LIBPATH:D:\bld\protobuf_1663295491112\_h_env\libs /LIBPATH:D:\bld\protobuf_1663295491112\_h_env /LIBPATH:D:\bld\protobuf_1663295491112\_h_env\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\um\x64" /LIBPATH:D:\bld\protobuf_1663295491112\_h_env\Library\lib /LIBPATH:D:\bld\protobuf_1663295491112\_h_env\Library\lib libprotobuf.lib /EXPORT:PyInit__message build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor_containers.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor_database.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor_pool.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\extension_dict.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\field.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\map_container.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\message.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\message_factory.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\message_module.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\repeated_composite_container.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\repeated_scalar_container.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\unknown_field_set.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\unknown_fields.obj /OUT:build\lib.win-amd64-cpython-310\google\protobuf\pyext\_message.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\_message.cp310-win_amd64.lib
     Creating library build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\_message.cp310-win_amd64.lib and object build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\_message.cp310-win_amd64.exp
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::ServiceDescriptorProtoDefaultTypeInternal google::protobuf::_ServiceDescriptorProto_default_instance_" (?_ServiceDescriptorProto_default_instance_@protobuf@google@@3UServiceDescriptorProtoDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::DescriptorProtoDefaultTypeInternal google::protobuf::_DescriptorProto_default_instance_" (?_DescriptorProto_default_instance_@protobuf@google@@3UDescriptorProtoDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "private: static int google::protobuf::io::CodedInputStream::default_recursion_limit_" (?default_recursion_limit_@CodedInputStream@io@protobuf@google@@0HA)
  descriptor.obj : error LNK2001: unresolved external symbol "private: static enum google::protobuf::FieldDescriptor::CppType const * const google::protobuf::FieldDescriptor::kTypeToCppTypeMap" (?kTypeToCppTypeMap@FieldDescriptor@protobuf@google@@0QBW4CppType@123@B)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::MessageOptionsDefaultTypeInternal google::protobuf::_MessageOptions_default_instance_" (?_MessageOptions_default_instance_@protobuf@google@@3UMessageOptionsDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::OneofOptionsDefaultTypeInternal google::protobuf::_OneofOptions_default_instance_" (?_OneofOptions_default_instance_@protobuf@google@@3UOneofOptionsDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::EnumOptionsDefaultTypeInternal google::protobuf::_EnumOptions_default_instance_" (?_EnumOptions_default_instance_@protobuf@google@@3UEnumOptionsDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::EnumValueOptionsDefaultTypeInternal google::protobuf::_EnumValueOptions_default_instance_" (?_EnumValueOptions_default_instance_@protobuf@google@@3UEnumValueOptionsDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::EnumDescriptorProtoDefaultTypeInternal google::protobuf::_EnumDescriptorProto_default_instance_" (?_EnumDescriptorProto_default_instance_@protobuf@google@@3UEnumDescriptorProtoDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::FileDescriptorProtoDefaultTypeInternal google::protobuf::_FileDescriptorProto_default_instance_" (?_FileDescriptorProto_default_instance_@protobuf@google@@3UFileDescriptorProtoDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::FileOptionsDefaultTypeInternal google::protobuf::_FileOptions_default_instance_" (?_FileOptions_default_instance_@protobuf@google@@3UFileOptionsDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::MethodDescriptorProtoDefaultTypeInternal google::protobuf::_MethodDescriptorProto_default_instance_" (?_MethodDescriptorProto_default_instance_@protobuf@google@@3UMethodDescriptorProtoDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "struct google::protobuf::FieldOptionsDefaultTypeInternal google::protobuf::_FieldOptions_default_instance_" (?_FieldOptions_default_instance_@protobuf@google@@3UFieldOptionsDefaultTypeInternal@12@A)
  descriptor.obj : error LNK2001: unresolved external symbol "const google::protobuf::FileDescriptorProto::`vftable'" (??_7FileDescriptorProto@protobuf@google@@6B@)
  map_container.obj : error LNK2001: unresolved external symbol "private: static char const * const * const google::protobuf::FieldDescriptor::kCppTypeToName" (?kCppTypeToName@FieldDescriptor@protobuf@google@@0QBQEBDB)
  message.obj : error LNK2001: unresolved external symbol "private: static struct std::atomic<bool> google::protobuf::io::CodedOutputStream::default_serialization_deterministic_" (?default_serialization_deterministic_@CodedOutputStream@io@protobuf@google@@0U?$atomic@_N@std@@A)
  message.obj : error LNK2001: unresolved external symbol "float __cdecl google::protobuf::io::SafeDoubleToFloat(double)" (?SafeDoubleToFloat@io@protobuf@google@@YAMN@Z)
  build\lib.win-amd64-cpython-310\google\protobuf\pyext\_message.cp310-win_amd64.pyd : fatal error LNK1120: 17 unresolved externals
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX64\\x64\\link.exe' failed with exit code 1120
  error: subprocess-exited-with-error

@h-vetinari
Copy link
Member

h-vetinari commented Sep 16, 2022

@h-vetinari, any intuition about the failing Windows builds here? Nothing changed in the python dependencies since the last build so I suspect this is coming from libprotobuf.

I see 2-3 relevant changes since then:

In short, what should ideally solve this issue is adding "-import.lib" to CMAKE_FIND_LIBRARY_SUFFIXES. If that doesn't work, it might need more care still to encourage CMake to find the static builds.

(currently the build seems to be picking up the shared libraries, and then running into issues with static data members, which have to be exported explicitly on windows even with CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS)

@xylar
Copy link
Contributor

xylar commented Sep 17, 2022

@h-vetinari, Thanks for your comments. I'm afraid I'm not enough of an expert in how Windows builds work to understand where I need to set CMAKE_FIND_LIBRARY_SUFFIXES. I don't even see where CMake is being used in the windows installation, based on the Azure logs. Any further guidance you could provide would be most welcome.

@h-vetinari
Copy link
Member

I don't even see where CMake is being used in the windows installation, based on the Azure logs. Any further guidance you could provide would be most welcome.

Yeah, you're right that this recipe doesn't even have CMake, and it's not immediately obvious from the upstream python/setup.py how the libs are being detected. In fact the patches in this feedstock make it a bit clearer. I'd try changing the line in patch 3 to:

-     libraries = ['protobuf'] if sys.platform != 'win32' else ['libprotobuf']
+     libraries = ['protobuf'] if sys.platform != 'win32' else ['libprotobuf-static']

(I had messed up the extension post conda-forge/libprotobuf-feedstock#131 in the previous comment anyway, should have been -static.lib)

@xylar
Copy link
Contributor

xylar commented Sep 17, 2022

@h-vetinari, great! Thanks so much, I'll try that.

@h-vetinari
Copy link
Member

Weird...

 cannot open input file 'libprotobuf-static.lib'

But that file is definitely there in %LIBRARY_PREFIX%\lib, and the path is passed correctly to the linker.

@h-vetinari
Copy link
Member

But that file is definitely there in %LIBRARY_PREFIX%\lib

Looks like I was wrong about that. Which is also surprising, because it should be tested specifically in the libprotobuf feedstock.

@h-vetinari
Copy link
Member

Which is also surprising, because it should be tested specifically in the libprotobuf feedstock.

This is a bit embarrassing, but I missed to adapt the second test in conda-forge/libprotobuf-feedstock#131, and the installation of the static libs doesn't work. I'll look at it tomorrow

@xylar
Copy link
Contributor

xylar commented Sep 17, 2022

@h-vetinari, thank you for figuring this out and being willing to fix it. Keep us posted.

@coryan
Copy link

coryan commented Sep 22, 2022

FWIW, upgrading to protobuf v21.6 fixes a security bug: GHSA-8gq9-2x98-w8hf

@xylar
Copy link
Contributor

xylar commented Sep 23, 2022

@conda-forge-admin, please restart ci

@xylar
Copy link
Contributor

xylar commented Sep 23, 2022

@h-vetinari, thanks for the work on
conda-forge/libprotobuf-feedstock#131

We're still seeing some errors under the Windows build:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:D:\bld\protobuf_1663903882796\_h_env\Library\lib /LIBPATH:D:\bld\protobuf_1663903882796\_h_env\libs /LIBPATH:D:\bld\protobuf_1663903882796\_h_env /LIBPATH:D:\bld\protobuf_1663903882796\_h_env\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\um\x64" /LIBPATH:D:\bld\protobuf_1663903882796\_h_env\Library\lib /LIBPATH:D:\bld\protobuf_1663903882796\_h_env\Library\lib libprotobuf-static.lib /EXPORT:PyInit__message build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor_containers.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor_database.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\descriptor_pool.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\extension_dict.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\field.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\map_container.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\message.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\message_factory.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\message_module.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\repeated_composite_container.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\repeated_scalar_container.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\unknown_field_set.obj build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\unknown_fields.obj /OUT:build\lib.win-amd64-cpython-310\google\protobuf\pyext\_message.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-cpython-310\Release\google/protobuf/pyext\_message.cp310-win_amd64.lib
  LINK : fatal error LNK1181: cannot open input file 'libprotobuf-static.lib'
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX64\\x64\\link.exe' failed with exit code 1181
  error: subprocess-exited-with-error

Any thoughts?

@h-vetinari
Copy link
Member

@h-vetinari, thanks for the work on
conda-forge/libprotobuf-feedstock#131

That's an old PR.

Sorry, I'm pretty under water with other things ATM. In any case, here's the PR that should fix it 🤞
conda-forge/libprotobuf-feedstock#134

Perhaps you can nurse it to completion. ;-)

@h-vetinari h-vetinari merged commit 288fc1f into conda-forge:main Sep 23, 2022
@regro-cf-autotick-bot regro-cf-autotick-bot deleted the 21.6_h5a8aa9 branch September 23, 2022 13:32
@xylar
Copy link
Contributor

xylar commented Sep 23, 2022

Thanks @h-vetinari!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants