Git Product home page Git Product logo

Comments (25)

fduncanh avatar fduncanh commented on August 25, 2024 4

@alexmyczko
I found a bug in RPiPlay's audio decryption, inherited by UxPlay, and fixed it.

UxPlay 1.39 now works great with OpenSSL3.0.0 which is GPLv3 compatible, so you can now package it.

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

It can be built linked to just-released openSSL 3.0.0 which has a new (Apache) license compatible with GPLv3. I'm testing.

But I seem to see choppy audio with OpenSSL 3.0.0 and not with OpenSSL1.1.1d, so I'm stiil testing

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

I verified that both UxPlay1.38 and current RPiPlay build (with no CMakeList.txt changes) if debian unstable libssl3 libssl-dev and opensll
are installed in ubuntu 20.04LTS.

They behave identically:
work perfectly when build with openssl-1.1.1 (ldd shows libcrypto.so.1.1)
scattered instances of stuttering sound when built with openssl-3.0.0 (ldd shows libcrypto.so.3)

(tested on a The Who track from youtube)

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

I've posted an issue at the RPiPlay site, but dont expect that they will do anything (developers seem to have moved on to the rest of their lives..)

I'll probably have to explore where the problem is coming from. First thing I guess is to see if it is from decryption of audio or video or both. Some initial decryption happens when the connection is made, but this is ongoing during the streaming.
Ideally contact with someone with openssl3 experience to offer guidance would help.

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

So for libc6 >= 2.32, one must install libtirpc-dev?

There is also a "new" libntirpc,

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

I installed debian testing on a spare partition and took openssl 3, libssl 3 and libssl-dev 3 from sid.

every thing worked fine.

I looked into the RPC issue: it seems the netdb.h is the ONLY part of RPC that is left behind in new libc6-dev
and is still there in sid. (Also it is NOT included with either libtirpc or libntirpc)
I dont think you need to patch, but at some point soon I will attempt to upgrade my testing to sid. to see.

I have released a UxPlay 1.40. Test build on that, but wait for an upcoming UxPlay 1.41 before makeing a release,
there is an issue I am fixing.

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

@alexmyczko

Hi, when you say "uploaded" did you succeed in packaging UxPlay?

It turns out that a change in UxPlay 1.41 broke the "ZOOMFIX" cmake option, without it getting noticed.
If you packaged, v. 1.41 or 1.42 before the just posted 1.42f release tag of 1.42, using cmake -DZOOMFIX=ON,
could you package again? (CMakeLists.txt has been cleaned up and reorganized to now also support FreeBSD, so I hope
it doesn't give you extra work)

1.42 also fixed detection of the MAC address on modern (non eth0) debian.
No further changes in UxPlay are planned (unless bugs are reported).

Can I get a link to any successful packaging?

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024 1

great!

I'm annoyed I missed the breakage of ZOOMFIX in 1.41.
(This also caused sporadic mysterious X11 BadWindow errors when the mirror window was closed because
X was continually being queried (instead of a one-time initialization) because of the bug, causing a crash when the window was closed in mid-query)

1.42f is the good one, works great with OpenSSL-3.0.0 because I found a serious AES decryption bug in RPiPlay that is now fixed in both RPiPlay and UxPlay, and fixing it allowed AirPlay audio-only lossless ALAC streams to be supported too. (And adds *BSD support)

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

true, i just tried to build/link against the openssl 3.x in debian experimental, appears to build. haven't gotten to test it yet though.

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

With some lib/CMakeLists.txt changes, I have also built both against debian experimental 3.x (libssl3 libssl-dev openssl) and also openssl3 built from source.

The only library involved is libcrypto.so.3

In both cases , when uxplay is built linked to this (checked with ldd) , the audio is broken up and choppy.

uxplay works perfectly when linked to libcrypto.so from OpenSSL-1.1.1f

so the upgrade breaks uxplay for now. I doubt I can fix it, and RPiPlay where the openssl integration was done is not really
very active right now., so I'm not sure when and if the fix will happen...

It may be that only some tiny fix is needed, but I'm not a libcrypto expert.
I'll try to get somebody at RPiPlay interested in the fix.

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

it appears libc6 dropped /usr/include/netdb.h:32:11: fatal error: rpc/netdb.h: No such file or directory and we have to sort out to libtirpc-dev

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

What system are you building on? debian experimental?

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

according to these older 2015 posts it should be in libc6-dev

https://forums.raspberrypi.com/viewtopic.php?t=105157

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

on OpenSUSE 15.3, netdb.h is supplied by
glibc-devel-2.31-9.3.2.x86_64

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

libc6-dev 2.32, debian sid (aka unstable)

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

yes, I see libc6 2.32 drops it, I couldnt see it in libtirpc-dev though. is it there?
let me see what it does in UxPlay

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

it provides functions getaddrinfo, freeaddrinfo, a struct addrinfo, and defines some possible values for addrinfo->ai

So its not just the include file that is needed, the library with functions getaddrinfo and freeaddrinfo is needed.
I guess these are also gone from libc6

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

about getaddrinfo

https://en.wikipedia.org/wiki/Getaddrinfo

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

well i'm not amused either :'(

from uxplay.

fduncanh avatar fduncanh commented on August 25, 2024

libitrpc implements ipV6, the old 1990's sun RPC in libc6 didnt. in principle cmake can test for this issue.

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

i have tried to patch and failed: https://sid.ethz.ch/debian/uxplay/uxplay-1.39a/debian/patches/

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

uploaded

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

Packages here:
https://sid.ethz.ch/debian/uxplay/

NEW q here:
https://ftp-master.debian.org/new.html

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

no worries I am not using the zoom fix and once it is through new it is easily updated.

from uxplay.

alexmyczko avatar alexmyczko commented on August 25, 2024

https://buildd.debian.org/status/package.php?p=uxplay&suite=experimental

from uxplay.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.