diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-01-10 07:13:44 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-01-12 14:07:16 +0000 |
commit | e2698550456abba83c6dcd5d5e5a9990a0b96f8a (patch) | |
tree | 79a56f0df3fa55e470d84b4dff6059fbf487ec18 /nixpkgs/pkgs/development/libraries/libiio | |
parent | 1cdc42df888dc98c347e03bd942ed9825a55bcb3 (diff) | |
parent | 84d74ae9c9cbed73274b8e4e00be14688ffc93fe (diff) | |
download | nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.gz nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.bz2 nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.lz nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.xz nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.zst nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.zip |
Merge commit '84d74ae9c9cbed73274b8e4e00be14688ffc93fe'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libiio')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libiio/default.nix | 66 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch | 38 |
2 files changed, 78 insertions, 26 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libiio/default.nix b/nixpkgs/pkgs/development/libraries/libiio/default.nix index 03324c15d8f7..3c3ccf27884f 100644 --- a/nixpkgs/pkgs/development/libraries/libiio/default.nix +++ b/nixpkgs/pkgs/development/libraries/libiio/default.nix @@ -1,49 +1,63 @@ -{ stdenv, fetchFromGitHub -, cmake, flex, bison -, libxml2, python -, libusb1, runtimeShell +{ stdenv +, fetchFromGitHub +, cmake +, flex +, bison +, libxml2 +, python +, libusb1 +, runtimeShell +, lib }: stdenv.mkDerivation rec { pname = "libiio"; - version = "0.20"; + version = "0.21"; + + outputs = [ "out" "lib" "dev" "python" ]; src = fetchFromGitHub { - owner = "analogdevicesinc"; - repo = "libiio"; - rev = "refs/tags/v${version}"; - sha256 = "1929gvizkqmm9cwh3vihxxszfxvgcp5saq9q6chdk3fpdhzajc00"; + owner = "analogdevicesinc"; + repo = "libiio"; + rev = "v${version}"; + sha256 = "0psw67mzysdb8fkh8xpcwicm7z94k8plkcc8ymxyvl6inshq0mc7"; }; - outputs = [ "out" "lib" "dev" "python" ]; + nativeBuildInputs = [ + cmake + flex + bison + ]; + + buildInputs = [ + python + libxml2 + libusb1 + ] ++ lib.optional python.isPy3k python.pkgs.setuptools; - nativeBuildInputs = [ cmake flex bison ]; - buildInputs = [ libxml2 libusb1 ]; + cmakeFlags = [ + "-DUDEV_RULES_INSTALL_DIR=${placeholder "out"}/lib/udev/rules.d" + "-DPYTHON_BINDINGS=on" + ]; postPatch = '' + # Hardcode path to the shared library into the bindings. + sed "s#@libiio@#$lib/lib/libiio${stdenv.hostPlatform.extensions.sharedLibrary}#g" ${./hardcode-library-path.patch} | patch -p1 + substituteInPlace libiio.rules.cmakein \ --replace /bin/sh ${runtimeShell} ''; - # since we can't expand $out in cmakeFlags - preConfigure = '' - cmakeFlags="$cmakeFlags -DUDEV_RULES_INSTALL_DIR=$out/etc/udev/rules.d" - ''; - postInstall = '' - mkdir -p $python/lib/${python.libPrefix}/site-packages/ - touch $python/lib/${python.libPrefix}/site-packages/ - cp ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/ - - substitute ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/iio.py \ - --replace 'libiio.so.0' $lib/lib/libiio.so.0 + # Move Python bindings into a separate output. + moveToOutput ${python.sitePackages} "$python" ''; meta = with stdenv.lib; { description = "API for interfacing with the Linux Industrial I/O Subsystem"; - homepage = "https://github.com/analogdevicesinc/libiio"; - license = licenses.lgpl21; - platforms = platforms.linux; + homepage = "https://github.com/analogdevicesinc/libiio"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; maintainers = with maintainers; [ thoughtpolice ]; }; } diff --git a/nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch b/nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch new file mode 100644 index 000000000000..dad35851cdc6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch @@ -0,0 +1,38 @@ +diff --git a/bindings/python/iio.py b/bindings/python/iio.py +index 5306daa..f8962ee 100644 +--- a/bindings/python/iio.py ++++ b/bindings/python/iio.py +@@ -229,9 +229,9 @@ if "Windows" in _system(): + _iiolib = "libiio.dll" + else: + # Non-windows, possibly Posix system +- _iiolib = "iio" ++ _iiolib = "@libiio@" + +-_lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True) ++_lib = _cdll(_iiolib, use_errno=True, use_last_error=True) + + _get_backends_count = _lib.iio_get_backends_count + _get_backends_count.restype = c_uint +diff --git a/bindings/python/setup.py.cmakein b/bindings/python/setup.py.cmakein +index cd14e2e..516c409 100644 +--- a/bindings/python/setup.py.cmakein ++++ b/bindings/python/setup.py.cmakein +@@ -62,7 +62,7 @@ class InstallWrapper(install): + _iiolib = "libiio.dll" + else: + # Non-windows, possibly Posix system +- _iiolib = "iio" ++ _iiolib = "@libiio@" + try: + import os + +@@ -72,7 +72,7 @@ class InstallWrapper(install): + fulllibpath = find_recursive(destdir, "libiio.so") + _lib = _cdll(fulllibpath, use_errno=True, use_last_error=True) + else: +- _lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True) ++ _lib = _cdll(_iiolib, use_errno=True, use_last_error=True) + if not _lib._name: + raise OSError + except OSError: |