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

[gstreamer,libsoup,libpsl,glib-networking] enable soup plugins of gstreamer #36679

Merged
merged 31 commits into from
Feb 29, 2024

Conversation

vipcxj
Copy link
Contributor

@vipcxj vipcxj commented Feb 9, 2024

Update port gstreamer

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

Add port libsoup,libpsl,glib-networking

  • Changes comply with the maintainer guide.
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.

I found the offical tutorials not work because the uridecodebin plugin can not handle https uri. Then I found that soup plugins is disabled. So I update the gstreamer to enable it. The gstreamer compiled successfuly without new port which I add. However the soup plugins will not work without libsoup. So I add the port libsoup. And it depend on libpsl and glib-networking. The glib-networking is a gio module. To make it work, we should set env GIO_MODULE_DIR to the plugins dir which glib-networking dll live in. And now I uridecodebin works properly.
By the way, how vcpkg deal with plugin dll? I put them to a plugins dir just like gstreamer. However to use them is a hard work. For a gio module, we have to set the env GIO_MODULE_DIR to the dyamic library location.

@vipcxj vipcxj marked this pull request as draft February 9, 2024 13:48
@vipcxj
Copy link
Contributor Author

vipcxj commented Feb 9, 2024

@dg0yt ci for x64_windows trigger huge ports rebuild which I untouched. And I have test in centos, x64_linux should work, but ci show it failed, but I can't see why because I have not access to /mnt/vcpkg-ci/b/libsoup/package-x64-linux-dbg-err.log

@dg0yt
Copy link
Contributor

dg0yt commented Feb 10, 2024

CI rebuilds reverse dependencies (i.e. consumers), and so it also needs to install their dependencies. Some huge artifacts cannot be cached (llvm).
The error logs are uploaded as the CI run's artifacts and can be downloaded.
#31357

@vipcxj
Copy link
Contributor Author

vipcxj commented Feb 10, 2024

@dg0yt Thanks. Through logs, I found x64_linux fails because the /mnt/vss/_work/1/s/packages/glib_x64-linux/tools/glib/glib-mkenums is missing for libsoup. To build libsoup, the tool mkenums of glib is required. So I add glib to the host dependency of the libsoup, and add additional binaries glib-mkenums = '${VCPKG_ROOT_DIR}/packages/glib_${TARGET_TRIPLET}/tools/glib/glib-mkenums' to vcpkg_configure_meson. It work well in my host machine, what's wrong with ci server?

@vipcxj vipcxj marked this pull request as ready for review February 10, 2024 16:19
ports/glib-networking/portfile.cmake Outdated Show resolved Hide resolved
ports/libpsl/portfile.cmake Outdated Show resolved Hide resolved
ports/glib-networking/portfile.cmake Outdated Show resolved Hide resolved
versions/l-/libpsl.json Outdated Show resolved Hide resolved
versions/g-/gstreamer.json Outdated Show resolved Hide resolved
@MonicaLiu0311 MonicaLiu0311 added category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-update The issue is with a library, which is requesting update new revision labels Feb 18, 2024
@MonicaLiu0311
Copy link
Contributor

When testing gstreamer[soup]:x64-windows-static, the following error occurs:

-- Package x64-windows-static-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" install -v
    Working Directory: G:/gs/buildtrees/gstreamer/x64-windows-static-dbg
    Error code: 1
    See logs for more information:
      G:\gs\buildtrees\gstreamer\package-x64-windows-static-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_install_meson.cmake:33 (vcpkg_execute_required_process)
  ports/gstreamer/portfile.cmake:302 (vcpkg_install_meson)
  scripts/ports.cmake:170 (include)

G:\gs\buildtrees\gstreamer\package-x64-windows-static-dbg-out.log:

[969/976] "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/link.exe"  /MACHINE:x64 /OUT:gst-launch-1.0.exe gst-launch-1.0.exe.p/subprojects_gstreamer_tools_gst-launch.c.obj "-INCREMENTAL" "/nologo" "/release" "/nologo" "/DEBUG" "/PDB:gst-launch-1.0.pdb" "-machine:x64" "-nologo" "-debug" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib" "gstreamer-full-1.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/glib-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/iconv.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/intl.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/pcre2-8d.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gobject-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/ffi.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gmodule-2.0.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "winmm.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
FAILED: gst-launch-1.0.exe gst-launch-1.0.pdb 
"C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/link.exe"  /MACHINE:x64 /OUT:gst-launch-1.0.exe gst-launch-1.0.exe.p/subprojects_gstreamer_tools_gst-launch.c.obj "-INCREMENTAL" "/nologo" "/release" "/nologo" "/DEBUG" "/PDB:gst-launch-1.0.pdb" "-machine:x64" "-nologo" "-debug" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib" "gstreamer-full-1.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/glib-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/iconv.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/intl.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/pcre2-8d.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gobject-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/ffi.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gmodule-2.0.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "winmm.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/RELEASE' specification
   Creating library gst-launch-1.0.lib and object gst-launch-1.0.exp
