Package Details: nbdkit 1.36.4-1

Git Clone URL: https://aur.archlinux.org/nbdkit.git (read-only, click to copy)
Package Base: nbdkit
Description: NBD server toolkit
Upstream URL: https://gitlab.com/nbdkit/nbdkit/
Licenses: custom: BSD
Submitter: t-8ch
Maintainer: t-8ch (rwmjones)
Last Packager: t-8ch
Votes: 5
Popularity: 0.055683
First Submitted: 2019-02-22 14:36 (UTC)
Last Updated: 2024-03-05 20:57 (UTC)

Latest Comments

1 2 3 4 5 6 .. 10 Next › Last »

dreieck commented on 2023-12-08 12:54 (UTC)

Thanks, great!, that solves package manager hickups.
I think you should add something like "(needs to be installed at build time)" to the comment to the optional dependency.

Regards!

t-8ch commented on 2023-12-07 19:05 (UTC)

I went with your second option. It imposes the least overhead on users not affected by this problem.

dreieck commented on 2023-12-07 14:30 (UTC) (edited on 2023-12-08 12:50 (UTC) by dreieck)

If boost is needed as a build dependency for rb_torrent, and it is optional after build, you should either

  • have boost as make dependency and as optional dependency (or boost-libs as optional dependency if boost is not needed to run rb_torrent), or
  • have boost as optinal dependency with a descriptive text that it must be present at compile time to include the feature, and have a check in build() that when it is not installed --disable-torrent is passed so that no build error occurs.

The current solution that breaks build when boost is not installed but not pull in boost as a build dependency is not OK.

t-8ch commented on 2023-12-05 21:46 (UTC)

boost ist only a build-dependency for libtorrent-rasterbar. Which is why the binary package does not pull it in as a dependency. Unfortunately there is proper way to express an optional builddependency with the Arch packaging tools.

We can either make it an optdepends or a makedepends. I'll add a reason for both optdepends so it's clear that they are both needed.

boost-lib is not even sufficient as we need the headers, not the libraries.

rwmjones commented on 2023-12-05 20:22 (UTC) (edited on 2023-12-05 20:25 (UTC) by rwmjones)

So ... boost isn't (or shouldn't be) a direct dependency. I think it should only come indirectly via the optional rb_torrent dependency. At least in theory rb_torrent ought to itself pull in anything it needs like boost.

However if an extra dependency for nbdkit fixes the problem then let's do that.

Edit: To give a concrete example, I know that Fedora doesn't work like Arch, but in Fedora we only depend on rb_libtorrent-devel:

https://src.fedoraproject.org/rpms/nbdkit/blob/rawhide/f/nbdkit.spec#_123

and it's that other package which depends on boost-devel:

https://src.fedoraproject.org/rpms/rb_libtorrent/blob/rawhide/f/rb_libtorrent.spec#_37

kescherAUR commented on 2023-12-05 20:19 (UTC)

Should have boost-libs as a dependency (either that, or --disable-torrent, but I'd prefer keeping support for that) and boost as a make dependency.

dreieck commented on 2023-11-28 16:56 (UTC)

Adding dash as make dependency won't make a difference as it won't change /bin/sh. (And changing it for the test is a no-go).

Yes, if /bin/sh is hardcoded instead of /bin/bash or just sh (in which case $PATH can be manipulated), then I see no easy option.

Can you test again with the new 1.36.2 version?

I still get

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -I../../common/include -I../../common/utils -I. -pthread -fexceptions -DTORRENT_LINKING_SHARED -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_NO_DEPRECATED -DTORRENT_USE_OPENSSL -DTORRENT_USE_LIBCRYPTO -DTORRENT_SSL_PEERS -DOPENSSL_NO_SSL2 -march=native -mtune=native -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -MT nbdkit_torrent_plugin_la-torrent.lo -MD -MP -MF .deps/nbdkit_torrent_plugin_la-torrent.Tpo -c torrent.cpp  -fPIC -DPIC -o .libs/nbdkit_torrent_plugin_la-torrent.o
In file included from /usr/include/libtorrent/time.hpp:36,
                 from /usr/include/libtorrent/alert.hpp:67,
                 from torrent.cpp:47:
/usr/include/libtorrent/config.hpp:52:10: fatal error: boost/config.hpp: No such file or directory
   52 | #include <boost/config.hpp>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

With --disable-torrent, compilation succeeds, and check() now passes past test-floppy.sh and finally succeeds in total. However, some earlier and later tests also need a couple of minutes (e.g. test-file-dirfd.sh, test-info-conntime.sh, test-iso.sh, test-linuxdisk.sh and many others), and this was already the case with the previous version.

Regards!

rwmjones commented on 2023-11-28 12:52 (UTC)

For the stall, if it happens even with the latest version can you look to see what test it is stalling on? There will be an associated process or processes running, looking something like:

$ ps afwwwx
3001970 pts/2    S+     0:00  |                                   \_ /bin/sh ../test-driver --test-name test-tar-xz-curl --log-file 
3001975 pts/2    Sl+    0:00  |                                   |   \_ ./test-tar-xz-curl
3001979 pts/2    Sl+    0:00  |                                   |       \_ /home/rjones/d/nbdkit/server/nbdkit -U /tmp/nbdkitHKxUI
3003125 pts/2    Sl+    0:00  |                                   |       \_ /usr/bin/qemu-kvm -global virtio-blk-pci.scsi=off -no-u
3003127 pts/2    S+     0:00  |                                   |       \_ ./test-tar-xz-curl

which should be enough information to tell which test is hanging and find the associated log file.

If nbdkit itself seems to be hanging then using gstack can often print a stack trace of the threads inside nbdkit which might be useful.

t-8ch commented on 2023-11-28 12:25 (UTC)

@dreieck:

Can you test again with the new 1.36.2 version?

Adding dash as make dependency won't make a difference as it won't change /bin/sh. (And changing it for the test is a no-go).

dreieck commented on 2023-11-28 12:11 (UTC)

OK, then maybe you need to add dash as make dependency and in the build environment of the package use that instead of bash?