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

pythonPackages.asyncssh: 1.15.1 -> 1.16.1, fixing build with some caveats around ec25519 support #60553

Closed
wants to merge 2 commits into from

Conversation

risicle
Copy link
Contributor

@risicle risicle commented May 1, 2019

Motivation for this change

This "fixes" the build of asyncssh mostly through bumping the version. The thing that broke asyncssh was its move in 1.15.1 to depending on openssl 1.1.x for its ec25519 support. The default cryptography and pyopenssl packages are of course built with openssl 1.0.x, so this caused test failures. 1.16.1 added skip-checks to allow the tests to still pass without ec25519 support.

But of course this means that the package, built against the default cryptography and pyopenssl packages, won't support ec25519, which sucks. But the only way of enabling that support is by using overridden versions of those packages which would of course produce collisions against any packages using the default versions of those dependencies. Which is quite a lot of them.

Sooo... I thought it best not to do that by default, settling for supplying an "easy route" for those needing ec25519 support - overriding the openssl argument with a 1.1.x version should cause all of the required overriding to happen, while in the normal case the .overrides don't end up affecting the output hash and so there should be no duplicate packages produced.

Phew. That was a fun evening.

cc @worldofpeace

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)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

…eats around ec25519 support

asyncssh requires openssl 1.1.x for ec25519 support, but the default
cryptography and pyopenssl packages are built against openssl 1.0.x.
however, forcing overrides of these using openssl 1.1.x will produce
package collisions meaning asyncssh may not be installable in the same
environment as most other default python packages. so rather than do
that by default, supply an easy route for those who want ec25519
support
@worldofpeace
Copy link
Contributor

... ronf/asyncssh@1dee113

I also have a39bb0f in staging since we needed the cryptography update that happened there.

Though we will need 89e121e when update openssl and maybe we could fix the file bit permissions upstream for the sftp test?

@risicle
Copy link
Contributor Author

risicle commented May 1, 2019

... ronf/asyncssh@1dee113

Hah! I didn't spot that one. A good decision.

It didn't occur to me to check staging for fixes - going to have to add that to my checklist...

@worldofpeace
Copy link
Contributor

Looks like you've integrated the pyopenssl change #61325.
Sorry that you went out of your way to fix this and I already did similar.

Do you think upstream could use 0o321 for the sftp test?

@risicle
Copy link
Contributor Author

risicle commented May 13, 2019

I suspect they want to flex all the muscles of the tests they can.

Closing this.

@risicle risicle closed this May 13, 2019
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

2 participants