FS#61265 - [sonic-pi] needs rebuild for http-parser

Attached to Project: Community Packages
Opened by Rob (grooveharder) - Thursday, 03 January 2019, 17:47 GMT
Last edited by David Runge (dvzrv) - Friday, 08 February 2019, 12:11 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To David Runge (dvzrv)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description: sonic-pi-3.1.0-3 is linked to outdated http-parser.
http-parser was updated to version 2.9.0 on 2018/12/28.


Additional info:
* package version(s)
* config and/or log files etc.

~/.sonic-pi/log/server-errors.log:
/usr/share/sonic-pi/server/vendor/rugged-0.26.0/lib/rugged.rb:14:in `require_relative': libhttp_parser.so.2.8: cannot open shared object file: No such file or directory - /usr/share/sonic-pi/server/rb-native/2.5.0/rugged.so (LoadError)
from /usr/share/sonic-pi/server/vendor/rugged-0.26.0/lib/rugged.rb:14:in `rescue in <top (required)>'
from /usr/share/sonic-pi/server/vendor/rugged-0.26.0/lib/rugged.rb:6:in `<top (required)>'
from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
from /usr/share/sonic-pi/server/lib/sonicpi/gitsave.rb:14:in `<top (required)>'
from /usr/share/sonic-pi/server/lib/sonicpi/runtime.rb:21:in `require_relative'
from /usr/share/sonic-pi/server/lib/sonicpi/runtime.rb:21:in `<top (required)>'
from /usr/share/sonic-pi/server/lib/sonicpi/lang/core.rb:17:in `require_relative'
from /usr/share/sonic-pi/server/lib/sonicpi/lang/core.rb:17:in `<top (required)>'
from /usr/bin/../../usr/share/sonic-pi/server/bin/sonic-pi-server.rb:25:in `require_relative'
from /usr/bin/../../usr/share/sonic-pi/server/bin/sonic-pi-server.rb:25:in `<main>'

Steps to reproduce:
- install sonic-pi-3.1.0-3
- attempt to start
- it hangs and outputs the above log.
This task depends upon

Closed by  David Runge (dvzrv)
Friday, 08 February 2019, 12:11 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed with sonic-pi 3.1.0-5
ruby-rugged (amongst other gems) has been de-vendored.
The application part has been moved to /usr/lib, while the assets, help files and examples remain below /usr/share.
Comment by Eli Schwartz (eschwartz) - Thursday, 03 January 2019, 19:57 GMT
  • Field changed: Summary ([sonic-pi] PLEASE ENTER SUMMARY → [sonic-pi] needs rebuild for http-parser)
  • Field changed: Status (Unconfirmed → Assigned)
  • Field changed: Severity (Low → High)
  • Task assigned to David Runge (dvzrv)
The package installs arch-dependent .so extensions in/usr/share, which means we cannot find out what it links to using sogrep and thus cannot add it to rebuilds when rebuilding http-parser.

Please fix this as well...
Comment by Peter Shultz (pashultz) - Sunday, 03 February 2019, 02:03 GMT
Is there anything I could do to help with this? I'm just a user with light programming experience, but I had been working on a project that depends on Sonic Pi, and it's been stalled for several weeks.

Alternatively, could anyone help me compile a package just for my own use? I worked through the Arch Wiki articles on ABS and PKGBUILD, thinking I could manually replace Rugged with a newer version as described by this Ubuntu user: https://in-thread.sonic-pi.net/t/build-error-on-ubuntu-18-10/1842/3 Unfortunately I couldn't figure out how to patch the tarball downloaded in the PKGBUILD to use a newer version of Rugged; the patches always failed to apply.
Comment by David Runge (dvzrv) - Monday, 04 February 2019, 11:14 GMT
Yeah, just haven't had the time to do this yet. The patchset I'm carrying to build the package is sadly pretty non-trivial and requires a lot of testing already.
Will get to it as soon as I can!
Comment by Peter Shultz (pashultz) - Monday, 04 February 2019, 18:36 GMT
Okay! Sorry for pestering, and thanks for the reassurance. If there's any way I could help with the testing, I'm eager to learn. Thanks for all you do for the community!
Comment by David Runge (dvzrv) - Thursday, 07 February 2019, 11:43 GMT
No worries. I've started de-vendoring sonic-pi now (seems this already works using a packaged ruby-rugged), but locations are still not correct and I'd like to remove the other (compiled) vendored gems as well to get rid of some of that bloat.
This now looks "promising" from the packaging point of view, but I have no clue (yet) whether it will work properly :D
Comment by David Runge (dvzrv) - Thursday, 07 February 2019, 23:21 GMT
You can now try sonic-pi 3.1.0-4 from [community-testing] [1].
It requires ruby-rugged [2].

While not optimal, it is quite an improvement over the previous package, as I managed to replace some gems with the system versions.
De-vendoring the complete application will require time though.

[1] https://www.archlinux.org/packages/community-testing/x86_64/sonic-pi/
[2] https://www.archlinux.org/packages/community-testing/x86_64/ruby-rugged/
Comment by Peter Shultz (pashultz) - Friday, 08 February 2019, 01:03 GMT
Fantastic! It runs again, starts a JACK server, and both input and output seem fine. Is there anything in particular that might need testing?
Comment by David Runge (dvzrv) - Friday, 08 February 2019, 10:11 GMT
Hm, just try to see, if git related things work as expected (as I devendored rugged), which boils down to project save/undo, etc. I think.
Comment by David Runge (dvzrv) - Friday, 08 February 2019, 11:03 GMT
[page refresh is pain]

Loading...