- Shell 95.6%
- Dockerfile 4.4%
| cache | ||
| output | ||
| scripts | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
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