pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: 2025Q3: gstreamer1 linker error on Slackware 15



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.gir
env 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


Home | Main Index | Thread Index | Old Index