subprojects_gstreamer_tools_gst-launch.c.obj : error LNK2019: unresolved external symbol __imp_gst_object_get_type referenced in function intr_handler
subprojects_gstreamer_tools_gst-launch.c.obj : error LNK2019: unresolved external symbol __imp_gst_object_unref referenced in function real_main
subprojects_gstreamer_tools_gst-launch.c.obj : error LNK2019: unresolved external symbol __imp_gst_object_get_path_string referenced in function print_error_message
...

@vipcxj
Copy link
Contributor Author

vipcxj commented Feb 22, 2024

When testing gstreamer[soup]:x64-windows-static, the following error occurs:

-- Package x64-windows-static-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" install -v
    Working Directory: G:/gs/buildtrees/gstreamer/x64-windows-static-dbg
    Error code: 1
    See logs for more information:
      G:\gs\buildtrees\gstreamer\package-x64-windows-static-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_install_meson.cmake:33 (vcpkg_execute_required_process)
  ports/gstreamer/portfile.cmake:302 (vcpkg_install_meson)
  scripts/ports.cmake:170 (include)

G:\gs\buildtrees\gstreamer\package-x64-windows-static-dbg-out.log:

[969/976] "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/link.exe"  /MACHINE:x64 /OUT:gst-launch-1.0.exe gst-launch-1.0.exe.p/subprojects_gstreamer_tools_gst-launch.c.obj "-INCREMENTAL" "/nologo" "/release" "/nologo" "/DEBUG" "/PDB:gst-launch-1.0.pdb" "-machine:x64" "-nologo" "-debug" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib" "gstreamer-full-1.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/glib-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/iconv.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/intl.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/pcre2-8d.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gobject-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/ffi.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gmodule-2.0.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "winmm.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
FAILED: gst-launch-1.0.exe gst-launch-1.0.pdb 
"C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/link.exe"  /MACHINE:x64 /OUT:gst-launch-1.0.exe gst-launch-1.0.exe.p/subprojects_gstreamer_tools_gst-launch.c.obj "-INCREMENTAL" "/nologo" "/release" "/nologo" "/DEBUG" "/PDB:gst-launch-1.0.pdb" "-machine:x64" "-nologo" "-debug" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib" "gstreamer-full-1.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/glib-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/iconv.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/intl.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/pcre2-8d.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gobject-2.0.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/ffi.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "G:/gs/installed/x64-windows-static/debug/lib/pkgconfig/../../lib/gmodule-2.0.lib" "/LIBPATH:G:/gs/installed/x64-windows-static/debug/lib/pkgconfig//../../lib" "ws2_32.lib" "winmm.lib" "winmm.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/RELEASE' specification
   Creating library gst-launch-1.0.lib and object gst-launch-1.0.exp
subprojects_gstreamer_tools_gst-launch.c.obj : error LNK2019: unresolved external symbol __imp_gst_object_get_type referenced in function intr_handler
subprojects_gstreamer_tools_gst-launch.c.obj : error LNK2019: unresolved external symbol __imp_gst_object_unref referenced in function real_main
subprojects_gstreamer_tools_gst-launch.c.obj : error LNK2019: unresolved external symbol __imp_gst_object_get_path_string referenced in function print_error_message
...

I change portfile of gstreamer back (disable soup feature), and only add gstreamer[plugins-good] as dependence, the gstreamer[plugins-good]:x64-windows-static build failed too. The same error. Can you check without my pr, will gstreamer[plugins-good]:x64-windows-static build successfuly on your host?

@vipcxj
Copy link
Contributor Author

vipcxj commented Feb 22, 2024

@MonicaLiu0311 I have test the latest master baseline 72d66da which not include my pr, the error appear as well. So I am sure the build errors are not related to my pr. Should I disabe windows-static on gstreamer in this pr?

@MonicaLiu0311
Copy link
Contributor

@MonicaLiu0311 I have test the latest master baseline 72d66da which not include my pr, the error appear as well. So I am sure the build errors are not related to my pr. Should I disabe windows-static on gstreamer in this pr?

No need to disable it, thank you for your contribution.

@vipcxj
Copy link
Contributor Author

vipcxj commented Feb 23, 2024

@MonicaLiu0311 So what should I do now?

@MonicaLiu0311
Copy link
Contributor

gstreamer

Feature soup is tested successfully in the following triplet:

x86-windows
x64-windows

glib-networking

Feature gnutls is tested successfully in the following triplet:

x64-linux

Other features are tested successfully in the following triplet:

x86-windows
x64-windows
x64-windows-static

libpsl

Feature libidn2 is tested successfully in the following triplet:

x64-linux

Feature libicu is tested successfully in the following triplet:

x86-windows
x64-windows
x64-windows-static

Test libpsl.pc via pkg_check_modules is available.

libsoup

Test libsoup-3.0.pc via pkg_check_modules is available.

@MonicaLiu0311 MonicaLiu0311 added the info:reviewed Pull Request changes follow basic guidelines label Feb 23, 2024
@vicroms vicroms merged commit 002c5b0 into microsoft:master Feb 29, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-update The issue is with a library, which is requesting update new revision info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants