Skip to content

roc-toolkit: 0.1.5 -> 0.2.1#208828

Closed
bgamari wants to merge 1 commit intoNixOS:masterfrom
bgamari:wip/update-roc-toolkit
Closed

roc-toolkit: 0.1.5 -> 0.2.1#208828
bgamari wants to merge 1 commit intoNixOS:masterfrom
bgamari:wip/update-roc-toolkit

Conversation

@bgamari
Copy link
Contributor

@bgamari bgamari commented Jan 3, 2023

Description of changes

Update roc-toolkit, as requested by #208352. This required a patch to workaround roc-streaming/roc-toolkit#503.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@bgamari
Copy link
Contributor Author

bgamari commented Jan 3, 2023

Unfortunately it appears that pipewire does not compile with these changes.

Cc @ribosomerocker

@bgamari bgamari marked this pull request as draft January 3, 2023 00:24
@bgamari
Copy link
Contributor Author

bgamari commented Jan 3, 2023

Marking as draft due to pipewire incompatibility:

gcc -Isrc/modules/libpipewire-module-roc-sink.so.p -Isrc/modules -I../src/modules -I. -I.. -Isrc -I../src -Ispa/include -I../spa/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=gnu11 -fvisibility=hidden -fno-strict-aliasing -Werror=suggest-attribute=format -W>
../src/modules/module-roc-sink.c:115:9: error: unknown type name 'roc_address'
  115 |         roc_address local_addr;
      |         ^~~~~~~~~~~
../src/modules/module-roc-sink.c:116:9: error: unknown type name 'roc_address'
  116 |         roc_address remote_source_addr;
      |         ^~~~~~~~~~~
../src/modules/module-roc-sink.c:117:9: error: unknown type name 'roc_address'
  117 |         roc_address remote_repair_addr;
      |         ^~~~~~~~~~~
../src/modules/module-roc-sink.c:121:9: error: unknown type name 'roc_fec_code'
  121 |         roc_fec_code fec_code;
      |         ^~~~~~~~~~~~
../src/modules/module-roc-sink.c:128:31: error: unknown type name 'roc_fec_code'; did you mean 'roc_fec_encoding'?
  128 | static int roc_parse_fec_code(roc_fec_code *out, const char *str)
      |                               ^~~~~~~~~~~~
      |                               roc_fec_encoding
