openwrt/staging/hauke.git
3 years agoinclude: store ABIVersion in Packages index
Paul Spooren [Mon, 8 Mar 2021 04:09:32 +0000 (18:09 -1000)]
include: store ABIVersion in Packages index

With the existence of ABI versions there is no clean way to determine
the package name without an attached ABI version. The Packages index is
stored on device to know what packages are installed.

The ABIVersion was recently removed in c921650382 "build: drop ABI
version from metadata", while ABI versions still exists. This becomes a
problem if a user tries to export installed packages via `ubus call
rpcd-sys packagelist` which would return package names including the ABI
version. Trying to find these packages in a later release with changes
ABI version is impossible.

This commits adds the `ABIVersion` field again. Knowing both the
combined (SourceName + ABIVersion) and the `ABIVersion` it is possible
to calculate the package `SourceName` without storing it in the
on-device package list.

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit fc5b101c06928884d2b0c42b11bf917d29538971)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoselinux-policy: update to version v0.8
Daniel Golle [Sun, 28 Feb 2021 18:00:33 +0000 (18:00 +0000)]
selinux-policy: update to version v0.8

 a857b45 resolv/locale: eventually this should be more efficient
 11ed281 some more optimization
 764a475 add redundant calls to file.search_conffile_dirs()
 7d4558e fs: treat devtmpfs that same as tmpfs
 81b677e adds irqbalance skeleton
 5506244 irqbalance rules
 cc96cd8 adds usbutil and gtpfdisk skels
 01e2a55 some fsck, gptfdisk, mkfs and usbutil rules
 d6d1e7d usbutil: output to terminal
 da576fa fsck, gptfdisk and usbutil rules
 09b39e9 unbound
 241a029 hotplugcall: allow dac_read_search (is a subset of dac_override)
 af0fe90 adds label for tcsh
 160f79e adds tcpdump
 6d02b96 adds coreutil execfile for busybox alternatives
 ac54884 coreutilexecfile: these are known to require privileges, so exclude
 8cb3b66 adds chrootexecfile
 6d329d3 this saves 9KiB and its a bit more robust
 88e2425 move addpart/delpart/partx to gptfdisk.cil
 261012d ntphotplug: reads ubox data files
 0473ace various
 740e820 work through to genfs_seclabel_symlinks loose ends (Linux 5.10)
 bef21f5 TODO adds a note about how I dont need to upgrade to polver 33 from 31
 cb2e5a3 ubus uses ntpdhotplug fd, and some genfs_seclabel_symlink changes
 07df9b9 luci, rpcd and wpad (mainly genfs_selabel related but not all)
 8d86cab genfs_seclabel loose ends for blockmount, hotplugcall, irqbalance, zram-swap
 b8156cd adds a note about how i forgot to target blockd
 6e82ab8 adds blockd and related
 254ff43 Makefile: exclude blockd from mintesttgt
 4dc6bc2 pppd update related and unbound-odhcp rules
 3d7da7a igmpproxy tidy some loose ends
 c84ba0f rcigmpproxy: add entries to /etc when creating /etc/igmpproxy.conf
 5a18967 adds igmpproxy skeleton
 7e6a218 logread: support resolving dns names
 e39ca8b netifd: add support for /etc/udhcpc.user
 7952bd0 odhcp6c: support /etc/odhcp6c.user
 ba0eb4e swconfig, fwenv, agent
 4556b8a pppd cosmetic
 9324d9d pppd: sends AT commands to model using /dev/ttyUSBN
 417b14a ttydev: add some more ttyUSB
 ed739dc example: dont depend on policycoreutils
 97613f9 dropbear: using dropbear as scp: dns name resolving
 12c193b dropbear tcp connect ssh ports for scp
 c050077 rcdnsmasq: remove redundant rule and make rcsysntpd optional
 8c5de35 this is a bug
 8d5c463 uhttpd rcboot rcdnsmasq
 094266e hostapd and wpa_supplicant
 aef0bd7 mountroot: maintains /tmp/sysupgrade.tar
 24f0406 dropbear: allow it to read tmp.fs files
 2901433 firstboot mkfsf2fs rcboot
 2c4afb7 blockmount mmc
 465ca98 adds industrial i/o (iio) nodedev
 82f686e mtd stordev: back that ubiblock0_4p1 up with a filecon
 7df78bd ubus: "support" older ubusd versions that run as root
 4458bce swconfig: allow using terminal (to print output)
 e8d606d sslcert: openssl linked: this shaves off 200 bytes
 93afffb jshn ntpdhotplug
 0b847f0 wpad: reads /etc/ssl/openssl.cnf
 f14ee34 indent fix
 a0c7cad mtd, uhttpd, ubus and ntpdhotplug
 d74f98f adds a not about checkreqprot requirement in some scenarios
 affacce example: add policycoreutils-setfiles for make check
 4f944dc kmodloader and fwenv:
 efe36a3 netifd: adds a comment/reminder
 581b087 more fw_printenv loose ends
 30177a4 fw_setenv: needs mtd write access to set and delete env
 da28f4c fw_printenv: some minor clean ups
 a062053 fw_printenv missing rules
 244ba5f blockmount: extroot and /rwm
 0745a6a squid: allow squid to run sslcrtd with domain transition
 b851df6 squid fix
 8c55acd squid: adds certfile and allow connect http but...
 b7c1f6d Makefile: exclude tinyproxy from mintesttgt (using squid)
 5ff39bd squid: forgot about luci
 5366c97 squid/rcsquid some basic fill in
 8743da6 squid skeleton
 687a43b adds squid 3128 port to httpproxy port

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry squashed from commit 3ffc30f05aef1a72bc16af8665032164b152fc15
and commit 41a8f093fb26f372fc94e0016cf544ac65718b0b)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agocheckpolicy: update to version 3.2
Dominick Grift [Sat, 6 Mar 2021 20:02:41 +0000 (21:02 +0100)]
checkpolicy: update to version 3.2

521e6a2f libsepol/cil: fix signed overflow caused by using (1 << 31) - 1
42ae834a libsepol,checkpolicy: optimize storage of filename transitions

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit 49edc4d17f241bca2a566dfdee0a64538b046cd7)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agosecilc: update to version 3.2
Dominick Grift [Sat, 6 Mar 2021 20:02:40 +0000 (21:02 +0100)]
secilc: update to version 3.2

49ff851c secilc: fixes cil_role_statements.md example
03881703 secilc/docs: add custom color theme
4c8d6094 secilc/docs: add syntax highlighting for secil
057d72af secilc/docs: use fenced code blocks for cil examples
e8bcdb84 cil_network_labeling_statements: fixes nodecon examples
eefa5511 cil_access_vector_rules: allowx, auditallowx and dontauditx fixes
9e9b8103 secilc/docs: document expandtypeattribute
fbe1e526 Update the cil docs to match the current behaviour.

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit 0b58ebcfe215c2456b752042e80268fe1ec6173a)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agopolicycoreutils: update to version 3.2
Dominick Grift [Sat, 6 Mar 2021 20:02:39 +0000 (21:02 +0100)]
policycoreutils: update to version 3.2

d464187c policycoreutils: sestatus belongs to bin not sbin
d59932a7 policycoreutils: Resolve path in restorecon_xattr
5682c0d5 policycoreutils/fixfiles.8: add missing file systems and merge check and verify
57dd1f65 policycoreutils/setfiles: Drop unused nerr variable
be7f54cb setfiles: drop ABORT_ON_ERRORS and related code
9207823c setfiles: Do not abort on labeling error
c064d214 selinux_config(5): add a note that runtime disable is deprecated
8bc865e1 newrole: support cross-compilation with PAM and audit
ba2d6c10 fixfiles: correctly restore context of mountpoints

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit 68934a5704be61e952c6ce04573bb54577b26680)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agolibsemanage: update to version 3.2
Dominick Grift [Sat, 6 Mar 2021 20:02:38 +0000 (21:02 +0100)]
libsemanage: update to version 3.2

