diff --git a/meta-sysmocom-bsp/classes/sysmocom-archiver.bbclass b/meta-sysmocom-bsp/classes/sysmocom-archiver.bbclass index 1510e8784c..98eb0b966e 100644 --- a/meta-sysmocom-bsp/classes/sysmocom-archiver.bbclass +++ b/meta-sysmocom-bsp/classes/sysmocom-archiver.bbclass @@ -7,6 +7,10 @@ ARCHIVE_TYPE ?= "TAR SRPM" DISTRO ?= "poky" PATCHES_ARCHIVE_WITH_SERIES = 'TRUE' + +def compat_cmp(a, b): + return (a>b)-(a "$SYSGPIO/export" + echo $2 > "$GPIOPATH/direction" +} + +export_gpio_out() +{ + NUM="$1" + NAME="$2" + VAL="$3" + INV="$4" + + GPIOPATH="$SYSGPIO/gpio$NUM" + + export_gpio $NUM out + ln -sfn "$GPIOPATH" "$DEVGPIO/$NAME" + + if [ "x$INV" != "x" ]; then + echo 1 > "$GPIOPATH/active_low" + else + echo 0 > "$GPIOPATH/active_low" + fi + + echo $VAL > "$GPIOPATH/value" +} + +export_gpio_in() +{ + NUM="$1" + NAME="$2" + INV="$3" + + GPIOPATH="$SYSGPIO/gpio$NUM" + + export_gpio $NUM in + ln -sfn "$GPIOPATH" "$DEVGPIO/$NAME" + + if [ "x$INV" != "x" ]; then + echo 1 > "$GPIOPATH/active_low" + else + echo 0 > "$GPIOPATH/active_low" + fi +} + + +export_gpio_out 48 pse_i2c_buf_en 0 active_low +export_gpio_in 52 pse_int active_low +export_gpio_out 23 connect_st_usim1 0 +export_gpio_out 27 connect_st_usim2 0 +export_gpio_out 26 mdm1_rst 0 +export_gpio_out 59 mdm1_on 1 +export_gpio_out 58 mdm_ldo_en 1 +#export_gpio_in 57 button active_low +export_gpio_out 55 mdm2_rst 0 +#export_gpio_out 54 system_led 1 active_low +export_gpio_out 51 eeprom_wp 0 +export_gpio_out 50 mdm2_on 1 +export_gpio_out 113 simtrace_erase 0 +export_gpio_out 115 simtrace_bootloader 0 +export_gpio_out 114 simtrace_reset 0 +export_gpio_in 104 acc_int active_low +export_gpio_out 62 hub_reset 1 active_low diff --git a/meta-sysmocom-bsp/recipes-bsp/sob-odu/files/usb2514.c b/meta-sysmocom-bsp/recipes-bsp/sob-odu/files/usb2514.c index 2669a2066c..7d06cb0bb0 100644 --- a/meta-sysmocom-bsp/recipes-bsp/sob-odu/files/usb2514.c +++ b/meta-sysmocom-bsp/recipes-bsp/sob-odu/files/usb2514.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -30,11 +31,110 @@ /* #include */ #include "i2c-dev.h" +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) -#define USB2514_SLAVE_ADDR 0x2C +enum compare_op { + EQUAL, + NOT_EQUAL, + LESS_THAN_OR_EQUAL, + GREATER_THAN_OR_EQUAL, +}; + +struct usb2514_board { + const char *name; + + unsigned int i2c_bus; + uint8_t i2c_addr; + + const char *board_version_file; + unsigned int board_version; + enum compare_op board_version_op; + + uint8_t ports_swap; + + const char *reset_gpio_path; + int reset_low_active; +}; + +struct board_group { + /* new /sys/firmware/devicetree/base/model */ + const char *device_tree_name; + /* old pre-device tree kernels, "Hardware :" in /proc/cpuinfo */ + const char *proc_name; + + const struct usb2514_board *boards; + unsigned int num_boards; +}; + +static const struct usb2514_board odu_boards[] = { + { + .name = "sob-odu v1", + .i2c_bus = 0, + .i2c_addr = 0x2C, + .board_version_file = "/sys/devices/platform/sob-odu.0/board_version", + .board_version = 1, + .board_version_op = EQUAL, + .ports_swap = 0x00, /* ports are still swapped in hardware */ + .reset_gpio_path = "/sys/devices/platform/sob-odu.0/gpio_hub_reset/value", + .reset_low_active = 1, + }, { + .name = "sob-odu v2", + .i2c_bus = 0, + .i2c_addr = 0x2C, + .board_version_file = "/sys/devices/platform/sob-odu.0/board_version", + .board_version = 2, + .board_version_op = EQUAL, + .ports_swap = 0x0E, /* swap DN1, DN2, DN3 */ + .reset_gpio_path = "/sys/devices/platform/sob-odu.0/gpio_hub_reset/value", + .reset_low_active = 0, + }, { + .name = "sob-odu v2", + .i2c_bus = 0, + .i2c_addr = 0x2C, + .board_version_file = "/sys/devices/platform/sob-odu.0/board_version", + .board_version = 0, /* EEPROM Empty ?!? */ + .board_version_op = EQUAL, + .ports_swap = 0x0E, /* swap DN1, DN2, DN3 */ + .reset_gpio_path = "/sys/devices/platform/sob-odu.0/gpio_hub_reset/value", + .reset_low_active = 0, + }, { + .name = "sob-odu v3+", + .i2c_bus = 0, + .i2c_addr = 0x2C, + .board_version_file = "/sys/devices/platform/sob-odu.0/board_version", + .board_version = 3, + .board_version_op = GREATER_THAN_OR_EQUAL, + .ports_swap = 0x0C, /* swap only DN2 and DN3 */ + .reset_gpio_path = "/sys/devices/platform/sob-odu.0/gpio_hub_reset/value", + .reset_low_active = 0, + }, +}; + +static const struct usb2514_board owhw_boards[] = { + { + .name = "OWHW", + .i2c_bus = 1, + .i2c_addr = 0x2C, + .board_version_op = EQUAL, + .ports_swap = 0x10, /* swap only DN4 */ + .reset_gpio_path = "/dev/gpio/hub_reset/value", + .reset_low_active = 0, + }, +}; + +static const struct board_group boards[] = { + { + .proc_name = "sob-odu", + .device_tree_name = "sysmocom ODU", + .boards = odu_boards, + .num_boards = ARRAY_SIZE(odu_boards), + }, { + .device_tree_name = "GSMK OWHW", + .boards = owhw_boards, + .num_boards = ARRAY_SIZE(owhw_boards), + }, +}; -#define BOARD_VER_PATH "/sys/devices/platform/sob-odu.0/board_version" -#define RESET_PATH "/sys/devices/platform/sob-odu.0/gpio_hub_reset/value" #define RESET_PATH_OLD "/sys/class/gpio/gpio62/value" /* Default configuration as per data sheet */ @@ -119,7 +219,7 @@ static int g_fd; static unsigned long get_support(void) { int rc; - unsigned long funcs; + unsigned long funcs = 0; rc = ioctl(g_fd, I2C_FUNCS, funcs); @@ -128,7 +228,6 @@ static unsigned long get_support(void) return funcs; } - static int write_regs(const uint8_t *regs) { unsigned int i; @@ -145,12 +244,12 @@ static int write_regs(const uint8_t *regs) } /* attempt to obtain the board version from sysfs */ -static int get_board_version(void) +static int get_board_version(const char *ver_file) { FILE *f; unsigned int ver; - f = fopen(BOARD_VER_PATH, "r"); + f = fopen(ver_file, "r"); if (!f) return -1; @@ -164,20 +263,143 @@ static int get_board_version(void) return ver; } -/* attempt to reset the hub via sysfs */ -static int reset_hub(void) +static int board_ver_matches(const struct usb2514_board *board, + unsigned int version) +{ + switch (board->board_version_op) { + case EQUAL: + return (version == board->board_version); + case NOT_EQUAL: + return (version != board->board_version); + case LESS_THAN_OR_EQUAL: + return (version <= board->board_version); + case GREATER_THAN_OR_EQUAL: + return (version >= board->board_version); + default: + return 0; + } +} + +static char *get_proc_name(void) +{ + FILE *f = fopen("/proc/cpuinfo", "r"); + char linebuf[256]; + + while (fgets(linebuf, sizeof(linebuf), f)) { + /* strip LF at the end of line */ + char *lf = strrchr(linebuf, '\n'); + if (lf) + *lf = '\0'; + + if (strncmp(linebuf, "Hardware", 8) && + strncmp(linebuf, "machine", 7)) + continue; + + /* search for the colon */ + char *colon = strchr(linebuf, ':'); + if (!colon) + continue; + colon++; + + /* strip any leading whitespace */ + while (*colon == ' ' || *colon == '\t') + colon++; + + fclose(f); + return strdup(colon); + } + + fclose(f); + return NULL; +} + +static char *get_dt_name(void) { FILE *f; - int invert_logic = 0; + char *name = NULL; + char linebuf[256]; - f = fopen(RESET_PATH, "w"); - if (!f) { - f = fopen(RESET_PATH_OLD, "w"); - if (!f) - return -1; - invert_logic = 1; + f = fopen("/sys/firmware/devicetree/base/model", "r"); + if (!f) + return NULL; + + if (!fgets(linebuf, sizeof(linebuf), f)) { + fclose(f); + return NULL; } + fclose(f); + + return strdup(linebuf); +} + + +static const struct board_group *find_matching_board_group() +{ + int i; + char *proc_name, *dt_name; + + proc_name = get_proc_name(); + dt_name = get_dt_name(); + + for (i = 0; i < ARRAY_SIZE(boards); i++) { + const struct board_group *bgrp = &boards[i]; + + if (dt_name && bgrp->device_tree_name && + !strcmp(dt_name, bgrp->device_tree_name)) { + free(proc_name); + free(dt_name); + return bgrp; + } + + if (proc_name && bgrp->proc_name && + !strcmp(proc_name, bgrp->proc_name)) { + free(proc_name); + free(dt_name); + return bgrp; + } + } + + free(proc_name); + free(dt_name); + + return NULL; +} + + +static const struct usb2514_board * +find_matching_board(const struct board_group *bgrp) +{ + int i; + + for (i = 0; i < bgrp->num_boards; i++) { + const struct usb2514_board *board = &bgrp->boards[i]; + int ver; + + if (board->board_version_file) { + /* get board version and compare */ + ver = get_board_version(board->board_version_file); + if (ver < 0) + continue; + if (!board_ver_matches(board, ver)) + continue; + } + + return board; + } + + return NULL; +} + +/* attempt to reset the hub via sysfs */ +static int reset_hub(const char *reset_path, int invert_logic) +{ + FILE *f; + + f = fopen(reset_path, "w"); + if (!f) + return -1; + if (invert_logic) fputs("0", f); else @@ -198,56 +420,53 @@ static int reset_hub(void) int main(int argc, char **argv) { int rc; - int board_version; - int adapter_nr; - long slave_addr = USB2514_SLAVE_ADDR; char filename[PATH_MAX]; + const struct board_group *bgrp; + const struct usb2514_board *board; - if (argc < 2) { - fprintf(stderr, "You have to specify I2C bus number\n"); - exit(2); - } - - adapter_nr = atoi(argv[1]); - snprintf(filename, sizeof(filename)-1, "/dev/i2c-%d", adapter_nr); - rc = open(filename, O_RDWR); - if (rc < 0) { - fprintf(stderr, "Error opening the device: %d\n", rc); + bgrp = find_matching_board_group(); + if (!bgrp) { + fprintf(stderr, "Cannot find matching board group for this system\n"); exit(1); } + printf("Found matching board group %s(%s)\n", bgrp->proc_name, bgrp->device_tree_name); + board = find_matching_board(bgrp); + if (!board) { + fprintf(stderr, "Cannot find matching config for this system\n"); + exit(1); + } + printf("Found matching board %s\n", board->name); + + /* open the I2C bus device */ + + snprintf(filename, sizeof(filename)-1, "/dev/i2c-%d", board->i2c_bus); + rc = open(filename, O_RDWR); + if (rc < 0) { + fprintf(stderr, "Error opening the device %s: %d\n", filename, rc); + exit(1); + } g_fd = rc; - get_support(); - board_version = get_board_version(); - if (board_version >= 3) { - /* on board version 3 and later we don't need to swap - * USB downlink port 1 */ - printf("Detected board >= v3, not swapping DN1\n"); - usb2514_odu[0xFA] = 0x0C; - } else if (board_version == 1) { - /* ports are still swapped in hardware */ - printf("Detected board v1, not swapping any ports\n"); - usb2514_odu[0xFA] = 0x00; - } else if (board_version == 2) { - printf("Detected board v2, swapping DN1, DN2 and DN3\n"); - /* default */ - } else { - printf("Assuming board v2, swapping DN1, DN2 and DN3\n"); - /* default */ - } + /* set the slave address */ - rc = ioctl(g_fd, I2C_SLAVE, slave_addr); + rc = ioctl(g_fd, I2C_SLAVE, board->i2c_addr); if (rc < 0) { fprintf(stderr, "Error setting slave addr: %d\n", rc); exit(1); } - /* First reset the USB hub before loading data into it */ - if (reset_hub() < 0) { - fprintf(stderr, "Couldn't reset the USB hub!\n"); - } + if (board->reset_gpio_path) { + /* First reset the USB hub before loading data into it */ + if (reset_hub(board->reset_gpio_path, board->reset_low_active) < 0) { + fprintf(stderr, "Couldn't reset the USB hub!\n"); + } + } else + fprintf(stderr, "board config doesn't indicate USB hub reset GPIO\n"); + + /* patch the port inversion byte into the array */ + usb2514_odu[0xFA] = board->ports_swap; rc = write_regs(usb2514_odu); if (rc < 0) { diff --git a/meta-sysmocom-bsp/recipes-bsp/sob-odu/usb2514_1.bb b/meta-sysmocom-bsp/recipes-bsp/sob-odu/usb2514_1.bb index 1b25e6506b..4cdaa83e99 100644 --- a/meta-sysmocom-bsp/recipes-bsp/sob-odu/usb2514_1.bb +++ b/meta-sysmocom-bsp/recipes-bsp/sob-odu/usb2514_1.bb @@ -4,7 +4,7 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://${WORKDIR}/usb2514.c;beginline=1;endline=18;md5=3b8421a1c05d21add65cc20fccfa29cd" DEPENDS += "lmsensors-apps" -PR = "r3" +PR = "r4" SRC_URI = "file://usb2514.c \ file://gpio_usb2514 \ diff --git a/meta-sysmocom-bsp/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch b/meta-sysmocom-bsp/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch new file mode 100644 index 0000000000..3ef35ee549 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch @@ -0,0 +1,21 @@ +From: Ben Hutchings +Date: Sat, 23 Aug 2014 12:27:34 -0700 +Subject: crda: Do not run ldconfig if DESTDIR is set + +Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126028.html] + +Signed-off-by: Ben Hutchings +Signed-off-by: Joe MacDonald + +--- a/Makefile ++++ b/Makefile +@@ -132,7 +132,9 @@ install-libreg: + $(NQ) ' INSTALL libreg' + $(Q)mkdir -p $(DESTDIR)/$(LIBDIR) + $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/ ++ifndef DESTDIR + $(Q)ldconfig ++endif + + %.o: %.c regdb.h $(LIBREG) + $(NQ) ' CC ' $@ diff --git a/meta-sysmocom-bsp/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch b/meta-sysmocom-bsp/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch new file mode 100644 index 0000000000..aceb56df74 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch @@ -0,0 +1,50 @@ +From: Ben Hutchings +Date: Sat, 23 Aug 2014 12:26:37 -0700 +Subject: Fix linking of libraries used by libreg + +The math and crypto libraries are called by and need to be linked to +libreg.so, not to the executables. + +Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126027.html] + +Signed-off-by: Ben Hutchings +Signed-off-by: Joe MacDonald + +--- a/Makefile ++++ b/Makefile +@@ -30,7 +30,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -peda + CFLAGS += -Wall -g + LDLIBREG += -lreg + LDLIBS += $(LDLIBREG) +-LDLIBS += -lm ++LIBREGLDLIBS += -lm + LIBREG += libreg.so + LDFLAGS += -L ./ + +@@ -40,7 +40,7 @@ all_noverify: $(LIBREG) crda intersect r + + ifeq ($(USE_OPENSSL),1) + CFLAGS += -DUSE_OPENSSL -DPUBKEY_DIR=\"$(RUNTIME_PUBKEY_DIR)\" `pkg-config --cflags openssl` +-LDLIBS += `pkg-config --libs openssl` ++LIBREGLDLIBS += `pkg-config --libs openssl` + + ifeq ($(RUNTIME_PUBKEY_ONLY),1) + CFLAGS += -DRUNTIME_PUBKEY_ONLY +@@ -51,7 +51,7 @@ endif + + else + CFLAGS += -DUSE_GCRYPT +-LDLIBS += -lgcrypt ++LIBREGLDLIBS += -lgcrypt + + $(LIBREG): keys-gcrypt.c + +@@ -121,7 +121,7 @@ keys-%.c: utils/key2pub.py $(wildcard $( + + $(LIBREG): regdb.h reglib.h reglib.c + $(NQ) ' CC ' $@ +- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ ++ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS) + + install-libreg-headers: + $(NQ) ' INSTALL libreg-headers' diff --git a/meta-sysmocom-bsp/recipes-connectivity/crda/crda_3.18.bb b/meta-sysmocom-bsp/recipes-connectivity/crda/crda_3.18.bb new file mode 100644 index 0000000000..931a053528 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-connectivity/crda/crda_3.18.bb @@ -0,0 +1,41 @@ +SUMMARY = "Wireless Central Regulatory Domain Agent" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +SECTION = "net" +LICENSE = "copyleft-next-0.3.0 & ISC" +LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe \ + file://${WORKDIR}/wireless-regdb-2014.11.18/LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" + +DEPENDS = "python-m2crypto-native python-native libgcrypt libnl" + +SRC_URI = "https://www.kernel.org/pub/software/network/crda/${BP}.tar.xz;name=crda \ + https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2014.11.18.tar.xz;name=bin \ + file://do-not-run-ldconfig-if-destdir-is-set.patch \ + file://fix-linking-of-libraries-used-by-reglib.patch \ +" +SRC_URI[crda.md5sum] = "0431fef3067bf503dfb464069f06163a" +SRC_URI[crda.sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf" + +SRC_URI[bin.md5sum] = "d750c402c5510add7380edcb1d9b75b2" +SRC_URI[bin.sha256sum] = "eab6b50f30748a8b0065ba38cf3df05aac161a5861ae0a6c3cfd01d38a71c9dd" + +inherit python-dir pythonnative +# Recursive make problem +EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'" + +do_compile() { + oe_runmake all_noverify +} + +do_install() { + oe_runmake SBINDIR=${sbindir}/ install + + install -d ${D}${libdir}/crda/ + + install -m 0644 ${WORKDIR}/wireless-regdb-2014.11.18/regulatory.bin ${D}${libdir}/crda/regulatory.bin +} + + +RDEPENDS_${PN} = "udev" +FILES_${PN} += "${libdir}crda/regulatory.bin \ + ${base_libdir}/udev/rules.d/85-regulatory.rules \ +" diff --git a/meta-sysmocom-bsp/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch b/meta-sysmocom-bsp/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch new file mode 100644 index 0000000000..97c00cd2d2 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch @@ -0,0 +1,44 @@ +From 5310abba864cfe3a8b65af130729447604190b29 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 29 Nov 2011 17:03:27 +0100 +Subject: [PATCH] iw: version.sh: don't use git describe for versioning + +It will detect top-level git repositories like the Angstrom setup-scripts and break. + +Upstream-Status: Unknown + +Signed-off-by: Koen Kooi +--- + version.sh | 16 +--------------- + 1 files changed, 1 insertions(+), 15 deletions(-) + +diff --git a/version.sh b/version.sh +index 3fb9f6d..e4a56cb 100755 +--- a/version.sh ++++ b/version.sh +@@ -3,21 +3,7 @@ + VERSION="3.2" + OUT="$1" + +-if head=`git rev-parse --verify HEAD 2>/dev/null`; then +- git update-index --refresh --unmerged > /dev/null +- descr=$(git describe) +- +- # on git builds check that the version number above +- # is correct... +- [ "${descr%%-*}" = "v$VERSION" ] || exit 2 +- +- v="${descr#v}" +- if git diff-index --name-only HEAD | read dummy ; then +- v="$v"-dirty +- fi +-else +- v="$VERSION" +-fi ++v="$VERSION" + + echo '#include "iw.h"' > "$OUT" + echo "const char iw_version[] = \"$v\";" >> "$OUT" +-- +1.7.7.3 + diff --git a/meta-sysmocom-bsp/recipes-connectivity/iw/iw_3.11.bb b/meta-sysmocom-bsp/recipes-connectivity/iw/iw_3.11.bb new file mode 100644 index 0000000000..42477e717a --- /dev/null +++ b/meta-sysmocom-bsp/recipes-connectivity/iw/iw_3.11.bb @@ -0,0 +1,23 @@ +SUMMARY = "nl80211 based CLI configuration utility for wireless devices" +DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \ +wireless devices. It supports almost all new drivers that have been added \ +to the kernel recently. " +HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw" +SECTION = "base" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774" + +DEPENDS = "libnl pkgconfig" + +SRC_URI = "http://www.kernel.org/pub/software/network/iw/${P}.tar.bz2 \ + file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \ +" + +SRC_URI[md5sum] = "e633cf7c875c7d8b547abafc0d95f6c4" +SRC_URI[sha256sum] = "09348d4f7371fad00c07cfb67b9e34f24403cbd9361f9634cfb4dff9cdd40139" + +EXTRA_OEMAKE = "" + +do_install() { + oe_runmake DESTDIR=${D} install +} diff --git a/meta-sysmocom-bsp/recipes-core/images/image-rauc-rescue-initramfs.bb b/meta-sysmocom-bsp/recipes-core/images/image-rauc-rescue-initramfs.bb index c4a5eac7c5..e78adc738d 100644 --- a/meta-sysmocom-bsp/recipes-core/images/image-rauc-rescue-initramfs.bb +++ b/meta-sysmocom-bsp/recipes-core/images/image-rauc-rescue-initramfs.bb @@ -17,6 +17,7 @@ IMAGE_FSTYPES = "cpio.xz" BAD_RECOMMENDATIONS_append = " busybox-syslog kbd kbd-consolefonts kbd-keymaps" BAD_RECOMMENDATIONS_append_sysmobts-v2 = " e2fsprogs-e2fsck" BAD_RECOMMENDATIONS_append_sysmocom-odu = " e2fsprogs-e2fsck" +BAD_RECOMMENDATIONS_append_gsmk-owhw = " e2fsprogs-e2fsck" inherit core-image require recipes-apps/images/image-manifest.inc diff --git a/meta-sysmocom-bsp/recipes-core/images/image-rauc-ubi.bb b/meta-sysmocom-bsp/recipes-core/images/image-rauc-ubi.bb index e8b1a63785..2cd494239a 100644 --- a/meta-sysmocom-bsp/recipes-core/images/image-rauc-ubi.bb +++ b/meta-sysmocom-bsp/recipes-core/images/image-rauc-ubi.bb @@ -1,6 +1,8 @@ DESCRIPTION = "ubi with rescue slot" LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" PACKAGES = "" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -20,17 +22,21 @@ do_package_write_ipk[noexec] = "1" do_package_write_deb[noexec] = "1" do_package_write_rpm[noexec] = "1" -do_fetch[depends] = "virtual/kernel:do_build image-rauc-rescue-initramfs:do_build" +do_fetch[depends] = "virtual/kernel:do_build image-rauc-rescue-initramfs:do_build mtd-utils-native:do_populate_sysroot" S = "${WORKDIR}" do_fetch() { mkdir -p "${S}/fs" - cp "${DEPLOY_DIR_IMAGE}/uImage-${MACHINE}.bin" "${S}/fs/kernel" + cp "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" "${S}/fs/kernel" cp "${DEPLOY_DIR_IMAGE}/image-rauc-rescue-initramfs-${MACHINE}.cpio.xz" "${S}/fs/initramfs" } +do_fetch_append_gsmk-owhw() { + cp "${DEPLOY_DIR_IMAGE}/uImage-am335x-gsmk-owhw.dtb" "${S}/fs/devicetree" +} + IMAGE_ROOTFS = "${S}/fs" IMAGE_NAME = "${PN}-${MACHINE}-${DATETIME}" # Don't include the DATETIME variable in the sstate package sigantures diff --git a/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto/0001-M2Crypto-Error-fix.patch b/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto/0001-M2Crypto-Error-fix.patch new file mode 100644 index 0000000000..2a74b68505 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto/0001-M2Crypto-Error-fix.patch @@ -0,0 +1,162 @@ +From 02a24ac541df68033d4efd7e2f8a1b92dc49328d Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Mon, 27 Jul 2015 05:06:20 +0900 +Subject: [PATCH] M2Crypto: Error fix. + +After swig upgrade from 3.0.2 to 3.0.6,build the recipes which +depends on python-m2crypto will occur errors like this: +SALT_LEN = m2.PKCS5_SALT_LEN +AttributeError: 'module' object has no attribute 'PKCS5_SALT_LEN' +since python-m2crypto depends on swig-native + +Ref: +https://github.com/martinpaljak/M2Crypto/issues/60#issuecomment-75735489 + +This patch is from: +http://pkgs.fedoraproject.org/cgit/m2crypto.git/tree/m2crypto-0.21.1-swig-3.0.5.patch + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + M2Crypto/__init__.py | 4 ++-- + M2Crypto/m2.py | 2 +- + SWIG/_lib.i | 4 ++++ + SWIG/_pkcs7.i | 1 + + setup.py | 26 +++++++++++++++++++++++++- + 5 files changed, 33 insertions(+), 4 deletions(-) + +diff --git a/M2Crypto/__init__.py b/M2Crypto/__init__.py +index e7acfe7..02f4d28 100644 +--- a/M2Crypto/__init__.py ++++ b/M2Crypto/__init__.py +@@ -19,7 +19,7 @@ Copyright 2008-2011 Heikki Toivonen. All rights reserved. + version_info = (0, 21, 1) + version = '.'.join([str(_v) for _v in version_info]) + +-import __m2crypto ++import _m2crypto + import m2 + import ASN1 + import AuthCookie +@@ -57,4 +57,4 @@ import util + encrypt=1 + decrypt=0 + +-__m2crypto.lib_init() ++_m2crypto.lib_init() +diff --git a/M2Crypto/m2.py b/M2Crypto/m2.py +index e4bb695..822143f 100644 +--- a/M2Crypto/m2.py ++++ b/M2Crypto/m2.py +@@ -25,7 +25,7 @@ Portions created by Open Source Applications Foundation (OSAF) are + Copyright (C) 2004 OSAF. All Rights Reserved. + """ + +-from __m2crypto import * ++from _m2crypto import * + lib_init() + + +diff --git a/SWIG/_lib.i b/SWIG/_lib.i +index 42dc180..47a53b8 100644 +--- a/SWIG/_lib.i ++++ b/SWIG/_lib.i +@@ -100,6 +100,7 @@ int ssl_verify_callback(int ok, X509_STORE_CTX *ctx) { + int cret; + int new_style_callback = 0, warning_raised_exception=0; + PyGILState_STATE gilstate; ++ PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */ + + ssl = (SSL *)X509_STORE_CTX_get_app_data(ctx); + +@@ -185,6 +186,7 @@ int ssl_verify_callback(int ok, X509_STORE_CTX *ctx) { + void ssl_info_callback(const SSL *s, int where, int ret) { + PyObject *argv, *retval, *_SSL; + PyGILState_STATE gilstate; ++ PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */ + + gilstate = PyGILState_Ensure(); + +@@ -204,6 +206,7 @@ DH *ssl_set_tmp_dh_callback(SSL *ssl, int is_export, int keylength) { + PyObject *argv, *ret, *_ssl; + DH *dh; + PyGILState_STATE gilstate; ++ PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */ + + gilstate = PyGILState_Ensure(); + +@@ -227,6 +230,7 @@ RSA *ssl_set_tmp_rsa_callback(SSL *ssl, int is_export, int keylength) { + PyObject *argv, *ret, *_ssl; + RSA *rsa; + PyGILState_STATE gilstate; ++ PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */ + + gilstate = PyGILState_Ensure(); + +diff --git a/SWIG/_pkcs7.i b/SWIG/_pkcs7.i +index 174f40a..7bffbfc 100644 +--- a/SWIG/_pkcs7.i ++++ b/SWIG/_pkcs7.i +@@ -157,6 +157,7 @@ PyObject *smime_read_pkcs7(BIO *bio) { + BIO *bcont = NULL; + PKCS7 *p7; + PyObject *tuple, *_p7, *_BIO; ++ PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */ + + if (BIO_method_type(bio) == BIO_TYPE_MEM) { + /* OpenSSL FAQ explains that this is needed for mem BIO to return EOF, +diff --git a/setup.py b/setup.py +index e7c49eb..b98abe0 100644 +--- a/setup.py ++++ b/setup.py +@@ -20,6 +20,7 @@ except ImportError: + from distutils.command import build_ext + + from distutils.core import Extension ++from distutils.file_util import copy_file + + + class _M2CryptoBuildExt(build_ext.build_ext): +@@ -57,7 +58,17 @@ class _M2CryptoBuildExt(build_ext.build_ext): + self.swig_opts.append('-includeall') + #self.swig_opts.append('-D__i386__') # Uncomment for early OpenSSL 0.9.7 versions, or on Fedora Core if build fails + #self.swig_opts.append('-DOPENSSL_NO_EC') # Try uncommenting if you can't build with EC disabled +- ++ self.swig_opts.append('-modern') ++ self.swig_opts.append('-builtin') ++ ++ # These two lines are a workaround for ++ # http://bugs.python.org/issue2624 , hard-coding that we are only ++ # building a single extension with a known path; a proper patch to ++ # distutils would be in the run phase, when extension name and path are ++ # known. ++ self.swig_opts.append('-outdir') ++ self.swig_opts.append(os.path.join(self.build_lib, 'M2Crypto')) ++ + self.include_dirs += [os.path.join(self.openssl, opensslIncludeDir), + os.path.join(os.getcwd(), 'SWIG')] + +@@ -71,6 +82,19 @@ class _M2CryptoBuildExt(build_ext.build_ext): + + self.library_dirs += [os.path.join(self.openssl, opensslLibraryDir)] + ++ def run(self): ++ '''Overloaded build_ext implementation to allow inplace=1 to work, ++ which is needed for (python setup.py test).''' ++ # This is another workaround for http://bugs.python.org/issue2624 + the ++ # corresponding lack of support in setuptools' test command. Note that ++ # just using self.inplace in finalize_options() above does not work ++ # because swig is not rerun if the __m2crypto.so extension exists. ++ # Again, hard-coding our extension name and location. ++ build_ext.build_ext.run(self) ++ if self.inplace: ++ copy_file(os.path.join(self.build_lib, 'M2Crypto', '_m2crypto.py'), ++ os.path.join('M2Crypto', '_m2crypto.py'), ++ verbose=self.verbose, dry_run=self.dry_run) + + if sys.version_info < (2,4): + +-- +1.8.4.2 + diff --git a/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch new file mode 100644 index 0000000000..bcbdf24bb5 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch @@ -0,0 +1,39 @@ +From f11b9c71080513f9b867ba8f40613ba2ebc6e960 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 29 Mar 2013 15:17:17 +0100 +Subject: [PATCH] setup.py: link in sysroot, not in host directories + +Signed-off-by: Koen Kooi + +Upstream-status: Unknown +--- + setup.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index e7c49eb..8deaa34 100644 +--- a/setup.py ++++ b/setup.py +@@ -40,7 +40,7 @@ class _M2CryptoBuildExt(build_ext.build_ext): + self.openssl = 'c:\\pkg' + else: + self.libraries = ['ssl', 'crypto'] +- self.openssl = '/usr' ++ self.openssl = os.environ.get( "STAGING_DIR" ) + + + def finalize_options(self): +@@ -49,8 +49,8 @@ class _M2CryptoBuildExt(build_ext.build_ext): + + build_ext.build_ext.finalize_options(self) + +- opensslIncludeDir = os.path.join(self.openssl, 'include') +- opensslLibraryDir = os.path.join(self.openssl, 'lib') ++ opensslIncludeDir = os.environ.get( "STAGING_INCDIR" ) ++ opensslLibraryDir = os.environ.get( "STAGING_LIBDIR" ) + + self.swig_opts = ['-I%s' % i for i in self.include_dirs + \ + [opensslIncludeDir]] +-- +1.8.1.4 + diff --git a/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto_0.21.1.bb b/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto_0.21.1.bb new file mode 100644 index 0000000000..ff6203f205 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/python-m2crypto/python-m2crypto_0.21.1.bb @@ -0,0 +1,45 @@ +SUMMARY = "A Python crypto and SSL toolkit" +HOMEPAGE = "http://chandlerproject.org/bin/view/Projects/MeTooCrypto" + +DEPENDS = "openssl swig-native python" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" + +SRC_URI = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${PV}.tar.gz \ + file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \ + file://0001-M2Crypto-Error-fix.patch" + +SRC_URI[md5sum] = "f93d8462ff7646397a9f77a2fe602d17" +SRC_URI[sha256sum] = "25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a" + +S = "${WORKDIR}/M2Crypto-${PV}" + +inherit setuptools + +SWIG_FEATURES_x86-64 = "-D__x86_64__" +SWIG_FEATURES ?= "" +export SWIG_FEATURES + +# Get around a problem with swig, but only if the +# multilib header file exists. +# +do_compile_prepend() { + if [ "${SITEINFO_BITS}" = "64" ];then + bit="64" + else + bit="32" + fi + + if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then + for i in SWIG/_ec.i SWIG/_evp.i; do + sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i" + done + elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then + for i in SWIG/_ec.i SWIG/_evp.i; do + sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i" + done + fi +} + +BBCLASSEXTEND = "native" diff --git a/meta-sysmocom-bsp/recipes-devtools/swig/swig.inc b/meta-sysmocom-bsp/recipes-devtools/swig/swig.inc new file mode 100644 index 0000000000..9da40df55e --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/swig/swig.inc @@ -0,0 +1,63 @@ +SUMMARY = "SWIG - Simplified Wrapper and Interface Generator" +HOMEPAGE = "http://swig.sourceforge.net/" +LICENSE = "BSD & GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e7807a6282784a7dde4c846626b08fc6 \ + file://LICENSE-GPL;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE-UNIVERSITIES;md5=8ce9dcc8f7c994de4a408b205c72ba08" + +SECTION = "devel" + +DEPENDS = "libpcre python" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" + +inherit autotools pythonnative + +EXTRA_OECONF = " \ + --with-python=${PYTHON} \ + --without-allegrocl \ + --without-android \ + --without-boost \ + --without-chicken \ + --without-clisp \ + --without-csharp \ + --without-d \ + --without-gcj \ + --without-go \ + --without-guile \ + --without-java \ + --without-lua \ + --without-mzscheme \ + --without-ocaml \ + --without-octave \ + --without-perl5 \ + --without-pike \ + --without-php \ + --without-python3 \ + --without-r \ + --without-ruby \ + --without-tcl \ +" + +BBCLASSEXTEND = "native nativesdk" + +do_configure() { + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/Tools/config + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/Tools/config + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + oe_runconf +} + +do_install_append_class-nativesdk() { + cd ${D}${bindir} + ln -s swig swig2.0 +} + +def swiglib_relpath(d): + swiglib = d.getVar('datadir', True) + "/" + d.getVar('BPN', True) + "/" + d.getVar('PV', True) + return os.path.relpath(swiglib, d.getVar('bindir', True)) + +do_install_append_class-native() { + create_wrapper ${D}${bindir}/swig SWIG_LIB='`dirname $''realpath`'/${@swiglib_relpath(d)} +} diff --git a/meta-sysmocom-bsp/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch b/meta-sysmocom-bsp/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch new file mode 100644 index 0000000000..81df3e264f --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch @@ -0,0 +1,69 @@ +From a4a0440a644c6c5e5da096efe3cf05ba309a284f Mon Sep 17 00:00:00 2001 +From: "NODA, Kai" +Date: Sun, 22 Apr 2012 17:01:02 +0900 +Subject: [PATCH] Use /proc/self/exe for "swig -swiglib" on non-Win32 + platforms. + +If it wasn't found, then fall back to a fixed string just as before. + +Upstream-Status: Submitted +http://sourceforge.net/mailarchive/message.php?msg_id=29179733 + +--- + Source/Modules/main.cxx | 24 ++++++++++++++++++++++-- + 1 file changed, 22 insertions(+), 2 deletions(-) + +diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx +index d2f5d3b..cbb0a12 100644 +--- a/Source/Modules/main.cxx ++++ b/Source/Modules/main.cxx +@@ -26,6 +26,11 @@ char cvsroot_main_cxx[] = "$Id$"; + #include "cparse.h" + #include + #include // for INT_MAX ++#ifndef _WIN32 ++#include ++#include // for readlink ++#include // for stat ++#endif + + // Global variables + +@@ -902,9 +907,9 @@ int SWIG_main(int argc, char *argv[], Language *l) { + + // Check for SWIG_LIB environment variable + if ((c = getenv("SWIG_LIB")) == (char *) 0) { ++ char *p; + #if defined(_WIN32) + char buf[MAX_PATH]; +- char *p; + if (!(GetModuleFileName(0, buf, MAX_PATH) == 0 || (p = strrchr(buf, '\\')) == 0)) { + *(p + 1) = '\0'; + SwigLib = NewStringf("%sLib", buf); // Native windows installation path +@@ -914,7 +919,22 @@ int SWIG_main(int argc, char *argv[], Language *l) { + if (Len(SWIG_LIB_WIN_UNIX) > 0) + SwigLibWinUnix = NewString(SWIG_LIB_WIN_UNIX); // Unix installation path using a drive letter (for msys/mingw) + #else +- SwigLib = NewString(SWIG_LIB); ++ char buf[PATH_MAX]; ++ if (0 < ::readlink("/proc/self/exe", buf, sizeof(buf)) && ++ (p = ::strstr(buf, "/bin/swig"))) { ++ int major, minor, patch; ++ const int ret = ::sscanf(VERSION, "%d.%d.%d", &major, &minor, &patch); ++ if (3 == ret) { ++ const ::ptrdiff_t dir_part_len = p - buf; ++ ::snprintf(p, PATH_MAX - dir_part_len, "/share/swig/%d.%d.%d", major, minor, patch); ++ struct ::stat stat_res; ++ if (0 == ::stat(buf, &stat_res) && S_ISDIR(stat_res.st_mode)) { ++ SwigLib = NewString(buf); ++ } ++ } ++ } ++ if (NULL == SwigLib) ++ SwigLib = NewString(SWIG_LIB); + #endif + } else { + SwigLib = NewString(c); +-- +1.7.9.5 + diff --git a/meta-sysmocom-bsp/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch b/meta-sysmocom-bsp/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch new file mode 100644 index 0000000000..1b1128acab --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch @@ -0,0 +1,64 @@ +From 5c4d6d8538994d5fe9b3b46bfafaf0a605e3bda6 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 17 Jun 2014 08:18:17 +0200 +Subject: [PATCH] configure: use pkg-config for pcre detection + +Signed-off-by: Koen Kooi +Upstream-Status: pending +--- + configure.ac | 38 +++++++------------------------------- + 1 file changed, 7 insertions(+), 31 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 0c984b7..6edcec1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -70,38 +70,14 @@ AC_MSG_RESULT([$with_pcre]) + + dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script + if test x"${with_pcre}" = xyes ; then +- AC_MSG_CHECKING([whether to use local PCRE]) +- local_pcre_config=no +- if test -z $PCRE_CONFIG; then +- if test -f `pwd`/pcre/pcre-swig-install/bin/pcre-config; then +- PCRE_CONFIG=`pwd`/pcre/pcre-swig-install/bin/pcre-config +- local_pcre_config=$PCRE_CONFIG +- fi +- fi +- AC_MSG_RESULT([$local_pcre_config]) +-fi +-AS_IF([test "x$with_pcre" != xno], +- [AX_PATH_GENERIC([pcre], +- [], dnl Minimal version of PCRE we need -- accept any +- [], dnl custom sed script for version parsing is not needed +- [AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) +- LIBS="$LIBS $PCRE_LIBS" +- CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS" +- ], +- [AC_MSG_FAILURE([ +- Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions) +- library package. This dependency is needed for configure to complete, +- Either: +- - Install the PCRE developer package on your system (preferred approach). +- - Download the PCRE source tarball, build and install on your system +- as you would for any package built from source distribution. +- - Use the Tools/pcre-build.sh script to build PCRE just for SWIG to statically +- link against. Run 'Tools/pcre-build.sh --help' for instructions. +- (quite easy and does not require privileges to install PCRE on your system) +- - Use configure --without-pcre to disable regular expressions support in SWIG +- (not recommended).]) +- ]) ++ PKG_CHECK_MODULES([PCRE], [libpcre], [ ++ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) ++ LIBS="$LIBS $PCRE_LIBS" ++ CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS" ++ ], [ ++ AC_MSG_WARN([$PCRE_PKG_ERRORS]) + ]) ++fi + + + dnl CCache +-- +1.9.3 + diff --git a/meta-sysmocom-bsp/recipes-devtools/swig/swig_3.0.6.bb b/meta-sysmocom-bsp/recipes-devtools/swig/swig_3.0.6.bb new file mode 100644 index 0000000000..2a0917e4e9 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-devtools/swig/swig_3.0.6.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \ + file://0001-configure-use-pkg-config-for-pcre-detection.patch \ + " +SRC_URI[md5sum] = "df43ae271642bcfa61c1e59f970f9963" +SRC_URI[sha256sum] = "c67f63ea11956106e4cda66416d5020330dc4ce2ee45057d39a9494ce33eca05" + diff --git a/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state.bb b/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state.bb index ed76fa34d9..1037241449 100644 --- a/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state.bb +++ b/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state.bb @@ -1,15 +1,16 @@ DESCRIPTION = "barebox state tool (dt)" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" -PR = "r3" +PR = "r4" SRC_URI = "\ - git://git.pengutronix.de/git/tools/dt-utils.git\ - file://0001-barebox-state-fix-typo.patch\ - file://0002-barebox-state-add-support-for-uint8-variables.patch\ - file://hardcode-layout-values.patch\ + git://git.pengutronix.de/git/tools/dt-utils.git \ + file://0001-barebox-state-fix-typo.patch \ " +SRC_URI_append_sysmocom-odu = "file://hardcode-layout-values.patch" +SRC_URI_append_sysmobts-v2 = "file://hardcode-layout-values.patch" + PACKAGES =+ "libdt-utils barebox-fdtdump" FILES_libdt-utils = "${libdir}/libdt-utils.so.*" @@ -17,7 +18,7 @@ FILES_barebox-fdtdump = "${bindir}/fdtdump" S = "${WORKDIR}/git" -SRCREV = "2e87b7e47752380219c1f12b3dcbb5db706936e5" +SRCREV = "f0bddb4f82deaf73cf20aeda5bbf64c50a59dd60" DEPENDS = "udev" diff --git a/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state/0002-barebox-state-add-support-for-uint8-variables.patch b/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state/0002-barebox-state-add-support-for-uint8-variables.patch deleted file mode 100644 index 25188955f9..0000000000 --- a/meta-sysmocom-bsp/recipes-extra/barebox-state/barebox-state/0002-barebox-state-add-support-for-uint8-variables.patch +++ /dev/null @@ -1,73 +0,0 @@ -From cada2ed0b4ca0d467621fa90de304421e17b4869 Mon Sep 17 00:00:00 2001 -From: Jan Luebbe -Date: Sat, 30 May 2015 19:52:55 +0200 -Subject: [PATCH 2/3] barebox-state: add support for uint8 variables - -Signed-off-by: Jan Luebbe ---- - src/barebox-state.c | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/src/barebox-state.c b/src/barebox-state.c -index 57305c4..f56275f 100644 ---- a/src/barebox-state.c -+++ b/src/barebox-state.c -@@ -81,6 +81,7 @@ struct state_backend { - enum state_variable_type { - STATE_TYPE_INVALID = 0, - STATE_TYPE_ENUM, -+ STATE_TYPE_U8, - STATE_TYPE_U32, - STATE_TYPE_MAC, - }; -@@ -185,6 +186,32 @@ static int state_uint32_import(struct state_variable *sv, - return 0; - } - -+static struct state_variable *state_uint8_create(struct state *state, -+ const char *name, struct device_node *node) -+{ -+ struct state_uint32 *su32; -+ struct param_d *param; -+ -+ su32 = xzalloc(sizeof(*su32)); -+ -+ param = dev_add_param_int(&state->dev, name, state_set_dirty, -+ NULL, &su32->value, "%u", state); -+ if (IS_ERR(param)) { -+ free(su32); -+ return ERR_CAST(param); -+ } -+ -+ su32->param = param; -+ su32->var.size = sizeof(uint8_t); -+#ifdef __LITTLE_ENDIAN -+ su32->var.raw = &su32->value; -+#else -+ su32->var.raw = &su32->value + 3; -+#endif -+ -+ return &su32->var; -+} -+ - static struct state_variable *state_uint32_create(struct state *state, - const char *name, struct device_node *node) - { -@@ -395,6 +422,14 @@ out: - - static struct variable_type types[] = { - { -+ .type = STATE_TYPE_U8, -+ .type_name = "uint8", -+ .export = state_uint32_export, -+ .import = state_uint32_import, -+ .create = state_uint8_create, -+ .set = state_uint32_set, -+ .get = state_uint32_get, -+ }, { - .type = STATE_TYPE_U32, - .type_name = "uint32", - .export = state_uint32_export, --- -2.1.4 - diff --git a/meta-sysmocom-bsp/recipes-extra/ca-certificates/ca-cacert-rootcert.bb b/meta-sysmocom-bsp/recipes-extra/ca-certificates/ca-cacert-rootcert.bb index 271b43c296..9ddf95cc81 100644 --- a/meta-sysmocom-bsp/recipes-extra/ca-certificates/ca-cacert-rootcert.bb +++ b/meta-sysmocom-bsp/recipes-extra/ca-certificates/ca-cacert-rootcert.bb @@ -5,18 +5,21 @@ LICENSE = "RDL-COD14" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" PR = "r6" -SRC_URI = "file://root.crt file://class3.crt" +SRC_URI = "file://root.crt file://class3.crt file://DST_Root_CA_X3.pem" do_install() { install -d ${D}${libdir}/ssl/certs install -m 0644 ${WORKDIR}/root.crt ${D}${libdir}/ssl/certs/cacert.org.pem cat ${WORKDIR}/class3.crt >> ${D}${libdir}/ssl/certs/cacert.org.pem + install -m 0644 ${WORKDIR}/DST_Root_CA_X3.pem ${D}${libdir}/ssl/certs/ # Create hash symlinks cd ${D}${libdir}/ssl/certs ln -s cacert.org.pem e5662767.0 ln -s cacert.org.pem 5ed36f99.0 ln -s cacert.org.pem 99d0fa06.0 + + ln -s DST_Root_CA_X3.pem 2e5ac55d.0 } FILES_${PN} = "${libdir}/ssl/certs/*" diff --git a/meta-sysmocom-bsp/recipes-extra/ca-certificates/files/DST_Root_CA_X3.pem b/meta-sysmocom-bsp/recipes-extra/ca-certificates/files/DST_Root_CA_X3.pem new file mode 100644 index 0000000000..b2e43c9381 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-extra/ca-certificates/files/DST_Root_CA_X3.pem @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow +PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD +Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O +rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq +OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b +xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw +7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD +aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG +SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 +ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr +AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz +R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 +JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo +Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- diff --git a/meta-sysmocom-bsp/recipes-extra/dnsmasq/dnsmasq.inc b/meta-sysmocom-bsp/recipes-extra/dnsmasq/dnsmasq.inc index d988f1c274..e17dfefb1b 100644 --- a/meta-sysmocom-bsp/recipes-extra/dnsmasq/dnsmasq.inc +++ b/meta-sysmocom-bsp/recipes-extra/dnsmasq/dnsmasq.inc @@ -15,7 +15,7 @@ SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getV inherit pkgconfig update-rc.d systemd -PR = "r3" +PR = "r4" INITSCRIPT_NAME = "dnsmasq" INITSCRIPT_PARAMS = "defaults" diff --git a/meta-sysmocom-bsp/recipes-extra/dnsmasq/files/sysmocom-bsc/dnsmasq.conf b/meta-sysmocom-bsp/recipes-extra/dnsmasq/files/sysmocom-bsc/dnsmasq.conf new file mode 100755 index 0000000000..e885eeb17b --- /dev/null +++ b/meta-sysmocom-bsp/recipes-extra/dnsmasq/files/sysmocom-bsc/dnsmasq.conf @@ -0,0 +1,288 @@ +# Configuration file for dnsmasq. +# +# Format is one option per line, legal options are the same +# as the long options legal on the command line. See +# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details. + +# Change these lines if you want dnsmasq to serve MX records. +# Only one of mx-host and mx-target need be set, the other defaults +# to the name of the host running dnsmasq. +#mx-host= +#mx-target= +#selfmx +#localmx + +# The following two options make you a better netizen, since they +# tell dnsmasq to filter out queries which the public DNS cannot +# answer, and which load the servers (especially the root servers) +# uneccessarily. If you have a dial-on-demand link they also stop +# these requests from bringing up the link uneccessarily. + +# Never forward plain names (with a dot or domain part) +domain-needed +# Never forward addresses in the non-routed address spaces. +bogus-priv + + +# Uncomment this to filter useless windows-originated DNS requests +# which can trigger dial-on-demand links needlessly. +# Note that (amongst other things) this blocks all SRV requests, +# so don't use it if you use eg Kerberos. +#filterwin2k + +# Change this line if you want dns to get its upstream servers from +# somewhere other that /etc/resolv.conf +#resolv-file= + +# By default, dnsmasq will send queries to any of the upstream +# servers it knows about and tries to favour servers to are known +# to be up. Uncommenting this forces dnsmasq to try each query +# with each server strictly in the order they appear in +# /etc/resolv.conf +#strict-order + +# If you don't want dnsmasq to read /etc/resolv.conf or any other +# file, getting its servers for this file instead (see below), then +# uncomment this +#no-resolv + +# If you don't want dnsmasq to poll /etc/resolv.conf or other resolv +# files for changes and re-read them then uncomment this. +#no-poll + +# Add other name servers here, with domain specs if they are for +# non-public domains. +#server=/localnet/192.168.0.1 + +# Add local-only domains here, queries in these domains are answered +# from /etc/hosts or DHCP only. +#local=/localnet/ + +# Add domains which you want to force to an IP address here. +# The example below send any host in doubleclick.net to a local +# webserver. +#address=/doubleclick.net/127.0.0.1 + +# You no longer (as of version 1.7) need to set these to enable +# dnsmasq to read /etc/ppp/resolv.conf since dnsmasq now uses the +# "dip" group to achieve this. +#user= +#group= + +# If you want dnsmasq to listen for requests only on specified interfaces +# (and the loopback) give the name of the interface (eg eth0) here. +# Repeat the line for more than one interface. +interface=eth1 +# Or you can specify which interface _not_ to listen on +#except-interface= +# Or which to listen on by address (remember to include 127.0.0.1 if +# you use this.) +#listen-address= + +# On systems which support it, dnsmasq binds the wildcard address, +# even when it is listening on only some interfaces. It then discards +# requests that it shouldn't reply to. This has the advantage of +# working even when interfaces come and go and change address. If you +# want dnsmasq to really bind only the interfaces it is listening on, +# uncomment this option. About the only time you may need this is when +# running another nameserver on the same machine. +#bind-interfaces + +# If you don't want dnsmasq to read /etc/hosts, uncomment the +# following line. +#no-hosts +# or if you want it to read another file, as well as /etc/hosts, use +# this. +#addn-hosts=/etc/banner_add_hosts + +# Set this (and domain: see below) if you want to have a domain +# automatically added to simple names in a hosts-file. +#expand-hosts + +# Set the domain for dnsmasq. this is optional, but if it is set, it +# does the following things. +# 1) Allows DHCP hosts to have fully qualified domain names, as long +# as the domain part matches this setting. +# 2) Sets the "domain" DHCP option thereby potentially setting the +# domain of all systems configured by DHCP +# 3) Provides the domain part for "expand-hosts" +#domain=thekelleys.org.uk + +# Uncomment this to enable the integrated DHCP server, you need +# to supply the range of addresses available for lease and optionally +# a lease time. If you have more than one network, you will need to +# repeat this for each network on which you want to supply DHCP +# service. +#dhcp-range=192.168.0.50,192.168.0.150,12h +dhcp-range=10.23.24.10,10.23.24.200,2h + +# This is an example of a DHCP range where the netmask is given. This +# is needed for networks we reach the dnsmasq DHCP server via a relay +# agent. If you don't know what a DHCP relay agent is, you probably +# don't need to worry about this. +#dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h + +# This is an example of a DHCP range with a network-id, so that +# some DHCP options may be set only for this network. +#dhcp-range=red,192.168.0.50,192.168.0.150 + +# Supply parameters for specified hosts using DHCP. There are lots +# of valid alternatives, so we will give examples of each. Note that +# IP addresses DO NOT have to be in the range given above, they just +# need to be on the same network. The order of the parameters in these +# do not matter, it's permissble to give name,adddress and MAC in any order + +# Always allocate the host with ethernet address 11:22:33:44:55:66 +# The IP address 192.168.0.60 +#dhcp-host=11:22:33:44:55:66,192.168.0.60 + +# Always set the name of the host with hardware address +# 11:22:33:44:55:66 to be "fred" +#dhcp-host=11:22:33:44:55:66,fred + +# Always give the host with ethernet address 11:22:33:44:55:66 +# the name fred and IP address 192.168.0.60 and lease time 45 minutes +#dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m + +# Give the machine which says it's name is "bert" IP address +# 192.168.0.70 and an infinite lease +#dhcp-host=bert,192.168.0.70,infinite + +# Always give the host with client identifier 01:02:02:04 +# the IP address 192.168.0.60 +#dhcp-host=id:01:02:02:04,192.168.0.60 + +# Always give the host with client identifier "marjorie" +# the IP address 192.168.0.60 +#dhcp-host=id:marjorie,192.168.0.60 + +# Enable the address given for "judge" in /etc/hosts +# to be given to a machine presenting the name "judge" when +# it asks for a DHCP lease. +#dhcp-host=judge + +# Never offer DHCP service to a machine whose ethernet +# address is 11:22:33:44:55:66 +#dhcp-host=11:22:33:44:55:66,ignore + +# Ignore any client-id presented by the machine with ethernet +# address 11:22:33:44:55:66. This is useful to prevent a machine +# being treated differently when running under different OS's or +# between PXE boot and OS boot. +#dhcp-host=11:22:33:44:55:66,id:* + +# Send extra options which are tagged as "red" to +# the machine with ethernet address 11:22:33:44:55:66 +#dhcp-host=11:22:33:44:55:66,net:red + +# Send extra options which are tagged as "red" to any machine whose +# DHCP vendorclass string includes the substring "Linux" +#dhcp-vendorclass=red,Linux + +# Send extra options which are tagged as "red" to any machine one +# of whose DHCP userclass strings includes the substring "accounts" +#dhcp-userclass=red,accounts + +# If this line is uncommented, dnsmasq will read /etc/ethers and act +# on the ethernet-address/IP pairs found there just as if they had +# been given as --dhcp-host options. Useful if you keep +# MAC-address/host mappings there for other purposes. +#read-ethers + +# Send options to hosts which ask for a DHCP lease. +# See RFC 2132 for details of available options. +# Note that all the common settings, such as netmask and +# broadcast address, DNS server and default route, are given +# sane defaults by dnsmasq. You very likely will not need any +# any dhcp-options. If you use Windows clients and Samba, there +# are some options which are recommended, they are detailed at the +# end of this section. +# For reference, the common options are: +# subnet mask - 1 +# default router - 3 +# DNS server - 6 +# broadcast address - 28 + +# Set the NTP time server addresses to 192.168.0.4 and 10.10.0.5 +#dhcp-option=42,192.168.0.4,10.10.0.5 + +# Set the NTP time server address to be the same machine as +# is running dnsmasq +#dhcp-option=42,0.0.0.0 + +# Set the NIS domain name to "welly" +#dhcp-option=40,welly + +# Set the default time-to-live to 50 +#dhcp-option=23,50 + +# Set the "all subnets are local" flag +#dhcp-option=27,1 + +# Send the etherboot magic flag and then etherboot options (a string). +#dhcp-option=128,e4:45:74:68:00:00 +#dhcp-option=129,NIC=eepro100 + +# Specify an option which will only be sent to the "red" network +# (see dhcp-range for the declaration of the "red" network) +#dhcp-option=red,42,192.168.1.1 + +# The following DHCP options set up dnsmasq in the same way as is specified +# for the ISC dhcpcd in +# http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt +# adapted for a typical dnsmasq installation where the host running +# dnsmasq is also the host running samba. +# you may want to uncomment them if you use Windows clients and Samba. +#dhcp-option=19,0 # option ip-forwarding off +#dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s) +#dhcp-option=45,0.0.0.0 # netbios datagram distribution server +#dhcp-option=46,8 # netbios node type +#dhcp-option=47 # empty netbios scope. + + +# Set the boot filename and tftpd server name and address +# for BOOTP. You will only need this is you want to +# boot machines over the network. +#dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3 + +# Set the limit on DHCP leases, the default is 150 +#dhcp-lease-max=150 + +# The DHCP server needs somewhere on disk to keep its lease database. +# This defaults to a sane location, but if you want to change it, use +# the line below. +#dhcp-leasefile=/var/lib/misc/dnsmasq.leases + +# Set the cachesize here. +#cache-size=150 + +# If you want to disable negative caching, uncomment this. +#no-negcache + +# Normally responses which come form /etc/hosts and the DHCP lease +# file have Time-To-Live set as zero, which conventionally means +# do not cache further. If you are happy to trade lower load on the +# server for potentially stale date, you can set a time-to-live (in +# seconds) here. +#local-ttl= + +# If you want dnsmasq to detect attempts by Verisign to send queries +# to unregistered .com and .net hosts to its sitefinder service and +# have dnsmasq instead return the correct NXDOMAIN response, uncomment +# this line. You can add similar lines to do the same for other +# registries which have implemented wildcard A records. +#bogus-nxdomain=64.94.110.11 + +# If you want to fix up DNS results from upstream servers, use the +# alias option. This only works for IPv4. +# This alias makes a result of 1.2.3.4 appear as 5.6.7.8 +#alias=1.2.3.4,5.6.7.8 +# and this maps 1.2.3.x to 5.6.7.x +#alias=1.2.3.0,5.6.7.0,255.255.255.0 + +# For debugging purposes, log each DNS query as it passes through +# dnsmasq. +#log-queries + +# Include a another lot of configuration options. +#conf-file=/etc/dnsmasq.more.conf diff --git a/meta-sysmocom-bsp/recipes-extra/gpsdate/gpsdate_git.bb b/meta-sysmocom-bsp/recipes-extra/gpsdate/gpsdate_git.bb index 753d9ba57f..c880218bfa 100644 --- a/meta-sysmocom-bsp/recipes-extra/gpsdate/gpsdate_git.bb +++ b/meta-sysmocom-bsp/recipes-extra/gpsdate/gpsdate_git.bb @@ -6,13 +6,13 @@ DEPENDS = "gpsd" RDEPENDS_${PN} = "libgps" PE = "1" -PR = "r13" +PR = "r14" PV = "0.2+git${SRCPV}" SRC_URI = "git://git.sysmocom.de/gpsdate.git;branch=master \ file://gpsdate.default \ " -SRCREV = "8c0f608643504b14c42ecb0d436354fad3cc7929" +SRCREV = "81690ca78e816f86e0da11bbe8cba725fa1a634d" S = "${WORKDIR}/git" INITSCRIPT_NAME = "gpsdate" diff --git a/meta-sysmocom-bsp/recipes-extra/rauc/files/gsmk-owhw/system.conf b/meta-sysmocom-bsp/recipes-extra/rauc/files/gsmk-owhw/system.conf new file mode 100644 index 0000000000..c716db3639 --- /dev/null +++ b/meta-sysmocom-bsp/recipes-extra/rauc/files/gsmk-owhw/system.conf @@ -0,0 +1,27 @@ +[system] +compatible=gsmk-owhw +bootloader=barebox +mountprefix=/mnt/rauc + +[keyring] +path=ca.pem + +[slot.rescue.0] +device=/dev/ubi0_rescue +type=ubifs +bootname=rescue +readonly=true + +[slot.rootfs.0] +device=/dev/ubi0_system0 +type=ubifs +bootname=system0 + +[slot.rootfs.1] +device=/dev/ubi0_system1 +type=ubifs +bootname=system1 + +[slot.data.0] +device=/dev/ubi0_data +type=ubifs diff --git a/meta-sysmocom-bsp/recipes-extra/rauc/rauc.bb b/meta-sysmocom-bsp/recipes-extra/rauc/rauc.bb index 9f607a79b3..f96da09106 100644 --- a/meta-sysmocom-bsp/recipes-extra/rauc/rauc.bb +++ b/meta-sysmocom-bsp/recipes-extra/rauc/rauc.bb @@ -1,7 +1,7 @@ DESCRIPTION = "rauc update controller" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -PR = "r0" +PR = "r1" SRC_URI = "git://github.com/jluebbe/rauc.git;protocol=https \ file://dev-ca.pem \ @@ -20,6 +20,7 @@ DEPENDS = "curl openssl glib-2.0" # rauc is invoking these depending the machine RDEPENDS_${PN}_append_sysmobts-v2 = " barebox-state" RDEPENDS_${PN}_append_sysmocom-odu = " barebox-state" +RDEPENDS_${PN}_append_gsmk-owhw = " barebox-state" RDEPENDS_${PN}_append_sysmocom-bsc = " grub" FILES_${PN} += "/mnt/rauc" diff --git a/meta-sysmocom-bsp/recipes-fixes/systemd/systemd/gsmk-owhw/system.conf b/meta-sysmocom-bsp/recipes-fixes/systemd/systemd/gsmk-owhw/system.conf new file mode 100644 index 0000000000..ff9ecb874e --- /dev/null +++ b/meta-sysmocom-bsp/recipes-fixes/systemd/systemd/gsmk-owhw/system.conf @@ -0,0 +1,43 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# See systemd.conf(5) for details + +[Manager] +#LogLevel=info +#LogTarget=journal-or-kmsg +#LogColor=yes +#LogLocation=no +#DumpCore=yes +#CrashShell=no +#ShowStatus=yes +#CrashChVT=1 +#CPUAffinity=1 2 +#DefaultControllers=cpu +#DefaultStandardOutput=journal +#DefaultStandardError=inherit +#JoinControllers=cpu,cpuacct,cpuset net_cls,net_prio +RuntimeWatchdogSec=60 +ShutdownWatchdogSec=60 +#CapabilityBoundingSet= +#TimerSlackNSec= +#DefaultLimitCPU= +#DefaultLimitFSIZE= +#DefaultLimitDATA= +#DefaultLimitSTACK= +#DefaultLimitCORE= +#DefaultLimitRSS= +#DefaultLimitNOFILE= +#DefaultLimitAS= +#DefaultLimitNPROC= +#DefaultLimitMEMLOCK= +#DefaultLimitLOCKS= +#DefaultLimitSIGPENDING= +#DefaultLimitMSGQUEUE= +#DefaultLimitNICE= +#DefaultLimitRTPRIO= +#DefaultLimitRTTIME= diff --git a/meta-sysmocom-bsp/recipes-sysmobts/uboot/u-boot_sysmocom.inc b/meta-sysmocom-bsp/recipes-sysmobts/uboot/u-boot_sysmocom.inc index 731d149269..5a162f8ad6 100644 --- a/meta-sysmocom-bsp/recipes-sysmobts/uboot/u-boot_sysmocom.inc +++ b/meta-sysmocom-bsp/recipes-sysmobts/uboot/u-boot_sysmocom.inc @@ -13,6 +13,10 @@ COMPATIBLE_MACHINE = "(sysmobts-v2)" UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}" UBOOT_SYMLINK = "u-boot-${MACHINE}" +do_install_append() { + rm ${D}/boot/* +} + do_deploy_prepend () { install -d ${DEPLOYDIR} install ${S}/u-boot.bin ${DEPLOYDIR}/${UBOOT_IMAGE}.bin diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/add-march-i486-into-CFLAGS-automatically.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/add-march-i486-into-CFLAGS-automatically.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/add-march-i486-into-CFLAGS-automatically.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/add-march-i486-into-CFLAGS-automatically.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/allow-run-media-sdX-drive-mount-if-username-root.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/allow-run-media-sdX-drive-mount-if-username-root.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/allow-run-media-sdX-drive-mount-if-username-root.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/allow-run-media-sdX-drive-mount-if-username-root.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/configure-libtool.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/configure-libtool.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/fix-conflicting-rand.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/fix-conflicting-rand.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/fix-conflicting-rand.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/fix-conflicting-rand.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/glib-gettextize-dir.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/glib-gettextize-dir.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/glib-gettextize-dir.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/glib-gettextize-dir.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/ptest-paths.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/ptest-paths.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/ptest-paths.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/ptest-paths.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/uclibc.patch b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/uclibc.patch similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0/uclibc.patch rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0/uclibc.patch diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0_2.40.0.bb b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0_2.40.0.bb similarity index 95% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0_2.40.0.bb rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0_2.40.0.bb index 245b91c34e..8d61f49fbc 100644 --- a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib-2.0_2.40.0.bb +++ b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib-2.0_2.40.0.bb @@ -19,3 +19,5 @@ SRC_URI_append_class-native = " file://glib-gettextize-dir.patch" SRC_URI[md5sum] = "05fb7cb17eacbc718e90366a1eae60d9" SRC_URI[sha256sum] = "0d27f195966ecb1995dcce0754129fd66ebe820c7cd29200d264b02af1aa28b5" + +EXTRA_OECONF += " --enable-static " diff --git a/meta-sysmocom-bsp/recipes-core/glib-2.0/glib.inc b/meta-sysmocom-bsp/yocto-dora/glib-2.0/glib.inc similarity index 100% rename from meta-sysmocom-bsp/recipes-core/glib-2.0/glib.inc rename to meta-sysmocom-bsp/yocto-dora/glib-2.0/glib.inc diff --git a/meta-sysmocom-bsp/yocto-master/glib-2.0_%.bbappend b/meta-sysmocom-bsp/yocto-master/glib-2.0_%.bbappend new file mode 100644 index 0000000000..53e9c016a9 --- /dev/null +++ b/meta-sysmocom-bsp/yocto-master/glib-2.0_%.bbappend @@ -0,0 +1,2 @@ +EXTRA_OECONF += " --enable-static " +