Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Squeezelite updates and refactor #70637

Merged
merged 2 commits into from Feb 12, 2020
Merged

Squeezelite updates and refactor #70637

merged 2 commits into from Feb 12, 2020

Conversation

@samdoshi
Copy link
Contributor

@samdoshi samdoshi commented Oct 7, 2019

Motivation for this change

Version change: upstream is using an svn2git setup, and whilst there has never been an official release, version numbers are indicated in squeezelite.h (see ralph-irving/squeezelite#29).

Broken mp3, ogg and aac support: current build doesn't find libraries at runtime (fixed by added -DLINKALL):

Outout from current build:

[15:27:56.936888] load_faad:593 dlerror: libfaad.so.2: cannot open shared object file: No such file or directory
[15:27:56.936924] alsa_open:351 opening device at: 44100
[15:27:56.936956] load_vorbis:289 dlerror: libvorbisidec.so.1: cannot open shared object file: No such file or directory
[15:27:56.936978] load_flac:266 loaded libFLAC.so.8
[15:27:56.936986] register_flac:294 using flac to decode flc
[15:27:56.936991] register_pcm:433 using pcm to decode aif,pcm
[15:27:56.937012] load_mad:366 dlerror: libmad.so.0: cannot open shared object file: No such file or directory
...
[15:27:57.064437] sendHELO:132 cap: Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=v1.9.0-1113,ModelName=SqueezeLite,MaxSampleRate=384000,flc,aif,pcm

Added extra codecs, and features:

Added support for DSD, ALAC, WMA and Opus. Added resampling support and SSL.

Output from new build:

[15:29:24.790298] sendHELO:144 cap: CanHTTPS=1,Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=v1.9.6-1196,ModelName=SqueezeLite,MaxSampleRate=384000,dsf,dff,alc,wma,wmap,aac,ogg,ops,ogf,flc,aif,pcm,mp3

The downside is that the closure size increases from 30,132,336 to 149,554,504. I could disable ffmpeg support by default (and with it ALAC & WMA) to reduce the size to 44,408,752 which is a much smaller increase.

Added myself as a maintainer.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc (I know you're not listed as a package maintainer, but pinging @peterhoeg)

@samdoshi samdoshi force-pushed the samdoshi:squeezelite branch from 05be4d8 to 5e4859a Oct 7, 2019
@samdoshi
Copy link
Contributor Author

@samdoshi samdoshi commented Oct 7, 2019

Thanks @jonringer for the feedback, I've implemeneted your changes and fixed the issue with meta.license too.

@FRidh
Copy link
Member

@FRidh FRidh commented Feb 10, 2020

needs rebase

samdoshi added 2 commits Oct 7, 2019
Fix mp3, aac and ogg support, add extra codecs.
@samdoshi samdoshi force-pushed the samdoshi:squeezelite branch from 5e4859a to 15d92e5 Feb 10, 2020
@samdoshi
Copy link
Contributor Author

@samdoshi samdoshi commented Feb 10, 2020

@FRidh I've force pushed a rebase (though in truth all I've done is reinstate my changes).

The difference between this commit and the change that @azazel75 made in #76587, is that I've set the LINKALL flag so that the Makefile does dynamic linking, rather that the default which is dynamic loading of libraries (and thus requires fiddling with the RPATH).

The question is which method is preferable?

Copy link
Contributor

@jonringer jonringer left a comment

diff LGTM
commits LGTM
executable shows usage

[3 built, 9 copied (2.6 MiB), 0.7 MiB DL]
https://github.com/NixOS/nixpkgs/pull/70637
1 package built:
squeezelite
@jonringer
Copy link
Contributor

@jonringer jonringer commented Feb 12, 2020

@GrahamcOfBorg build squeezelite

@jonringer jonringer merged commit 8bccdc4 into NixOS:master Feb 12, 2020
16 checks passed
16 checks passed
squeezelite on x86_64-darwin No attempt
Details
Evaluation Performance Report Evaluator Performance Report
Details
grahamcofborg-eval ^.^!
Details
grahamcofborg-eval-check-maintainers matching changed paths to changed attrs...
Details
grahamcofborg-eval-check-meta config.nix: checkMeta = true
Details
grahamcofborg-eval-darwin nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A darwin-tested
Details
grahamcofborg-eval-nixos nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release-combined.nix -A tested
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A manual
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A options
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A manual
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A tarball
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A unstable
Details
grahamcofborg-eval-package-list nix-env -qa --json --file .
Details
grahamcofborg-eval-package-list-no-aliases nix-env -qa --json --file . --arg config { allowAliases = false; }
Details
squeezelite on aarch64-linux Success
Details
squeezelite on x86_64-linux Success
Details
@samdoshi samdoshi deleted the samdoshi:squeezelite branch Apr 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.