Форум проекта PuppyRus Linux

Дистрибутивы проекта PuppyRus Linux => Сборки Linux от пользователей => DDR01. DebianDogRetro Rus Stretch i686 => Тема начата: sfs от 26 Июль 2019, 14:41:17

Название: Компиляция в Debian
Отправлено: sfs от 26 Июль 2019, 14:41:17
https://habr.com/ru/post/282217/
https://wiki.debian.org/ru/DebianBuildPackages
Сборка на двух ядрах: dpkg-buildpackage -j2
Для пропуска тестов надо установить переменную среды:
DEB_BUILD_OPTIONS="nocheck"
Или записать в файл .bashrc :
export DEB_BUILD_OPTIONS="parallel=2 nocheck"
parallel=2 - к-во ядер Вашего CPU
Обязательные файлы в каталоге debian (https://www.debian.org/doc/manuals/maint-guide/dreq.ru.html)

В DDR необходимо подключить модуль DEVX*.pfs (содержит build-essential и пр.)
1. В /etc/apt/sources.list в строках debian и debian-security раскомментировать строки deb-src
2. sudo apt-get update

Перекомпиляция пакета из Debian (https://www.debian.org/doc/manuals/maint-guide/build.ru.html)
Например в репе пакет под gtk3 а Вам надо gtk2
3. apt-get source package1
4. apt-get build-dep package1 или из вашего mk-build-deps --install <controfile> (https://stackoverflow.com/questions/17435958/how-to-install-build-dependencies-directly-from-the-debian-control-file)(удалить потом так (https://qastack.ru/ubuntu/180504/how-can-i-remove-all-build-dependencies-for-a-particular-package))
5. cd package1-dir
5a. добавляем свой patch (если это нужно) : в каталоге debian создаем каталог patches
В него складываем патчи с расширением .patch и добавляем (создаем) в список патчей patches/series свой патч (имя файла патча без пути)
6. Правим конфиги в папке debian
7. DEB_BUILD_OPTIONS (https://iomem.com/archives/18-Avoiding-tests-when-building-Debian-packages.html)="parallel=2 nocheck nodocs" dpkg-buildpackage -us -uc

Компиляция пакета из src (https://help.ubuntu.ru/wiki/сборка_пакетов)
3. Скачать исходники (src) через git, браузер и т.п., распаковать
4. Доустановить необходимые для сборки пакеты -dev*.deb. Самое сложное. Какие нужны - узнать из доки программы или подскажут настроечные скрипты проги. Искать название нужных .deb здесь (https://packages.debian.org) или apt search
5. Компилим программу по инструкции из ee src
6. Создаем папку с файлами программы :
Код
fakeroot
make install DESTDIR=`pwd`/tempinstall
exit
7. Делаем из этой папки модуль.pfs (mkpfs) или пакет.deb (https://help.ubuntu.ru/wiki/programs_installation) (вар.2 попроще). Подробности (http://wiki.puppyrus.org/setups/deb)

Примеры: 1 (https://coderwall.com/p/urkybq/how-to-create-debian-package-from-source) ; 2 (https://ph0en1x.net/103-wargus-warcraft-2-building-compiling-on-linux-debian-stretch-9-howto.html) ; 3 (https://howitmake.ru/blog/ubuntu/178.html) ; 4 (http://rat.admin.lv/?p=131)
Название: Re: Компиляция в Debian
Отправлено: sfs от 26 Июль 2019, 14:54:52
Я не гуру дебиана и компиляции. По этой теме
4. Доустановить необходимые для сборки пакеты -dev*.deb. Самое сложное. Какие нужны - узнать из доки программы или подскажут настроечные скрипты проги
Может кто-то знает простые пути
Нашел auto-apt (https://habr.com/ru/post/150210/) - похоже, что-то старое мертвое

В арче , на мой взгляд, компилить проще - пакеты большие, с dev частью. Сильно гадать, что доустановить не придется. Есть AUR
В деб все разбито на части,  apt - копризный (то пол репы выкачивает, то ломается, то не понятно чего хочет...)
В основном и для DDR компилил в PRA03.  Еще слепил из iso arch32 от 2017 года себе дистр с заморозкой репы  для компиляции
Версии либ разные. Не для всех прог прокатывает. Поэтому и озадачился компиляциев в дебиане

А вообще - дополнительно укрепился в мысле , что арч - лучший выбор для маленького фругала
Название: Re: Компиляция в Debian
Отправлено: krasnyh от 26 Июль 2019, 15:19:31
Еще слепил из iso arch32 от 2017 года себе дистр
Есть ли резон заменить retro этим iso?
Название: Re: Компиляция в Debian
Отправлено: sfs от 26 Июль 2019, 15:24:44
Нет. Он огромный и исключительно для компиляции
Уж если заморачиваться - делать pra-roll 32bit по  шаблонам pra-roll 64bit. Пока установил себе так manjaro32 xfce тоже для компиляции
Легкого дистра не получится. Поэтому смысла нет - не планирую
Название: Re: Компиляция в Debian
Отправлено: sfs от 26 Июль 2019, 16:09:19
Может кто-то знает простые пути
apt-ddr01-sf03.pfs (ftp://ftp.yandex.ru/puppyrus/ddr/ddr01/pfs/apt-ddr01-sf03.pfs)
pkg-ddr01-sf04.pfs (ftp://ftp.yandex.ru/puppyrus/ddr/ddr01/pfs/pkg-ddr01-sf04.pfs)
Добавил apt-file (https://zalinux.ru/?p=366)
Название: Re: Компиляция в Debian
Отправлено: sfs от 14 Ноябрь 2019, 10:23:22
5a. добавляем свой patch
Доработал. Как же в дебиане все сложно с компиляцией
Название: Re: Компиляция в Debian
Отправлено: sfs от 29 Март 2023, 09:44:57
Цитата: sfs от 27 Март 2023, 13:02:37
По сравнению с debian - ubuntu привлекает наличием ppa
Как правило пересобираются под чистый debian без проблем.
Собирал например нужные версии cantata, celluloid из ppa, и xfce4-dockbarx-plugin которого в debian нет.
Компилил mpv - парился пол дня. Из-за большой раздробленности пакетов сложно убирать зависимости
В итоге скомпилилось, но пакеты не создались. Пока не разбирался, но планирую
В арче скомпилил за пол часа без проблем
Если интересно - могу поделиться рецептом моего mpv на ffmpeg6

А зачем перекомпиляли celluloid ? Чем не устроил из репы?
Название: Re: Компиляция в Debian
Отправлено: gumanzoy от 29 Март 2023, 12:45:49
А зачем перекомпиляли celluloid ? Чем не устроил из репы?
Компилил 0.21 последнюю gtk3 версию. Сохранил deb-src еще понадобится. А в репе только 0.20 и в debian и в ubuntu
Хотя они мало чем отличаются.

У меня еще пересобраны под debian 11
xfce4-sensors-plugin_1.4.3-1_amd64.deb с включенным hddtemp
qalculate-gtk_3.22.0-1_amd64.deb бэкпортировал до того как его в backports добавили

Для своей сборки пересобирал mesa-21.3.5 с llvm-11
Все делается правкой debian/control и debian/rules
Собираю из под обычного debian с помощью pbuilder
Название: Re: Компиляция в Debian
Отправлено: sfs от 29 Март 2023, 12:51:00
Мелочевку можно брать в других дистрах
пересобирал mesa-21.3.5
Дало каких-то улучшений?
Название: Re: Компиляция в Debian
Отправлено: gumanzoy от 29 Март 2023, 12:57:13
    пересобирал mesa-21.3.5

Дало каких-то улучшений?
С 20.3.5 в Unigine Heaven на Radeon RX 6800M артефакты были.
В 21.3.5 исправлено.

Но это уже не актуально. Буду пробовать doglinux debian 12 собирать. Вопрос в том будут ли работать legacy 340 и 390 nvidia драйвера. Возможно не будут. И тогда придется свежую месу и libdrm бэкпортировать для debian 11. Видюх много новых вышло. И RX 7000 и Intel Arc
Название: Re: Компиляция в Debian
Отправлено: gumanzoy от 05 Май 2023, 00:10:12
Компилил mpv - парился пол дня. Из-за большой раздробленности пакетов сложно убирать зависимости
В итоге скомпилилось, но пакеты не создались. Пока не разбирался, но планирую
В арче скомпилил за пол часа без проблем
Если интересно - могу поделиться рецептом моего mpv на ffmpeg6
Нашел компактный mpv для Debian и Ubuntu. С вкомпиленым ffmpeg. https://non-gnu.uvt.nl/debian/
mpv из официальной репы bookworm с зависимостями - ~60MB xz squashfs
этот 15MB
Добавлю в свою сборку DogLinux Debian 12 Bookworm. Скоро выложу.
Название: Re: Компиляция в Debian
Отправлено: sfs от 07 Май 2023, 15:22:35
компактный mpv
Не сказал бы , что он компактный. Обычный c обычными зависимостями..  Только что с вкомпиленным ffmpeg. В LTS дистрах со старым ffmpeg - в этом может и есть какой-то смысл - использовать более свежий ffmpeg. Но это можно сделать и другими способами. Короче - отдельный ffmpeg удобнее со всех сторон
 Если надо маленький - см. мои рецепты
Кстати - а есть вообще смысл ломаться за свежие версии mpv и ffmpeg? Я не по чтению changelog ни по экспериментам улучшений не заметил. А Вы?