[arch-commits] Commit in python-pytorch/trunk (PKGBUILD)

Konstantin Gizdov kgizdov at archlinux.org
Mon Apr 15 18:04:05 UTC 2019


    Date: Monday, April 15, 2019 @ 18:04:04
  Author: kgizdov
Revision: 451714

fix runtime path dependence

Modified:
  python-pytorch/trunk/PKGBUILD

----------+
 PKGBUILD |   82 +++++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 58 insertions(+), 24 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-04-15 17:58:54 UTC (rev 451713)
+++ PKGBUILD	2019-04-15 18:04:04 UTC (rev 451714)
@@ -5,12 +5,12 @@
 pkgname=("python-pytorch" "python-pytorch-cuda")
 _pkgname="pytorch"
 pkgver=1.0.1
-pkgrel=7
+pkgrel=8
 pkgdesc="Tensors and Dynamic neural networks in Python with strong GPU acceleration"
 arch=('x86_64')
 url="https://pytorch.org"
 license=('BSD')
-depends=('python' 'python-yaml' 'python-numpy' 'opencv' 'nccl')
+depends=('opencv' 'openmp' 'nccl' 'pybind11' 'python' 'python-yaml' 'python-numpy')
 makedepends=('python' 'python-setuptools' 'python-yaml' 'python-numpy' 'cmake' 'cuda' 'cudnn' 'git')
 source=("${_pkgname}-${pkgver}::git+https://github.com/pytorch/pytorch.git#tag=v$pkgver")
 sha256sums=('SKIP')
@@ -69,21 +69,38 @@
   install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
   # put CMake files in correct place
   install -d "${pkgdir}/usr/lib/cmake"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/share/cmake"/* \
+  pytorchpath="usr/lib/python$(get_pyver)/site-packages/torch"
+  mv "${pkgdir}/${pytorchpath}/share/cmake"/* \
      "${pkgdir}/usr/lib/cmake/"
   # put C++ API in correct place
   install -d "${pkgdir}/usr/bin"
   install -d "${pkgdir}/usr/include"
-  install -d "${pkgdir}/usr/lib"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib/include"/* \
-     "${pkgdir}/usr/include/"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib/THCUNN.h" \
-     "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib/THNN.h" \
-     "${pkgdir}/usr/include/"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib"/*.so \
-     "${pkgdir}/usr/lib/"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib"/torch_shm_manager \
-     "${pkgdir}/usr/bin/"
+  install -d "${pkgdir}/usr/lib/pytorch"
+  torchlibpath="${pytorchpath}/lib"
+  mv "${pkgdir}/${torchlibpath}/include"/* "${pkgdir}/usr/include/"
+  mv "${pkgdir}/${torchlibpath}/THCUNN.h" "${pkgdir}/usr/include/"
+  mv "${pkgdir}/${torchlibpath}/THNN.h" "${pkgdir}/usr/include/"
+  mv "${pkgdir}/${torchlibpath}"/*.so* "${pkgdir}/usr/lib/pytorch/"
+  mv "${pkgdir}/${torchlibpath}/torch_shm_manager" "${pkgdir}/usr/bin/"
+  # clean up duplicates
+  # TODO: move towards direct shared library dependecy of:
+  #   c10, caffe2, libcpuinfo, CUDA RT, gloo, GTest, Intel MKL,
+  #   NVRTC, ONNX, protobuf, libthreadpool, QNNPACK
+  rm -rf "${pkgdir}/${pytorchpath}/share/cmake"
+  rm -rf "${pkgdir}/${torchlibpath}/include"
+  rm -rf "${pkgdir}/usr/include/pybind11"
+  rm -rf "${pkgdir}/usr/lib/pytorch/libiomp5.so"  # remove openmp lib
+  # python module is hardcoded to look there at runtime
+  ln -s /usr/include/THCUNN.h "${pkgdir}/${torchlibpath}/"
+  ln -s /usr/include/THNN.h "${pkgdir}/${torchlibpath}/"
+  ln -s /usr/include "${pkgdir}/${torchlibpath}/include"
+  find "${pkgdir}"/usr/lib/pytorch -type f -name "*.so*" -print0 | while read -rd '' _lib; do
+    ln -s ${_lib#"$pkgdir"} "${pkgdir}/${torchlibpath}/"
+  done
+  ln -s /usr/bin/torch_shm_manager "${pkgdir}/${torchlibpath}/torch_shm_manager"
+  # ldconfig
+  install -d "${pkgdir}/etc/ld.so.conf.d"
+  echo '/usr/lib/pytorch' > "${pkgdir}/etc/ld.so.conf.d/pytorch.conf"
 }
 
 package_python-pytorch-cuda() {
@@ -95,21 +112,38 @@
   install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
   # put CMake files in correct place
   install -d "${pkgdir}/usr/lib/cmake"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/share/cmake"/* \
+  pytorchpath="usr/lib/python$(get_pyver)/site-packages/torch"
+  mv "${pkgdir}/${pytorchpath}/share/cmake"/* \
      "${pkgdir}/usr/lib/cmake/"
   # put C++ API in correct place
   install -d "${pkgdir}/usr/bin"
   install -d "${pkgdir}/usr/include"
-  install -d "${pkgdir}/usr/lib"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib/include"/* \
-     "${pkgdir}/usr/include/"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib/THCUNN.h" \
-     "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib/THNN.h" \
-     "${pkgdir}/usr/include/"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib"/*.so \
-     "${pkgdir}/usr/lib/"
-  mv "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/torch/lib"/torch_shm_manager \
-     "${pkgdir}/usr/bin/"
+  install -d "${pkgdir}/usr/lib/pytorch"
+  torchlibpath="${pytorchpath}/lib"
+  mv "${pkgdir}/${torchlibpath}/include"/* "${pkgdir}/usr/include/"
+  mv "${pkgdir}/${torchlibpath}/THCUNN.h" "${pkgdir}/usr/include/"
+  mv "${pkgdir}/${torchlibpath}/THNN.h" "${pkgdir}/usr/include/"
+  mv "${pkgdir}/${torchlibpath}"/*.so* "${pkgdir}/usr/lib/pytorch/"
+  mv "${pkgdir}/${torchlibpath}/torch_shm_manager" "${pkgdir}/usr/bin/"
+  # clean up duplicates
+  # TODO: move towards direct shared library dependecy of:
+  #   c10, caffe2, libcpuinfo, CUDA RT, gloo, GTest, Intel MKL,
+  #   NVRTC, ONNX, protobuf, libthreadpool, QNNPACK
+  rm -rf "${pkgdir}/${pytorchpath}/share/cmake"
+  rm -rf "${pkgdir}/${torchlibpath}/include"
+  rm -rf "${pkgdir}/usr/include/pybind11"
+  rm -rf "${pkgdir}/usr/lib/pytorch/libiomp5.so"  # remove openmp lib
+  # python module is hardcoded to look there at runtime
+  ln -s /usr/include/THCUNN.h "${pkgdir}/${torchlibpath}/"
+  ln -s /usr/include/THNN.h "${pkgdir}/${torchlibpath}/"
+  ln -s /usr/include "${pkgdir}/${torchlibpath}/include"
+  find "${pkgdir}"/usr/lib/pytorch -type f -name "*.so*" -print0 | while read -rd '' _lib; do
+    ln -s ${_lib#"$pkgdir"} "${pkgdir}/${torchlibpath}/"
+  done
+  ln -s /usr/bin/torch_shm_manager "${pkgdir}/${torchlibpath}/torch_shm_manager"
+  # ldconfig
+  install -d "${pkgdir}/etc/ld.so.conf.d"
+  echo '/usr/lib/pytorch' > "${pkgdir}/etc/ld.so.conf.d/pytorch.conf"
 }
 
 # vim:set ts=2 sw=2 et:



More information about the arch-commits mailing list