Created attachment 12295 [details] логи и списки установленных пакетов Шаги для повторения от root: ``` apt-get install -y dpkg rpm-build-python3 rpm-build-python libnumpy python python-module-numpy python-module-pycairo python-module-pygobject python-module-pygtk python-modules python-modules-bsddb python-modules-compiler python-modules-ctypes python-modules-curses python-modules-email python-modules-encodings python-modules-hotshot python-modules-logging python-modules-multiprocessing python-modules-unittest python-modules-xml python-strict cd /tmp wget -c http://old-releases.ubuntu.com/ubuntu/pool/universe/m/meld/meld_1.5.3-1ubuntu1_all.deb rm -rvf /tmp/meld-tmp dpkg-deb -R meld_1.5.3-1ubuntu1_all.deb meld-tmp sed -i "s|/usr/bin/python$|/usr/bin/python2|" meld-tmp/usr/bin/meld dpkg-deb -b meld-tmp meld_1.5.3-1ubuntu1py2_all.deb epm install -y --repack --verbose meld_1.5.3-1ubuntu1py2_all.deb ``` Ожидаемый результат - успешная перепаковка и установка старого deb-пакета, использующего Python 2. Полученный результат - ошибка перепаковки, пакет не установлен. Использую систему, установленную из alt-p10-mate-20221204-x86_64.iso. Помню, что в прошлом году процесс работал. Путем бисекции по датам, следуя https://www.altlinux.org/Downgrade выяснил, что проблема появилась именно сегодня (2023/01/14). Прошлая версия 3.19.4-alt1 проблеме не подвержена. Смотрите логи и списки установленных пакетов в архиве.
А зачем нужно ставить пакет meld из Ubuntu? Тем более содержащий python2, который давно не поддерживается?
>А зачем нужно ставить пакет meld из Ubuntu? >Тем более содержащий python2, который давно не поддерживается? Мне нужна именно эта версия из-за https://askubuntu.com/a/965151/66509. Пожалуйста, почините перепаковку. Раньше работало. Готов помочь с тестированием.
(Ответ для Norbert X на комментарий #2) > >А зачем нужно ставить пакет meld из Ubuntu? > >Тем более содержащий python2, который давно не поддерживается? > > Мне нужна именно эта версия из-за https://askubuntu.com/a/965151/66509. Но может быть вам тогда стоит ставить старую версию, которая была собрана для ALT? https://www.altlinux.org/Архив_Сизифа > Пожалуйста, почините перепаковку. Раньше работало. Готов помочь с > тестированием. Не знаю, насколько это возможно. С тем же успехом вы можете взять старый epm и им перепаковать командой epm repack. Получившийся пакет сохранить.
Локально для себя я проблему решил патчингом старого пакета из ветки https://git.altlinux.org/srpms/m/meld.git?p=meld.git;a=tag;h=refs/tags/1.5.3-alt1 с явным указанием python2 в шебанге и минимальными правками спека. Не хочу снижать или замораживать версию eepm в своей системе. --- Провел бисекцию по коду eepm и получил такой результат - проблема первый раз появилась в версии 3.22.0-alt1 . Подозреваю вот этот коммит - https://github.com/Etersoft/eepm/commit/4437824cc09c3132c5f781f5bce6792b7f54e006 . Локальная подмена содержимого файла /etc/eepm/repack.d/generic.sh из 3.21.8-alt1 решает проблему, т.е. после выполнения ``` # wget https://raw.githubusercontent.com/Etersoft/eepm/43a930297f3155f965f2087fbf49872372792541/repack.d/generic.sh -O /etc/eepm/repack.d/generic.sh ``` команды из первого сообщения в этом баге завершаются успешно для версии eepm 3.28.1-alt1 в p10. Конечно, я понимаю, что Python2 сейчас стал устаревшим. Но много пакетов для него по-прежнему есть в репозитории ALT, поэтому мне все же кажется логичным поддержка обеих версий Python - 2 и 3 в eepm. Поправьте, пожалуйста, скрипт перепаковки.
(Ответ для Norbert X на комментарий #4) > Локально для себя я проблему решил патчингом старого пакета из ветки ... Я не очень понимаю, зачем откатываться к версии 10-летней давности. Заведена ли issue по вашей проблема на https://gitlab.gnome.org/GNOME/meld/-/issues ? ... > Но много пакетов для него по-прежнему есть в репозитории ALT, поэтому мне Нет, пакетов для python2 ничтожное количество осталось в репозитории. Вот таким скриптом померил количество пакетов python2 $ epms python-module | grep ^python | wc -l На p9 — 4396 На p10 — 854 На Сизифе — 133 Напротив, по python3: На p9 — 3317 На p10 — 3875 На Сизифе — 3748 > все же кажется логичным поддержка обеих версий Python - 2 и 3 в eepm. > Поправьте, пожалуйста, скрипт перепаковки. Дело в том, что определить, какой python нужен, очень непросто. У меня идей нет. Делать что-то для установки старых пакетов, которые скорее всего не будут работать... Изменение, на которое вы ссылаетесь, однозначной поддержки только python3 не имеет. https://github.com/Etersoft/eepm/commit/4437824cc09c3132c5f781f5bce6792b7f54e006
>Дело в том, что определить, какой python нужен, очень непросто. У меня идей нет. Делать что-то для установки старых пакетов, которые скорее всего не будут работать... > >Изменение, на которое вы ссылаетесь, однозначной поддержки только python3 не имеет. https://github.com/Etersoft/eepm/commit/4437824cc09c3132c5f781f5bce6792b7f54e006 Вы команду wget https://raw.githubusercontent.com/Etersoft/eepm/43a930297f3155f965f2087fbf49872372792541/repack.d/generic.sh -O /etc/eepm/repack.d/generic.sh пробовали исполнять? И далее команды из первого комментария? На мой взгляд есть регрессия. И не сильно важно что перепаковывается - Meld или другая полезная программа. Сейчас получается, что epm актуальной версии нельзя использовать в скриптах из-за его непредсказуемости. Раньше в моем скрипте для пост-настройки ALT (https://github.com/N0rbert/alpis) после замены шебанга с python на python2 мне было достаточно выполнить одну команду (см. строку 437 "epm install -y --repack meld_1.5.3-1ubuntu1py2_all.deb", а с нововведением - существенно больше и без использования epm - см. https://github.com/N0rbert/alpis/commit/46752ad92f363cde8ab4d6e99fed1c15d81fc359 если интересно). Также хотелось бы прочитать все-таки комментарий Георгия Курячего, как я понимаю, внесшего обсуждаемую правку в generic.sh. Может быть можно сохранить универсальность скрипта перепаковки, сохранив поддержку одновременно python2 и python3. А также, наверное, в eepm следует добавить тесты для проверки регрессий при перепаковке различных пакетов, включая написанные на python.