c35919a7 libsemanage: sync filesystem with sandbox
5b05e829 Revert "libsemanage/genhomedircon: check usepasswd"
edae9275 libsemanage: Free contents of modkey in semanage_direct_remove
ce46daab libsemanage/genhomedircon: check usepasswd
6ebb35d2 libsemanage: Bump libsemanage.so version
c08b73d7 libsemanage: Drop deprecated functions
b46406de libsemanage: Remove legacy and duplicate symbols

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit 4670492ad72e54e0608ef5f92d7066c1c7fa8f45)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agolibselinux: update to version 3.2
Dominick Grift [Sat, 6 Mar 2021 20:02:37 +0000 (21:02 +0100)]
libselinux: update to version 3.2

142826a3 libselinux: fix segfault in add_xattr_entry()
398d2cee libselinux: rename gettid() to something which never conflicts with the libc
8f0f0a28 selinux(8,5): Describe fcontext regular expressions
9cc6b5cf libselinux/getconlist: report failures
156dd0de libselinux: update getseuser
e2dca5df libselinux: accept const fromcon in get_context API
da4829d0 libselinux: Always close status page fd
45b15c22 selinux(8): explain that runtime disable is deprecated
3c16aaef selinux(8): mark up SELINUX values
c2a58cc5 libselinux: LABEL_BACKEND_ANDROID add option to enable
db0f2f38 libselinux: Add build option to disable X11 backend
4a142ac4 libsepol: Bump libsepol.so version
d23342a9 libselinux: convert matchpathcon to selabel_lookup()
7ef5b185 libselinux: Change userspace AVC setenforce and policy load messages to audit format.
f5d644c7 libselinux: Add additional log callback details in man page for auditing.
075f9cfe libselinux: Fix selabel_lookup() for the root dir.
a4149e0e libselinux: Add new log callback levels for enforcing and policy load notices.
a63f93d8 libselinux: initialize last_policyload in selinux_status_open()
ef902db9 libselinux: safely access shared memory in selinux_status_updated()
9e4480b9 libselinux: Remove trailing slash on selabel_file lookups.
21fb5f20 libselinux: use full argument specifiers for security_check_context in man page
e7abd802 libselinux: fix build order
05bdc031 libselinux: use kernel status page by default

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit b1fc2b5b0be61d994d6a0429fd78331c0c57639a)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agolibsepol: update to version 3.2
Dominick Grift [Sat, 6 Mar 2021 20:02:36 +0000 (21:02 +0100)]
libsepol: update to version 3.2

a9e0004f libsepol: invalidate the pointer to the policydb if policydb_init fails
6238e025 libsepol/cil: fix NULL pointer dereference in cil_fill_ipaddr
b69d77bc libsepol/cil: handle SID without assigned context when writing policy.conf
0861c659 libsepol: Validate policydb values when reading binary policy
8f5409cf libsepol: Create function ebitmap_highest_set_bit()
0451adeb libsepol/cil: Destroy disabled optional blocks after pass is complete
32f8ed3d libsepol/cil: introduce intermediate cast to silence -Wvoid-pointer-to-enum-cast
4662bdc1 libsepol/cil: be more robust when encountering <src_info>
6b561058 libsepol/cil: fix NULL pointer dereference with empty macro argument
0d0e47c7 libsepol/cil: Fix integer overflow in the handling of hll line marks
1b36ace2 libsepol: include header files in source files when matching declarations
1f1fa9d4 libsepol: uniformize prototypes of sepol_mls_contains and sepol_mls_check
72a88d75 libsepol: remove unused files
eba0ffee libsepol/cil: Fix heap-use-after-free when using optional blockinherit
1048f8d3 libsepol/cil: unlink blockinherit->block link when destroying a block
b3202918 libsepol/cil: fix memory leak when a constraint expression is too deep
f0d98f83 libsepol/cil: Fix heap-use-after-free in __class_reset_perm_values()
5d021d66 libsepol/cil: Update symtab nprim field when adding or removing datums
34bd9a9d libsepol: destroy filename_trans list properly
bdf4e332 libsepol/cil: fix NULL pointer dereference when parsing an improper integer
b7ea65f5 libsepol/cil: destroy perm_datums when __cil_resolve_perms fails
228c06d9 libsepol/cil: fix out-of-bound read in cil_print_recursive_blockinherit
a25d9104 libsepol/cil: constify some strings
e2d01842 libsepol/cil: propagate failure of cil_fill_list()
6c8fca10 libsepol/cil: do not add a stack variable to a list
38a09b74 libsepol/cil: fix NULL pointer dereference when using an unused alias
3c357285 libsepol/cil: remove useless print statement
90809674 libsepol/cil: always destroy the lexer state
d16a1e46 libsepol/cil: Use the macro FLAVOR() whenever possible
2aac859a libsepol/cil: Use the macro NODE() whenever possible
d317b470 libsepol/cil: Remove unnecessary assignment in cil_resolve_name_keep_aliases()
9b9761cf libsepol/cil: Remove unused field from struct cil_args_resolve
e257d4c7 libsepol/cil: Get rid of unnecessary check in cil_gen_node()
ebba2b00 libsepol/cil: cil_tree_walk() helpers should use CIL_TREE_SKIP_*
89dab467 libsepol: free memory when realloc() fails
2d353bd5 libsepol/cil: Give error for more than one true or false block
4a142ac4 libsepol: Bump libsepol.so version
506c7b95 libsepol: Drop deprecated functions
ae58e84b libsepol: Get rid of the old and duplicated symbols
c97d63c6 libsepol: silence potential NULL pointer dereference warning
64387cb3 libsepol: drop confusing BUG_ON macro
521e6a2f libsepol/cil: fix signed overflow caused by using (1 << 31) - 1
a152653b libsepol/cil: Fix neverallow checking involving classmaps
734e4beb libsepol/cil: Validate conditional expressions before adding to binary policy
685f577a libsepol/cil: Validate constraint expressions before adding to binary policy
8206b8cb libsepol: implement POLICYDB_VERSION_COMP_FTRANS
42ae834a libsepol,checkpolicy: optimize storage of filename transitions

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit 2a1bdde0d05dd97aa58da546d15197409d481bb3)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoramips: rename mtk-hsdma to hsdma-mt7621
Ilya Lipnitskiy [Fri, 5 Mar 2021 03:53:21 +0000 (19:53 -0800)]
ramips: rename mtk-hsdma to hsdma-mt7621

Follows upstream rename:
https://lore.kernel.org/driverdev-devel/20210130034507.2115280-1-ilya.lipnitskiy@gmail.com/

Fixes ramips builds on 5.4.102

Cc: John Audia <graysky@archlinux.us>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
(cherry picked from commit 58ad113087b3db7567507202b94d94756056a455)

3 years agokernel: add compatibility with upstream threaded NAPI patch
Felix Fietkau [Fri, 12 Mar 2021 13:45:19 +0000 (14:45 +0100)]
kernel: add compatibility with upstream threaded NAPI patch

Enable threading if dev->threaded is set. This will be used to bring mt76 back
in sync with upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 3d1ea0d77f9d)

3 years agobusybox: backport fixes for 1.33.0
Hannu Nyman [Tue, 9 Mar 2021 15:46:52 +0000 (17:46 +0200)]
busybox: backport fixes for 1.33.0

Backport two fixes for 1.33.0
* history file storing
* traceroute command option parsing

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit c1f3c52564fdec85394e7c338f56df0943ce8b10)

3 years agobcm63xx: AD1018-nor: add NAND flash
Daniel González Cabanelas [Sat, 6 Mar 2021 18:59:19 +0000 (19:59 +0100)]
bcm63xx: AD1018-nor: add NAND flash

The Sercomm AD1018 has a NAND flash. We recently added support for NANDs
in this target.

Use the internal NAND as additional storage.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
(cherry-picked from commit a48ef37747)

3 years agokernel: bump 5.4 to 5.4.102
Hauke Mehrtens [Fri, 5 Mar 2021 23:31:31 +0000 (00:31 +0100)]
kernel: bump 5.4 to 5.4.102

Refreshed all patches.

Compile-tested on: ath79, lantiq, ipq40xx, x86_64
Runtime-tested on: ipq40xx, x86_64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 years agokernel: backport GCC 10 usbip build fix for 5.4
Rui Salvaterra [Fri, 5 Mar 2021 12:09:31 +0000 (12:09 +0000)]
kernel: backport GCC 10 usbip build fix for 5.4

From the original commit message:

"With GCC 10, building usbip triggers error for multiple definition
of 'udev_context', in:
- libsrc/vhci_driver.c:18 and
- libsrc/usbip_host_common.c:27.

Declare as extern the definition in libsrc/usbip_host_common.c."

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 0eef8402ee2ad014121932c860174e6d95440e17)

3 years agokernel: b53: update the BCM5365 UID
Daniel González Cabanelas [Fri, 26 Feb 2021 19:49:00 +0000 (20:49 +0100)]
kernel: b53: update the BCM5365 UID

BCM63XX internal PHYs and BCM5365 SoC internal switch are both using the
same phy_driver->phy_id, causing conflicts and unnecessary probes. E.g
the BCM63XX phy internal IRQ is lost on the first probe.

The full BCM5365 UID is 0x00406370.

Use an additional byte to mask the BCM5365 UID to avoid duplicate driver
phy_id's. This will fix the IRQ issue in internal BCM63XX PHYs and avoid
more conflicts in the future.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
(merge both cherry-picked commits)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commits cbcac4fde8 and cfa43f8119)

3 years agobcm27xx: bcm2711: disable HW_RANDOM_BCM2835
Álvaro Fernández Rojas [Fri, 5 Mar 2021 11:13:45 +0000 (12:13 +0100)]
bcm27xx: bcm2711: disable HW_RANDOM_BCM2835

This driver is only present on BCM2708, BCM2709 and BCM2710.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit bac74aff5e)

3 years agobuild: add which command to build requirements
Petr Štetiar [Wed, 3 Mar 2021 18:48:55 +0000 (19:48 +0100)]
build: add which command to build requirements

`which` utility is not shipped by default for example on recent Arch
Linux and then any steps relying on its presence fails, like for example
following Python3 prereq build check:

 $ python3 --version
 Python 3.9.1

 $ make
 /bin/sh: line 1: which: command not found
 ...
 Checking 'python3'... failed.

So make `which` utility host build requirement.

References: PR#3820 FS#3525
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 13069b1a1dcbef0bb9b42db98025fa9203283220)

3 years agoRevert "build: replace which with Bash command built-in"
Clemens Fruhwirth [Fri, 29 Jan 2021 18:57:37 +0000 (19:57 +0100)]
Revert "build: replace which with Bash command built-in"

This reverts commit c7aec47e5e3a3ff7b5fdaa11cd1e62cae6746acb.

The original commit replaces 'which' with 'command'. Sadly most of
them are not equivalent and for 'which -a', there is no easy
replacements that would not reimplement PATH parsing logic. Hence
revert. Keeping a dependency on which is absolutely fine.

Signed-off-by: Clemens Fruhwirth <clemens@endorphin.org>
(cherry picked from commit 1f5e7224868109a170a9248d18f8d2b6124e9c5a)

3 years agobuild: fix checks for GCC11
Petr Štetiar [Mon, 1 Mar 2021 12:29:19 +0000 (13:29 +0100)]
build: fix checks for GCC11

Fedora 34 already uses GCC11.

Reported-by: Marcin Juszkiewicz <marcin-openwrt@juszkiewicz.com.pl>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit cae69d558135456976b8fc6cb08530d1358cf6d5)

3 years agofeeds.conf.default: remove freifunk feed
Perry Melange [Sun, 21 Feb 2021 13:00:56 +0000 (14:00 +0100)]
feeds.conf.default: remove freifunk feed

The freifunk feed is being removed becasue
a) it is an external project and the OpenWrt team does not have access to it.
b) upon original addition of the feed, there was only a very weak tendency for
the addition.
c) there is a general lack of interest in the freifunk repo to review and/or
merge pull requests.
d) as far as can be found, all projects which use the freifunk feed have their
own make system and self-maintained feeds list.  They do not use the
feeds.conf.default from the openwrt repo.

more information can be read at the following links:

http://lists.openwrt.org/pipermail/openwrt-devel/2021-February/033807.html
https://github.com/freifunk/openwrt-packages/issues/37

Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com>
(cherry picked from commit 20caa68fec4fe033f72c9d488639f8dd2bcfa02c)

3 years agouboot-envtools: adjust compile patch to version v2021.01
Ronny Kotzschmar [Sun, 28 Feb 2021 22:31:35 +0000 (23:31 +0100)]
uboot-envtools: adjust compile patch to version v2021.01

with u-boot v2020.07 some variables have been renamed so this patch needs to be adjusted
otherwise at least with macOS as build system there are build errors

Signed-off-by: Ronny Kotzschmar <ro.ok@me.com>
(cherry picked from commit 547a932ee97d95a966bae947a84140556d07c3ce)

3 years agouboot-sunxi: add missing type __u64
Georgi Valkov [Sat, 20 Feb 2021 13:49:51 +0000 (15:49 +0200)]
uboot-sunxi: add missing type __u64

Non Linux systems e.g. macOS lack the __u64 type and produce build errors:
In file included from tools/aisimage.c:9:
In file included from include/image.h:19:
In file included from ./arch/arm/include/asm/byteorder.h:29:
In file included from include/linux/byteorder/little_endian.h:13:
include/linux/types.h:146:9: error: unknown type name '__u64'; did you mean '__s64'?
typedef __u64 __bitwise __le64;

Resolved by declaring __u64 in include/linux/types.h
Build tested on macOS and Ubuntu.

Signed-off-by: Georgi Valkov <gvalkov@abv.bg>
(cherry picked from commit 3cc57ba4627c9c7555f8ad86e4f78d86d8f9ddf0)

3 years agompc85xx: p2020: fix cfi-nor detection
Pawel Dembicki [Mon, 11 Jan 2021 20:38:22 +0000 (21:38 +0100)]
mpc85xx: p2020: fix cfi-nor detection

At this moment p2020rdb has broken images, because NOR memory connected
to eLBC bus isn't detected.

In 642b1e8dbed7 linux tree commit, config dependencies of MTD_PHYSMAP_OF
was changed and now MTD_PHYSMAP is required.

This patch adds MTD_PHYSMAP option to kernel config in p2020 subtarget
and fix booting of p2020rdb.

Fixes: 13b1db795f05 ("mpc85xx: add support for kernel 5.4")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
(cherry picked from commit 76649fd06d454f1b93f2ee74951ef91225155a8c)

3 years agohostapd: P2P: Fix a corner case in peer addition based on PD Request
Stefan Lippers-Hollmann [Sat, 27 Feb 2021 22:55:08 +0000 (23:55 +0100)]
hostapd: P2P: Fix a corner case in peer addition based on PD Request

p2p_add_device() may remove the oldest entry if there is no room in the
peer table for a new peer. This would result in any pointer to that
removed entry becoming stale. A corner case with an invalid PD Request
frame could result in such a case ending up using (read+write) freed
memory. This could only by triggered when the peer table has reached its
maximum size and the PD Request frame is received from the P2P Device
Address of the oldest remaining entry and the frame has incorrect P2P
Device Address in the payload.

Fix this by fetching the dev pointer again after having called
p2p_add_device() so that the stale pointer cannot be used.

This fixes the following security vulnerabilities/bugs:

- CVE-2021-27803 - A vulnerability was discovered in how p2p/p2p_pd.c
  in wpa_supplicant before 2.10 processes P2P (Wi-Fi Direct) provision
  discovery requests. It could result in denial of service or other
  impact (potentially execution of arbitrary code), for an attacker
  within radio range.

Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
(cherry picked from commit 1ca5de13a153061feae260864d73d96f7c463785)

3 years agomvebu/omnia: fix the device tree
Rui Salvaterra [Tue, 23 Feb 2021 23:10:52 +0000 (23:10 +0000)]
mvebu/omnia: fix the device tree

