Страницы

понедельник, 17 июня 2019 г.

deb - пакеты

Добавил возможность сборки deb-пакетов для предоставления пользователю GNU/Linux более удобного способа установки транслятора.

Текущая сборка разбивается на 2-е части - исполняемый файл транслятора и первоначальная библиотека поддержки. Из-за того, что библиотека на текущем уровне развития доступна только на уровне исходного кода, то она не зависит от процессорной платформы. Транслятор же для повышения универсальности собирается для i386 со статическим связыванием со стандартной библиотекой. Если для этого вместо glibc использовать musl-libc или dietlibc, то размер выходного файла получается вполне приемлемым.

Для такой сборки я использовал следующую команду в каталоге проекта из 32-битной Ubuntu 18.04:

$ result/bs-ost run 'make.UseCC("musl-gcc -Os -flto -static"); make.Build; make.Deb' -infr . -m source
Предварительно нужно установить вспомогательные утилиты:
$ /usr/bin/sudo apt install hashdeep musl-tools 
И собрать раскруточную версию транслятора:
$ ./init.sh 
Под командой make.Deb скрываются команды оболочки sh:
для сборки vostok-deflib.deb
rm -r result/vostok-deflib
mkdir -p result/vostok-deflib result/vostok-deflib/DEBIAN result/vostok-deflib/usr/share/doc/vostok-deflib result/vostok-deflib/usr/share/vostok
cp -r library result/vostok-deflib/usr/share/vostok/
cp -r singularity result/vostok-deflib/usr/share/vostok/
cp package/DEBIAN/control-deflib result/vostok-deflib/DEBIAN/control
gzip -9cn package/DEBIAN/changelog-deflib > result/vostok-deflib/usr/share/doc/vostok-deflib/changelog.gz
cp package/DEBIAN/copyright-deflib result/vostok-deflib/usr/share/doc/vostok-deflib/copyright
cd result/vostok-deflib
md5deep -rl usr > DEBIAN/md5sums
cd ..
fakeroot dpkg-deb --build vostok-deflib
для сборки vostok-bin.deb
rm -r result/vostok-bin
mkdir -p result/vostok-bin/DEBIAN result/vostok-bin/usr/share/doc/vostok-bin result/vostok-bin/usr/bin
cp result/ost result/vostok-bin/usr/bin/
cp package/DEBIAN/control-bin result/vostok-bin/DEBIAN/control
gzip -9cn package/DEBIAN/changelog-bin > result/vostok-bin/usr/share/doc/vostok-bin/changelog.gz
cp package/DEBIAN/copyright-bin result/vostok-bin/usr/share/doc/vostok-bin/copyright
cp package/DEBIAN/ost.1 result/vostok-bin/DEBIAN/ost.1
cd result/vostok-bin
md5deep -rl usr > DEBIAN/md5sums
cd ..
fakeroot dpkg-deb --build vostok-bin

В результате сотрудничества с другими проектами на Обероне, deb-пакеты и их обновления доступны в общем репозитории https://wiki.oberon.org/repo

Комментариев нет:

Отправить комментарий

Обработка ошибок

Тема корректной обработки ошибок в программе является довольно сложным вопросом в программировании. Отчасти от того, что и она сама являет...