unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu
@ 2020-09-19  1:45 Maxim Cournoyer
  2020-09-19  3:40 ` Mark H Weaver
  0 siblings, 1 reply; 7+ messages in thread
From: Maxim Cournoyer @ 2020-09-19  1:45 UTC (permalink / raw)
  To: 43501

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@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@sha/libgstwebrtc-1.0.so.0.1602.0.symbols'.
[106/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin@sha/camerabingeneral.c.o'.
[107/738] Linking target gst/audiomixmatrix/libgstaudiomixmatrix.so.
[108/738] Compiling C object 'gst/audiovisualizers/cbf4535@@gstaudiovisualizers@sha/gstsynaescope.c.o'.
[109/738] Linking target gst/audiobuffersplit/libgstaudiobuffersplit.so.
[110/738] Compiling C object 'gst/autoconvert/e5cffa3@@gstautoconvert@sha/gstautoconvert.c.o'.
[111/738] Compiling C object 'gst/audiovisualizers/cbf4535@@gstaudiovisualizers@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@sha/aiffparse.c.o'.
[114/738] Compiling C object 'gst/bayer/9043930@@gstbayer@sha/meson-generated_.._gstbayerorc.c.o'.
[115/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin@sha/gstplugin.c.o'.
[116/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin@sha/gstdigitalzoom.c.o'.
[117/738] Generating symbol file 'gst-libs/gst/adaptivedemux/f8886ef@@gstadaptivedemux-1.0@sha/libgstadaptivedemux-1.0.so.0.1602.0.symbols'.
[118/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin@sha/gstviewfinderbin.c.o'.
[119/738] Compiling C object 'gst/bayer/9043930@@gstbayer@sha/gstbayer2rgb.c.o'.
[120/738] Compiling C object 'gst/bayer/9043930@@gstbayer@sha/gstrgb2bayer.c.o'.
[121/738] Compiling C object 'gst/asfmux/3f2ef0f@@gstasfmux@sha/gstasfmux.c.o'.
[122/738] Generating symbol file 'gst-libs/gst/mpegts/aa7f611@@gstmpegts-1.0@sha/libgstmpegts-1.0.so.0.1602.0.symbols'.
-- Adding Fcitx Addon vk
[123/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin@sha/gstwrappercamerabinsrc.c.o'.
-- Adding Fcitx Addon dbus
[124/738] Compiling C object 'gst/camerabin2/4042765@@gstcamerabin@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@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@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@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---




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu
  2020-09-19  1:45 bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu Maxim Cournoyer
@ 2020-09-19  3:40 ` Mark H Weaver
  2020-09-19 14:24   ` bug#43501: Whitelisting/blacklisting transitive package dependencies Danny Milosavljevic
  2020-09-20 22:00   ` bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu Mark H Weaver
  0 siblings, 2 replies; 7+ messages in thread
From: Mark H Weaver @ 2020-09-19  3:40 UTC (permalink / raw)
  To: Maxim Cournoyer, 43501

Maxim Cournoyer <maxim.cournoyer@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




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#43501: Whitelisting/blacklisting transitive package dependencies
  2020-09-19  3:40 ` Mark H Weaver
@ 2020-09-19 14:24   ` Danny Milosavljevic
  2020-09-20 22:00   ` bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu Mark H Weaver
  1 sibling, 0 replies; 7+ messages in thread
From: Danny Milosavljevic @ 2020-09-19 14:24 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: Maxim Cournoyer, 43501

[-- Attachment #1: Type: text/plain, Size: 8322 bytes --]

Hi,

On Fri, 18 Sep 2020 23:40:13 -0400
Mark H Weaver <mhw@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@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@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@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@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@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")

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu
  2020-09-19  3:40 ` Mark H Weaver
  2020-09-19 14:24   ` bug#43501: Whitelisting/blacklisting transitive package dependencies Danny Milosavljevic
@ 2020-09-20 22:00   ` Mark H Weaver
  2020-09-22  2:36     ` Maxim Cournoyer
  1 sibling, 1 reply; 7+ messages in thread
From: Mark H Weaver @ 2020-09-20 22:00 UTC (permalink / raw)
  To: Maxim Cournoyer, 43501

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.




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu
  2020-09-20 22:00   ` bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu Mark H Weaver
@ 2020-09-22  2:36     ` Maxim Cournoyer
  2020-09-24  4:41       ` bug#43501: gst-plugins-bad cannot be built on linux-armhf Maxim Cournoyer
  0 siblings, 1 reply; 7+ messages in thread
From: Maxim Cournoyer @ 2020-09-22  2:36 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 43501

Hello Mark!

Mark H Weaver <mhw@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




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#43501: gst-plugins-bad cannot be built on linux-armhf
  2020-09-22  2:36     ` Maxim Cournoyer
@ 2020-09-24  4:41       ` Maxim Cournoyer
  2020-09-26 18:57         ` Mark H Weaver
  0 siblings, 1 reply; 7+ messages in thread
From: Maxim Cournoyer @ 2020-09-24  4:41 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 43501

retitle 43501 new-title gst-plugins-bad fails to build on armhf-linux
quit

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

> Hello Mark!
>
> Mark H Weaver <mhw@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




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#43501: gst-plugins-bad cannot be built on linux-armhf
  2020-09-24  4:41       ` bug#43501: gst-plugins-bad cannot be built on linux-armhf Maxim Cournoyer
@ 2020-09-26 18:57         ` Mark H Weaver
  0 siblings, 0 replies; 7+ messages in thread
From: Mark H Weaver @ 2020-09-26 18:57 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 43501

Hi Maxim,

Apologies for the delayed response.

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

> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> Mark H Weaver <mhw@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




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-09-26 18:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-19  1:45 bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu Maxim Cournoyer
2020-09-19  3:40 ` Mark H Weaver
2020-09-19 14:24   ` bug#43501: Whitelisting/blacklisting transitive package dependencies Danny Milosavljevic
2020-09-20 22:00   ` bug#43501: gst-plugins-bad cannot be built on linux-armhf, breaking qemu Mark H Weaver
2020-09-22  2:36     ` Maxim Cournoyer
2020-09-24  4:41       ` bug#43501: gst-plugins-bad cannot be built on linux-armhf Maxim Cournoyer
2020-09-26 18:57         ` Mark H Weaver

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).