LINUX.ORG.RU
ФорумTalks

Radare2 + Astra Linux - помогите с добавлением в репозитории

 , ,


0

1

Всем добрый день! Мы (radare2 team) работаем над улучшением доступности radare2 и cutter в различных дистрибутивах и обнаружили большое количество пакетных репозиториев без радара или с очень старой версией. Я открыл баг в AltLinux и ROSA Linux, но те молчат. Но так и не нашел багтрекер Astra - он, похоже, только за деньги, лол. Так что просьба тех, кто с доступом - откройте пожалуйста реквест на включение обоих radare2 и cutter в пакетные репозитории.

https://github.com/radare/radare2/issues/10137

★★★★★

У астры есть багтрекер bt.astralinux.ru, но там надо региться

asaks
()

Вы (radare2 team) по всей видимости не понимаете сути опакечивания. Нельзя просто взять и попросить сделать вам пакет - даже если какая-то добрая и глупая душа его сделает, это будет медвежья услуга и вам, и репозиторию и его пользователям.

Дело в том что пакет должен создаваться и поддерживаться тем кто использует приложение, иначе он не будет достаточным образом тестироваться (потому что мантейнер-по-глупости может вообще не представлять зачем оно нужно и как работает) и вообще поддерживаться (поскольку мантейнер в этом не заинтересован). Алсо, это бесполезная трата времени, поскольку если пакета в дистрибутиве нет, значит он никому там и не нужен. Не думаю что гики интересующиеся реверс-инжинирингом будут юзать эти местячковые недодистрибутивы, а особенно невнятную полупроприетарную астру.

Вместо этого лучше прошерстите все существующие пакеты:

https://repology.org/metapackage/radare2/versions

и посмотрите что у вас можно улучшить для упрощения опакечивания. Ищите патчи и любые дополнительные действия помимо configure && make с умолчальными опциями.

Например, посмотрим на FreeBSD порт:

https://svnweb.freebsd.org/ports/head/devel/radare2/Makefile?revision=463925&...

  • Куча NOT_FOR_ARCHS. Не умеете в переносимый код, или захардкожен список архитектур? Не надо так.
  • MAKE_ENV - дичь. Сделайте так чтобы этого не было нужно.
  • Опциональность установки документации, можете ради приличия поддержавать из коробки, без необходимости патчить Makefile
  • Зачем у вас в DATADIR поддиректория с версией? Две radare параллельно всё равно не поставить, поскольку они конфликтуют другими файлами, так уберите это усложнение
  • Нужен gmake. Нормальная сборка, даже на autotools, совместима с BSD'шными make.
  • Что за --with-syscapstone? Вы бандлите какую-то зависимость? Не надо так делать. И уж точно оно не должно быть по умолчанию.
  • pathfix - не помню что это, но тоже какой-то косяк в вашей сборочной системе
slovazap ★★★★★
()

Багтрекер Астры бесплатный, простая регистрация. Если хотите лично пообщаться с разрабами, идите в группу телеграм Астры. https://t.me/joinchat/Bzt6QkHm1ZPzItPE2C9Fug

Cogniter ★★★
()
Ответ на: комментарий от slovazap

1. NOT_FOR_ARCHS - открывайте баг с логами, код переносимый более чем умеем

2. Тут не очень понял.

3. Спасибо, сделаем

4. OS X, вроде, требует

5. Мы не используем autotools а процесс сборки довольно сложный для bsd make. Но мы поддерживаем meson,возможно имеет смысл использовать его.

6. Не наша вина, что автор капстоуна никак не осилит сделать новый релиз в течении нескольких лет. Поскольку результат дизассемблирования зависит от предыдущих инструкций, даже одна небольшая ошибка может порушить весь листинг (или сбить анализ, как например endbr64 инструкции в бинарниках последней Fedora).

7. Нужны подробности.

XVilka ★★★★★
() автор топика
Последнее исправление: XVilka (всего исправлений: 1)
Ответ на: комментарий от XVilka

1. NOT_FOR_ARCHS - открывайте баг с логами, код переносимый более чем умеем

Пока вижу вот это, значит либо не умеете, либо руками ограничили список архитектур:

p/native/reg.c:51:2: error: "Unsupported BSD architecture"

2. Тут не очень понял.

Ну вот это будет если убрать этот HOST_CC:

gmake[4]: Entering directory '/wrkdirs/usr/ports/devel/radare2/work/radare2-2.0.1/shlr/sdb/src'                                                                                                                                                                                                                
gcc -c  -fPIC  -o cdb.o cdb.c                                                                                                                                                                                                                                                                                  
gmake[4]: gcc: Command not found                                                                                                                                                                                                                                                                               
gmake[4]: *** [Makefile:73: cdb.o] Error 127                                                                                                                                                                                                                                                                   

никакого gcc в системе нет и не знаю откуда вы его взяли. Правильный компилятор передаётся в configure через CC/CXX, остальная часть сборки его цепляет. Есть ещё такое:

BUILD SUMARY                                                                                                                                                                                                                                                                                                   
============                                                                                                                                                                                                                                                                                                   
COMPILER gcc                                                                                                                                                                                                                                                                                                   
CC cc                                                                                                                                                                                                                                                                                                          
HOST_CC gcc                                                                                                                                                                                                                                                                                                    
HOST_OS freebsd                                                                                                                                                                                                                                                                                                
BUILD_OS freebsd11.1                                                                                                                                                                                                                                                                                           
============                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                               
>>>>>>>>>>>>>>>>                                                                                                                                                                                                                                                                                               
NATIVE BUILD SDB                                                                                                                                                                                                                                                                                               
>>>>>>>>>>>>>>>>                                                                                                                                                                                                                                                                                               

выглядит очень странно.

4. OS X, вроде, требует

Конечно же не требует.

5. Мы не используем autotools

Не заметил. Ну вот и причина всех проблем - самописная сборка.

процесс сборки довольно сложный для bsd make.

fmake по функционалу мощнее gmake. Вы хотели сказать что не хотите поддерживать два синтаксиса, я вас понял.

Но мы поддерживаем meson,возможно имеет смысл использовать его.

Кому вы это сказали? Я к опакечиванию radare2 отношения не имею и даже им не пользуюсь. А если вы хотите довести такое предложение до своих мантейнеров и пользователей, есть очень простой способ это сделать - оставить только сборку на meson. Поддержка двух сборочных систем одновременно - это вообще за гранью. А пока ожидайте что meson использовать никто не будет потому что он нигде не используется и никто его не знает, а значит будут выбирать предсказуемую и проверенную систему, маскирущуюся под стандартный autotools, и натыкаться на её кривизну.

7. Нужны подробности.

Их у меня нет. Без него нормально собирается, этот пукт снимается.

slovazap ★★★★★
()
Ответ на: комментарий от XVilka

6. Не наша вина, что автор капстоуна никак не осилит сделать новый релиз в течении нескольких лет. Поскольку результат дизассемблирования зависит от предыдущих инструкций, даже одна небольшая ошибка может порушить весь листинг (или сбить анализ, как например endbr64 инструкции в бинарниках последней Fedora).

Бандлинг зависимостей нельзя оправдать ничем. Просто ставлю вас перед фактом: в любом мало-мальски серьёзном дистрибутиве бандлинг зависимостей явно запрещён, так что независимо от того насколько плохо поддерживается capstone, будет использоваться то что опакечено, и если с этим будут какие-то проблемы, отвечать всё равно вам. Так что вам просто придётся ориентироваться на внешнюю зависимость. Если вы ожидаете от неё косяков, добавьте тестов. А забандленную удалите чтобы не вводить себя в заблуждение что она что-то вам упрощает.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 1)
Ответ на: комментарий от slovazap

Wont happen ever. Если вопрос стоит так, что дистрибутив будет содержать устаревшую версию capstone,которая будет давать неправильные результаты реверса, мы предпочтем удаление пакета из дистрибутива. Основная цель реверс-инжиниринга - понять как работает программа, что невозможно при неправильных результатах. Так что корректность превыше всего. Тоже ставим перед фактом.

Debian - дистрибутивы и так нам подсирают сильно, когда приходят пользователи «а у меня это не работает» или «не умеет парсить такой-то формат», в то время как несколько лет назад это было уже исправлено, и мы говорим таким пользователям удалить пакет и ставить из сырцов или нами собранных пакетов.

XVilka ★★★★★
() автор топика
Последнее исправление: XVilka (всего исправлений: 2)
Ответ на: комментарий от XVilka

Ну прежде всего не надо мешать в одну кучу проблемы дебиановского гнилья и актуальных дистрибутивов. А касательно этого:

Wont happen ever

предпочтем удаление пакета из дистрибутива

это ваше отношение к мантейнерам и пользователям, и оно открыто свинское. Не с таким отношением просить делать вам пакеты. И удалять никто ничего не будет, даже если попросите, так что если не научитесь цивилизованно относиться к пакетам, то в вас просто будут вечно тыкать пальцем как в глюкавый нерабочий софт. Третьего не дано.

slovazap ★★★★★
()
Ответ на: комментарий от XVilka

и мы говорим таким пользователям удалить пакет и ставить из сырцов или нами собранных пакетов.

А у вас нет AppImage/Flatpak?

tailgunner ★★★★★
()
Ответ на: комментарий от slovazap

Не с таким отношением просить делать вам пакеты. И удалять никто ничего не будет, даже если попросите, так что если не научитесь цивилизованно относиться к пакетам

Вау.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Есть конечно. Привык просто уже советовать из гита поставить. А так и докер есть, и AppImage/Flatpak. Надо бы сайт обновить, чтобы их всех показывать.

XVilka ★★★★★
() автор топика
Последнее исправление: XVilka (всего исправлений: 1)
Ответ на: комментарий от XVilka

Какая ненависть? Говорю как есть. Учитесь воспринимать критику конструктивно.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.