GNU bug report logs - #43501
gst-plugins-bad fails to build on armhf-linux

Previous Next

Package: guix;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Sat, 19 Sep 2020 01:45:01 UTC

Severity: normal

To reply to this bug, email your comments to 43501 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Sat, 19 Sep 2020 01:45:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 19 Sep 2020 01:45:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: bug-guix <bug-guix <at> gnu.org>
Subject: gst-plugins-bad cannot be built on linux-armhf, breaking qemu
Date: Fri, 18 Sep 2020 21:45:09 -0400
This occurs on master (commit 679d5e6b3dcac4ee1f419c04b3719fead0bd9ee5).

qemu-minimal is not impacted, but the fully-fledged qemu package
cannot be built, due to a dependency on gst-plugins-bad, which fails to
build like:

./pre-inst-env guix build qemu --rounds=5 --system=armhf-linux

--8<---------------cut here---------------start------------->8---
[104/738] Generating GstInsertBin-1.0.gir with a custom command.
FAILED: gst-libs/gst/insertbin/GstInsertBin-1.0.gir 
/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/bin/g-ir-scanner -pthread -I/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/include/gobject-introspection-1.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include --no-libtool --namespace=GstInsertBin --nsversion=1.0 --warn-all --output gst-libs/gst/insertbin/GstInsertBin-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_1.0", "/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gir_empty_registry.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);gst_init(NULL,NULL);' --quiet -DGST_USE_UNSTABLE_API --c-include=gst/insertbin/gstinsertbin.h -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/gst-libs/gst/insertbin -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/insertbin -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs --filelist=/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/insertbin/5a402bf@@gstinsertbin-1.0 <at> sha/GstInsertBin_1.0_gir_filelist --include=Gst-1.0 --symbol-prefix=gst --identifier-prefix=Gst --pkg-export=gstreamer-insertbin-1.0 --cflags-begin -fvisibility=hidden -fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -Wmissing-prototypes -Wdeclaration-after-statement -Wold-style-definition -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Wformat -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar -Wvla -Wpointer-arith -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include -I/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/include/gstreamer-1.0 --cflags-end --add-include-path=/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/share/gir-1.0 --library gstinsertbin-1.0 -L/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/insertbin -L/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib -L/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/lib --extra-library=gstreamer-1.0 --extra-library=gobject-2.0 --extra-library=glib-2.0 --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/subprojects/ --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/subprojects/
ERROR: can't resolve libraries to shared libraries: gstinsertbin-1.0
[105/738] Generating symbol file 'gst-libs/gst/webrtc/ebe7247@@gstwebrtc-1.0 <at> sha/libgstwebrtc-1.0.so.0.1602.0.symbols'.
[106/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin <at> sha/camerabingeneral.c.o'.
[107/738] Linking target gst/audiomixmatrix/libgstaudiomixmatrix.so.
[108/738] Compiling C object 'gst/audiovisualizers/cbf4535@@gstaudiovisualizers <at> sha/gstsynaescope.c.o'.
[109/738] Linking target gst/audiobuffersplit/libgstaudiobuffersplit.so.
[110/738] Compiling C object 'gst/autoconvert/e5cffa3@@gstautoconvert <at> sha/gstautoconvert.c.o'.
[111/738] Compiling C object 'gst/audiovisualizers/cbf4535@@gstaudiovisualizers <at> sha/gstwavescope.c.o'.
[112/738] Linking target gst-libs/gst/codecparsers/libgstcodecparsers-1.0.so.0.1602.0.
-- Adding Fcitx Addon clipboard
[113/738] Compiling C object 'gst/aiff/3dba985@@gstaiff <at> sha/aiffparse.c.o'.
[114/738] Compiling C object 'gst/bayer/9043930@@gstbayer <at> sha/meson-generated_.._gstbayerorc.c.o'.
[115/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin <at> sha/gstplugin.c.o'.
[116/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin <at> sha/gstdigitalzoom.c.o'.
[117/738] Generating symbol file 'gst-libs/gst/adaptivedemux/f8886ef@@gstadaptivedemux-1.0 <at> sha/libgstadaptivedemux-1.0.so.0.1602.0.symbols'.
[118/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin <at> sha/gstviewfinderbin.c.o'.
[119/738] Compiling C object 'gst/bayer/9043930@@gstbayer <at> sha/gstbayer2rgb.c.o'.
[120/738] Compiling C object 'gst/bayer/9043930@@gstbayer <at> sha/gstrgb2bayer.c.o'.
[121/738] Compiling C object 'gst/asfmux/3f2ef0f@@gstasfmux <at> sha/gstasfmux.c.o'.
[122/738] Generating symbol file 'gst-libs/gst/mpegts/aa7f611@@gstmpegts-1.0 <at> sha/libgstmpegts-1.0.so.0.1602.0.symbols'.
-- Adding Fcitx Addon vk
[123/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin <at> sha/gstwrappercamerabinsrc.c.o'.
-- Adding Fcitx Addon dbus
[124/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin <at> sha/gstcamerabin2.c.o'.
-- Adding Fcitx Addon lua
[125/738] Generating GstWebRTC-1.0.gir with a custom command.
FAILED: gst-libs/gst/webrtc/GstWebRTC-1.0.gir 
/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/bin/g-ir-scanner -pthread -I/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/include/gobject-introspection-1.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include --no-libtool --namespace=GstWebRTC --nsversion=1.0 --warn-all --output gst-libs/gst/webrtc/GstWebRTC-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_1.0", "/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gir_empty_registry.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);gst_init(NULL,NULL);' --quiet -DGST_USE_UNSTABLE_API --c-include=gst/webrtc/webrtc.h -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/gst-libs/gst/webrtc -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/webrtc -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs --filelist=/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/webrtc/ebe7247@@gstwebrtc-1.0 <at> sha/GstWebRTC_1.0_gir_filelist --include=Gst-1.0 --include=GstSdp-1.0 --symbol-prefix=gst --identifier-prefix=Gst --pkg-export=gstreamer-webrtc-1.0 --cflags-begin -fvisibility=hidden -fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -Wmissing-prototypes -Wdeclaration-after-statement -Wold-style-definition -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Wformat -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar -Wvla -Wpointer-arith -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include -I/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/include/gstreamer-1.0 -I/gnu/store/6fd5y75yklr46wxfrs917p5sa7qm27h5-gst-plugins-base-1.16.2/include/gstreamer-1.0 -I/gnu/store/47i3zixb4mm92r79ry9a2kqkvkqx4cyh-util-linux-2.35.1-lib/include/libmount -I/gnu/store/47i3zixb4mm92r79ry9a2kqkvkqx4cyh-util-linux-2.35.1-lib/include/blkid --cflags-end --add-include-path=/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/share/gir-1.0 --add-include-path=/gnu/store/6fd5y75yklr46wxfrs917p5sa7qm27h5-gst-plugins-base-1.16.2/share/gir-1.0 --library gstwebrtc-1.0 -L/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/webrtc -L/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib -L/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/lib --extra-library=gstbase-1.0 --extra-library=gstreamer-1.0 --extra-library=gobject-2.0 --extra-library=glib-2.0 -L/gnu/store/6fd5y75yklr46wxfrs917p5sa7qm27h5-gst-plugins-base-1.16.2/lib --extra-library=gstsdp-1.0 --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/subprojects/ --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/subprojects/
ERROR: can't resolve libraries to shared libraries: gstwebrtc-1.0
-- Adding Fcitx Addon unicode
-- Adding Fcitx Addon freedesktop-notify
-- Adding Fcitx Addon notificationitem
[126/738] Generating GstMpegts-1.0.gir with a custom command.
FAILED: gst-libs/gst/mpegts/GstMpegts-1.0.gir 
/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/bin/g-ir-scanner -pthread -I/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/include/gobject-introspection-1.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include --no-libtool --namespace=GstMpegts --nsversion=1.0 --warn-all --output gst-libs/gst/mpegts/GstMpegts-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_1.0", "/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gir_empty_registry.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);gst_init(NULL,NULL);' --quiet -DGST_USE_UNSTABLE_API --c-include=gst/mpegts/mpegts.h -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/gst-libs/gst/mpegts -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/mpegts -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs --filelist=/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/mpegts/aa7f611@@gstmpegts-1.0 <at> sha/GstMpegts_1.0_gir_filelist --include=Gst-1.0 --symbol-prefix=gst_mpegts --symbol-prefix=gst --identifier-prefix=GstMpegts --pkg-export=gstreamer-mpegts-1.0 --cflags-begin -fvisibility=hidden -fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -Wmissing-prototypes -Wdeclaration-after-statement -Wold-style-definition -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Wformat -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar -Wvla -Wpointer-arith -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include -I/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/include/gstreamer-1.0 --cflags-end --add-include-path=/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/share/gir-1.0 --library gstmpegts-1.0 -L/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/mpegts -L/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib -L/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/lib --extra-library=gstreamer-1.0 --extra-library=gobject-2.0 --extra-library=glib-2.0 --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/subprojects/ --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/subprojects/
ERROR: can't resolve libraries to shared libraries: gstmpegts-1.0
[127/738] Generating GstPlayer-1.0.gir with a custom command.
FAILED: gst-libs/gst/player/GstPlayer-1.0.gir 
/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/bin/g-ir-scanner -pthread -I/gnu/store/v3k3md5673pncrdmyywrgwiapjl6baz8-gobject-introspection-1.62.0/include/gobject-introspection-1.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include --no-libtool --namespace=GstPlayer --nsversion=1.0 --warn-all --output gst-libs/gst/player/GstPlayer-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_1.0", "/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gir_empty_registry.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);gst_init(NULL,NULL);' --quiet -DGST_USE_UNSTABLE_API --c-include=gst/player/player.h -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/gst-libs/gst/player -I/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/player -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs --filelist=/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/player/da2c0c4@@gstplayer-1.0 <at> sha/GstPlayer_1.0_gir_filelist --include=Gst-1.0 --include=GstPbutils-1.0 --include=GstBase-1.0 --include=GstVideo-1.0 --include=GstAudio-1.0 --include=GstTag-1.0 --symbol-prefix=gst --identifier-prefix=Gst --pkg-export=gstreamer-player-1.0 --cflags-begin -fvisibility=hidden -fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -Wmissing-prototypes -Wdeclaration-after-statement -Wold-style-definition -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Wformat -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar -Wvla -Wpointer-arith -I./. -I../gst-plugins-bad-1.16.2/. -I./gst-libs -I../gst-plugins-bad-1.16.2/gst-libs -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/include/glib-2.0 -I/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib/glib-2.0/include -I/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/include/gstreamer-1.0 -I/gnu/store/6fd5y75yklr46wxfrs917p5sa7qm27h5-gst-plugins-base-1.16.2/include/gstreamer-1.0 --cflags-end --add-include-path=/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/share/gir-1.0 --add-include-path=/gnu/store/6fd5y75yklr46wxfrs917p5sa7qm27h5-gst-plugins-base-1.16.2/share/gir-1.0 --library gstplayer-1.0 -L/tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/gst-libs/gst/player -L/gnu/store/1qp1w8pjwk4ba26mj6gnyxdz9cyd0jvv-glib-2.62.6/lib -L/gnu/store/5b1i5ilddxn96ricgrzzyprg2h5xy4f4-gstreamer-1.16.2/lib --extra-library=gstbase-1.0 --extra-library=gstreamer-1.0 --extra-library=gobject-2.0 --extra-library=glib-2.0 -L/gnu/store/6fd5y75yklr46wxfrs917p5sa7qm27h5-gst-plugins-base-1.16.2/lib --extra-library=gstvideo-1.0 --extra-library=gstaudio-1.0 --extra-library=gsttag-1.0 --extra-library=gstpbutils-1.0 --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/gst-plugins-bad-1.16.2/subprojects/ --sources-top-dirs /tmp/guix-build-gst-plugins-bad-1.16.2.drv-0/build/subprojects/
ERROR: can't resolve libraries to shared libraries: gstplayer-1.0
ninja: build stopped: subcommand failed.
command "ninja" "-j" "24" failed with status 1
builder for `/gnu/store/6yy2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv' failed with exit code 1
@ build-failed /gnu/store/6yy2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv - 1 builder for `/gnu/store/6yy2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv' failed with exit code 1
derivation '/gnu/store/6yy2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv' offloaded to '127.0.0.1' failed: build of `/gnu/store/6yy2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv' failed
-- Adding Fcitx Addon pinyin
build of /gnu/store/6yy2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv failed
View build log at '/var/log/guix/drvs/6y/y2qhp8hfm6ajdvk5fscrzgzg701dqn-gst-plugins-bad-1.16.2.drv.bz2'.
cannot build derivation `/gnu/store/4hpglj6vk0zggchh9hv287d1fh0s5mbq-spice-0.14.3.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/x3dibi2h2b1a29752f0x0j2lap9qxy2d-qemu-5.0.0.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/x3dibi2h2b1a29752f0x0j2lap9qxy2d-qemu-5.0.0.drv' failed
--8<---------------cut here---------------end--------------->8---




Information forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Sat, 19 Sep 2020 03:42:02 GMT) Full text and rfc822 format available.

Message #8 received at 43501 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, 43501 <at> debbugs.gnu.org
Subject: Re: bug#43501: gst-plugins-bad cannot be built on linux-armhf,
 breaking qemu
Date: Fri, 18 Sep 2020 23:40:13 -0400
Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:

> This occurs on master (commit 679d5e6b3dcac4ee1f419c04b3719fead0bd9ee5).
>
> qemu-minimal is not impacted, but the fully-fledged qemu package
> cannot be built, due to a dependency on gst-plugins-bad, which fails to
> build like:

It would be good to eliminate that dependency.  Ever since 'spice-gtk'
was added, it has included *every* gstreamer plugin package in its
'propagated-inputs'.  I'm not sure, but it may have been motivated by a
goal that some Guix developers have advocated, to make packages in Guix
work "out of the box" in a way that users of proprietary systems have
come to expect, i.e. with popular patented codecs included.

I think it's important that Guix core functionality should be usable
without installing a collection of patented media codecs.  Those plugins
should be purely optional.  In my opinion, we should find a way to
eliminate those dependencies.

       Mark




Information forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Sat, 19 Sep 2020 14:26:01 GMT) Full text and rfc822 format available.

Message #11 received at 43501 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 43501 <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Whitelisting/blacklisting transitive package dependencies
Date: Sat, 19 Sep 2020 16:24:11 +0200
[Message part 1 (text/plain, inline)]
Hi,

On Fri, 18 Sep 2020 23:40:13 -0400
Mark H Weaver <mhw <at> netris.org> wrote:

> I think it's important that Guix core functionality should be usable
> without installing a collection of patented media codecs.  Those plugins
> should be purely optional.  In my opinion, we should find a way to
> eliminate those dependencies.

I agree that it would be good to prevent weird dependencies from creeping in--for
your stated reasons, but also for a lot of other reasons, chief of which is that
the most secure source code is the source code that has been eliminated.

Also, Guix sometimes pulls in transitive dependencies for the weirdest things.

The "*-minimal" packages we have make it less bad.

Still, it would nice to also have something that automatically checks whether
there are weird transitive inputs of a package, for each package (*especially*
in order to use that for "-minimal" packages).

I sometimes add #:disallowed-references after tracking down problems of
unintended transitive inputs (for example see f2fs-tools/static).  But even
that disallows just one specific reference (one package version).

What I want is to disallow any package of that name entirely in the dependency
graph--or even disallow references to specific source files (or other groups of
packages) entirely.
And I want it to keep disallowing it mechanically without me having to
remember it.

Guix lint already does something like I want, but for direct (non-transitive)
inputs.

It should be possible to add a "guix lint" check that also checks transitive
inputs of packages for suspicious packages.

The maintenance of a transitive-whitelist/-blacklist per package would then
probably be have to be done inside guix lint, though.  It could be nicer if
there were package fields for those for it eventually.  But for now, I guess
inside guix lint is good enough.

That said, for practicality one has to find some kind of groups of packages,
in order to keep the whitelist/blacklist from ballooning.  For now, I assume
that each group has an extra source file--which we know is not true in Guix
right now.  But we could make it true.

I started to add something to guix lint (possible procedures to use:
package-transitive-inputs, package-transitive-propagated-inputs,
package-transitive-native-inputs)--see patch below.  But note that it just
complains about everything now--we would still have to specify what is
"bad".

I would suggest to have a whitelist (of file names) and a blacklist
(of file names), and the following:
If a package has a whitelist and a transitive dependency is not on the
whitelist, complain.  If a package does not have a whitelist but does
have a blacklist and a transitive dependency is on the blacklist, complain.

I still find it illuminating as it is now.  Try:

$ guix lint qemu
[...]
gnu/packages/virtualization.scm:260:5: qemu <at> 5.0.0: 'gnu/packages/dbm.scm' should probably not be referred to (but it is--because of packages (gdbm))
[...]
gnu/packages/virtualization.scm:260:5: qemu <at> 5.0.0: 'gnu/packages/spice.scm' should probably not be referred to (but it is by packages (libcacard spice usbredir virglrenderer spice-protocol))
gnu/packages/virtualization.scm:260:5: qemu <at> 5.0.0: 'gnu/packages/gl.scm' should probably not be referred to (but it is by packages (libepoxy mesa))
[...]
gnu/packages/virtualization.scm:260:5: qemu <at> 5.0.0: 'gnu/packages/dbm.scm' should probably not be referred to (but it is by packages (gdbm))
[...]
gnu/packages/virtualization.scm:260:5: qemu <at> 5.0.0: 'gnu/packages/pulseaudio.scm' should probably not be referred to (but it is because of packages (pulseaudio))

WTF!

Also, for the special case where no package in a source file A should refer to
any package in a source file B, it could be enough to establish a convention
of commenting out the respective "#:use-module (...)" in source file A (and
adding a "DO NOT USE" text to it), and never deleting that comment.

That way, once somebody had found what module one should not ever import, he
could document that fact.

diff --git a/guix/lint.scm b/guix/lint.scm
index ec43a4dcad..d65ac34441 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -72,6 +72,7 @@
   #:export (check-description-style
             check-inputs-should-be-native
             check-inputs-should-not-be-an-input-at-all
+            check-transitive-input-sanity
             check-patch-file-names
             check-synopsis-style
             check-derivation
@@ -287,6 +288,38 @@ of a package, and INPUT-NAMES, a list of package specifications such as
                                input))))
                  packages outputs))))
 