Backport [1] and fix [2] hardware buffer management. Also fix the IRQ storm
caused by a misconfiguration of the PCA9538 interrupt pin [3].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/armada-385-turris-omnia.dts?id=018b88eee1a2efda26ed2f09aab33ccdc40ef18f
[2] https://lore.kernel.org/linux-arm-kernel/20210217153038.1068170-1-rsalvaterra@gmail.com/
[3] https://lore.kernel.org/linux-arm-kernel/20210220231144.32325-1-kabel@kernel.org/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 6fe6b631ef91a8a44d7324329ad6aaec6f08ada6)

3 years agolantiq: set maximum kernel size
Mathias Kresin [Tue, 16 Feb 2021 18:35:01 +0000 (19:35 +0100)]
lantiq: set maximum kernel size

These boards have a fixed size kernel partition but do not limit the
kernel size during image building.

Disable image building for both boards as well, since the kernel of the
last release as well as master are to big to fit into the 2 MByte kernel
partition.

Signed-off-by: Mathias Kresin <dev@kresin.me>
(cherry picked from commit 23dd7867347ab4fd88592d0bfec1ce5a959c09f3)

3 years agoocteon: re-enable CONFIG_CAVIUM_CN63XXP1 and EdgeRouter image
Adrian Schmutzler [Fri, 26 Feb 2021 13:11:18 +0000 (14:11 +0100)]
octeon: re-enable CONFIG_CAVIUM_CN63XXP1 and EdgeRouter image

The symbol CONFIG_CAVIUM_CN63XXP1 was disabled during the bump to
4.19 (see Fixes:) with the following reason:

  No supported hardware uses CN63XXP1 and it causes "slight decrease
  in performance"

However, it later turned out that the edgerouter image needed it,
which led to having the device disabled in [1].
Still, dropping support of a device seems a harsh action for just
removing a "slight" decrease in performance from the other devices.

Thus, this enables CONFIG_CAVIUM_CN63XXP1 again, and essentially
restores the situation present until (including) kernel 4.14 on
this target.

For OpenWrt as a platform, it seems more desirable to support all
devices (and have them tested regularly via the snapshots) in this
case.
Users interested in maximum performance might still just remove
the symbol again in their local build.

[1] 3824fa26d256 ("octeon: disable edgerouter image")

Fixes: 6c22545225cd ("target/octeon: Add Linux 4.19 support")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit cfd1a40583d66d5f6a30dec5bee0f7ebd4d252ef)

3 years agoath79: enable UART node for GL-USB150
Adrian Schmutzler [Thu, 25 Feb 2021 14:09:17 +0000 (15:09 +0100)]
ath79: enable UART node for GL-USB150

This was overlooked when adding support for this device.
(It has recently been discovered that this was the only device in
ath79 having &uart disabled.)

Fixes: acc62630132c ("ath79: add support for GL.iNet GL-USB150")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 722f1bd5490abafc5d77420905179aa03c508a1f)

3 years agoath79: enable UART in SoC DTSI files
Adrian Schmutzler [Wed, 24 Feb 2021 00:52:34 +0000 (01:52 +0100)]
ath79: enable UART in SoC DTSI files

The uart node is enabled on all devices except one (GL-USB150 *).
Thus, let's not have a few hundred nodes to enable it, but do not
disable it in the first place.

Where the majority of devices is using it, also move the serial0
alias to the DTSI.

*) Since GL-USB150 even defines serial0 alias, the missing uart
   is probably just a mistake. Anyway, disable it for now so this
   patch stays cosmetic.

Apply this to 21.02 as well to remove an unnecessary backporting
pitfall.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 3a4b751110b32380cf827f14a203190cfbc2e40f)

3 years agozlib: properly split patches
Adrian Schmutzler [Wed, 24 Feb 2021 10:53:03 +0000 (11:53 +0100)]
zlib: properly split patches

This package had two patches (with two headers etc.) in one file,
which would have quilt merging them during a refresh.

Separate these patches into two files, as the original intent seems
to be having them separate.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 221eefaf6b301043c491aab8815fcfa24e8a5583)

3 years agoopenssl: update package sources
David Bauer [Fri, 19 Feb 2021 01:30:14 +0000 (02:30 +0100)]
openssl: update package sources

OpenSSL downloads itself are distributed using Akamai CDN, so use these
sources as the highest priority.

Remove a stale mirror which seems to be offline for a longer time
already.

Add fallbacks to the old release path also for the mirrors.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 10e84bde369d7cfb60d6ac6ee5c7211474bd4179)

3 years agowolfssl: fix Ed25519 typo in config prompt
Christian Lamparter [Sat, 20 Feb 2021 10:08:26 +0000 (11:08 +0100)]
wolfssl: fix Ed25519 typo in config prompt

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 09e66112f1ea9f5838ce80533f3850523dc30230)

3 years agodownload: remove broken mirrors
David Bauer [Sat, 20 Feb 2021 20:24:11 +0000 (21:24 +0100)]
download: remove broken mirrors

These mirrors don't exist anymore. Remove them.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit f04e0074915f03249cdebb460d4dc92875091c63)

3 years agowolfssl: bump to v4.7.0-stable
Eneas U de Queiroz [Sun, 21 Feb 2021 21:33:30 +0000 (18:33 -0300)]
wolfssl: bump to v4.7.0-stable

Biggest fix for this version is CVE-2021-3336, which has already been
applied here.  There are a couple of low severity security bug fixes as
well.

Three patches are no longer needed, and were removed; the one remaining
was refreshed.

This tool shows no ABI changes:
https://abi-laboratory.pro/index.php?view=objects_report&l=wolfssl&v1=4.6.0&v2=4.7.0

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit d1dfb577f1c0d5b1f1fa35000c9ad7abdb7d10ed)

3 years agoramips: mt7621: enable SX150x driver
Sander Vanheule [Sat, 20 Feb 2021 13:45:26 +0000 (14:45 +0100)]
ramips: mt7621: enable SX150x driver

The Netgear R6800 and R6700v2 devices have a Semtech SX1503 GPIO
expander controlling the device LEDs. This expander was initially
supported on 4.14, but support was lost in the transition to 5.4.

Since this driver cannot be built as a kernel module, enable it in the
kernel config for all mt7621 devices.

Run-tested on a Netgear R6800.

Cc: Stijn Segers <foss@volatilesystems.org>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
(cherry picked from commit 773949c152f7378a303919e790210113012fea04)

3 years agoramips: overwrite reset gpio properties in DIR-860L DTS
Stijn Segers [Thu, 18 Feb 2021 13:10:57 +0000 (14:10 +0100)]
ramips: overwrite reset gpio properties in DIR-860L DTS

As suggested by Sergio, this adds GPIOs 19 and 8 explicitly into the
DIR-860L DTS, so the PCI-E ports get reset and the N radio (radio1)
on PCI-E port 1 comes up reliably.

Fixes the following error that popped up in dmesg:

    [    1.638942] mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)

Suggested-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
Reviewed-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
(cherry picked from commit 06356f00200639c48d95330e633965957b0347ab)

3 years agoarm-trusted-firmware-mediatek: bring back package
Daniel Golle [Wed, 10 Feb 2021 02:47:53 +0000 (02:47 +0000)]
arm-trusted-firmware-mediatek: bring back package

 * use binary provided by MediaTek to work-around 'bromimage' issue
 * use @OPENWRT mirror for blobs
 * refactor Makefile
 * add mt7622 1c variants (using binaries provided by MTK)

(cherry picked from commit 068c82039f5192a79e2139db42fdc734702da5a3 and
commit 9cd089dbbfe07b61590dd214957bc21bfdc7fd5d)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agobcm63xx: pinctrl: fix BCM6348 groups
Daniel González Cabanelas [Tue, 19 May 2020 13:56:29 +0000 (15:56 +0200)]
bcm63xx: pinctrl: fix BCM6348 groups

The current driver has some troubles:
 - Some groupings are wrong.
 - The pinctrl group0 owns pins never used (at least in Openwrt) for any
   pinmux. The driver hijacks all the pins on the group avoiding any other
   use, spite they're free. I.e. for buttons, causing this kernel error:
   [  4.735928] gpio-keys-polled keys: unable to claim gpio 479, err=-22
   [  4.742642] gpio-keys-polled: probe of keys failed with error -22
 - Minor errors about groupings on the documentation
 - Missing "diag" grouping in dtsi
 - Wrong groupings in dtsi

