aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* kernel: bump 4.14 to 4.14.105Koen Vandeputte2019-03-071-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.162Koen Vandeputte2019-03-071-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ib: display whether profile comes with image metadataDaniel Golle2019-03-061-0/+1
| | | | | | | | Having image metadata (and signature) appended is a condition for semi-automated sysupgrade, hence IB needs to be able to tell which images will end up with metadata. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* metadata: add "metadata_version" fieldPaul Spooren2019-03-061-0/+1
| | | | | | | allow downstream projects to see the current version of the metadata, usefull if eventually more variables change Signed-off-by: Paul Spooren <mail@aparcar.org>
* metadata: add "target" entryPaul Spooren2019-03-061-0/+1
| | | | | | | add "target" entry based on $(TARGETID) resulting in `<target>/<subtarget>`. Signed-off-by: Paul Spooren <mail@aparcar.org>
* metadata: fixup "board"Paul Spooren2019-03-061-1/+1
| | | | | | | | currently the "board" parameter contains $(BOARD) which actually results to `<target>` (like ramips, ar71xx) without subtarget. However, one actually excepts (not?) to contain BOARD_NAME or DEVICE_NAME. Signed-off-by: Paul Spooren <mail@aparcar.org>
* kernel: bump 4.14 to 4.14.104Koen Vandeputte2019-03-051-2/+2
| | | | | | | | | | | | Refreshed all patches. Altered patches: - 332-arc-add-OWRTDTB-section.patch Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.161Koen Vandeputte2019-03-051-2/+2
| | | | | | | | | | | | Refreshed all patches. Altered patches: - 332-arc-add-OWRTDTB-section.patch Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* include/kernel: sort autoload modules list to fix reproducible buildsAlexander Couzens2019-02-281-1/+1
| | | | | | | | When autoloading more than one modules per packages, /etc/modules.d/$module depends on the file system ordering. To test this: use disorderfs on the build_dir and build kmod-sched. Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* tools: migrate from squashfs4 to squashfskit4Alexander Couzens2019-02-281-2/+1
| | | | | | | | | squashfskit is a fork of the squashfs-tools. squashfskit creates reproducible filesystems and includes many of the distro patches. Signed-off-by: Alexander Couzens <lynxis@fe80.eu> Tested-by: Paul Spooren <mail@aparcar.org>
* build: qsdk-ipq-*: include dtc in PATH before calling mkimagePiotr Dymacz2019-02-261-2/+2
| | | | | | | Use 'dtc' from kernel sources instead of relying on host tool. Fixes: bf4630e5adb4 ("build: add helpers for generating QSDK sysupgrade compatible images") Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* build: add helpers for generating QSDK sysupgrade compatible imagesPiotr Dymacz2019-02-251-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot for verifying and extracting them. Based on 'images' sections names, corresponding mtd partitions are flashed. For example, in case of NOR-only boards, below mapping is used (section name -> mtd name): hlos* -> 0:HLOS rootfs* -> rootfs And for boards with NAND (kernel inside UBI): ubi* -> rootfs Above mappings come from unmodified QSDK sources and might be wrong for boards running custom or modified QSDK-based firmware. Some of vendors adjust them to meet their modified mtd layout or features like recovery or dual-image support. This adds simple script 'mkits-qsdk-ipq-image.sh' (based on 'mkits.sh') for generating FIT images tree source files, compatible with the QSDK sysupgrade format. Resulting images can be used for initial (factory -> OpenWrt) installation and would work both in CLI and GUI. The script is universal in a way it allows to include as many sections as needed. To make use of it, two generic/basic build recipes for NOR and NAND based boards are also included in 'image-commands.mk': Build/qsdk-ipq-factory-nand Build/qsdk-ipq-factory-nor Example usage for board with UBI in NAND: IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* kernel: bump 4.19 to 4.19.25Koen Vandeputte2019-02-251-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.103Koen Vandeputte2019-02-251-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.160Koen Vandeputte2019-02-251-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 3.18 to 3.18.136Koen Vandeputte2019-02-251-2/+2
| | | | | | | | | | | | Refreshed all patches. Fixes: - CVE-2019-6974 Compile-tested: adm5120 Runtime-tested: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.19 to 4.19.24Koen Vandeputte2019-02-221-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.102Koen Vandeputte2019-02-221-2/+2
| | | | | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch Remove upstreamed hunks: - 080-pinctrl-msm-fix-gpio-hog-related-boot-issues.patch Fixes: - CVE-2018-1000026 Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.159Koen Vandeputte2019-02-221-2/+2
| | | | | | | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 023-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch - 023-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch - 023-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch - 050-usb-dwc2-Remove-unnecessary-kfree.patch - 092-netfilter-nf_tables-fix-mismatch-in-big-endian-syste.patch - 272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch Fixes: - CVE-2018-1000026 Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 3.18 to 3.18.135Koen Vandeputte2019-02-221-2/+2
| | | | | | | | | | | | | | Refreshed all patches. Fixes: - CVE-2019-3819 - CVE-2019-7221 - CVE-2019-7222 Compile-tested on: adm5120 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* build: Fix print without colorHauke Mehrtens2019-02-171-1/+1
| | | | | | | | The original patch removed the printing completely, just remove the color. Fixes: eabc1ddc4541 ("build: Honour NO_COLOR in include/scan.mk") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* build: Accept BIN_DIR parameter for legacy-imagesSven Eckelmann2019-02-171-2/+2
| | | | | | | | | | | | | | | | | | BIN_DIR can be set to overwrite the output path for new images. This is an advertised feature for the imagebuilder and is used by systems like LibreMesh's chef. The legacy images are build using a new sub-make which doesn't receive the variable overwrites of the parent make process. As result, the BIN_DIR is automatically defined to the default value from rules.mk. The images will therefore not be placed in the output path which was selected by the user. Providing BIN_DIR as an explicit variable override to the sub-make works around this problem. Fixes: 26c771452cd8 ("image.mk: add LegacyDevice wrapper to allow legacy image building code to be used for device profiles") Reported-by: Paul Spooren <mail@aparcar.org> Signed-off-by: Sven Eckelmann <sven@narfation.org>
* build: Honour NO_COLOR in include/scan.mkR. Diez2019-02-171-2/+8
| | | | | | | | | | | | | | | The sender domain has a DMARC Reject/Quarantine policy which disallows sending mailing list messages using the original "From" header. To mitigate this problem, the original message has been wrapped automatically by the mailing list software. Hi all: This is my first OpenWrt patch. I am a clean, pure newbie! 8-) Honour NO_COLOR in Makefile function 'progress' in include/scan.mk, in the same way that include/verbose.mk does. Signed-off-by: R. Diez <rdiezmail-openwrt@yahoo.com>
* kernel: bump 4.19 to 4.19.23Koen Vandeputte2019-02-151-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.101Koen Vandeputte2019-02-151-2/+2
| | | | | | | | | | | | Refreshed all patches. Fixes: - CVE-2019-3819 Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.158Koen Vandeputte2019-02-151-2/+2
| | | | | | | | | | | | Refreshed all patches. Fixes: - CVE-2019-3819 Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.19 to 4.19.21Koen Vandeputte2019-02-141-2/+2
| | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 0007-ARM-dts-Fix-up-the-D-Link-DIR-685-MTD-partition-info.patch Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.99Koen Vandeputte2019-02-141-2/+2
| | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 950-0434-mmc-bcm2835-Recover-from-MMC_SEND_EXT_CSD.patch Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.156Koen Vandeputte2019-02-141-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* build: add KERNEL_ENTRY and sort DEFAULT_DEVICE_VARSChristian Lamparter2019-02-111-6/+5
| | | | | | | | | | | | | | | | | The KERNEL_ENTRY was missing from the DEFAULT_DEVICE_VARS. This bug was discovered while preparing alternative images for the mpc85xx's TP-Link WDR4900-V1, which all failed to boot due to this: |## Booting kernel from Legacy Image at 02000000 ... | Image Name: POWERPC OpenWrt Linux-4.14.96 | Image Type: PowerPC Linux Kernel Image (uncompressed) | Data Size: 2056568 Bytes = 2 MiB | Load Address: 01000000 | Entry Point: 00000000 | Verifying Checksum ... OK Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: bump 4.19 to 4.19.20Koen Vandeputte2019-02-081-2/+2
| | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch Altered patches: - 721-phy_packets.patch Compile-tested on: imx6 Runtime-tested on: imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.98Koen Vandeputte2019-02-081-2/+2
| | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch Altered patches: - 721-phy_packets.patch Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.155Koen Vandeputte2019-02-081-2/+2
| | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch Altered patches: - 721-phy_packets.patch Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 3.18 to 3.18.134Koen Vandeputte2019-02-081-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: adm5120 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* build: Fix missing device variables for artifactsPetr Štetiar2019-02-051-0/+1
| | | | | | | | | | | | | | It was reported to me today on IRC, that building of artifacts doesn't work properly if the concat_cmd references DEVICE_NAME variable. I've found out, that it's due to missing call of Device/Export in artifacts building code path, so this patch adds the missing Device/Export call which in turn exports DEFAULT_DEVICE_VARS into the artifacts environment. Fixes: 493c9a35516c ("build: Introduce building of artifacts") Tested-by: Oskari Lemmela <oskari@lemmela.net> Reported-by: Oskari Lemmela <oskari@lemmela.net> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* kernel: bump 4.19 to 4.19.19Koen Vandeputte2019-02-011-2/+2
| | | | | | | | | | | | Refreshed all patches. Remove upstreamed patch: - 800-v5.0-usb-leds-fix-regression-in-usbport-led-trigger.patch Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.97Koen Vandeputte2019-02-011-2/+2
| | | | | | | | | | | | Refreshed all patches. Adapted patches: - 012-kbuild-add-macro-for-controlling-warnings-to-linux-c.patch Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.154Koen Vandeputte2019-02-011-2/+2
| | | | | | | | | | | | Refreshed all patches. Adapted patches: - 012-kbuild-add-macro-for-controlling-warnings-to-linux-c.patch Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* build: Use LINUX_DIR for Kernel/PatchMichal Hrusecky2019-01-301-5/+5
| | | | | | | | Use LINUX_DIR as a path when patching kernel. Doesn't break the current usage, but allows to create packages that will contain variation of a kernel with kernel being build in some subdirectory of PKG_BUILD_DIR. Signed-off-by: Michal Hrusecky <michal.hrusecky@nic.cz>
* build: fix umask detection bashismThorsten Glaser2019-01-301-1/+1
| | | | | | the leading 0 is optional and not emitted by some shells Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
* build: fix STAGING_DIR cleaning for packagesJeffery To2019-01-301-3/+4
| | | | | | | | | | | | | | | | This fixes two issues with cleaning package files from STAGING_DIR: * CleanStaging currently can only remove files and not directories. This changes CleanStaging to use clean-package.sh, which does remove directories. * Because of the way directories are ordered in the staging files list, clean-package.sh currently tries (and fails) to remove parent directories before removing subdirectories. This changes clean-package.sh to process the staging files list in reverse, so that subdirectories are removed first. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* kernel: bump 4.19 to 4.19.18Koen Vandeputte2019-01-281-2/+2
| | | | | | | | | | | | | | | | Refreshed all patches. Removed upstreamed: - 031-v5.0-MIPS-BCM47XX-Setup-struct-device-for-the-SoC.patch - 142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch Removed upstreamed hunk in: - 800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.96Koen Vandeputte2019-01-281-2/+2
| | | | | | | | | | | | Refreshed all patches. Remove upstreamed patches: - 142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.153Koen Vandeputte2019-01-281-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 3.18 to 3.18.133Koen Vandeputte2019-01-281-2/+2
| | | | | | | | | Refreshed all patches. Compile-tested on: adm5120 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* build: dtc: Disable noisy warnings by defaultPetr Štetiar2019-01-271-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While helping with review and build testing of a few 4.19 pull requests, I've noticed, that dtc compiler in OpenWrt uses different options then upstream kernel, which is leading to a very noisy output[1]. It wouldn't be that bad per se, but a lot of such warnings aren't easily fixable so I think, that we should follow what upstream does and simply ignore^W silence those noisy warnings. So this patch tries to syncs dtc compiler flags with upstream kernel till version 4.19.13, disabling those warnings as they were added in upstream kernel: v4.6-rc1-2-gbc55398 dtc: turn off dtc unit address warnings by default The newly added dtc warning to check DT unit-address without reg property and vice-versa generates lots of warnings. Turn off the check unless building with W=1 or W=2. v4.11-rc2-11-g8654cb8 dtc: update warning settings for new bus and node/property dtc gained new warnings checking PCI and simple buses, unit address formatting, and stricter node and property name checking. Disable the new dtc warnings by default as there are 1000s. As before, warnings are enabled with W=1 or W=2. The strict node and property name checks are a bit subjective, so they are only enabled for W=2. v4.16-rc3-9-g4fd98e3 scripts: turn off some new dtc warnings by default The latest dtc update adds some new noisy warnings, so turn them off by default. Disable 'avoid_unnecessary_addr_size' and 'alias_paths'. They can be re-enabled by building with 'W=1'. v4.17-rc1-27-g74656b6 kbuild: disable new dtc graph and unit-address warnings dtc gained some new warnings for OF graphs and unique unit addresses, but they are currently much too noisy. So turn off 'graph_child_address', 'graph_port', and 'unique_unit_address' warnings by default. They can be enabled by building dtbs with W=1. Build tested on imx6 and ath79 with 4.14 and 4.19. 1. https://github.com/openwrt/openwrt/pull/1694#issuecomment-450864335 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* u-boot.mk: Fix building of recent U-Boot sourcesPetr Štetiar2019-01-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes following error with U-Boot 2019.01 on imx6: In file included from tools/lib/crc16.c:1:0: ./tools/../lib/crc16.c: In function 'crc16_ccitt': ./tools/../lib/crc16.c:70:2: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < len; i++) ^ ./tools/../lib/crc16.c:70:2: note: use option -std=c99 or -std=gnu99 to compile your code Code was introduced in the upstream v2019.01-rc1-154-g51c2345: commit 51c2345bd24837f9f67f16268da6dc71573f1325 Author: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Date: Sun Nov 25 19:22:19 2018 +0100 Roll CRC16-CCITT into the hash infrastructure Upstream has added -std=gnu11 host flag in v2018.07-rc2-1-gfa89399: commit fa893990e9b53425af5f5059e04a2bffde91ccf9 Author: Tom Rini <trini@konsulko.com> Date: Tue Jun 19 23:53:54 2018 -0400 Makefile: Ensure we build with -std=gnu11 Build tested on imx6: apalis, mx6sabresd, nitrogen6dl, nitrogen6dl2g, nitrogen6q, nitrogen6q2g, nitrogen6s, nitrogen6s1g, wandboard Run tested: apalis (pending PR #1595) Signed-off-by: Petr Štetiar <ynezz@true.cz>
* build: add a script for generating Linksys factory imagesOever González2019-01-261-0/+7
| | | | | | | | | | | | | This commit adds the 'Build/linksys-image' rule and the 'linksys-image.sh' script to the build system. This change is needed for generating factory images for the Linksys EA6350v3 device. Without this patch, only valid sysupgrade images can be generated. With this patch, users can flash the device without the need of physical access or disassembly. Signed-off-by: Ryan Pannell <ryan@osukl.com> Signed-off-by: Oever González <notengobattery@gmail.com>
* toolchain: Include hardening.mk for toolchain buildHauke Mehrtens2019-01-241-0/+1
| | | | | | | | This adds the hardening options also to the toolchain build. With this change the /usr/lib/libstdc++.so.6.0.24 library will have stack canaries and the /lib/libgcc_s.so.1 library will have Full RELRO. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* build: formatting fixes for per-provide ABI_VERSION suffixesJo-Philipp Wich2019-01-241-1/+1
| | | | | | | | | - Filter out potential duplicates with the package name (e.g. when renaming libfoo1 w/ ABI_VERSION:=1 to libfoo) - Use the GetABISuffix macro to properly separate the suffix with a dash in case the basename ends with a number Signed-off-by: Jo-Philipp Wich <jo@mein.io>