+(define (check-transitive-input-sanity package)
+  (let* ((examined-package-name (package-name package))
+         (examined-package-location (package-location package))
+         (examined-package-source-file-name (location-file examined-package-location))
+         (examined-package-dependency-source-file-names
+          (delete examined-package-source-file-name
+           (delete-duplicates
+            (map (match-lambda
+                  ((key dependency . rest) (location-file (package-location dependency))))
+             (package-transitive-target-inputs package))))))
+    (map (lambda (source-file-name)
+           (let ((packages-in-source-file
+                  (filter (match-lambda
+                            ((key dependency . rest) (string=? source-file-name
+                                                               (location-file
+                                                                (package-location dependency)))))
+                          (package-transitive-target-inputs package))))
+             (make-warning package
+              (G_ "'~a' should probably not be referred to (but it is--because of packages ~a)")
+              (list source-file-name (map (match-lambda
+                                           ((key dependency . rest)
+                                            (package-name dependency)))
+                                          packages-in-source-file))
+               #:field 'inputs)))
+         examined-package-dependency-source-file-names)))
+          (delete examined-package-source-file-name
+           (delete-duplicates
+            (map (match-lambda
+                  ((key dependency . rest) (location-file (package-location dependency))))
+             (package-transitive-target-inputs package))))))
+    (map (lambda (source-file-name)
+           (let ((packages-in-source-file
+                  (filter (match-lambda
+                            ((key dependency . rest) (string=? source-file-name
+                                                               (location-file
+                                                                (package-location dependency)))))
+                          (package-transitive-target-inputs package))))
+             (make-warning package
+              (G_ "'~a' should probably not be referred to (but it is--because of packages ~a)")
+              (list source-file-name (map (match-lambda
+                                           ((key dependency . rest)
+                                            (package-name dependency)))
+                                          packages-in-source-file))
+               #:field 'inputs)))
+         examined-package-dependency-source-file-names)))
+
+    ;; if examined-package-name like '%qemu%':
+    ;;   (package-name (map <car cdr> package-transitive-inputs)) no gstreamer; source file not
+    ;;   gstreamer.scm, gtk.scm.
+    ;;   allowed references to location-files
+  ;; TODO: gstreamer should not be anywhere in any transitive inputs of any qemu
+
 (define (check-inputs-should-be-native package)
   ;; Emit a warning if some inputs of PACKAGE are likely to belong to its
   ;; native inputs.
@@ -1378,6 +1411,10 @@ them for PACKAGE."
 
 (define %local-checkers
   (list
+   (lint-checker
+     (name        'transitive-inputs)
+     (description "Checks transitive inputs")
+     (check check-transitive-input-sanity))
    (lint-checker
      (name        'description)
      (description "Validate package descriptions")
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Sun, 20 Sep 2020 22:02:02 GMT) Full text and rfc822 format available.

Message #14 received at 43501 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, 43501 <at> debbugs.gnu.org
Subject: Re: bug#43501: gst-plugins-bad cannot be built on linux-armhf,
 breaking qemu
Date: Sun, 20 Sep 2020 18:00:29 -0400
Earlier, I wrote:
> Ever since 'spice-gtk' was added, it has included *every* gstreamer
> plugin package in its 'propagated-inputs'.

On my private branch, I removed 'gst-libav', 'gst-plugins-bad' and
'gst-plugins-ugly' from the propagated-inputs of 'spice-gtk'.

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 4aff8dbf56..4b4c673a9d 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -144,11 +144,8 @@ which allows users to view a desktop computing environment.")
     (build-system gnu-build-system)
     (propagated-inputs
       `(("gstreamer" ,gstreamer)
-        ("gst-libav" ,gst-libav)
         ("gst-plugins-base" ,gst-plugins-base)
         ("gst-plugins-good" ,gst-plugins-good)
-        ("gst-plugins-bad" ,gst-plugins-bad)
-        ("gst-plugins-ugly" ,gst-plugins-ugly)
         ("spice-protocol" ,spice-protocol)
 
         ;; These are required by the pkg-config files.
--8<---------------cut here---------------end--------------->8---

I rebuilt my system and user profiles with this patch applied, and
everything seems to work fine.  Moreover, I'm glad to report that
'gst-plugins-ugly' is no longer in my store.  (Sadly, 'gst-plugins-bad'
still is, because our 'gnome' package depends on 'cheese' which depends
on 'gst-plugins-bad', and last I checked that was unavoidable.)

I haven't tried using the 'spice' functionality specifically, but I
suspect that any reduced "out-of-the-box" functionality could be
regained by users simply installing those plugins as needed, along with
gstreamer for its 'native-search-paths' field.

What do you think?

      Mark

PS: Danny's idea is worth considering in its own right, but I think it's
    orthogonal to this proposed change.




Information forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Tue, 22 Sep 2020 02:36:02 GMT) Full text and rfc822 format available.

Message #17 received at 43501 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 43501 <at> debbugs.gnu.org
Subject: Re: bug#43501: gst-plugins-bad cannot be built on linux-armhf,
 breaking qemu
Date: Mon, 21 Sep 2020 22:36:02 -0400
Hello Mark!

Mark H Weaver <mhw <at> netris.org> writes:

> Earlier, I wrote:
>> Ever since 'spice-gtk' was added, it has included *every* gstreamer
>> plugin package in its 'propagated-inputs'.
>
> On my private branch, I removed 'gst-libav', 'gst-plugins-bad' and
> 'gst-plugins-ugly' from the propagated-inputs of 'spice-gtk'.
>
> diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
> index 4aff8dbf56..4b4c673a9d 100644
> --- a/gnu/packages/spice.scm
> +++ b/gnu/packages/spice.scm
> @@ -144,11 +144,8 @@ which allows users to view a desktop computing environment.")
>      (build-system gnu-build-system)
>      (propagated-inputs
>        `(("gstreamer" ,gstreamer)
> -        ("gst-libav" ,gst-libav)

I feel less strongly about this one, perhaps because its name doesn't
contain "bad" or "ugly" ;-).  Why should we remove it?

>          ("gst-plugins-base" ,gst-plugins-base)
>          ("gst-plugins-good" ,gst-plugins-good)
> -        ("gst-plugins-bad" ,gst-plugins-bad)
> -        ("gst-plugins-ugly" ,gst-plugins-ugly)
>          ("spice-protocol" ,spice-protocol)

I'd be in favor of not promoting plugins which are known to be of 1)
subpar quality (bad) or patent encumbered (ugly), by letting the users
install them if they choose, but not forcing those on them.

>          ;; These are required by the pkg-config files.
>
> I rebuilt my system and user profiles with this patch applied, and
> everything seems to work fine.  Moreover, I'm glad to report that
> 'gst-plugins-ugly' is no longer in my store.  (Sadly, 'gst-plugins-bad'
> still is, because our 'gnome' package depends on 'cheese' which depends
> on 'gst-plugins-bad', and last I checked that was unavoidable.)

That's unfortunate.

> I haven't tried using the 'spice' functionality specifically, but I
> suspect that any reduced "out-of-the-box" functionality could be
> regained by users simply installing those plugins as needed, along with
> gstreamer for its 'native-search-paths' field.

They wouldn't even need to install gstreamer itself as it is propagated
in the spice-gtk hunk shown above.

> What do you think?

I agree philosophically, but I feel we need more testing of the spice
part, to know what we're loosing, if we're loosing anything.  I'll try
rebuilding qemu with this patch and test gnome-boxes, which must make
use of spice-gtk.

>       Mark
>
> PS: Danny's idea is worth considering in its own right, but I think it's
>     orthogonal to this proposed change.

Seconded.

Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Thu, 24 Sep 2020 04:41:01 GMT) Full text and rfc822 format available.

Message #20 received at 43501 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 43501 <at> debbugs.gnu.org
Subject: Re: bug#43501: gst-plugins-bad cannot be built on linux-armhf
Date: Thu, 24 Sep 2020 00:41:33 -0400
retitle 43501 new-title gst-plugins-bad fails to build on armhf-linux
quit

Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:

> Hello Mark!
>
> Mark H Weaver <mhw <at> netris.org> writes:
>
>> Earlier, I wrote:
>>> Ever since 'spice-gtk' was added, it has included *every* gstreamer
>>> plugin package in its 'propagated-inputs'.
>>
>> On my private branch, I removed 'gst-libav', 'gst-plugins-bad' and
>> 'gst-plugins-ugly' from the propagated-inputs of 'spice-gtk'.
>>
>> diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
>> index 4aff8dbf56..4b4c673a9d 100644
>> --- a/gnu/packages/spice.scm
>> +++ b/gnu/packages/spice.scm
>> @@ -144,11 +144,8 @@ which allows users to view a desktop computing environment.")
>>      (build-system gnu-build-system)
>>      (propagated-inputs
>>        `(("gstreamer" ,gstreamer)
>> -        ("gst-libav" ,gst-libav)
>
> I feel less strongly about this one, perhaps because its name doesn't
> contain "bad" or "ugly" ;-).  Why should we remove it?
>
>>          ("gst-plugins-base" ,gst-plugins-base)
>>          ("gst-plugins-good" ,gst-plugins-good)
>> -        ("gst-plugins-bad" ,gst-plugins-bad)
>> -        ("gst-plugins-ugly" ,gst-plugins-ugly)
>>          ("spice-protocol" ,spice-protocol)
>

> I agree philosophically, but I feel we need more testing of the spice
> part, to know what we're loosing, if we're loosing anything.  I'll try
> rebuilding qemu with this patch and test gnome-boxes, which must make
> use of spice-gtk.

I've now done so, and could run a foreign distribution that I had
already installed without any perceived difference.

I've pushed this as 035df987f1.  Editing the title to reflect the fact
that QEMU is no longer affected by this problem.

Thanks!

Maxim




Changed bug title to 'gst-plugins-bad fails to build on armhf-linux' from 'gst-plugins-bad cannot be built on linux-armhf, breaking qemu' Request was from Maxim Cournoyer <maxim.cournoyer <at> gmail.com> to control <at> debbugs.gnu.org. (Thu, 24 Sep 2020 19:13:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#43501; Package guix. (Sat, 26 Sep 2020 18:59:01 GMT) Full text and rfc822 format available.

Message #25 received at 43501 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 43501 <at> debbugs.gnu.org
Subject: Re: bug#43501: gst-plugins-bad cannot be built on linux-armhf
Date: Sat, 26 Sep 2020 14:57:33 -0400
Hi Maxim,

Apologies for the delayed response.

Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:

> Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:
>
>> Mark H Weaver <mhw <at> netris.org> writes:
>>
>>> --- a/gnu/packages/spice.scm
>>> +++ b/gnu/packages/spice.scm
>>> @@ -144,11 +144,8 @@ which allows users to view a desktop computing environment.")
>>>      (build-system gnu-build-system)
>>>      (propagated-inputs
>>>        `(("gstreamer" ,gstreamer)
>>> -        ("gst-libav" ,gst-libav)
>>
>> I feel less strongly about this one, perhaps because its name doesn't
>> contain "bad" or "ugly" ;-).  Why should we remove it?

Like 'gst-plugins-ugly', it also contains patent-encumbered codecs via
'ffmpeg'.  However, I acknowledge that several important packages in
Guix depend directly on 'ffmpeg', and therefore more work would be
needed to achieve the goal of allowing Guix users to avoid installing
patent-encumbered codecs while still having a modern desktop
environment.

>>>          ("gst-plugins-base" ,gst-plugins-base)
>>>          ("gst-plugins-good" ,gst-plugins-good)
>>> -        ("gst-plugins-bad" ,gst-plugins-bad)
>>> -        ("gst-plugins-ugly" ,gst-plugins-ugly)
>>>          ("spice-protocol" ,spice-protocol)
>
>> I agree philosophically, but I feel we need more testing of the spice
>> part, to know what we're loosing, if we're loosing anything.  I'll try
>> rebuilding qemu with this patch and test gnome-boxes, which must make
>> use of spice-gtk.
>
> I've now done so, and could run a foreign distribution that I had
> already installed without any perceived difference.
>
> I've pushed this as 035df987f1.  Editing the title to reflect the fact
> that QEMU is no longer affected by this problem.

Thank you for taking care of this, Maxim!

     Best,
      Mark




This bug report was last modified 4 years and 259 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.