Fix it by setting the correct groups.
And relax the pin capturing, letting the gpios belonging to any group to
be used for other purposes like buttons. This was the behavior with stock
firmwares and old OpenWrt versions which never caused any trouble.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
(Cherry-picked from commit 50cb3a750f)

3 years agobcm63xx: limit name metadata to model name
Álvaro Fernández Rojas [Mon, 22 Feb 2021 17:07:02 +0000 (18:07 +0100)]
bcm63xx: limit name metadata to model name

Since there are only 16 characters available, on most cases the vendor name
will fit in the metadata, but the model name won't fit.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit c27532742d)

3 years agoimage: add ModelNameLimit16
Álvaro Fernández Rojas [Mon, 22 Feb 2021 17:04:16 +0000 (18:04 +0100)]
image: add ModelNameLimit16

This script returns the model name limited to 16 characters.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from 1235ea7c20)

3 years agoramips: fix Phicomm PSG1218A switch port labels
Shiji Yang [Mon, 22 Feb 2021 16:02:30 +0000 (00:02 +0800)]
ramips: fix Phicomm PSG1218A switch port labels

The lan port sequence was reversed compared to the labels.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[improve commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 567a88e4b99f9e1b647588de0319357e688ce016)

3 years agoramips: correct/add Phicomm K2x WAN/label MAC address
Shiji Yang [Mon, 22 Feb 2021 15:44:18 +0000 (23:44 +0800)]
ramips: correct/add Phicomm K2x WAN/label MAC address

Phicomm K2G:
add missing label_mac

Phicomm PSG1218A & PSG1218B:
The previous wan mac was set as factory@0x28 +1 (originally based
on the default case for the ramips target), but the correct wan mac
is factory@0x28 -1, being equal to factory@0x2e.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[minor commit title/message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 55263ffedbe1d20f005febbc973a7353240d1741)

3 years agobcm63xx: bcm63268: fix GPIO interrupts
Álvaro Fernández Rojas [Mon, 22 Feb 2021 08:04:04 +0000 (09:04 +0100)]
bcm63xx: bcm63268: fix GPIO interrupts

pinctrl should rely on external interrupt controller for GPIO interrupts.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 36e35b8d81)

3 years agoscripts: getver.sh: fix version based on stable branch
Baptiste Jonglez [Sun, 21 Feb 2021 17:42:38 +0000 (18:42 +0100)]
scripts: getver.sh: fix version based on stable branch

When building from a local branch based off the "openwrt-21.02" branch,
version computation is wrong, because the number of local commits is
computed against master.  As a result, it wrongly counts *all* commits
since the beginning of the openwrt-21.02 branch as local commits.

The fix is to compare to the openwrt-21.02 branch instead, which gives the
expected result.

A similar change had been applied to the openwrt-19.07 branch:
891022918d55 ("scripts: getver.sh: fix version based on stable branch")

Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
3 years agotfa-layerscape: build fiptool again
Adrian Schmutzler [Sat, 20 Feb 2021 18:18:12 +0000 (19:18 +0100)]
tfa-layerscape: build fiptool again

The ls-ddr-phy package needs fiptool options that are not
available via the version from arm-trusted-firmware-tools.
This breaks build for layerscape with the recently added LX2160a:

  create: unrecognized option '--ddr-immem-udimm-1d'

Use the tfa-layerscape variant again for now, but rename it to
fiptool-layerscape to indicate that it's a specific variant.

This reverts 84bc7d31e0a8 ("tfa-layerscape: don't build fiptool").

Fixes: f59d7aab2a37 ("layerscape: add ddr-phy package")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 910b5d669f907656c6af14242db2482be6a79323)

3 years agobcm27xx: remove urngd package
Álvaro Fernández Rojas [Sat, 20 Feb 2021 18:55:14 +0000 (19:55 +0100)]
bcm27xx: remove urngd package

Now that khwrngd is working on all subtargets we can remove urgnd.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 9dc84018ee)

3 years agobcm27xx: enable bcm2711 HW RNG
Álvaro Fernández Rojas [Sat, 20 Feb 2021 18:53:50 +0000 (19:53 +0100)]
bcm27xx: enable bcm2711 HW RNG

Also add a patch setting its quality, which should make it usable by khwrngd.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 670526efa3)

3 years agogeneric: add bcm2835-rng quality patch
Álvaro Fernández Rojas [Sat, 20 Feb 2021 17:59:25 +0000 (18:59 +0100)]
generic: add bcm2835-rng quality patch

This patch allows devices without a high resolution timer to boot up faster.
It should speed up boots for bcm2708 and bcm63xx.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 7747b3fa36)

3 years agoopenwrt-keyring: add OpenWrt 21.02 GPG/usign keys
Petr Štetiar [Sat, 20 Feb 2021 14:56:19 +0000 (15:56 +0100)]
openwrt-keyring: add OpenWrt 21.02 GPG/usign keys

49283916005d usign: add 21.02 release build pubkey
bc4d80f064f2 gpg: add OpenWrt 21.02 signing key

Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 1bf6d70e60fdb45d81a8f10b90904cef38c73f70)

3 years agohostapd: backport ignoring 4addr mode enabling error
Raphaël Mélotte [Wed, 17 Feb 2021 14:58:16 +0000 (15:58 +0100)]
hostapd: backport ignoring 4addr mode enabling error

This is a backport of the upstream commit 58bbbb598144 ("nl80211: Ignore
4addr mode enabling error if it was already enabled") which fixes same
issue as in the current fix contained in '130-wpa_supplicant-multi_ap_roam.patch',
but in a different way:

 nl80211_set_4addr_mode() could fail when trying to enable 4addr mode on
 an interface that is in a bridge and has 4addr mode already enabled.
 This operation would not have been necessary in the first place and this
 failure results in disconnecting, e.g., when roaming from one backhaul
 BSS to another BSS with Multi AP.

 Avoid this issue by ignoring the nl80211 command failure in the case
 where 4addr mode is being enabled while it has already been enabled.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
[bump PKG_RELEASE, more verbose commit description]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit fb860b4e418c28a0f388f215e5acce103dcee1bf)

3 years agoramips: overwrite reset gpio properties in EX6150 DTS
Stijn Segers [Fri, 19 Feb 2021 22:11:09 +0000 (23:11 +0100)]
ramips: overwrite reset gpio properties in EX6150 DTS

The Netgear EX6150 can, just like the D-Link DIR-860L rev B1, fail to
initialise both radios in some cases. Add the reset GPIOs explicitly
so the PCI-E devices get re-initialised properly. See also FS #3632.

Error shows up in dmesg as follows:

  [    1.560764] mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)

Tested-by: Kurt Roeckx <kurt@roeckx.be>
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
[removed period from commit title]
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit af1b6799c6ec9af7a30d63a5ddfed20f443b991c)

3 years agolayerscape: add new devices in README and clean up
Yangbo Lu [Tue, 27 Oct 2020 08:26:11 +0000 (16:26 +0800)]
layerscape: add new devices in README and clean up

Support new devices LS1046AFRWY and LX2160ARDB in README.
Clean up README, and add missing LS1021ATWR deploy guide.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[adjust set of devices added, update commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit a31842e7fd15c14796a9f764defda395b3c854df)

3 years agolayerscape: add LX2160ARDB (Rev2.0 silicon) board support
Yangbo Lu [Thu, 30 Jul 2020 05:12:43 +0000 (13:12 +0800)]
layerscape: add LX2160ARDB (Rev2.0 silicon) board support

The QorIQ LX2160A reference design board provides a comprehensive platform
that enables design and evaluation of the LX2160A processor.

- Enables network intelligence with the next generation Datapath (DPPA2)
  which provides differentiated offload and a rich set of IO, including
  10GE, 25GE, 40GE, and PCIe Gen4

- Delivers unprecedented efficiency and new virtualized networks

- Supports designs in 5G packet processing, network function
  virtualization, storage controller, white box switching, network
  interface cards, and mobile edge computing