../src/modules/module-roc-sink.c: In function 'roc_sink_setup':
../src/modules/module-roc-sink.c:284:13: warning: implicit declaration of function 'roc_address_init' [-Wimplicit-function-declaration]
  284 |         if (roc_address_init(&data->local_addr, ROC_AF_AUTO, data->local_ip, 0)) {
      |             ^~~~~~~~~~~~~~~~
../src/modules/module-roc-sink.c:284:49: error: 'ROC_AF_AUTO' undeclared (first use in this function)
  284 |         if (roc_address_init(&data->local_addr, ROC_AF_AUTO, data->local_ip, 0)) {
      |                                                 ^~~~~~~~~~~
../src/modules/module-roc-sink.c:284:49: note: each undeclared identifier is reported only once for each function it appears in
../src/modules/module-roc-sink.c:303:25: error: too few arguments to function 'roc_context_open'
  303 |         data->context = roc_context_open(&context_config);
      |                         ^~~~~~~~~~~~~~~~
In file included from ../src/modules/module-roc-sink.c:39:
/nix/store/kkx53i3gsila5r5fnpz5wcj71qiqwdzl-roc-toolkit-0.2.1/include/roc/context.h:63:13: note: declared here
   63 | ROC_API int roc_context_open(const roc_context_config* config, roc_context** result);
      |             ^~~~~~~~~~~~~~~~
../src/modules/module-roc-sink.c:314:22: error: 'roc_sender_config' has no member named 'fec_code'
  314 |         sender_config.fec_code = data->fec_code;
      |                      ^
../src/modules/module-roc-sink.c:325:24: error: too few arguments to function 'roc_sender_open'
  325 |         data->sender = roc_sender_open(data->context, &sender_config);
      |                        ^~~~~~~~~~~~~~~
In file included from ../src/modules/module-roc-sink.c:41:
/nix/store/kkx53i3gsila5r5fnpz5wcj71qiqwdzl-roc-toolkit-0.2.1/include/roc/sender.h:162:13: note: declared here
  162 | ROC_API int roc_sender_open(roc_context* context,
      |             ^~~~~~~~~~~~~~~
../src/modules/module-roc-sink.c:331:13: warning: implicit declaration of function 'roc_sender_bind'; did you mean 'roc_sender_write'? [-Wimplicit-function-declaration]
  331 |         if (roc_sender_bind(data->sender, &data->local_addr) != 0) {
      |             ^~~~~~~~~~~~~~~
      |             roc_sender_write
../src/modules/module-roc-sink.c:337:14: error: 'ROC_FEC_DEFAULT' undeclared (first use in this function); did you mean 'ROC_SLOT_DEFAULT'?
  337 |         case ROC_FEC_DEFAULT:
      |              ^~~~~~~~~~~~~~~
      |              ROC_SLOT_DEFAULT
../src/modules/module-roc-sink.c:338:14: error: 'ROC_FEC_RS8M' undeclared (first use in this function)
  338 |         case ROC_FEC_RS8M:
      |              ^~~~~~~~~~~~
../src/modules/module-roc-sink.c:342:14: error: 'ROC_FEC_LDPC_STAIRCASE' undeclared (first use in this function); did you mean 'ROC_FEC_ENCODING_LDPC_STAIRCASE'?
  342 |         case ROC_FEC_LDPC_STAIRCASE:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              ROC_FEC_ENCODING_LDPC_STAIRCASE
../src/modules/module-roc-sink.c:352:46: error: 'ROC_PORT_AUDIO_SOURCE' undeclared (first use in this function); did you mean 'ROC_INTERFACE_AUDIO_SOURCE'?
  352 |         if (roc_sender_connect(data->sender, ROC_PORT_AUDIO_SOURCE, audio_proto,
      |                                              ^~~~~~~~~~~~~~~~~~~~~
      |                                              ROC_INTERFACE_AUDIO_SOURCE
../src/modules/module-roc-sink.c:352:69: warning: implicit conversion from 'roc_protocol' to 'roc_interface' [-Wenum-conversion]
  352 |         if (roc_sender_connect(data->sender, ROC_PORT_AUDIO_SOURCE, audio_proto,
      |                                                                     ^~~~~~~~~~~
../src/modules/module-roc-sink.c:353:33: warning: passing argument 4 of 'roc_sender_connect' from incompatible pointer type [-Wincompatible-pointer-types]
  353 |                                 &data->remote_source_addr) != 0) {
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                 |
      |                                 int *
In file included from ../src/modules/module-roc-sink.c:41:
/nix/store/kkx53i3gsila5r5fnpz5wcj71qiqwdzl-roc-toolkit-0.2.1/include/roc/sender.h:234:52: note: expected 'const roc_endpoint *' but argument is of type 'int *'
  234 |                                const roc_endpoint* endpoint);
      |                                ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../src/modules/module-roc-sink.c:359:54: error: 'ROC_PORT_AUDIO_REPAIR' undeclared (first use in this function); did you mean 'ROC_PROTO_LDPC_REPAIR'?
  359 |                 if (roc_sender_connect(data->sender, ROC_PORT_AUDIO_REPAIR, repair_proto,
      |                                                      ^~~~~~~~~~~~~~~~~~~~~
      |                                                      ROC_PROTO_LDPC_REPAIR
../src/modules/module-roc-sink.c:359:77: warning: implicit conversion from 'roc_protocol' to 'roc_interface' [-Wenum-conversion]
  359 |                 if (roc_sender_connect(data->sender, ROC_PORT_AUDIO_REPAIR, repair_proto,
      |                                                                             ^~~~~~~~~~~~
../src/modules/module-roc-sink.c:360:41: warning: passing argument 4 of 'roc_sender_connect' from incompatible pointer type [-Wincompatible-pointer-types]
  360 |                                         &data->remote_repair_addr) != 0) {
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                         |
      |                                         int *
In file included from ../src/modules/module-roc-sink.c:41:
/nix/store/kkx53i3gsila5r5fnpz5wcj71qiqwdzl-roc-toolkit-0.2.1/include/roc/sender.h:234:52: note: expected 'const roc_endpoint *' but argument is of type 'int *'
  234 |                                const roc_endpoint* endpoint);
      |                                ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../src/modules/module-roc-sink.c: In function 'pipewire__module_init':
../src/modules/module-roc-sink.c:491:21: warning: implicit declaration of function 'roc_parse_fec_code' [-Wimplicit-function-declaration]
  491 |                 if (roc_parse_fec_code(&data->fec_code, str)) {
      |                     ^~~~~~~~~~~~~~~~~~
../src/modules/module-roc-sink.c:493:42: error: 'ROC_FEC_DEFAULT' undeclared (first use in this function); did you mean 'ROC_SLOT_DEFAULT'?
  493 |                         data->fec_code = ROC_FEC_DEFAULT;
      |                                          ^~~~~~~~~~~~~~~
      |                                          ROC_SLOT_DEFAULT

@bgamari
Copy link
Contributor Author

bgamari commented Jan 3, 2023

It appears that we will be unable to merge this until the next release of pipewire (which will presumably include https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1474) is available.

@ofborg ofborg bot added 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches. labels Jan 3, 2023
@subterfugue
Copy link
Contributor

Nice! Thank you very much for your PR. We could merge this PR when the new release comes out, but we could also cherry pick the patch then apply this (an idea someone had on the pipewire matrix room), but I'm not quite sure which solution would be the better one. For me this isn't quite as much of an emergency but it doesn't seem like a new release will happen any time soon.

@bgamari
Copy link
Contributor Author

bgamari commented Jan 9, 2023

The patch does seem a tad large to backport. As far as I can tell, pipewire releases pretty regularly so I think it would be fine just to wait.

@K900
Copy link
Contributor

K900 commented Jan 12, 2023

Pipewire 0.3.64 is out, I'll pick this into that branch.

@K900 K900 mentioned this pull request Jan 12, 2023
13 tasks
@subterfugue
Copy link
Contributor

Alright, so that was merged (but into stage-next? I don't really know what that does), maybe now it should work?

@K900 K900 closed this Jan 18, 2023
@K900
Copy link
Contributor

K900 commented Jan 18, 2023

Yes, it should be in unstable by now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants