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

arrayfire: init at 3.6.1 #46133

Closed
wants to merge 2 commits into from
Closed

arrayfire: init at 3.6.1 #46133

wants to merge 2 commits into from

Conversation

jmagoon
Copy link

@jmagoon jmagoon commented Sep 6, 2018

Motivation for this change

Added the Arrayfire package, a C++ library that wraps GPU computation.

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.

srhb
srhb previously requested changes Sep 6, 2018
version = "3.6.1";
name = "arrayfire-${version}";
src = fetchurl {
url = "http://arrayfire.s3.amazonaws.com/3.6.1/ArrayFire-v3.6.1_Linux_x86_64.sh";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like you can refer to ${version} from above here

phases = "installPhase";

installPhase = ''
bash ${src} --include-subdirs --prefix=$out
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The source distribution is available from GitHub: https://github.com/arrayfire/arrayfire

This is much preferred compared to this shell unpacker. Please consider repackaging this using the source distribution.

Copy link
Author

@jmagoon jmagoon Sep 6, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When building from source I was unable to get certain dependencies to work, especially with OpenCL and CUDA (I don't have a nvidia card, but the source build requires all of the dependencies). These prebuilt libs worked right out of the box. Is there a reason the source build is preferred? If so I can remove this PR, as I was unable to get the source version to build on NixOS. It also checks out a series of git submodules and such, so takes about 1-2 hours to build from source.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can give it another attempt though. It's possible I messed something up with runtime dependencies for the library.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that it doesn't look like a trivial build. I'll remark this for review, and maybe someone else can take a look. As far as I can see, the .sh as built doesn't correctly link dependencies anyway, so I don't think this is a functional approach either.

meta = with stdenv.lib; {
description = "Multiplatform library for parallel GPU computation";
homepage = http://www.arrayfire.com/;
maintainers = with maintainers; [ "jmagoon" ];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"jmagoon" should not be a string, but refer to the jmagoon name from stdenv.lib.maintainers.

@srhb srhb dismissed their stale review September 7, 2018 08:42

Leaving the judgment up to someone else with more experience with binary packages

@jmagoon
Copy link
Author

jmagoon commented Sep 7, 2018 via email

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

4 participants