- Supports all three LX2 family members (16-core LX2160A; 12-core LX2120A;
  and 8-core LX2080A)

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[use AUTORELEASE, add dtb to firmware part]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 80dcd14abeed8cd808b92bb307964dbaeb252144)

3 years agolayerscape: add ddr-phy package
Yangbo Lu [Mon, 3 Aug 2020 03:59:55 +0000 (11:59 +0800)]
layerscape: add ddr-phy package

Add ddr-phy package for layerscape. Currently only LX2160ARDB
requires the package.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[use AUTORELEASE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit f59d7aab2a374d27abfdc50348d855db5560db8f)

3 years agolayerscape: add FRWY-LS1046A board support
Yangbo Lu [Mon, 3 Aug 2020 04:52:22 +0000 (12:52 +0800)]
layerscape: add FRWY-LS1046A board support

The LS1046A Freeway board (FRWY) is a high-performance computing,
evaluation, and development platform that supports the QorIQ
LS1046A architecture processor capable of support more than 32,000
CoreMark performance. The FRWY-LS1046A board supports the QorIQ
LS1046A processor, onboard DDR4 memory, multiple Gigabit Ethernet,
USB3.0 and M2_Type_E interfaces for Wi-Fi.

The FRWY-LS1046A-TP includes the Coral Tensor Flow Processing Unit
that offloads AI/ML inferencing from the CPU to provide significant
boost for AI/ML applications. The FRWY-LS1046A-TP includes one M.2
TPU module and more modules can easily be added including USB
versions of the module to scale the AI/ML performance.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[rebase, use AUTORELEASE, fix sorting, add dtb to firmware part]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 2c2d77bd3bd4691c5f8f1760b9ef16f96f345255)

3 years agolayerscape: move rework-sdcard-images out of fsl-sdboot
Adrian Schmutzler [Fri, 12 Feb 2021 15:37:29 +0000 (16:37 +0100)]
layerscape: move rework-sdcard-images out of fsl-sdboot

Upcoming devices will not need the migration setup, so let's move
it out of the common definition.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit a9075d42d7990af230a08bdbb03c14ae2bf27318)

3 years agoramips: use lzma-loader for Wevo devices
Seo Suchan [Wed, 17 Feb 2021 15:06:55 +0000 (00:06 +0900)]
ramips: use lzma-loader for Wevo devices

As kernel size increased it start to fail to load squishfs image,
using lzma-loader fixed it.
wevo_11acnas is almost same device as w2914ns-v2 except ram size,
so I expect same thing would've happen in that device too.

Signed-off-by: Seo Suchan <abnoeh@mail.com>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
(cherry picked from commit ca6954e2dc3faa32eec54b93bda996c874409675)

3 years agoramips: mt7621: add TP-Link EAP235-Wall support
Sander Vanheule [Thu, 18 Feb 2021 19:52:53 +0000 (20:52 +0100)]
ramips: mt7621: add TP-Link EAP235-Wall support

The TP-Link EAP235-Wall is a wall-mounted, PoE-powered AC1200 access
point with four gigabit ethernet ports.

When connecting to the device's serial port, it is strongly advised to
use an isolated UART adapter. This prevents linking different power
domains created by the PoE power supply, which may damage your devices.

The device's U-Boot supports saving modified environments with
`saveenv`. However, there is no u-boot-env partition, and saving
modifications will cause the partition table to be overwritten. This is
not an issue for running OpenWrt, but will prevent the vendor FW from
functioning properly.

Device specifications:
* SoC: MT7621DAT
* RAM: 128MiB
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (MT7603EN): b/g/n, 2x2
* Wireless 5GHz (MT7613BEN): a/n/ac, 2x2
* Ethernet: 4× GbE
  * Back side: ETH0, PoE PD port
  * Bottom side: ETH1, ETH2, ETH3
* Single white device LED
* LED button, reset button (available for failsafe)
* PoE pass-through on port ETH3 (enabled with GPIO)

Datasheet of the flash chip specifies a maximum frequency of 33MHz, but
that didn't work. 20MHz gives no errors with reading (flash dump) or
writing (sysupgrade).

Device mac addresses:
Stock firmware uses the same MAC address for ethernet (on device label)
and 2.4GHz wireless. The 5GHz wireless address is incremented by one.
This address is stored in the 'info' ('default-mac') partition at an
offset of 8 bytes.
From OEM ifconfig:
    eth     a4:2b:b0:...:88
    ra0     a4:2b:b0:...:88
    rai0    a4:2b:b0:...:89

Flashing instructions:
* Enable SSH in the web interface, and SSH into the target device
* run `cliclientd stopcs`, this should return "success"
* upload the factory image via the web interface

Debricking:
U-boot can be interrupted during boot, serial console is 57600 baud, 8n1
This allows installing a sysupgrade image, or fixing the device in
another way.
* Access serial header from the side of the board, close to ETH3,
  pin-out is (1:TX, 2:RX, 3:GND, 4:3.3V), with pin 1 closest to ETH3.
* Interrupt bootloader by holding '4' during boot, which drops the
  bootloader into its shell
* Change default 'serverip' and 'ipaddr' variables (optional)
* Download initramfs with `tftpboot`, and boot image with `bootm`
    # tftpboot 84000000 openwrt-initramfs.bin
    # bootm

Revert to stock:
Using the tplink-safeloader utility from the firmware-utils package,
TP-Link's firmware image can be converted to an OpenWrt-compatible
sysupgrade image:
  $ ./staging_dir/host/bin/tplink-safeloader -B EAP235-WALL-V1 \
      -z EAP235-WALLv1_XXX_up_signed.bin -o eap235-sysupgrade.bin

This can then be flashed using the OpenWrt sysupgrade interface. The
image will appear to be incompatible and must be force flashed, without
keeping the current configuration.

Known issues:
- DFS support is incomplete (known issue with MT7613)
- MT7613 radio may stop responding when idling, reboot required.
  This was an issue with the ddc75ff704 version of mt76, but appears to
  have improved/disappeared with bc3963764d.
  Error notice example:
  [ 7099.554067] mt7615e 0000:02:00.0: Message 73 (seq 1) timeout

Hardware was kindly provided for porting by Stijn Segers.

Tested-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 1e75909a35a2b361cdfdfcf18a26ad61271b174e)

3 years agoramips: remove factory image for TP-Link Archer C20 v1
Stijn Segers [Thu, 18 Feb 2021 23:53:26 +0000 (00:53 +0100)]
ramips: remove factory image for TP-Link Archer C20 v1

Similarly to the Archer C2 v1, the Archer C20 v1 will brick when one
tries to flash an OpenWrt factory image through the TP-Link web UI.
The wiki page contains an explicit warning about this [1].

Disable the factory image altogether since it serves no purpose.

[1] https://openwrt.org/toh/tp-link/tp-link_archer_c20_v1#installation

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
(cherry picked from commit 0265cba40ad4f2b8ff4473ada123c35b53ffd97a)

3 years agobcm63xx: update ethernet kernel panics fix
Álvaro Fernández Rojas [Fri, 19 Feb 2021 11:25:38 +0000 (12:25 +0100)]
bcm63xx: update ethernet kernel panics fix

Use new patch from Sieng Piaw Liew.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 31a06f8fcc)

3 years agocypress-firmware: fix PKG_SOURCE_URL
Álvaro Fernández Rojas [Fri, 19 Feb 2021 10:06:23 +0000 (11:06 +0100)]
cypress-firmware: fix PKG_SOURCE_URL

Download link has been moved.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 7febba3e50)

3 years agobcm27xx: add diag LEDs
Álvaro Fernández Rojas [Fri, 19 Feb 2021 06:58:36 +0000 (07:58 +0100)]
bcm27xx: add diag LEDs

We can now use the power LED for diag in more devices thanks to the latest
patches from the RPi foundation.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 5bab472a11)

3 years agobcm27xx: bcm2708: add missing RPi B DTS file
Álvaro Fernández Rojas [Fri, 19 Feb 2021 06:56:58 +0000 (07:56 +0100)]
bcm27xx: bcm2708: add missing RPi B DTS file

