diff options
author | Daniel Bermond | 2017-02-28 00:47:16 -0300 |
---|---|---|
committer | Daniel Bermond | 2017-02-28 00:47:16 -0300 |
commit | be35346318aee8b1544b83553e669760a9945ac6 (patch) | |
tree | c495e0b5fa83de6f29b675295aad458fbdf0867e | |
parent | cc91c9cf3e258720f1df9a60b3d24bbf890721de (diff) | |
download | aur-be35346318aee8b1544b83553e669760a9945ac6.tar.gz |
Fixed compilation with gcc6. Major rewrite.
First commit after adoption.
This package needed a major rewrite as follows:
1) description:
a) removed the reference to $pkgname to avoid namcap complain.
b) updated description.
2) url:
Changed URL to the GitHub one since openni.org is redirecting
to apple.com.
3) license:
changed from GPL to APACHE as it is the correct one.
4) depends:
a) added missed glu dependency (build fails in chroot).
b) since both freeglut and glu triggers mesa installation, mesa can
be removed.
5) makedepends:
added dos2unix. See item 7 - prepare().
6) source:
source was a clone of the upstream git repository but this is not a
git package (no -git in the name), so it was not making making sense
to do a git clone. Changed this to a plain zip download. Please note
that it will use the stable version.
7) prepare():
added this function to apply a patch from Debian that fixes building
with gcc6. It was necessary to use dos2unix since the source has
Windows line endings.
8) build():
a) removed the steps that were being made before running make.
I could not identify any difference without them.
b) removed the -lGL flag as it is already added by the building
process.
9) package():
a) code rewrite, now cleaner IMHO and commented.
b) changed the config directory from /usr/share/openni to
/etc/openni as used by Debian.
c) removed the installation of all Sample binaries because they
seem to be useless.
d) added installation of documentation (pre-built pdf and chm).
e) added installation of the APACHE license and the file with
copyright.
10) install file:
a) added mention of openni-primesense-sensor.
b) changed mention of sensorkinect-git (removed from AUR) to
sensorkinect.
11) pkg-config file:
a) changed name from OpenNI2 to openni.
b) updated description.
12) readability and cosmetics:
a) changed indentation from 2 to 4 spaces.
b) changed $_platform variable to $_architecture.
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | 0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch | 81 | ||||
-rw-r--r-- | PKGBUILD | 113 | ||||
-rw-r--r-- | libopenni.pc | 4 | ||||
-rw-r--r-- | openni.install | 2 |
5 files changed, 160 insertions, 62 deletions
@@ -1,23 +1,25 @@ # Generated by mksrcinfo v8 -# Thu Dec 10 19:02:06 UTC 2015 +# Tue Feb 28 03:46:22 UTC 2017 pkgbase = openni - pkgdesc = The OpenNI Framework provides the interface for physical devices and for middleware components + pkgdesc = An interface for physical devices and for middleware components pkgver = 1.5.7.10 - pkgrel = 2 - url = http://www.openni.org/ + pkgrel = 3 + url = https://github.com/OpenNI/OpenNI/ install = openni.install arch = i686 arch = x86_64 - license = GPL - makedepends = git + license = APACHE + makedepends = dos2unix depends = freeglut - depends = mesa + depends = glu depends = libusb depends = java-environment - source = openni-build::git+https://github.com/OpenNI/OpenNI.git#tag=Stable-1.5.7.10 + source = OpenNI-Stable-1.5.7.10.tar.gz::https://github.com/OpenNI/OpenNI/archive/Stable-1.5.7.10.tar.gz + source = 0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch source = libopenni.pc - md5sums = SKIP - md5sums = 846a9b0be1dbee5f1d4619db42034978 + sha256sums = 34b0bbf68633bb213dcb15408f979d5384bdceb04e151fa519e107a12e225852 + sha256sums = 69cbbde667d2ad18bfb3e9933bda05d0cae36d575a4082912bbc42b7c754cd8c + sha256sums = 90b67ed122eb33df96d9935421d79b620f87e791d8773e00c1406ebafd01a364 pkgname = openni diff --git a/0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch b/0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch new file mode 100644 index 000000000000..bdb71f9f951d --- /dev/null +++ b/0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch @@ -0,0 +1,81 @@ +From: Jochen Sprickerhof <git@jochen.sprickerhof.de> +Date: Sat, 23 Jan 2016 15:22:26 +0100 +Subject: Rename equivalent to fix compilation on gcc6 + +Closes: #811848 +--- + Samples/NiViewer/glh/glh_linear.h | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/Samples/NiViewer/glh/glh_linear.h b/Samples/NiViewer/glh/glh_linear.h +index 422c05f..207adc5 100644 +--- a/Samples/NiViewer/glh/glh_linear.h ++++ b/Samples/NiViewer/glh/glh_linear.h +@@ -77,7 +77,7 @@ glh_linear.h + #define GLH_EPSILON GLH_REAL(10e-6) + #define GLH_PI GLH_REAL(3.1415926535897932384626433832795) + +-#define equivalent(a,b) (((a < b + GLH_EPSILON) && (a > b - GLH_EPSILON)) ? true : false) ++#define glh_equivalent(a,b) (((a < b + GLH_EPSILON) && (a > b - GLH_EPSILON)) ? true : false) + + namespace glh + { +@@ -1093,7 +1093,7 @@ namespace glh + + real norm = q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3]; + +- s = (equivalent(norm,GLH_ZERO)) ? GLH_ZERO : ( GLH_TWO / norm ); ++ s = (glh_equivalent(norm,GLH_ZERO)) ? GLH_ZERO : ( GLH_TWO / norm ); + + xs = q[0] * s; + ys = q[1] * s; +@@ -1194,7 +1194,7 @@ namespace glh + theta *= real(0.5); + real sin_theta = real(sin(theta)); + +- if (!equivalent(sqnorm,GLH_ONE)) ++ if (!glh_equivalent(sqnorm,GLH_ONE)) + sin_theta /= real(sqrt(sqnorm)); + x = sin_theta * axis.v[0]; + y = sin_theta * axis.v[1]; +@@ -1216,14 +1216,14 @@ namespace glh + + alpha = p1.dot(p2); + +- if(equivalent(alpha,GLH_ONE)) ++ if(glh_equivalent(alpha,GLH_ONE)) + { + *this = identity(); + return *this; + } + + // ensures that the anti-parallel case leads to a positive dot +- if(equivalent(alpha,-GLH_ONE)) ++ if(glh_equivalent(alpha,-GLH_ONE)) + { + vec3 v; + +@@ -1280,7 +1280,7 @@ namespace glh + void normalize() + { + real rnorm = GLH_ONE / real(sqrt(w * w + x * x + y * y + z * z)); +- if (equivalent(rnorm, GLH_ZERO)) ++ if (glh_equivalent(rnorm, GLH_ZERO)) + return; + x *= rnorm; + y *= rnorm; +@@ -1439,10 +1439,10 @@ namespace glh + inline + bool operator == ( const quaternion & q1, const quaternion & q2 ) + { +- return (equivalent(q1.x, q2.x) && +- equivalent(q1.y, q2.y) && +- equivalent(q1.z, q2.z) && +- equivalent(q1.w, q2.w) ); ++ return (glh_equivalent(q1.x, q2.x) && ++ glh_equivalent(q1.y, q2.y) && ++ glh_equivalent(q1.z, q2.z) && ++ glh_equivalent(q1.w, q2.w) ); + } + + inline @@ -1,63 +1,78 @@ -# Maintainer: Benjamin Chretien <chretien at lirmm dot fr> +# Maintainer : Daniel Bermond < yahoo-com: danielbermond > +# Contributor: Benjamin Chretien <chretien at lirmm dot fr> # Contributor: Sven Schneider <archlinux.sandmann@googlemail.com> # Contributor: bugix # Contributor: Lubosz Sarnecki <lubosz at gmail> pkgname=openni pkgver=1.5.7.10 -pkgrel=2 -pkgdesc="The OpenNI Framework provides the interface for physical devices and for middleware components" +pkgrel=3 +pkgdesc="An interface for physical devices and for middleware components" arch=('i686' 'x86_64') -url="http://www.openni.org/" -license=('GPL') -depends=('freeglut' 'mesa' 'libusb' 'java-environment') -makedepends=('git') -install="openni.install" - -_gitroot="github.com/OpenNI/OpenNI.git" -_gitname="openni" -_gitbranch="Stable" - -source=("$_gitname-build"::"git+https://$_gitroot"#tag=$_gitbranch-$pkgver - "libopenni.pc") -md5sums=('SKIP' - '846a9b0be1dbee5f1d4619db42034978') - -if [ "${CARCH}" = "x86_64" ]; then - _platform=x64 -else - _platform=x86 -fi +url="https://github.com/OpenNI/OpenNI/" +license=('APACHE') +depends=('freeglut' 'glu' 'libusb' 'java-environment') +makedepends=('dos2unix') +install="${pkgname}.install" +_srcprefix="OpenNI-Stable" +source=("${_srcprefix}-${pkgver}.tar.gz"::"https://github.com/OpenNI/OpenNI/archive/Stable-${pkgver}.tar.gz" + '0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch' + 'libopenni.pc') +sha256sums=('34b0bbf68633bb213dcb15408f979d5384bdceb04e151fa519e107a12e225852' + '69cbbde667d2ad18bfb3e9933bda05d0cae36d575a4082912bbc42b7c754cd8c' + '90b67ed122eb33df96d9935421d79b620f87e791d8773e00c1406ebafd01a364') +prepare() { + cd "${srcdir}/${_srcprefix}-${pkgver}" + dos2unix Samples/NiViewer/glh/glh_linear.h + patch -Np1 -i "${srcdir}/0016-Rename-equivalent-to-fix-compilation-on-gcc6.patch" +} build() { - find "${srcdir}/${_gitname}-build/Samples" -type f -exec sed -i 's#../../../../Data/SamplesConfig.xml#/usr/share/openni/SamplesConfig.xml#g' {} \; - - cd "${srcdir}/${_gitname}-build/Platform/Linux/Build" - - if [ -f Common ]; then ln -fs `cat Common` Common; fi - - # BUILD - LDFLAGS+=' -lGL' make + cd "${srcdir}/${_srcprefix}-${pkgver}/Platform/Linux/Build" + make } package() { - install -d -m755 "${pkgdir}/usr/"{lib,bin,share/openni,include/ni/Linux-x86} - install -d -m755 "${pkgdir}/var/lib/ni" - - cd "${srcdir}/${_gitname}-build/Include" - install *.h "${pkgdir}/usr/include/ni" - install Linux-x86/* "${pkgdir}/usr/include/ni/Linux-x86" - - cd "${srcdir}/${_gitname}-build/Data" - install SamplesConfig.xml "${pkgdir}/usr/share/openni" - - cd "${srcdir}/${_gitname}-build/Platform/Linux/Bin/${_platform}-Release" - install niLicense niReg "${pkgdir}/usr/bin" - install Sample* "${pkgdir}/usr/bin" - - install libnimCodecs.so libnimMockNodes.so libnimRecorder.so libOpenNI.so libOpenNI.jni.so "${pkgdir}/usr/lib" - - install -d -m755 "${pkgdir}/usr/lib/pkgconfig" - cp "${srcdir}/libopenni.pc" "${pkgdir}/usr/lib/pkgconfig/" + if [ "${CARCH}" = "x86_64" ] + then + _architecture="x64" + elif [ "${CARCH}" = "i686" ] + then + _architecture="x86" + fi + + # directories creation + mkdir -p "${pkgdir}/usr/"{bin,include/ni/{Linux-Arm,Linux-x86}} + mkdir -p "${pkgdir}/usr/"{lib/pkgconfig,share/{doc/"${pkgname}",licenses/"${pkgname}"}} + mkdir -p "${pkgdir}/etc/openni" # config (populated at build time) + mkdir -p "${pkgdir}/var/lib/ni" # config (populated at install time) + + # binaries and libraries + cd "${srcdir}/${_srcprefix}-${pkgver}/Platform/Linux/Bin/${_architecture}-Release" + install -D -m755 niLicense niReg NiViewer "${pkgdir}/usr/bin" + install -D -m755 *.so "${pkgdir}/usr/lib" + + # includes + cd "${srcdir}/${_srcprefix}-${pkgver}/Include" + install -D -m644 *.h "${pkgdir}/usr/include/ni" + install -D -m755 Linux-Arm/* "${pkgdir}/usr/include/ni/Linux-Arm" + install -D -m755 Linux-x86/* "${pkgdir}/usr/include/ni/Linux-x86" + + # config + cd "${srcdir}/${_srcprefix}-${pkgver}/Data" + install -D -m644 SamplesConfig.xml "${pkgdir}/etc/openni" + + # pkg-config file + cd "$srcdir" + install -D -m644 libopenni.pc "${pkgdir}/usr/lib/pkgconfig" + + # documentation + cd "${srcdir}/${_srcprefix}-${pkgver}/Documentation" + install -D -m644 * "${pkgdir}/usr/share/doc/${pkgname}" + + # license + cd "${srcdir}/${_srcprefix}-${pkgver}" + install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}" + install -D -m644 NOTICE "${pkgdir}/usr/share/licenses/${pkgname}" } diff --git a/libopenni.pc b/libopenni.pc index 5a9b1267a1a4..5d3efc07820c 100644 --- a/libopenni.pc +++ b/libopenni.pc @@ -3,8 +3,8 @@ exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include/ni -Name: OpenNI2 -Description: A general purpose driver for all OpenNI cameras. +Name: openni +Description: An interface for physical devices and for middleware components Version: 1.5.7.10 Cflags: -I${includedir} Libs: -L${libdir} -lOpenNI diff --git a/openni.install b/openni.install index 94ec3d5a9264..3ef4704430a7 100644 --- a/openni.install +++ b/openni.install @@ -5,7 +5,7 @@ post_install() { /usr/bin/niReg /usr/lib/$module done - echo "Don't forget to install a hardware driver such as sensorkinect-git" + echo "Don't forget to install a hardware driver such as openni-primesense-sensor or sensorkinect" } pre_remove() { |