[devel] Неупакованные каталоги
Alexey Shabalin
a.shabalin на gmail.com
Пн Авг 7 17:26:17 MSK 2023
сб, 5 авг. 2023 г. в 21:29, Vitaly Lipatov <lav на altlinux.ru>:
>
> При сборке пакета файлы иногда попадают в каталоги, которыми никто не
> владеет (на момент установки пакета), или владеет да не тот. Я сделал
> небольшую выборку из таких бесхозных каталогов на основе логов сборки
> заданий за последние двенадцать месяцев.
>
> Некоторые из таких каталогов некоторые дистрибутивы пакуют в filesystem,
> но возможно было бы странно увидеть там /usr/share/metainfo.
> Или вот /usr/share/help. По сути, он принадлежит только librarian,
> которую никто не использует. Однако, кладут файлы туда множество
> пакетов, в том числе и равноудалённые от GNOME (или MATE), для которого
> каталог задумывался.
>
> По некоторым каталогам нужно принять решение, что их будет паковать себе
> каждый, кто использует.
Лучше никто, чем каждый.
Если каждый начнет паковать один и тот же каталог, с зависимостями
будем играть в рулетку.
>
> Для остальных достаточно добавить зависимость на пакет, содержащий
> каталог.
> Допустим, если кладём файл в /usr/share/polkit-1, у пакета должна быть
> зависимость на polkit.
Это как раз к вопросу, а должны ли плагины и конфиги требовать
установку основной программы.
Ответ не очевиден. Например на минимальной системе может быть не
установлен polkit, и на этой системе я ничего никому не хочу
делегировать, все что необходимо запущу прямо от root.
Но есть пакеты, которые содержат настройки для polkit, если в них
будет зависимость на polkit, то я не смогу удалить из системы polkit.
Вырезать конфиги в отдельный подпакет тоже не целесообразно. (ну какой
смысл плодить отдельные пакеты с настройками для polkit).
Так что ругань на никому не принадлежащий каталог /usr/share/polkit-1
я считаю меньшим злом, чем зависимость на polkit.
>
>
>
> /etc/bash_completion.d:
https://lists.altlinux.org/pipermail/devel/2021-November/216047.html
- Паковать completion файлы вместе с основным пакетом (не делать подпакетов)
- Упаковывать в /usr/share (/etc для администратора)
- Не указывать зависимость на bash-completion или другие shell (zsh, fish)
- Только bash-completion должен владеть директориями
%_datadir/bash-completion/completions и %_sysconfdir/bash_completion.d
> hub: /etc/bash_completion.d
> ninja-build: /etc/bash_completion.d
> openscap-scanner: /etc/bash_completion.d
> bash-completion: /etc/bash_completion.d
> bash-completion-mercurial: /etc/bash_completion.d
> bash-completion-source-highlight: /etc/bash_completion.d
> python3-module-cinderclient: /etc/bash_completion.d
> python3-module-glanceclient: /etc/bash_completion.d
> python3-module-magnumclient: /etc/bash_completion.d
> python3-module-mistralclient: /etc/bash_completion.d
> python3-module-neutronclient: /etc/bash_completion.d
> python3-module-novaclient: /etc/bash_completion.d
> python3-module-swiftclient: /etc/bash_completion.d
> python3-module-vitrageclient: /etc/bash_completion.d
> python3-module-zunclient: /etc/bash_completion.d
> rinse: /etc/bash_completion.d
> salt-master: /etc/bash_completion.d
> xen-tools: /etc/bash_completion.d
>
> /usr/share/bash-completion:
> ethtool: /usr/share/bash-completion
> gopass: /usr/share/bash-completion
> nnn: /usr/share/bash-completion
> pcp: /usr/share/bash-completion
> powertop: /usr/share/bash-completion
> bash-completion: /usr/share/bash-completion
> bash-completion-mercurial: /usr/share/bash-completion
> clufter-cli: /usr/share/bash-completion
> driverctl: /usr/share/bash-completion
> rpmdevtools: /usr/share/bash-completion
>
> /lib/firmware:
> firmware-alsa-sof: /lib/firmware
>
> /usr/lib/systemd/user:
> systemd: /usr/lib/systemd/user
> canto-next: /usr/lib/systemd/user
canto-next - это ошибка
>
> /usr/lib/systemd:
> systemd: /usr/lib/systemd
> canto-next: /usr/lib/systemd
canto-next - это ошибка
>
> /lib/dbus-1/system-services:
>
> /usr/share/polkit-1/actions:
> deepin-api: /usr/share/polkit-1/actions
> kdiskmark: /usr/share/polkit-1/actions
> lxqt-admin: /usr/share/polkit-1/actions
> polkit: /usr/share/polkit-1/actions
Только polkit должен владеть.
>
> /usr/share/dbus-1:
> ayatana-indicator-keyboard: /usr/share/dbus-1
> ayatana-indicator-sound: /usr/share/dbus-1
> dbus: /usr/share/dbus-1
> libdbus-devel: /usr/share/dbus-1
Только dbus должен владеть.
>
> /usr/share/polkit-1:
> kdiskmark: /usr/share/polkit-1
> polkit: /usr/share/polkit-1
Только polkit должен владеть.
>
> /usr/share/zsh:
> gopass: /usr/share/zsh
> pcp: /usr/share/zsh
> radare2: /usr/share/zsh
> zsh: /usr/share/zsh
> bash-completion-mercurial: /usr/share/zsh
Все, кроме zsh, ошибки.
>
> /usr/share/zsh/site-functions:
> environment-modules: /usr/share/zsh/site-functions
> gopass: /usr/share/zsh/site-functions
> pcp: /usr/share/zsh/site-functions
> radare2: /usr/share/zsh/site-functions
> bash-completion-mercurial: /usr/share/zsh/site-functions
> ddgr: /usr/share/zsh/site-functions
Все, кроме zsh, ошибки.
>
> /usr/share/help:
> librarian: /usr/share/help
> mate-file-manager-actions-doc: /usr/share/help
>
> /usr/share/help/C:
> gnucash-docs: /usr/share/help/C
> mate-file-manager-actions-doc: /usr/share/help/C
>
> /usr/share/icons/hicolor/symbolic:
>
> /usr/share/icons/hicolor/symbolic/apps:
>
> /usr/share/icons/hicolor/512x512/apps:
> endless-sky: /usr/share/icons/hicolor/512x512/apps
> hedgewars: /usr/share/icons/hicolor/512x512/apps
> kdiskmark: /usr/share/icons/hicolor/512x512/apps
> texworks: /usr/share/icons/hicolor/512x512/apps
>
> /usr/share/themes:
> libgtk+2: /usr/share/themes
> gtk-theme-qogir: /usr/share/themes
> gtk2-themes-aurora: /usr/share/themes
> gtk2-themes-murrine: /usr/share/themes
>
> /usr/share/gtk-doc/html:
> libjcat-devel: /usr/share/gtk-doc/html
> libldm1.0-devel: /usr/share/gtk-doc/html
> libunique3.0-devel: /usr/share/gtk-doc/html
> libxmlb-devel: /usr/share/gtk-doc/html
> tomoe-devel: /usr/share/gtk-doc/html
> gnome-latex-devel-doc: /usr/share/gtk-doc/html
> gtk-doc: /usr/share/gtk-doc/html
> libgwyddion-doc: /usr/share/gtk-doc/html
> libmessaging-menu-doc: /usr/share/gtk-doc/html
> power-profiles-daemon-docs: /usr/share/gtk-doc/html
Все, кроме gtk-doc, ошибки.
>
> /usr/lib64/qt5/mkspecs/modules:
> qt5-base-devel: /usr/lib64/qt5/mkspecs/modules
>
> /usr/share/gtk-doc:
> libjcat-devel: /usr/share/gtk-doc
> libunique3.0-devel: /usr/share/gtk-doc
> libxmlb-devel: /usr/share/gtk-doc
> tomoe-devel: /usr/share/gtk-doc
> gtk-doc: /usr/share/gtk-doc
> libgwyddion-doc: /usr/share/gtk-doc
> libmessaging-menu-doc: /usr/share/gtk-doc
> power-profiles-daemon-docs: /usr/share/gtk-doc
Все, кроме gtk-doc, ошибки.
>
> /usr/lib64/qt5/mkspecs:
> qt5-base-devel: /usr/lib64/qt5/mkspecs
>
> /usr/lib/cmake:
>
> /usr/lib64/cmake:
> cmake: /usr/lib64/cmake
> errut: /usr/lib64/cmake
> ispc: /usr/lib64/cmake
> libfastpfor-devel: /usr/lib64/cmake
> liblapack-devel: /usr/lib64/cmake
> librabbitmq-c-devel: /usr/lib64/cmake
> libsavitar-devel: /usr/lib64/cmake
> qt5-base-devel: /usr/lib64/cmake
> qt6-base-devel: /usr/lib64/cmake
Все, кроме cmake, ошибки.
> libleatherman-devel: /usr/lib64/cmake/leatherman/cmake
А этот что? пусть себе владеет этим каталогом, если кто0то там сможет
найти cmake файлы, но это уже другая история.
>
> /usr/share/metainfo:
> doomsday: /usr/share/metainfo
> endless-sky: /usr/share/metainfo
> fritzing: /usr/share/metainfo
> imhex: /usr/share/metainfo
> texworks: /usr/share/metainfo
> vlc-mini: /usr/share/metainfo
> nicotine-plus: /usr/share/metainfo
> shutter: /usr/share/metainfo
Не знаю кто тут должен владеть, может filesystem.
--
Alexey Shabalin
Подробная информация о списке рассылки Devel