RPI 1B DTS has been splitted into 2 files:
 - bcm2708-rpi-b.dts: Newest (rev2) RPI 1B
 - bcm2708-rpi-b-rev1.dts: Old (rev1) RPI 1B

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 0aaa2cce1c)

3 years agobcm27xx: add support for RPI CM4 and RPI 400
Álvaro Fernández Rojas [Thu, 18 Feb 2021 22:07:05 +0000 (23:07 +0100)]
bcm27xx: add support for RPI CM4 and RPI 400

Support added to bcm2709 (32 bits) and bcm2711 (64 bits).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 8ad61118fd)

3 years agobcm27xx-userland: update to latest version
Álvaro Fernández Rojas [Thu, 18 Feb 2021 21:59:46 +0000 (22:59 +0100)]
bcm27xx-userland: update to latest version

Adds some fixes and removes upstreamed patch.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit 1d3a9b1c00)

3 years agobcm27xx-gpu-fw: update to latest version
Álvaro Fernández Rojas [Thu, 18 Feb 2021 21:55:56 +0000 (22:55 +0100)]
bcm27xx-gpu-fw: update to latest version

This is needed to add support for CM4 and RPI 400.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit f41e653da9)

3 years agobcm27xx: import latest patches from the RPi foundation
Álvaro Fernández Rojas [Thu, 18 Feb 2021 17:04:33 +0000 (18:04 +0100)]
bcm27xx: import latest patches from the RPi foundation

bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G
bcm2710: boot tested on RPi 3B v1.2
bcm2711: boot tested on RPi 4B v1.1 4G

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit f07e572f64)

3 years agokernel: bump 5.4 to 5.4.99
John Audia [Wed, 17 Feb 2021 10:58:14 +0000 (05:58 -0500)]
kernel: bump 5.4 to 5.4.99

Ran update_kernel.sh in a fresh clone without any existing toolchains.
No manual changes needed.

Build system: x86_64
Build-tested: bcm27xx/bcm2711

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry-picked from commit 5d3a6fd970)

3 years agobuild: fix ABI version for PROVIDES symbols
Felix Fietkau [Thu, 18 Feb 2021 18:51:05 +0000 (19:51 +0100)]
build: fix ABI version for PROVIDES symbols

GetABISuffix does not work for intra-package ABI version of provided symbols,
since ABIV_$(provided) is not set.
Fix ABI version by using $(ABIV_$(1)) directly

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 0db9d118657d)

3 years agomediatek: add support for Ubiquiti UniFi 6 LR
David Bauer [Thu, 11 Feb 2021 16:09:06 +0000 (17:09 +0100)]
mediatek: add support for Ubiquiti UniFi 6 LR

Hardware
--------

MediaTek MT7622
512MB DDR3 RAM
64M SPI-NOR Flash (Winbond W25Q512JV)
MediaTek MT7622 802.11bgn 4T4R WMAC
MediaTek MT7915 802.11ax 4T4R
Marvell AQR1112 100/1000/2500 NBase-T PHY
Holtek HT32F52241 LED controller
Reset Switch

UART
----

CPU UART0 at the pinout next to the Holtek MCU.

Pinout (first pin next to SoC / MCU)

0 3V3
1 RX
2 TX
3 GND

Settings are 115200 8N1.

Opening the case
----------------

Opening the case is not a nice task, as itis glued together. Insert a
flat knife between the front and back casing below the ethernet port.
Open up a gap this way and insert a flat scredriver, remove the knife.

Work your way around the casing by applying force to seperate the front
and back casing. This losens the glue and opens the plastic clips. Be
gentle, as these clips are very cheap and break quickly.

Installation
------------

1. Connect to the booted device at 192.168.1.20 using username/password
   "ubnt".

2. Transfer the OpenWrt sysupgrade image to the device using SCP.

3. Check the mtd partition number for bs / kernel0 / kernel1

   $ cat /proc/mtd

4. Set the bootselect flag to boot from kernel0

   $ dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock6

5. Write the OpenWrt sysupgrade image to both kernel0 as well as kernel1

   $ dd if=openwrt.bin of=/dev/mtdblock8
   $ dd if=openwrt.bin of=/dev/mtdblock9

6. Reboot the device. It should boot into OpenWrt.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 634c13c186646aff2badb51a43b248825d0fe5a0)

3 years agomediatek: add Ubiquiti LED driver
David Bauer [Sat, 13 Feb 2021 23:23:51 +0000 (00:23 +0100)]
mediatek: add Ubiquiti LED driver

Add a driver for controlling the RGB LED via Ubiquitis own "LEDBAR" LED
controller based on the Holtek HT32F52241 MCU.

This driver is initially used by the Ubiquiti UniFi 6 LR, however
judging from FCC pictures the MCU is also found on the U6-Mesh as well
as the U6-Extender.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit c9137e2ddf97ede1db399dc38acff26feb48ba7e)

3 years agolantiq: fritz7320: enable USB power supply
Mathias Kresin [Wed, 17 Feb 2021 22:37:54 +0000 (23:37 +0100)]
lantiq: fritz7320: enable USB power supply

The USB ports if a FRIZZ!Box 7320 do not supply power to connected
devices.

Add the GPIOs enabling USB power as regulator, to enable USB power
supply as soon as the USB driver is loaded.

Fixes FS#3624

Signed-off-by: Mathias Kresin <dev@kresin.me>
(cherry picked from commit 6e4e97b2256327bb380ee2a83da9a1ddf657e395)

3 years agoopenssl: bump to 1.1.1j
Eneas U de Queiroz [Wed, 17 Feb 2021 02:21:36 +0000 (23:21 -0300)]
openssl: bump to 1.1.1j

This fixes 4 security vulnerabilities/bugs:

- CVE-2021-2839 - SSLv2 vulnerability. Openssl 1.1.1 does not support
  SSLv2, but the affected functions still exist. Considered just a bug.

- CVE-2021-2840 - calls EVP_CipherUpdate, EVP_EncryptUpdate and
  EVP_DecryptUpdate may overflow the output length argument in some
  cases where the input length is close to the maximum permissable
  length for an integer on the platform. In such cases the return value
  from the function call will be 1 (indicating success), but the output
  length value will be negative.

- CVE-2021-2841 - The X509_issuer_and_serial_hash() function attempts to
  create a unique hash value based on the issuer and serial number data
  contained within an X509 certificate. However it was failing to
  correctly handle any errors that may occur while parsing the issuer
  field (which might occur if the issuer field is maliciously
  constructed). This may subsequently result in a NULL pointer deref and
  a crash leading to a potential denial of service attack.

- Fixed SRP_Calc_client_key so that it runs in constant time. This could
  be exploited in a side channel attack to recover the password.

The 3 CVEs above are currently awaiting analysis.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit 482c9ff289c65480c8e7340e1740db24c62f91df)

3 years agokernel: 5.4: fix .patch file extension
Adrian Schmutzler [Tue, 16 Feb 2021 22:20:18 +0000 (23:20 +0100)]
kernel: 5.4: fix .patch file extension

File extension was truncated for
pending-5.4/770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.pa

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 487b7ae5ebbbc76e0b2952658432d28eee07f7a2)

3 years agoipq807x: drop target
Adrian Schmutzler [Tue, 16 Feb 2021 13:00:58 +0000 (14:00 +0100)]
ipq807x: drop target

This target is not ready for stable release yet.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agobuild: reorder more BuildPackages lines to deal with ABI_VERSION
Felix Fietkau [Mon, 15 Feb 2021 23:03:28 +0000 (00:03 +0100)]
build: reorder more BuildPackages lines to deal with ABI_VERSION

After the ABI version rework, packages need to be declared in the order of
their dependencies, so that dependent packages will use the right ABI version

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 75455b75a7ee)

3 years agoath10k-ct: switch to 5.10
Álvaro Fernández Rojas [Mon, 15 Feb 2021 12:52:23 +0000 (13:52 +0100)]
ath10k-ct: switch to 5.10

