Объединение Entware-ng и Entware-3x. Теперь это просто Entware!!!

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 31 янв 2020, 00:42

Voxel писал(а):Источник цитаты А вот вопрос: не будет проблем у пользователей с opkg update / opkg upgrade при переходе на новый компилятор при том же glibc? Или советовать все с нуля переустанавливать?

Не будет. Точнее не должно быть. libc то обновится автоматом.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 02 фев 2020, 00:09

Сегодня выложено очередное обновление Entware.
https://entware.net/2020/02/01/Changelog.html

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 03 фев 2020, 12:16

Zyxmon писал(а):Источник цитаты Сегодня выложено очередное обновление Entware.
https://entware.net/2020/02/01/Changelog.html


:good:

Voxel.

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 02 апр 2020, 16:21

Добрый день,

Немного пообщался с Zyxmon-ом в привате. Дело в том, что чуть обновляю свою версию Entware для Cortex-A15, Обновления включают также обновление glibc с версии 2.26 до 2.27. Здесь пишу, чтобы не забылось.

Проблема 1: после

Код: Выделить всё

opkg update
opkg upgrade

с предыдущей версии, т.е. с 2.26 на 2.27 в /opt/lib остается символьный линк ld-linux.so.3 на уже несуществующий ld-2.26.so. После этого никакие программы из Entware, естественно, не работают.

Решил для себя добавкой в Makefile пакета toolchain использование postinst скрипта:

Код: Выделить всё

. . .
ifeq ($(CONFIG_USE_GLIBC),y)
        PKG_RELEASE=9
define Package/libc/postinst
#!/bin/sh

if [ -e /opt/lib/$(DYNLINKER) ]; then
	rm -f /opt/lib/$(DYNLINKER)
fi
cd /opt/lib
$(LN) ld-$(CONFIG_GLIBC_VERSION).so $(DYNLINKER)
exit 0
endef
endif
. . .


возможно команде Entware пригодится в случае миграции на более новый glibc.

Минорная проблема 2, в entware-opt в Makefile создается postinst:

Код: Выделить всё

 . . 
#!/bin/sh

if [ -e /opt/bin/busybox ]; then
    exit 0
fi
if [[ -f /sbin/ifconfig && ! -f /opt/sbin/ifconfig ]]; then
    ln -s /sbin/ifconfig /opt/sbin/ifconfig
fi
if [[ -f /sbin/route && ! -f /opt/sbin/route ]]; then
    ln -s /sbin/route /opt/sbin/route
fi
if [[ -f /sbin/ip && ! -f /opt/sbin/ip ]]; then
    ln -s /sbin/ip /opt/sbin/ip
fi
if [[ -f /bin/netstat && ! -f /opt/bin/netstat ]]; then
    ln -s /bin/netstat /opt/bin/netstat
fi
if [[ ! -f /opt/bin/sh ]]; then
    ln -s /bin/sh /opt/bin/sh
fi
if [[ ! -f /opt/bin/ash ]]; then
    ln -s /bin/ash /opt/bin/ash
fi
. . .

что, вроде как неправильно. Во всяком случае мой /bin/sh на роутерах ругается и пишет про "missing ']]'". Я заменил на

Код: Выделить всё

#!/bin/sh

if [ -e /opt/bin/busybox ]; then
    exit 0
fi
if [ -f /sbin/ifconfig ] && [ ! -f /opt/sbin/ifconfig ]; then
    ln -s /sbin/ifconfig /opt/sbin/ifconfig
fi
if [ -f /sbin/route ] && [ ! -f /opt/sbin/route ]; then
    ln -s /sbin/route /opt/sbin/route
fi
if [ -f /sbin/ip ] && [ ! -f /opt/sbin/ip ]; then
    ln -s /sbin/ip /opt/sbin/ip
fi
if [ -f /bin/netstat ] && [ ! -f /opt/bin/netstat ]; then
    ln -s /bin/netstat /opt/bin/netstat
fi
if [ ! -f /opt/bin/sh ]; then
    ln -s /bin/sh /opt/bin/sh
