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

zoom-us: 2.2.123200.0405 -> 2.2.128100.0627 #42742

Merged
merged 1 commit into from Jun 30, 2018
Merged

Conversation

tadfisher
Copy link
Contributor

Motivation for this change

Rewrite zoom-us using autoPatchelfHook and use the system qt5 libraries.

Add an update script so this can be kept up-to-date more easily.

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 nox --run "nox-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)
  • Fits CONTRIBUTING.md.

@tadfisher
Copy link
Contributor Author

cc maintainers: @danbst

@GrahamcOfBorg
Copy link

No attempt on aarch64-linux (full log)

The following builds were skipped because they don't evaluate on aarch64-linux: zoom-us

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.


@GrahamcOfBorg
Copy link

No attempt on x86_64-linux (full log)

The following builds were skipped because they don't evaluate on x86_64-linux: zoom-us

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.


@peterhoeg
Copy link
Member

This is much cleaner - nice!

@xeji
Copy link
Contributor

xeji commented Jun 30, 2018

When I build this locally and try to start it, I get this error:

result/bin/zoom-us 
sh: /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6: version `GLIBC_2.27' not found (required by /nix/store/nlq683r0lsrqgkg0pnmcr5x2fi64b3yq-v4l-utils-1.14.2/lib/libv4l2.so.0)
zoom started.
Could not initialize GLX
Aborted

Might be some kind of version clash between the bundled libraries and the nixpkgs ones, or an impurity in the build.

@tadfisher
Copy link
Contributor Author

@xeji It would have to be the latter, as this change removes all bundled libraries from the package.

@xeji
Copy link
Contributor

xeji commented Jun 30, 2018

Turns out it doesn't launch from nix-shell on my machine but works when installed via nix-env. That happens with some packages.

@xeji xeji merged commit 81c2f27 into NixOS:master Jun 30, 2018
@srhb
Copy link
Contributor

srhb commented Jul 2, 2018

@tadfisher Does your webcam work in zoom after this change? Mine doesn't, but reverting 81c2f27 fixes it. With this PR I only see a black screen, even though my webcam is on (there's an LED indicator on my laptop)

@tadfisher
Copy link
Contributor Author

@srhb see #41203

@srhb
Copy link
Contributor

srhb commented Jul 2, 2018

@tadfisher Seems unlikely since that error existed for some people before this PR. I guess I'll open a new issue to discuss what was broken in this one specifically. Thanks anyway. :)

@danbst
Copy link
Contributor

danbst commented Jul 7, 2018

@tadfisher sorry, was on vacation, so missed this.

Thanks for your help and investigations! Though there are several drawbacks for this approach:

  1. Closure size is now twice as large (667 Mb vs 342 Mb). Largest space-takers now:
danbst@station ~> du -s $(nix-store -qR ~/zoom-us-nix-profile-1-link/bin/zoom-us) | sort -k1nr                                                                                                                      
145360  /nix/store/hin017hi1y5fdqvwayzicpdrjikcwv87-qtwebengine-5.11.1
64980   /nix/store/pz8nl4cnppd3p1cykshcb40mqxjd5yvy-python3-3.6.5
50520   /nix/store/vawc9a89l53mf05yq0k1910q7dakd99w-perl-5.24.3
36636   /nix/store/frdhjbv90y5ihwzkm35x70m9r6wgsfc3-gtk+3-3.22.30
32228   /nix/store/34n5v385sghsv3zkrbzzw7y7zsq01z17-zoom-us-2.2.128200.0702
31360   /nix/store/yqbvbbi4ha1y79ljkcczw26irxd0ah0n-icu4c-59.1
30756   /nix/store/6swx68jxqvzziml0kk0wnb99hk39hdv5-qtbase-5.11.1
26668   /nix/store/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27
22320   /nix/store/2q9i4vjql277npk1ni0yfj8xc348w1pi-systemd-238
12948   /nix/store/dkq5gx9xpc7sx1k29kxjhwjk9dq4lkz8-glib-2.56.0
11692   /nix/store/bfsbwfhqiyi9lmq4kyymbnryg5vfjsfq-qtdeclarative-5.11.1
11312   /nix/store/n7qp8pffvcb5ff52l2nrc3g2wvxfrk75-coreutils-8.29

Previously:

danbst@station ~> du -s $(nix-store -qR ~/.nix-profile/bin/zoom-us) | sort -k1nr                                                                                                                                    
242100  /nix/store/m5fiqmg3243i784p1b9xkhqld875fzc3-zoom-us-2.1.103753.0521                                                                                                                                        
26668   /nix/store/bgl62l4ly7xfsdwqp93cqw3kqbwchdrd-glibc-2.27                                                                                                                                                     
12948   /nix/store/dz0p1m05d956swc5h255ghnpl5cf312f-glib-2.56.0                                                                                                                                                    
  1. The approach to use nixpkgs Qt had problems in past: see @ttuegel comment bb99bab . Please, add yourself as maintainer if you'd like to support nixpkgs Qt bundle for Zoom.

@peterhoeg
Copy link
Member

Closure size is now twice as large (667 Mb vs 342 Mb). Largest space-takers now:

While that is technically true, Qt and its dependencies are very likely to already exist on a machine on which somebody wants to use zoom-us so the effective change in closure size is actually a net decrease in closure size.

As ttuegel pointed out in the referenced commit, we definitely want to use our version of Qt rather than a vendored version.

@danbst danbst mentioned this pull request Jul 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants