diff options
author | Jonathan Yantis | 2015-06-11 08:02:20 -0700 |
---|---|---|
committer | Jonathan Yantis | 2015-06-11 08:02:20 -0700 |
commit | bc5265502d0662023cf725235922412e5c07fee7 (patch) | |
tree | fa7f893e4a177043f35625e0fec4a4083c84b63d | |
download | aur-bc5265502d0662023cf725235922412e5c07fee7.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 41 | ||||
-rw-r--r-- | PKGBUILD | 192 |
2 files changed, 233 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..169be5a1e959 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,41 @@ +pkgbase = xgboost-git + pkgver = r1639.00a8076 + pkgrel = 2 + url = https://github.com/tqchen/xgboost + arch = x86_64 + license = APACHE + makedepends = git + source = git+https://github.com/tqchen/xgboost.git + sha256sums = SKIP + +pkgname = xgboost-git + pkgdesc = An optimized general purpose gradient boosting library. Which is parallelized using OpenMP. It implements machine learning algorithm under gradient boosting framework, including generalized linear model and gradient boosted regression tree + depends = python + depends = bash + optdepends = python-xgboost-git: Python 3 Wrapper + optdepends = python2-xgboost-git: Python 2 Wrapper + provides = xgboost + conflicts = xgboost + +pkgname = python-xgboost-git + pkgdesc = XGBoost Python 3 wrapper + depends = xgboost + depends = python + depends = python-numpy + depends = python-scipy + depends = python-setuptools + depends = bash + provides = python-xgboost + conflicts = python-xgboost + +pkgname = python2-xgboost-git + pkgdesc = XGBoost Python 2 wrapper + depends = xgboost + depends = python2 + depends = python2-numpy + depends = python2-scipy + depends = python2-setuptools + depends = bash + provides = python2-xgboost + conflicts = python2-xgboost + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..eec9dd669328 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,192 @@ +# Maintainer: jyantis <yantis@yantis.net> + +# R package isn't compiling anymore so temp removed. + +pkgbase=xgboost-git +pkgname=('xgboost-git' + 'python-xgboost-git' + 'python2-xgboost-git' + ) + # 'r-xgboost-git' +pkgver=r1639.00a8076 +pkgrel=2 +url='https://github.com/tqchen/xgboost' +license=('APACHE') +source=('git+https://github.com/tqchen/xgboost.git') +sha256sums=('SKIP') +makedepends=('git') +arch=('x86_64') +pkgver() { + cd xgboost + set -o pipefail + git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g' || + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +package_xgboost-git() { + pkgdesc='An optimized general purpose gradient boosting library. Which is parallelized using OpenMP. It implements machine learning algorithm under gradient boosting framework, including generalized linear model and gradient boosted regression tree' + provides=('xgboost') + conflicts=('xgboost') + depends=('python' 'bash') + optdepends=('python-xgboost-git: Python 3 Wrapper' + 'python2-xgboost-git: Python 2 Wrapper') + # 'r-xgboost-git: R Wrapper' + + cd xgboost + make + + # Install License + install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + # Install Documentation + install -D -m644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md" + + # Install main executable + install -Dm755 "xgboost" "$pkgdir/usr/bin/xgboost" + + # Install shared libraries + mkdir -p $pkgdir/usr/lib/ + install -Dm644 wrapper/*.so "${pkgdir}/usr/lib/" + + mkdir -p $pkgdir/opt/xgboost + + # Copy the python wrapper to opt/xgboost + cp -r wrapper $pkgdir/opt/xgboost + + # Copy the demos to opt/xgboost + cp -r demo $pkgdir/opt/xgboost +} + +# package_r-xgboost-git() { +# msg "You will need to have these R packages installed to use this" +# msg "Type this in R:" +# msg "install.packages(\"data.table\", repos=\"http://cran.rstudio.com/\")" +# msg "install.packages(\"magrittr\", repos=\"http://cran.rstudio.com/\")" +# msg "install.packages(\"DiagrammeR\", repos=\"http://cran.rstudio.com/\")" +# msg "install.packages(\"vcd\", repos=\"http://cran.rstudio.com/\")" + +# pkgdesc="XGBoost R wrapper" +# depends=('xgboost' 'r') +# conflicts=('r-xgboost') +# provides=('r-xgboost') +# makedepends=('xgboost') + +# cd xgboost + +# # Hotpatch Error: T used instead of TRUE +# for file in $(find . -name '*.R' -print); do +# sed -i 's/ = T)/ = TRUE)/' $file +# done + +# for file in $(find . -name '*.Rd' -print); do +# sed -i 's/ = T)/ = TRUE)/' $file +# done + +# make clean +# rm -rf xgboost xgboost*.tar.gz +# cp -r R-package xgboost +# rm -rf xgboost/inst/examples/*.buffer +# rm -rf xgboost/inst/examples/*.model +# rm -rf xgboost/inst/examples/dump* +# rm -rf xgboost/src/*.o xgboost/src/*.so xgboost/src/*.dll +# rm -rf xgboost/demo/*.model xgboost/demo/*.buffer xgboost/demo/*.txt +# rm -rf xgboost/demo/runall.R +# cp -r src xgboost/src/src +# mkdir xgboost/src/wrapper +# cp wrapper/xgboost_wrapper.h xgboost/src/wrapper +# cp wrapper/xgboost_wrapper.cpp xgboost/src/wrapper +# cp ./LICENSE xgboost +# cat R-package/src/Makevars|sed '2s/.*/PKGROOT=./' > xgboost/src/Makevars +# cat R-package/src/Makevars.win|sed '2s/.*/PKGROOT=./' > xgboost/src/Makevars.win +# R CMD build xgboost +# rm -rf xgboost +# R CMD INSTALL --as-cran xgboost*.tar.gz +# } + +package_python2-xgboost-git() { + pkgdesc="XGBoost Python 2 wrapper" + depends=('xgboost' + 'python2' + 'python2-numpy' + 'python2-scipy' + 'python2-setuptools' + 'bash') + conflicts=('python2-xgboost') + provides=('python2-xgboost') + makedepends=('xgboost') + + cd xgboost + + msg "Patching any #!/usr/bin/python to #!/usr/bin/python2" + for file in $(find . -name '*.py' -print); do + sed -r -i 's_^#!.*/usr/bin/python(\s|$)_#!/usr/bin/python2_' $file + sed -r -i 's_^#!.*/usr/bin/env(\s)*python(\s|$)_#!/usr/bin/env python2_' $file + done + + msg "Patching it so it can find the shared library" + for file in $(find . -name '*.py' -print); do + sed -i 's/os.path.dirname(__file__)/"\/usr\/lib" /' $file + done + + msg "Patching out the sys path usage since we don't use it anymore" + for file in $(find . -name '*.py' -print); do + sed -i 's/sys.path.append/# sys.path.append/' $file + done + + msg "Patching in our module" + for file in $(find . -name '*.py' -print); do + sed -i 's/import xgboost/from xgboost import xgboost/' $file + done + + msg "Since no setup.py lets set it up by hand" + pydir=`python2 -c "from distutils.sysconfig import get_python_lib; \ + print get_python_lib()"` + mkdir -p "${pkgdir}/${pydir}" + mkdir -p "${pkgdir}/${pydir}/xgboost" + touch "${pkgdir}/${pydir}/xgboost/__init__.py" + + cp wrapper/xgboost.py "${pkgdir}/${pydir}/xgboost" + cp -R demo "${pkgdir}/${pydir}/xgboost" +} + +package_python-xgboost-git() { + pkgdesc="XGBoost Python 3 wrapper" + depends=('xgboost' + 'python' + 'python-numpy' + 'python-scipy' + 'python-setuptools' + 'bash') + conflicts=('python-xgboost') + provides=('python-xgboost') + makedepends=('xgboost') + + cd xgboost + + msg "Patching it so it can find the shared library" + for file in $(find . -name '*.py' -print); do + sed -i 's/os.path.dirname(__file__)/"\/usr\/lib" /' $file + done + + msg "Patching out the sys path usage since we don't use it anymore" + for file in $(find . -name '*.py' -print); do + sed -i 's/sys.path.append/# sys.path.append/' $file + done + + msg "Patching in our module" + for file in $(find . -name '*.py' -print); do + sed -i 's/import xgboost/from xgboost import xgboost/' $file + done + + msg "Since no setup.py lets set it up by hand" + pydir=`python -c "from distutils.sysconfig import get_python_lib; \ + print(get_python_lib())"` + mkdir -p "${pkgdir}/${pydir}" + mkdir -p "${pkgdir}/${pydir}/xgboost" + touch "${pkgdir}/${pydir}/xgboost/__init__.py" + + cp wrapper/xgboost.py "${pkgdir}/${pydir}/xgboost" + cp -R demo "${pkgdir}/${pydir}/xgboost" +} + +# vim:set ts=2 sw=2 et: |