fi
if [ ! -f /opt/bin/ash ]; then
    ln -s /bin/ash /opt/bin/ash
fi


Возможно вам пригодится.

Не болейте,
Voxel.

Аватара пользователя
TheBB
Сообщения: 119
Зарегистрирован: 31 авг 2015, 02:24
Откуда: 26 ~44.098,43.022

Сообщение TheBB » 02 апр 2020, 18:16

Voxel писал(а):Источник цитаты Во всяком случае мой /bin/sh на роутерах ругается и пишет про "missing ']]'".

башизм, чтоб его... Один из owrt`шных maintainer`ов пользует "shellcheck" для поиска и правки в скриптах.
K Giga II NDMSv.2.06C/2.11D/2.15A + Entware-Keenetic/Entware&Gentoo; K DSL NDMSv.2.05C/2.11D + Entware-Keenetic/Entware&Debian 8.11/9.6

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 02 апр 2020, 19:28

TheBB писал(а):Источник цитаты башизм, чтоб его... Один из owrt`шных maintainer`ов пользует "shellcheck" для поиска и правки в скриптах.


Ну да, я сам грешен. Особенно переключаясь с C/C++. Часто в if-ах машинально использую при сравнении "==" вместо "=". Особенно, если перед этим проверял неравенство "!=".

shellcheck - да, как раз и проверил им перед репортированием... Меня в него уже носом тыкали после моих "=="

Voxel.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 15 сен 2020, 14:22


Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 17 окт 2020, 19:11



:good:

Обновление Entware для архитектуры Cortex-A15:

http://cortex-a15.zyxmon.org/binaries/cortex-a15-3x/

Из нового: компилировал версией компилятора GCC 9.3.0 и binutils 2.35.1. Изначально, пытался использовать 10.2.0, но после долгих мучений, сломался на компиляции ruby, скомпилировав уже порядка 1600 пакетов. Несколько пакетов обновил, один откатил, к сожалению, (это megacmd) к версии 1.2.0 от июля. megacmd - ошибки компиляции, уже не было времени/возможностей фиксить. Поэтому вернул версию из предыдущего релиза (1.2.0 вместо 1.3.0).

Вопрос к глубокоуважаемой команде Entware: вы всё же используете GCC 8.4.0 для ARM - что-то не так с 9.3.0? С 10.2.0 - я уже знаю подводные камни...

Voxel.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 17 окт 2020, 22:01

Voxel писал(а):Источник цитаты вы всё же используете GCC 8.4.0 для ARM - что-то не так с 9.3.0?

https://github.com/openwrt/openwrt/blob ... nfig.in#L5
Мы используем версию, которую используют в openwrt. Так меньше "подводных камней".

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 17 окт 2020, 22:53

Zyxmon писал(а):Источник цитаты Мы используем версию, которую используют в openwrt. Так меньше "подводных камней".

Понятно. Спасибо за ответ. Ну openwrt-шников можно понять: там добавились новые дефолтные -Werror. Нужно много править мэйкфайлов или сами коды. Но по совместимости 9.3.0 довольно хорошо идет после 8.4.0. Вот в десятке... Там много проблем с линковкой и, например, с определением дефолтной visibility (__attribute__((visibility("default"))))... ruby я так и не смог победить с его "something wrong with LDFLAGS" при конфигурации пакета...

Хотя, я вот видел у вас в rtndev-е несколько исправлений в мэйкфалах для поддержки GCC9. Десятка, все же, если удается скомпилировать, бьет предыдущие версии по скорости, и результирующие бинарники более компактные. Там в "-O2" врубили по умолчанию опцию "-finline-functions", и она довольно разумная. GCC9 c -O2 и с -finline-functions выдает бинарники с большим размером, по сравнению с GCC10 при тех же условиях. Но бывают проблемы... Так, для информации.

Дзенкуе бардзо,

Voxel.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 4 посетителя :: 1 зарегистрированный, 0 скрытых и 3 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

Сейчас этот форум просматривают: Yandex [Bot] и 3 гостя