На данных момент я хотел бы выложить в паблик два моих legacy проекта. Закроем, так сказать, гештальт.
Казалось бы, не связанные между собой проекты, относятся к одному период деятельности и одной задаче, которая вымыла из меня колоссальное количество энергии.
По прошествии времени, я могу сказать, что не все задачи бывают корректно разрешимы. Некоторые задачи неразрешимы, при тех обстоятельствах, в которых они были поставлены. It’s a trap!
Первый проект, который стоит упомянуть, это программа для сборки deb пакетов под Debian.
Моя задача была пересобрать полностью пакетную базу моего тогдашнего проекта для целей прохождения сертификации по информационной безопасности. В рамках нашего проекта собиралось 12 пакетов. С ними вопросов особо не возникло. Были трудности, но в целом, за приемлемое время они решались.
Основной болью стало пересобрать пакеты технологической операционной системы в количестве несколько сот штук. В качестве технологической операционной системы выступал Debian 11. Заявляется, что пакеты Debian можно без проблем собрать при необходимости. Однако на практике это выглядит так, что сборка пакетов достаточно капризная. К тому же, пакеты в массе своей, пересобираются достаточно медленно, поэтому апробация новых подходов отнимало очень много времени. Те решения которые я пробовал, или не работали так как мне нужно, или работали плохо, или я не понимал полностью всего того что закладывали авторы в них.
Главной ошибкой, по прошествии времени, видится то, что я использовал один физический хост для пересборки всех пакетов. Для сборки каждого пакета необходимо чистое окружение. Поэтому необходим был инструмент для автоматизированной организации окружения и автоматизации работы с ним.
И я нашел такой инструмент. Этим инструментом явился Deber. К тому моменту как я его нашел, автор его еще поддерживал. Но буквально на моих глазах, он заархивировал этот проект и прекратил поддержку. Поэтому я решил сделать форк и продолжить его развитие.
Deber написан на Golang. Мне пришлось в экстренном порядке учить этот язык, что бы доработать Deber согласно целям и задачам проекта. А в процессе, я понял, что наконец таки нашел то, что так долго искал. Golang - One Love! Это был главный толчок, который определил тот вектор развития, которым я собираюсь идти.
Программа присутствует для установки в AUR Arch Linux.
https://github.com/dpvpro/deber
Второй проект, который стоит упомянуть, это Incron.
Программа cron, только для событий файловой системы. То есть можно настроить мониторинг событий для файлов и по событию будет выполняться какое-либо действие.
Оригинальная программа версии 5.12 которая содержалась в релизе Debian 11 была с очень серьезной ошибкой. Из-за этой ошибки мы столкнулись с очень большими трудностями при сдаче объекта. В процессе работы создавалось множество процессов зомби, что мешало нормальному функционированию системы. Быстро этот момент было не решить, поэтому в рамках проекта я откатился на предыдущую версию incron.
Но для себя, мне хотелось решить эту проблему как следует. К сожалению автор программы давно не выходил на связь и поддержка программы не осуществлялась. Блеск и нищета opensource)) Поэтому так же был сделан форк программы, влиты все запросы на слияние, которые успели накопиться к тому времени в репозитории оригинального проекта и выложены в новом проекте.
Я думал продолжить развитие проекта, но не думаю что это кому-то уже нужно. Сейчас я уже вижу другие инструменты для подобных задач, и уже на моем любимом Golang. Конкретно, функционал по мониторингу событий для файлов присутствует в проекте Syncthing, который я люблю и очень активно использую.
Тем не менее пакет поддерживается мной в AUR Arch Linux. Можно пользоваться)
https://github.com/dpvpro/incron-next
В заключении могу сказать, что оба проекта прекрасно собираются и работают на Debian. Но форсировать продвижение пакетов в репозитории Debian у меня уже нет ни сил, ни желания. Так что пусть остаётся всё как есть. Возможно кому-то пригодятся мои наработки. Или могу доработать вам за деньги))