Let's switch to 5.10 now that mac80211 has been updated.
Runtime-tested on ipq806x (Netgear R7800).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit a5c4c40476)

3 years agoOpenWrt v21.02: set branch defaults
Alexander Couzens [Tue, 16 Feb 2021 01:16:25 +0000 (02:16 +0100)]
OpenWrt v21.02: set branch defaults

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
3 years agoutil-linux: move libuuid BuildPackage line further up to fix ABI versioning
Felix Fietkau [Mon, 15 Feb 2021 22:59:18 +0000 (23:59 +0100)]
util-linux: move libuuid BuildPackage line further up to fix ABI versioning

After the ABI version rework, packages need to be declared in the order of
their dependencies, so that dependent packages will use the right ABI version

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agobuild: fix getting ABI version for binary packages from the same source package
Felix Fietkau [Mon, 15 Feb 2021 22:09:53 +0000 (23:09 +0100)]
build: fix getting ABI version for binary packages from the same source package

We can't rely on the .version file being created yet, so use package variables
to get it

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomac80211: Update to version 5.10.16-1
Hauke Mehrtens [Sun, 14 Feb 2021 18:06:45 +0000 (19:06 +0100)]
mac80211: Update to version 5.10.16-1

The removed patches were applied upstream.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 years agomac80211: Refresh patches again
Hauke Mehrtens [Mon, 15 Feb 2021 21:23:17 +0000 (22:23 +0100)]
mac80211: Refresh patches again

A wrong quilt configuration was used last time.

Fixes: ed1e234d87fc ("mac80211: refresh patches")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 years agobcm4908: fix GPIOs support by limiting them to 64
Rafał Miłecki [Mon, 15 Feb 2021 21:18:01 +0000 (22:18 +0100)]
bcm4908: fix GPIOs support by limiting them to 64

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agobcm4908: use DTS patches sent upstream
Rafał Miłecki [Mon, 15 Feb 2021 20:51:37 +0000 (21:51 +0100)]
bcm4908: use DTS patches sent upstream

There are 2 new patches:
1. Netgear R8000P switch ports
2. Netgear R8000P LEDs

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agobuild: filter out own packages on package version check
Felix Fietkau [Mon, 15 Feb 2021 20:09:49 +0000 (21:09 +0100)]
build: filter out own packages on package version check

This was accidentally dropped in 27a4a71c2408
("metadata: handle ABI version rebuild tracking for transient dependencies")

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agotools/fakeroot: fix build regression on macOS
Felix Fietkau [Mon, 15 Feb 2021 18:58:54 +0000 (19:58 +0100)]
tools/fakeroot: fix build regression on macOS

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agolibubox: update to the latest version, set ABI_VERSION dynamically
Felix Fietkau [Mon, 15 Feb 2021 18:18:10 +0000 (19:18 +0100)]
libubox: update to the latest version, set ABI_VERSION dynamically

2537be018587 cmake: add a possibility to set library version

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agobuild: only overwrite ABI version for provided packages when base version changed
Felix Fietkau [Mon, 15 Feb 2021 17:53:42 +0000 (18:53 +0100)]
build: only overwrite ABI version for provided packages when base version changed

Should avoid some spurious rebuilds

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agoMostly revert "build: add support for fixing up library soname"
Felix Fietkau [Mon, 15 Feb 2021 16:49:46 +0000 (17:49 +0100)]
Mostly revert "build: add support for fixing up library soname"

This reverts commit b12288fa69b171f7c9405518c9bed3581a06f7ce.
The patchelf approach is too fragile, and the only users of this have been
converted to make patching unnecessary
Leave the abi_version_str variable in place in rules.mk

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agowolfssl: use libtool patch for PKG_ABI_VERSION
Felix Fietkau [Mon, 15 Feb 2021 17:46:59 +0000 (18:46 +0100)]
wolfssl: use libtool patch for PKG_ABI_VERSION

Makes it unnecessary to patch .so files after build

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agobuild: add support for patching libtool to include ABI version in soname
Felix Fietkau [Mon, 15 Feb 2021 17:46:11 +0000 (18:46 +0100)]
build: add support for patching libtool to include ABI version in soname

Use the version from PKG_ABI_VERSION

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agolibubox: use build system variable to specify ABI version
Felix Fietkau [Mon, 15 Feb 2021 17:07:51 +0000 (18:07 +0100)]
libubox: use build system variable to specify ABI version

This removes the need to patch it afterwards

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agobcm4908: add USB packages to the DEFAULT_PACKAGES
Rafał Miłecki [Mon, 15 Feb 2021 15:52:29 +0000 (16:52 +0100)]
bcm4908: add USB packages to the DEFAULT_PACKAGES

All known 41 BCM4908 devices have USB ports so it makes sense to include
those packages by default.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agobcm4908: fix backport of PMB driver
Rafał Miłecki [Mon, 15 Feb 2021 15:51:38 +0000 (16:51 +0100)]
bcm4908: fix backport of PMB driver

Missing Makefile change was preventing kernel from actually compiling
the driver.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agokernel: drop ofpart patch dropped from upstream mtd tree
Rafał Miłecki [Mon, 15 Feb 2021 14:05:52 +0000 (15:05 +0100)]
kernel: drop ofpart patch dropped from upstream mtd tree

It stopped ofpart_parser_init() from being called

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agokernel: backport "ofpart" mtd parser upstream quirks support
Rafał Miłecki [Mon, 15 Feb 2021 10:47:17 +0000 (11:47 +0100)]
kernel: backport "ofpart" mtd parser upstream quirks support

This adds quirks support to the "ofpart" parser. It's required to
support fixed partitions that require some extra logic.

Right now only BCM4908 binding is supported (BCM4908 requires detecting
currently used "firmware" partition).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agokernel: fix busy wait loop in mediatek PPE code
Ilya Lipnitskiy [Mon, 8 Feb 2021 04:17:12 +0000 (20:17 -0800)]
kernel: fix busy wait loop in mediatek PPE code

The intention is for the loop to timeout if the body does not succeed.
The current logic calls time_is_before_jiffies(timeout) which is false
until after the timeout, so the loop body never executes.

time_is_after_jiffies(timeout) will return true until timeout is less
than jiffies, which is the intended behavior here.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agowolfssl: use dynamic ABI_VERSION depending on the configuration and package version
Felix Fietkau [Fri, 12 Feb 2021 10:36:47 +0000 (11:36 +0100)]
wolfssl: use dynamic ABI_VERSION depending on the configuration and package version

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agolibubox: use PKG_ABI_VERSION
Felix Fietkau [Fri, 12 Feb 2021 09:10:41 +0000 (10:10 +0100)]
libubox: use PKG_ABI_VERSION

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agofakeroot: fix to work with glibc 2.33
Ilya Lipnitskiy [Sun, 14 Feb 2021 04:41:03 +0000 (20:41 -0800)]
fakeroot: fix to work with glibc 2.33

The following commit removed _STAT_VER definitions from glibc:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=8ed005daf0ab03e142500324a34087ce179ae78e

That subsequently broke fakeroot:
https://bugs.archlinux.org/task/69572
https://bugzilla.redhat.com/show_bug.cgi?id=1889862#c13
https://forum.openwrt.org/t/unable-to-build-toolchain-fakeroot-fails-perhaps-others-after-it/87966

Make the patch based on Jan Pazdziora's suggestion from here:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/SMQ3RYXEYTVZH6PLQMKNB3NM4XLPMNZO/

Add wrappers for newly exported symbols in glibc.

Apply patch from Debian to fix warnings in fts_read and fts_children:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676428
https://sources.debian.org/patches/fakeroot/1.25.3-1.1/eglibc-fts-without-LFS/

Fix __xmknod{,at} dev pointer argument. Switch default to assume * and
not the absence of *. On glibc 2.33+, there is no definition for these
functions in header files, so the compile test doesn't work. But, we
can default to using the pointer (as is the case with newer glibc), and
use the header file on older platforms to fail the test and use no pointer.

Tested on my x86_64 Arch Linux machine, fakeroot unit tests pass.
Also tested by building various .ipks and examining the tar contents, to
ensure that the owner uid/gid was 0/0.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>