Stapler v0.0.29
Выпущена версия Stapler v0.0.29.
Коротко (tl;dr)
- Возможность отключения Firejail для приложений
- Автоматическая очистка кэша
- Улучшенная команда поиска с поддержкой CEL-синтаксиса
- Новые команды для управления репозиториями
- Новое: Система экспериментальных функций в Staplerfile (SFE)
- Экспериментальная поддержка новых форматов архивов
Что нового
Гибкое управление Firejail
Теперь можно отключать Firejail как для новых, так и для уже установленных приложений. Это пригодится, если Firejail конфликтует с окружением или Firejail-профиль не подходит.
Для новых приложений используйте параметр firejailExclude:
stplr config set firejailExclude 'repo/*,repo2/pkg' # отключить для конкретных пакетов
stplr config set firejailExclude '*' # отключить для всех пакетов
Для установленных приложений отредактируйте конфигурационные файлы в /etc/stplr/firejailed/*:
$ cat /etc/stplr/firejailed/_usr_bin_yandex-browser-stable
# Включить подробный вывод (убирает --quiet из опций firejail)
#STPLRPKG_FIREJAIL_VERBOSE=1
# Отключить firejail
#STPLRPKG_FIREJAIL_DISABLE=1
Умная работа с кэшем
Раньше кэш мог разрастаться и требовал ручной очистки через stplr fix. Система кэширования была полностью переработана с добавлением автоматической очистки. Теперь stplr сам следит за своим «порядком», хотя команда stplr fix по-прежнему доступна.
Улучшенный поиск пакетов
Команда stplr search стала мощнее и удобнее!
Быстрый поиск по имени:
$ stplr search yandex
aides/yandex-browser-stable 25.12.1.1217-1
aides/yandex-disk 0.1.6.1080-3
aides/yandex-music 5.83.0-1
Расширенный поиск с CEL-синтаксисом:
$ stplr search --query "appstream_app_id == 'com.visualstudio.code' && repository == 'aides'"
aides/visual-studio-code 1.108.1-1
$ stplr search --query "name.contains('app') || desc.contains('декс')"
aides/apple-emoji-linux 18.4-1
aides/singularityapp 12.0.3-2
aides/yandex-browser-stable 25.12.1.1217-1
aides/yandex-music 5.83.0-1
Новая команда: repo import
Импортируйте репозитории из файлов конфигурации stapler-repo.toml. Команда автоматически загружает содержимое репозитория после импорта (как и repo add).
Примеры использования:
stplr repo import stplr-repo /path/to/stapler-repo.toml # импорт из файла
cat stapler-repo.toml | stplr repo import stplr-repo - # импорт из stdin
stplr repo import stplr-repo stapler-repo.toml --no-pull # импорт без загрузки
stplr repo import stplr-repo stapler-repo.toml --ignore-existing # пропустить существующие
Новая команда: repo list
Простой способ посмотреть список подключенных репозиториев.
Примеры:
stplr repo list
stplr repo list --json
stplr repo list --format $'{{ .Name }}::{{ .URL }}\n'
Staplerfile Experiments (SFE)
В этой версии представлена новая система Staplerfile Experiments (SFE) — механизм для безопасного тестирования новых возможностей в Staplerfile перед тем, как они станут стандартным поведением Stapler.
Зачем нужны эксперименты?
SFE позволяет:
- Протестировать новые функции заранее и дать обратную связь
- Подготовиться к изменениям до того, как они станут обязательными
- Влиять на развитие Stapler, опробовав функции на своих сценариях использования
Как использовать?
Экспериментальные функции включаются в Staplerfile. Каждый эксперимент имеет уникальный идентификатор (например, sfe_249_new_extractor).
Экспериментальные функции нестабильны и могут менять свое поведение до момента, пока не станут функциональностью по умолчанию. Используйте их на свой риск.
[SFE-249] New extractor for sources
Первый доступный эксперимент добавляет поддержку множества новых форматов архивов для sources.
Поддерживаемые форматы:
- Tar-архивы:
.tar,.tar.gz(.tgz),.tar.bz2(.tbz,.tbz2),.tar.xz(.txz),.tar.lz(.tlz),.tar.z(.tz) - Сжатые файлы:
.gz,.gzip,.bz2,.xz,.lz,.lzip,.lzma,.z,.br,.brotli,.zlib,.zst,.zstd,.lz4,.snappy,.sz,.s2,.zz - Пакеты:
.deb,.rpm - Образы:
.iso,.cpio,.cpio.gz,.cpgz - Архивы:
.zip,.7z,.7z.001,.rar,.r00,.ar
Как включить эксперимент:
sfe_249_new_extractor=1
sources=(
"https://example.com/package.rpm"
)
package() {
# Содержимое RPM уже распаковано автоматически
cp -R usr bin etc $pkgdir/
}
Планы: В версии v0.0.31 этот эксперимент станет поведением по умолчанию. Рекомендуется протестировать его уже сейчас, чтобы убедиться, что ваши пакеты будут работать после обновления.
Другие улучшения и исправления
- Исправлен вывод команды
listпри использовании опции--format(#208) - Добавлена блокировка для предотвращения конфликтов при параллельном выполнении команд (#254)
- Исправлено удаление пакетов по полному имени (
{reponame}/{pkgname}) в командеremove(#213) - Добавлен epm в качестве резервного пакетного менеджера (#211)
- Добавлена возможность переопределения
rootCmdпри сборке (#257)
Рекомендации по обновлению
- Попробуйте SFE-249, чтобы заранее подготовиться к предстоящим изменениям в v0.0.31
- Обратите внимание: команды
stplr listиstplr searchизменили поведение — проверьте ваши скрипты, если они используют эти команды