Docker-среда для сборки Tkabber (XMPP-клиент на Tcl/Tk)
  • Shell 95.6%
  • Dockerfile 4.4%
Find a file
2026-04-06 03:05:30 +04:00
cache Инициализация проекта 2026-03-26 18:12:01 +04:00
output Обновление инструкций 2026-03-26 18:50:25 +04:00
scripts Инициализация проекта 2026-03-26 20:59:06 +04:00
docker-compose.yml Дополнение к комментариям 2026-03-26 20:38:13 +04:00
Dockerfile Инициализация проекта 2026-03-26 18:12:01 +04:00
LICENSE Initial commit 2026-03-26 18:05:37 +04:00
README.md Описание проекта 2026-04-06 03:05:30 +04:00

Docker-среда для сборки Tkabber (XMPP-клиент на Tcl/Tk)

🚀 Поддерживаемые форматы

Формат Описание Статус
.deb Пакет для Debian/Ubuntu
.rpm Пакет для Red Hat/Fedora ⏸️
.AppImage Переносимый формат для Linux
.flatpak Универсальный пакет для Linux

📦 Состав пакетов

Основные пакеты:

  • tkabber — основной клиент
  • tkabber-plugins — официальные плагины
  • tkabber-contrib — пользовательские плагины

Зависимости:

  • bwidget-1.10.1

  • tcl9.0-9.0.2

  • tcl-tls-2.0

  • tdom-0.9.6

  • tk9.0-9.0.2

  • tkimg-2.1.0

  • tk-tktray-1.3.9-7 — необязательный пакет, для TCL9 не требуется

AppImage и Flatpak:

  • tkabber-ai-*.AppImage — клиент и плагины объединены в один пакет
  • tkabber-ft-*.flatpak — клиент и плагины объединены в один пакет

🛠️ Системные требования

  • Docker (версия 20.10 или новее) — использовался docker.io 28.2.2
  • Docker Compose — использовался docker-compose-v2 2.37.1
  • 8+ GB RAM — полагаю, что и 4 GB хватит
  • 2+ CPU ядра — в теории должно хватить
  • 3+ GB свободного места на диске (размер образа ~1.5 GB, исходники ~57 MB, готовые пакеты ~70 MB)

🚀 Быстрый старт

git clone https://git.ubunix.pro/Luciferus/tkabber-build.git
cd tkabber-build
docker compose build
docker compose up

После сборки пакеты появятся в директории output/.

📁 Структура проекта:

/tkabber-build
├── cache
│   ├── new_smiles
|   ├── ├── *.gif
│   │   └── icondef.xml
│   ├── tkabber-src
│   │   ├── tkabber
│   │   ├── tkabber-contrib
│   │   └── tkabber-plugins
│   ├── bwidget-1.10.1.tar.gz
│   ├── critcl-3.3.1.tar.gz
│   ├── feather.png
│   ├── icon.png
│   ├── libtk-img_2.1.0+dfsg1-1.debian.tar.xz
│   ├── libtk-img_2.1.0+dfsg1.orig.tar.xz
│   ├── tcl9.0.2-src.tar.gz
│   ├── tcllib-2.0.tar.gz
│   ├── tcltls-2.0-src.tar.gz
│   ├── tcludp_1.0.12~1+f8c3d67de2-1build1.debian.tar.xz
│   ├── tcludp_1.0.12~1+f8c3d67de2.orig.tar.gz
│   ├── tdom-0.9.6-src.tgz
│   ├── tk9.0.2-src.tar.gz
│   ├── tktray_1.3.9-7.debian.tar.xz
│   └── tktray1.3.9.tar.gz
├── output
│   └── readme.md
├── scripts
│   ├── flatpak
│   │   └── org.tkabber.Tkabber.yml
│   ├── build-all.sh
│   ├── build-bwidget.sh
│   ├── build-critcl.sh
│   ├── build-deps.sh
│   ├── build-tcllib.sh
│   ├── build-tcltk.sh
│   ├── build-tcltk-win.sh
│   ├── build-tcltls.sh
│   ├── build-tcludp.sh
│   ├── build-tdom.sh
│   ├── build-tkabber.sh
│   ├── build-tkimg.sh
│   ├── build-tktray.sh
│   ├── package-appimage.sh
│   ├── package-deb.sh
│   ├── package-flatpak.sh
│   └── package-rpm.sh
├── docker-compose.yml
├── Dockerfile
├── LICENSE
└── README.md

⚙️ Конфигурация

Переменные окружения:

Переменная Описание По умолчанию
OUTPUT_DIR Директория для выходных пакетов /output
MAINTAINER Имя мейнтейнера пакетов Username mail@domain.tld
MAKE_JOBS Количество потоков сборки 16

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

Узнать имя файла и строку для изменения:

grep -irn "MAINTAINER:-\|mainteiner:-\|MAKE_JOBS:-" ./

Сборка только определённых форматов:

Отредактируйте scripts/build-all.sh, закомментировав ненужные шаги. Например, сейчас
отключена сборка RPM-пакетов из-за того, что я слишком туп, чтобы она заработала 😂 .

#echo "========================================="
#echo "11. Creating .rpm packages"
#echo "========================================="
#/build/scripts/package-rpm.sh

📝 Зависимости пакетов

tkabber

  • tcl9.0 (>= 9.0.2)
  • tk9.0 (>= 9.0.2)
  • tcllib (>= 2.0)
  • tcl-tls (>= 2.0)
  • tcl-udp (>= 1.0.12)
  • tdom (>= 0.9.6)
  • bwidget (>= 1.10.1)
  • iproute2
  • tkimg (>= 2.1.0)
  • sensible-utils

Рекомендуемые:

  • tk-tktray-1.3.9-7

tkabber-plugins / tkabber-contrib

  • tkabber (>= 1.1.2-20250724)
  • tkimg (>= 2.1.0)

🧪 Тестирование

После сборки пакеты можно протестировать:

# AppImage
./output/appimage/tkabber-*.AppImage

# Flatpak
flatpak install --user tkabber-*.flatpak
flatpak run --user org.tkabber.Tkabber

# debian-packages
sudo dpkg -i output/tkabber-*.deb

🐛 Устранение неполадок

Ошибка "tclConfig.sh not found"

Убедитесь, что Tcl 9.0 установлен в /usr/local/lib/tcl9. При необходимости скорректируйте пути в скриптах.

AppImage не запускается

Проверьте, что AppImage имеет права на выполнение:

chmod +x tkabber-*.AppImage
./tkabber-*.AppImage

📄 Лицензия

Проект распространяется под лицензией MIT. Исходные коды Tkabber и его компонентов имеют собственные лицензии (GPL-2.0-or-later).

🙏 Благодарности

Сергей Голован — разработчик Tkabber
Tcl/Tk Core Team
Debian Tcl/Tk Maintainers