summaryrefslogtreecommitdiffstats
path: root/meta-raspberrypi/recipes-devtools/python
diff options
context:
space:
mode:
authorDave Cobbley <david.j.cobbley@linux.intel.com>2018-08-14 10:05:37 -0700
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-08-22 21:26:31 -0400
commiteb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch)
treede291a73dc37168da6370e2cf16c347d1eba9df8 /meta-raspberrypi/recipes-devtools/python
parent9c3cf826d853102535ead04cebc2d6023eff3032 (diff)
downloadtalos-openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.gz
talos-openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.zip
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-raspberrypi/recipes-devtools/python')
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch33
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb15
-rw-r--r--meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb24
-rw-r--r--meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch294
-rw-r--r--meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb14
-rw-r--r--meta-raspberrypi/recipes-devtools/python/rpio/0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch30
-rw-r--r--meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb23
7 files changed, 433 insertions, 0 deletions
diff --git a/meta-raspberrypi/recipes-devtools/python/python-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch b/meta-raspberrypi/recipes-devtools/python/python-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch
new file mode 100644
index 000000000..4a93a1ce9
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python-rtimu/0001-include-asm-ioctl.h-for-ioctl-define.patch
@@ -0,0 +1,33 @@
+From c3aa4af56652b403e304ea5f321acfe289e42922 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Jan 2016 16:07:14 -0800
+Subject: [PATCH] include asm/ioctl.h for ioctl() define
+
+also fixes errors e.g.
+
+../../RTIMULib/RTIMUHal.cpp:208:29: error: '_IOC_SIZEBITS' was not
+declared in this scope
+ return ioctl(m_SPI, SPI_IOC_MESSAGE(1), &wrIOC);
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ RTIMULib/RTIMUHal.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/RTIMULib/RTIMUHal.cpp b/RTIMULib/RTIMUHal.cpp
+index f9c3d15..d968326 100644
+--- a/RTIMULib/RTIMUHal.cpp
++++ b/RTIMULib/RTIMUHal.cpp
+@@ -29,6 +29,7 @@
+ #if !defined(WIN32) && !defined(__APPLE__)
+
+ #include <linux/spi/spidev.h>
++#include <asm/ioctl.h>
+
+ RTIMUHal::RTIMUHal()
+ {
+--
+2.7.0
+
diff --git a/meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb b/meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb
new file mode 100644
index 000000000..63c92b381
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "RTIMULib is a C++ and Python library that makes it easy to use 9-dof and \
+10-dof IMUs with embedded Linux systems"
+HOMEPAGE = "https://github.com/RPi-Distro/RTIMULib/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://../../LICENSE;md5=96cdecb41125f498958e09b72faf318e"
+
+SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master \
+ file://0001-include-asm-ioctl.h-for-ioctl-define.patch;patchdir=../.. \
+ "
+SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178"
+
+S = "${WORKDIR}/git/Linux/python/"
+
+inherit setuptools
diff --git a/meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb b/meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb
new file mode 100644
index 000000000..f7c4e349d
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Python module to control the Raspberry Pi Sense HAT used in the Astro Pi mission"
+HOMEPAGE = "https://github.com/RPi-Distro/python-sense-hat"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda"
+
+inherit setuptools pypi
+
+PYPI_PACKAGE = "sense-hat"
+
+SRC_URI[md5sum] = "69929250cb72349a8a82edf2584b1d83"
+SRC_URI[sha256sum] = "f000998d042d96ed722d459312e1bebd0107f9f3015cd34b3e4fabcab9c800af"
+
+DEPENDS += " \
+ jpeg \
+ zlib \
+ freetype \
+ "
+
+RDEPENDS_${PN} += " \
+ python-numpy \
+ python-rtimu \
+ python-imaging \
+ "
diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch b/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch
new file mode 100644
index 000000000..bd971793a
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-Remove-nested-functions.patch
@@ -0,0 +1,294 @@
+From 23d7ab77865f8b17042f5cd4c6720cca475e0eb5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jan 2016 14:27:10 -0800
+Subject: [PATCH] Remove nested functions
+
+nested functions are not supported on llvm/clang compiler, replacing
+them helps make code portable and be compilable with non-gcc compilers
+additionally fix the diagnostic messages clang reported
+
+source/c_gpio.c:130:18: warning: comparison of distinct pointer types
+('volatile uint32_t *' (aka 'volatile unsigned int *') an
+d 'void *') [-Wcompare-distinct-pointer-types]
+ if (gpio_map < MAP_FAILED)
+ ~~~~~~~~ ^ ~~~~~~~~~~
+
+ source/c_gpio.c:89:13: warning: variable 'peri_base' is used
+uninitialized whenever 'if' condition is false [-Wsometimes-uninit
+ialized]
+ if (fread(buf, 1, sizeof buf, fp) == sizeof buf) {
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+source/c_gpio.c:116:17: note: uninitialized use occurs here
+ gpio_base = peri_base + GPIO_BASE_OFFSET;
+ ^~~~~~~~~
+source/c_gpio.c:89:9: note: remove the 'if' if its condition is always
+true
+ if (fread(buf, 1, sizeof buf, fp) == sizeof buf) {
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+source/c_gpio.c:64:23: note: initialize the variable 'peri_base' to
+silence this warning
+ uint32_t peri_base;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ source/c_gpio.c | 6 +--
+ source/py_gpio.c | 135 ++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 71 insertions(+), 70 deletions(-)
+
+diff --git a/source/c_gpio.c b/source/c_gpio.c
+index c96a2b0..b69880f 100644
+--- a/source/c_gpio.c
++++ b/source/c_gpio.c
+@@ -61,7 +61,7 @@ int setup(void)
+ {
+ int mem_fd;
+ uint8_t *gpio_mem;
+- uint32_t peri_base;
++ uint32_t peri_base = 0;
+ uint32_t gpio_base;
+ unsigned char buf[4];
+ FILE *fp;
+@@ -73,7 +73,7 @@ int setup(void)
+ if ((mem_fd = open("/dev/gpiomem", O_RDWR|O_SYNC)) > 0)
+ {
+ gpio_map = (uint32_t *)mmap(NULL, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, mem_fd, 0);
+- if ((uint32_t)gpio_map < 0) {
++ if (gpio_map == MAP_FAILED) {
+ return SETUP_MMAP_FAIL;
+ } else {
+ return SETUP_OK;
+@@ -127,7 +127,7 @@ int setup(void)
+
+ gpio_map = (uint32_t *)mmap( (void *)gpio_mem, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, mem_fd, gpio_base);
+
+- if ((uint32_t)gpio_map < 0)
++ if (gpio_map == MAP_FAILED)
+ return SETUP_MMAP_FAIL;
+
+ return SETUP_OK;
+diff --git a/source/py_gpio.c b/source/py_gpio.c
+index d54cc7f..007bad5 100644
+--- a/source/py_gpio.c
++++ b/source/py_gpio.c
+@@ -69,6 +69,20 @@ static int mmap_gpio_mem(void)
+ return 0;
+ }
+ }
++static inline int cleanup_one(unsigned int gpio)
++{
++ // clean up any /sys/class exports
++ event_cleanup(gpio);
++
++ // set everything back to input
++ if (gpio_direction[gpio] != -1) {
++ setup_gpio(gpio, INPUT, PUD_OFF);
++ gpio_direction[gpio] = -1;
++ return 1;
++ }
++ return 0;
++}
++
+
+ // python function cleanup(channel=None)
+ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
+@@ -83,19 +97,6 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
+ PyObject *tempobj;
+ static char *kwlist[] = {"channel", NULL};
+
+- void cleanup_one(void)
+- {
+- // clean up any /sys/class exports
+- event_cleanup(gpio);
+-
+- // set everything back to input
+- if (gpio_direction[gpio] != -1) {
+- setup_gpio(gpio, INPUT, PUD_OFF);
+- gpio_direction[gpio] = -1;
+- found = 1;
+- }
+- }
+-
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O", kwlist, &chanlist))
+ return NULL;
+
+@@ -140,7 +141,7 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
+ } else if (channel != -666) { // channel was an int indicating single channel
+ if (get_gpio_number(channel, &gpio))
+ return NULL;
+- cleanup_one();
++ found = cleanup_one(gpio);
+ } else { // channel was a list/tuple
+ for (i=0; i<chancount; i++) {
+ if (chanlist) {
+@@ -169,7 +170,7 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
+
+ if (get_gpio_number(channel, &gpio))
+ return NULL;
+- cleanup_one();
++ found = cleanup_one(gpio);
+ }
+ }
+ }
+@@ -182,6 +183,37 @@ static PyObject *py_cleanup(PyObject *self, PyObject *args, PyObject *kwargs)
+ Py_RETURN_NONE;
+ }
+
++static inline int setup_one(unsigned int *gpio, int channel, int pud, int direction, int initial) {
++ if (get_gpio_number(channel, gpio))
++ return 0;
++
++ int func = gpio_function(*gpio);
++ if (gpio_warnings && // warnings enabled and
++ ((func != 0 && func != 1) || // (already one of the alt functions or
++ (gpio_direction[*gpio] == -1 && func == 1))) // already an output not set from this program)
++ {
++ PyErr_WarnEx(NULL, "This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.", 1);
++ }
++
++ // warn about pull/up down on i2c channels
++ if (gpio_warnings) {
++ if (rpiinfo.p1_revision == 0) { // compute module - do nothing
++ } else if ((rpiinfo.p1_revision == 1 && (*gpio == 0 || *gpio == 1)) ||
++ (*gpio == 2 || *gpio == 3)) {
++ if (pud == PUD_UP || pud == PUD_DOWN)
++ PyErr_WarnEx(NULL, "A physical pull up resistor is fitted on this channel!", 1);
++ }
++ }
++
++ if (direction == OUTPUT && (initial == LOW || initial == HIGH)) {
++ output_gpio(*gpio, initial);
++ }
++ setup_gpio(*gpio, direction, pud);
++ gpio_direction[*gpio] = direction;
++ return 1;
++}
++
++
+ // python function setup(channel(s), direction, pull_up_down=PUD_OFF, initial=None)
+ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwargs)
+ {
+@@ -195,37 +227,6 @@ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwar
+ int pud = PUD_OFF + PY_PUD_CONST_OFFSET;
+ int initial = -1;
+ static char *kwlist[] = {"channel", "direction", "pull_up_down", "initial", NULL};
+- int func;
+-
+- int setup_one(void) {
+- if (get_gpio_number(channel, &gpio))
+- return 0;
+-
+- func = gpio_function(gpio);
+- if (gpio_warnings && // warnings enabled and
+- ((func != 0 && func != 1) || // (already one of the alt functions or
+- (gpio_direction[gpio] == -1 && func == 1))) // already an output not set from this program)
+- {
+- PyErr_WarnEx(NULL, "This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.", 1);
+- }
+-
+- // warn about pull/up down on i2c channels
+- if (gpio_warnings) {
+- if (rpiinfo.p1_revision == 0) { // compute module - do nothing
+- } else if ((rpiinfo.p1_revision == 1 && (gpio == 0 || gpio == 1)) ||
+- (gpio == 2 || gpio == 3)) {
+- if (pud == PUD_UP || pud == PUD_DOWN)
+- PyErr_WarnEx(NULL, "A physical pull up resistor is fitted on this channel!", 1);
+- }
+- }
+-
+- if (direction == OUTPUT && (initial == LOW || initial == HIGH)) {
+- output_gpio(gpio, initial);
+- }
+- setup_gpio(gpio, direction, pud);
+- gpio_direction[gpio] = direction;
+- return 1;
+- }
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi|ii", kwlist, &chanlist, &direction, &pud, &initial))
+ return NULL;
+@@ -290,7 +291,7 @@ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwar
+ } else if (chantuple) {
+ chancount = PyTuple_Size(chantuple);
+ } else {
+- if (!setup_one())
++ if (!setup_one(&gpio, channel, pud, direction, initial))
+ return NULL;
+ Py_RETURN_NONE;
+ }
+@@ -320,12 +321,29 @@ static PyObject *py_setup_channel(PyObject *self, PyObject *args, PyObject *kwar
+ return NULL;
+ }
+
+- if (!setup_one())
++ if (!setup_one(&gpio, channel, pud, direction, initial))
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+ }
++static inline int output_val(unsigned int *gpio, int channel, int value) {
++ if (get_gpio_number(channel, gpio))
++ return 0;
++
++ if (gpio_direction[*gpio] != OUTPUT)
++ {
++ PyErr_SetString(PyExc_RuntimeError, "The GPIO channel has not been set up as an OUTPUT");
++ return 0;
++ }
++
++ if (check_gpio_priv())
++ return 0;
++
++ output_gpio(*gpio, value);
++ return 1;
++}
++
+
+ // python function output(channel(s), value(s))
+ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
+@@ -342,23 +360,6 @@ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
+ int chancount = -1;
+ int valuecount = -1;
+
+- int output(void) {
+- if (get_gpio_number(channel, &gpio))
+- return 0;
+-
+- if (gpio_direction[gpio] != OUTPUT)
+- {
+- PyErr_SetString(PyExc_RuntimeError, "The GPIO channel has not been set up as an OUTPUT");
+- return 0;
+- }
+-
+- if (check_gpio_priv())
+- return 0;
+-
+- output_gpio(gpio, value);
+- return 1;
+- }
+-
+ if (!PyArg_ParseTuple(args, "OO", &chanlist, &valuelist))
+ return NULL;
+
+@@ -416,7 +417,7 @@ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
+ }
+
+ if (chancount == -1) {
+- if (!output())
++ if (!output_val(&gpio, channel, value))
+ return NULL;
+ Py_RETURN_NONE;
+ }
+@@ -472,7 +473,7 @@ static PyObject *py_output_gpio(PyObject *self, PyObject *args)
+ return NULL;
+ }
+ }
+- if (!output())
++ if (!output_val(&gpio, channel, value))
+ return NULL;
+ }
+
+--
+2.7.0
+
diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb
new file mode 100644
index 000000000..d0ff00af7
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "A module to control Raspberry Pi GPIO channels"
+HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7"
+
+PYPI_PACKAGE = "RPi.GPIO"
+inherit pypi distutils
+
+SRC_URI += "file://0001-Remove-nested-functions.patch"
+SRC_URI[md5sum] = "e4abe1cfb5eacebe53078032256eb837"
+SRC_URI[sha256sum] = "a5fc0eb5e401963b6c0a03650da6b42c4005f02d962b81241d96c98d0a578516"
+
+COMPATIBLE_MACHINE = "^rpi$"
diff --git a/meta-raspberrypi/recipes-devtools/python/rpio/0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch b/meta-raspberrypi/recipes-devtools/python/rpio/0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch
new file mode 100644
index 000000000..bed97493d
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/rpio/0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch
@@ -0,0 +1,30 @@
+From c86bfacc98d58244f532626954ed00d84ecfa82d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Jan 2016 17:12:37 -0800
+Subject: [PATCH] include sys/types.h explicitly for getting caddr_t definition
+
+Helps fixing build on musl where sys/types.h is not included indirectly
+as happening on glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ source/c_gpio/c_gpio.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/source/c_gpio/c_gpio.c b/source/c_gpio/c_gpio.c
+index 25a04ca..70df632 100644
+--- a/source/c_gpio/c_gpio.c
++++ b/source/c_gpio/c_gpio.c
+@@ -29,6 +29,7 @@
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
++#include <sys/types.h>
+ #include <sys/mman.h>
+ #include "c_gpio.h"
+
+--
+2.7.0
+
diff --git a/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb b/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
new file mode 100644
index 000000000..c3254bcf9
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Advanced GPIO for the Raspberry Pi. Extends RPi.GPIO with PWM, \
+GPIO interrups, TCP socket interrupts, command line tools and more"
+HOMEPAGE = "https://github.com/metachris/RPIO"
+SECTION = "devel/python"
+LICENSE = "LGPLv3+"
+LIC_FILES_CHKSUM = "file://README.rst;beginline=41;endline=53;md5=d5d95d7486a4d98c999675c23196b25a"
+
+PYPI_PACKAGE = "RPIO"
+inherit pypi
+
+SRC_URI += "file://0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch"
+
+inherit setuptools
+
+COMPATIBLE_MACHINE = "^rpi$"
+
+RDEPENDS_${PN} = "\
+ python-logging \
+ python-threading \
+"
+
+SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4"
+SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e"
OpenPOWER on IntegriCloud