2025-11-30 15:10 időpontban Greg Troxel ezt írta:
Fekete Zoltán <fekete.zoltan%minux.hu@localhost> writes:I'm using pkgsrc with a minimal Slackware 15, amd64. 2025Q3/multimedia/gstreamer1 does not link because it finds the OS's /lib64/libtirpc.so.3. And, that one does not contain some symbols. I found the solution is as simple as adding a new dependency (devel/libtirpc) to the Makefile in gstreamer1. See the patch below.--- a/multimedia/gstreamer1/Makefile +++ b/multimedia/gstreamer1/Makefile @@ -43,6 +43,9 @@ MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/output/gst:${WRKSRC}/output/libs/gst/check .include "../../lang/python/application.mk" .include "../../devel/meson/build.mk" +.if ${OPSYS} == "Linux" +.include "../../devel/libtirpc/buildlink3.mk" +.endif # test framework, only needed at test time BUILDLINK_DEPMETHOD.check= build .include "../../devel/check/buildlink3.mk"Generally, we have the concept of builtin.mk for a package that decides if the OS-provided version is good enough, and if so bl3s it, and if not, depends on and then bl3s the package itself. My somewhat fuzzy impression is that tirpc is in base on many systems and has been ejected on many GNU/Linux systems. Thus the questions are - how does pkgsrc view tirpc - part of base, or a packaget to be depended on - does gstreamer1 need tirpc (the implementation, not a particular library name) on all platforms, or special for Linux? - if gstreamer1 is using tirpc, then why isn't it buildlinked all the time? - does a bl3 line on libtirpc on e.g. NetBSD result in no additional dependencies, because it's built in? So while you are on the right track and we should figure out how to solve your problem, I'd like to see it done in sound way that maximizes the odds of also fixing this, and not breaking anything, on all the platforms not tested on.
A bit oudtaed answer, but for the sake of completeness:[162/523] Generating gst/Gst-1.0.gir with a custom command (wrapped by meson to set env)
FAILED: [code=1] gst/Gst-1.0.girenv PKG_CONFIG_PATH=/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/meson-uninstalled PKG_CONFIG=/usr/pkgsrc/multimedia/gstreamer1/work/.tools/bin/pkg-config CC=cc 'CFLAGS=-L/usr/pkg/gcc12/lib/gcc/x86_64-slackware-linux/12.5.0 -Wl,-R/usr/pkg/gcc12/lib/gcc/x86_64-slackware-linux/12.5.0 -L/usr/pkg/gcc12/lib64 -Wl,-R/usr/pkg/gcc12/lib64 -Wl,-zrelro -L/usr/lib64 -Wl,-R/usr/lib64 -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -O2 -march=native -mtune=native -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include' /usr/pkg/bin/g-ir-scanner --quiet --no-libtool --namespace=Gst --nsversion=1.0 --warn-all --output gst/Gst-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);g_setenv("GST_REGISTRY_1.0", "/no/way/this/exists.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);g_setenv("GST_TRACERS", "", TRUE);gst_init(NULL,NULL);' --quiet --c-include=gst/gst.h -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/gst -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/gst -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/. -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/. -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/gst/parse -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/gst/parse --filelist=/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/gst/libgstreamer-1.0.so.0.2605.0.p/Gst_1.0_gir_filelist --include=GLib-2.0 --include=GObject-2.0 --include=GModule-2.0 --symbol-prefix=gst --identifier-prefix=Gst --pkg-export=gstreamer-1.0 --cflags-begin -DG_DISABLE_CAST_CHECKS -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/. -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/. -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/gst/parse -I/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/gst/parse -I/usr/pkg/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gobject-introspection-1.0 -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include --cflags-end --add-include-path=/usr/pkg/share/gir-1.0 -L/usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/gst --library gstreamer-1.0 -L/usr/pkg/gcc12/lib/gcc/x86_64-slackware-linux/12.5.0 -L/usr/pkg/gcc12/lib64 -L/usr/lib64 -L/usr/pkg/lib -L/usr/pkg/lib --extra-library=gobject-2.0 --extra-library=glib-2.0 --extra-library=gmodule-2.0 --extra-library=m --extra-library=dl --extra-library=atomic --extra-library=nsl --extra-library=girepository-1.0 --sources-top-dirs /usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/ --sources-top-dirs /usr/pkgsrc/multimedia/gstreamer1/work/gstreamer-1.26.5/output/ /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_release_name@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `GSS_C_NT_HOSTBASED_SERVICE@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_pname_to_uid@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_accept_sec_context@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_get_mic@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_verify_mic@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_export_name@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `GSS_C_NT_USER_NAME@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_acquire_cred@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_unwrap@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_release_cred@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_wrap_size_limit@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_init_sec_context@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_release_buffer@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_duplicate_name@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_sign@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_delete_sec_context@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_import_name@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_display_name@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_wrap@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_display_status@gssapi_krb5_2_MIT' /usr/bin/ld: /lib64/libtirpc.so.3: undefined reference to `gss_canonicalize_name@gssapi_krb5_2_MIT'
collect2: error: ld returned 1 exit status