diff --git a/.gear/rules b/.gear/rules index dea199e..8cbbc00 100644 --- a/.gear/rules +++ b/.gear/rules @@ -1,2 +1,2 @@ -tar: . name=kometa-xdg-@version@ base=kometa-xdg-@version@ +tar: . name=@name@-@version@ base=@name@-@version@ copy: COPYING diff --git a/kometa-xdg.spec b/kometa-xdg.spec deleted file mode 100644 index d08a45d..0000000 --- a/kometa-xdg.spec +++ /dev/null @@ -1,201 +0,0 @@ -Name: kometa-xdg -Summary: XDG desktop settings for Kometa distros -Summary(ru): Настройки рабочего окружения дистрибутивов Комета -License: GPL-3.0 -Group: Graphical desktop/Other -Version: 1.5 -Release: alt1.1 -Source0: kometa-xdg-%version.tar -Source1: COPYING -BuildArch: noarch -BuildRequires: rpm-macros-systemd - -%description -XDG desktop settings for Kometa distros -%description -l ru_RU.UTF-8 -Настройки рабочего окружения дистрибутивов Комета - -#-------------------------------------------------------------- - -%package core -Summary: Engine to set distribution-specific desktop settings -Summary(ru): Движок установки дистрибутиво-специфичных настроек рабочего стола -Group: Graphical desktop/Other -Requires: sed - -%description core -Engine to set distribution-specific desktop settings. -Sets environmental variables $XDG_CONFIG_DIRS and $XDG_DATA_DIRS, -adding /etc/xdg/kometa and /usr/share/kometa into them. -Can be used separately from Kometa. -%description -l ru_RU.UTF-8 core -Движок установки дистрибутиво-специфичных настроек рабочего стола. -Устонавливает переменные окружения $XDG_CONFIG_DIRS и $XDG_DATA_DIRS, -добавляя в них /etc/xdg/kometa и /usr/share/kometa. -Может быть использован вне кометы. - -%files core -%doc COPYING -%dir /etc/xdg/kometa -%dir /usr/share/kometa -%_bindir/kometa-xdg-env -%_user_env_gen_dir/10-kometa-xdg.sh -/etc/profile.d/10-kometa-xdg.sh - -#-------------------------------------------------------------- - -# alternatives between plasma5-classic, plasma5-foo etc. can be added later - -%package plasma5-classic -Summary: KDE 5 desktop settings for classic variant of Kometa -Summary(ru): Настройки KDE 5 для классического варианта Кометы -Group: Graphical desktop/KDE -Requires: %name-core = %EVR -Requires: kometa-icons-theme-classic - -%description plasma5-classic -KDE 5 desktop settings for classic variant of Kometa -%description -l ru_RU.UTF-8 plasma5-classic -Настройки KDE 5 для классического варианта Кометы - -%files plasma5-classic -%doc COPYING -/etc/xdg/kometa/dolphinrc -/etc/xdg/kometa/kcminputrc -/etc/xdg/kometa/kdeglobals -/etc/xdg/kometa/kxkbrc -%dir /usr/share/kometa/kxmlgui5 -%dir /usr/share/kometa/kxmlgui5/dolphin -/usr/share/kometa/kxmlgui5/dolphin/dolphinui.rc - -#-------------------------------------------------------------- - -%define regex auth[[:space:]]([[:space:]]).*pam_env.so user_envfile=.kometa_env readenv=0 user_readenv=1 - -%package pam-env -Summary: Hack PAM configs to make Qt5 applications ran by usermode use Kometa icons -Summary(ru): Хак конфигов PAM, чтобы запущенные через usermode приложения на Qt5 использовали иконки Кометы -Group: System/Base -# %%_qt5_plugindir/platformthemes/libqgtk3.so -Requires: libqt5-gui -Requires: pam -Requires(post): /bin/echo -Requires(post): grep -Requires(post): pam-config -Requires(preun): grep -Requires(preun): sed - -%description pam-env -Hack PAM configs to make Qt5 applications ran by usermode use Kometa icons. -%description -l ru_RU.UTF-8 pam-env -Некоторые приложения, например, acc (alterator-standalone), запускаются из-под -пользовательской сессии от root через usermode и при этом используют basealt -в качестве иконки. В KDE 5 под X11 приложение само после запуска устанавливает иконку -на панели задач. Темы иконок kometa* в качестве иконки basealt устанавливают логотип -Кометы вместо Базальта, чтобы не создавать ошибочное впечатление, что Комета — продукт -Базальта. Но из-под root Qt5 не узнает тему иконок и использует иконку basealt не из -темы Кометы. Этот пакет при установке подключает выставление переменной окружения -QT_QPA_PLATFORMTHEME=gtk3 для root, благодаря чему Qt5 начинает использовать -пользовательскую тему иконок под root. Удаление пакета отключает выставление переменной. - -%files pam-env -# copied to /root/.kometa_env by scriptlet -%_datadir/kometa-pam-env - -%post pam-env -# sisyphus_check does not allow to package files inside /root, -# that is why I have to make this hack. -# IMHO it's OK to package /root/* here as in rootfiles. -cp %_datadir/kometa-pam-env /root/.kometa_env - -# This scriptlet sees if pam_env.so <...> exists in PAM configuration and adds it to there if it does not. -# It does not add if if a sysadmin manually commented it out. -# /etc/control.d/facilities/ seemed to be too complex and not easy to use for this task, so inventing a bicycle. -TEXT='auth\t\toptional\tpam_env.so user_envfile=.kometa_env readenv=0 user_readenv=1' -# based on /etc/control.d/facilities/pam_access -CONFIG_COMMON=/etc/pam.d/system-auth-common -CONFIG_SYSTEM=/etc/pam.d/system-auth -if [ -f "$CONFIG_COMMON" ] -then - CONFIG="$CONFIG_COMMON" -else - CONFIG="$(readlink -e "$CONFIG_SYSTEM")" || CONFIG="$CONFIG_SYSTEM" -fi -if ! grep -qE "%regex" "$CONFIG" -then - echo "Adding loading ~/.kometa_env into PAM configs..." - cp "$CONFIG" "$CONFIG".rpmsave - # do not rely that shell-builtin 'echo' is capable of '-e' (not POSIX sh) - /bin/echo -e "$TEXT" >> "$CONFIG" -fi - -%preun pam-env -# Package removal, not upgrade -if [ "$1" -eq 0 ]; then - for file in /etc/pam.d/system-auth-common /etc/pam.d/system-auth - do - if grep -qE "^%regex" "$file"; then - echo "Removing loading ~/.kometa_env from PAM config ${file}..." - sed -i'.rpmsave' -E -e "/^%regex/d" "$file" - fi - done - unlink /root/.kometa_env -fi -#-------------------------------------------------------------- - -%prep -%setup -q -cp %SOURCE1 . - -%build -: - -%install - -mkdir -p %buildroot%_bindir -mkdir -p %buildroot/etc/profile.d -mkdir -p %buildroot/usr/lib/systemd/user-environment-generators -install -m0755 scripts/kometa-xdg-env %buildroot%_bindir/kometa-xdg-env -# for console -install -m0755 scripts/profile.sh %buildroot/etc/profile.d/10-kometa-xdg.sh -# for dbus services -install -m0755 scripts/systemd.sh %buildroot%_user_env_gen_dir/10-kometa-xdg.sh - -mkdir -p %buildroot/etc/xdg/kometa -cp -rv plasma5/XDG_CONFIG_DIRS/* %buildroot/etc/xdg/kometa -mkdir -p %buildroot/usr/share/kometa -cp -rv plasma5/XDG_DATA_DIRS/* %buildroot/usr/share/kometa - -mkdir -p %buildroot%_datadir -echo QT_QPA_PLATFORMTHEME=gtk3 > %buildroot/%_datadir/kometa-pam-env - -%check -cd scripts -./test.sh - -%changelog -* Wed Feb 16 2022 Mikhail Novosyolov 1.5-alt1.1 -- Commit 1.5-alt1 by tema@ - -* Tue Feb 15 2022 Artem Proskurnev 1.5-alt1 -- Add power settings -- Add Dolphin filer panel -- Add "Set as wallpaper" -- Set Chromium as the default browser - -* Fri Dec 24 2021 Mikhail Novosyolov 1.4-alt1 -- Add setting $XDG_DATA_DIRS, enable "Show Previews" button in Dolphin -- Tune description: note that kometa-xdg-core can be used just to set env outside of Kometa - -* Thu Dec 16 2021 Mikhail Novosyolov 1.3-alt1 -- Turn off NumLock by default in KDE 5 - -* Thu Dec 16 2021 Mikhail Novosyolov 1.2-alt1 -- Hack to make alterator use correct icons (new subpackage kometa-xdg-pam-env) -- Use macro for directory with systemd user environment generators (thanks to ldv@) - -* Tue Dec 14 2021 Mikhail Novosyolov 1.1-alt1 -- set default icon theme - -* Tue Dec 14 2021 Mikhail Novosyolov 1.0-alt1 -- Init diff --git a/mos-xdg.spec b/mos-xdg.spec new file mode 100644 index 0000000..ca52166 --- /dev/null +++ b/mos-xdg.spec @@ -0,0 +1,144 @@ +%define _unpackaged_files_terminate_build 1 + +Name: mos-xdg +Summary: XDG desktop settings for M OS distros +Summary(ru): Настройки рабочего окружения дистрибутивов М ОС +License: GPL-3.0 +Group: Graphical desktop/Other +Version: 2.0 +Release: alt1 +Source0: %name-%version.tar +Source1: COPYING +BuildArch: noarch +BuildRequires: rpm-macros-systemd + +%description +XDG desktop settings for M OS distros +%description -l ru_RU.UTF-8 +Настройки рабочего окружения дистрибутивов М ОС + +#-------------------------------------------------------------- + +%package core +Summary: Engine to set distribution-specific desktop settings +Summary(ru): Движок установки дистрибутиво-специфичных настроек рабочего стола +Group: Graphical desktop/Other +Requires: sed +# package was renamed +Obsoletes: kometa-xdg-core < 2.0 +# this package was dropped as a very complex trick; +# icons are replaced by a filetrigger more reliably +Obsoletes: kometa-xdg-pam-env < 2.0 + +%description core +Engine to set distribution-specific desktop settings. +Sets environmental variables $XDG_CONFIG_DIRS and $XDG_DATA_DIRS, +adding /etc/xdg/mos and /usr/share/mos into them. +Can be used separately from M OS. +%description -l ru_RU.UTF-8 core +Движок установки дистрибутиво-специфичных настроек рабочего стола. +Устонавливает переменные окружения $XDG_CONFIG_DIRS и $XDG_DATA_DIRS, +добавляя в них /etc/xdg/mos и /usr/share/mos. +Может быть использован вне М ОС. + +%files core +%doc COPYING +%dir /etc/xdg/mos +%dir /usr/share/mos +%_bindir/mos-xdg-env +%_user_env_gen_dir/10-mos-xdg.sh +/etc/profile.d/10-mos-xdg.sh + +#-------------------------------------------------------------- + +# alternatives between plasma5-classic, plasma5-foo etc. can be added later + +%package plasma5-classic +Summary: KDE 5 desktop settings for classic variant of M OS +Summary(ru): Настройки KDE 5 для классического варианта М ОС +Group: Graphical desktop/KDE +Requires: %name-core = %EVR +Requires: mos-icons-theme-classic +# package was renamed +Obsoletes: kometa-xdg-plasma5-classic < 2.0 + +%description plasma5-classic +KDE 5 desktop settings for classic variant of M OS +%description -l ru_RU.UTF-8 plasma5-classic +Настройки KDE 5 для классического варианта М ОС + +%files plasma5-classic +%doc COPYING +/etc/xdg/mos/dolphinrc +/etc/xdg/mos/kcminputrc +/etc/xdg/mos/kdeglobals +/etc/xdg/mos/kxkbrc +/etc/xdg/mos/powermanagementprofilesrc +%dir /usr/share/mos/kxmlgui5 +%dir /usr/share/mos/kxmlgui5/dolphin +%dir /usr/share/mos/kservices5 +%dir /usr/share/mos/kservices5/ServiceMenus +/usr/share/mos/kxmlgui5/dolphin/dolphinui.rc +/usr/share/mos/kservices5/ServiceMenus/setAsWallpaper.desktop + +#-------------------------------------------------------------- + +%prep +%setup -q +cp %SOURCE1 . + +%build +: + +%install + +mkdir -p %buildroot%_bindir +mkdir -p %buildroot/etc/profile.d +mkdir -p %buildroot%_user_env_gen_dir +install -m0755 scripts/mos-xdg-env %buildroot%_bindir/mos-xdg-env +# for console +install -m0755 scripts/profile.sh %buildroot/etc/profile.d/10-mos-xdg.sh +# for dbus services +install -m0755 scripts/systemd.sh %buildroot%_user_env_gen_dir/10-mos-xdg.sh + +mkdir -p %buildroot/etc/xdg/mos +cp -rv plasma5/XDG_CONFIG_DIRS/* %buildroot/etc/xdg/mos +mkdir -p %buildroot/usr/share/mos +cp -rv plasma5/XDG_DATA_DIRS/* %buildroot/usr/share/mos + +%check +cd scripts +./test.sh + +%changelog +* Tue Apr 26 2022 Mikhail Novosyolov 2.0-alt1 +- Rename from Kometa to M OS (Moscow OS) +- Drop pam-env hackery due to being useless (icons are reliably replaced by a filetrigger) +- Package /etc/xdg/mos/powermanagementprofilesrc +- Package /usr/share/mos/kservices5/ServiceMenus/setAsWallpaper.desktop + +* Wed Feb 16 2022 Mikhail Novosyolov 1.5-alt1.1 +- Commit 1.5-alt1 by tema@ + +* Tue Feb 15 2022 Artem Proskurnev 1.5-alt1 +- Add power settings +- Add Dolphin filer panel +- Add "Set as wallpaper" +- Set Chromium as the default browser + +* Fri Dec 24 2021 Mikhail Novosyolov 1.4-alt1 +- Add setting $XDG_DATA_DIRS, enable "Show Previews" button in Dolphin +- Tune description: note that mos-xdg-core can be used just to set env outside of Kometa + +* Thu Dec 16 2021 Mikhail Novosyolov 1.3-alt1 +- Turn off NumLock by default in KDE 5 + +* Thu Dec 16 2021 Mikhail Novosyolov 1.2-alt1 +- Hack to make alterator use correct icons (new subpackage mos-xdg-pam-env) +- Use macro for directory with systemd user environment generators (thanks to ldv@) + +* Tue Dec 14 2021 Mikhail Novosyolov 1.1-alt1 +- set default icon theme + +* Tue Dec 14 2021 Mikhail Novosyolov 1.0-alt1 +- Init diff --git a/plasma5/XDG_CONFIG_DIRS/kdeglobals b/plasma5/XDG_CONFIG_DIRS/kdeglobals index 847dd67..97fe2b4 100644 --- a/plasma5/XDG_CONFIG_DIRS/kdeglobals +++ b/plasma5/XDG_CONFIG_DIRS/kdeglobals @@ -2,7 +2,7 @@ BrowserApplication=chromium.desktop [Icons] -Theme=kometa-classic-light +Theme=mos-classic-light [KDE] SingleClick=false diff --git a/scripts/kometa-xdg-env b/scripts/mos-xdg-env similarity index 81% rename from scripts/kometa-xdg-env rename to scripts/mos-xdg-env index 76de56b..87810ed 100755 --- a/scripts/kometa-xdg-env +++ b/scripts/mos-xdg-env @@ -1,8 +1,8 @@ #!/bin/sh -KOMETA_XDG_TESTING="${KOMETA_XDG_TESTING:-0}" -KOMETA_XDG_TYPE="${KOMETA_XDG_TYPE:-}" -KOMETA_XDG_CONFIG_DIR=/etc/xdg/kometa -KOMETA_XDG_DATA_DIR=/usr/share/kometa +MOS_XDG_TESTING="${MOS_XDG_TESTING:-0}" +MOS_XDG_TYPE="${MOS_XDG_TYPE:-}" +MOS_XDG_CONFIG_DIR=/etc/xdg/mos +MOS_XDG_DATA_DIR=/usr/share/mos XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS:-}" _check_runability(){ @@ -10,7 +10,7 @@ _check_runability(){ systemd ) : ;; profile ) : ;; * ) - echo 'Set $KOMETA_XDG_TYPE to systemd or profile!' >&2 + echo 'Set $MOS_XDG_TYPE to systemd or profile!' >&2 return 1 ;; esac @@ -21,7 +21,7 @@ _check_runability(){ # and why does he do such a strange thing?! # Example of what we have to do: # convert XDG_CONFIG_DIRS=/home/user/.config/kdedefaults:/etc/kf5/xdg:/etc/xdg -# into XDG_CONFIG_DIRS=/home/user/.config/kdedefaults:/etc/xdg/kometa:/etc/kf5/xdg:/etc/xdg +# into XDG_CONFIG_DIRS=/home/user/.config/kdedefaults:/etc/xdg/mos:/etc/kf5/xdg:/etc/xdg # I do not want to write very complex code to deal with all possible cases. # Let's assume that current value: # * is not a mess and is a valid value @@ -35,7 +35,7 @@ _mk_xdg_dirs(){ root1="$2" # /etc/kf5/xdg, /usr/share/kf5 root2="$3" - # /etc/xdg/kometa, /usr/share/kometa + # /etc/xdg/mos, /usr/share/mos add="$4" case "$tmp" in "" ) @@ -58,7 +58,7 @@ _mk_xdg_dirs(){ ;; esac case "$tmp" in - *:"$root1"/kometa:* | "$root1"/kometa:* ) + *:"$root1"/mos:* | "$root1"/mos:* ) : ;; *:"$root2":* ) @@ -81,9 +81,9 @@ _main(){ _check_runability "$1" # $XDG_DATA_DIRS may be added local result_xdg_config_dirs - result_xdg_config_dirs="$(_mk_xdg_dirs "$XDG_CONFIG_DIRS" /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" + result_xdg_config_dirs="$(_mk_xdg_dirs "$XDG_CONFIG_DIRS" /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" local result_xdg_data_dirs - result_xdg_data_dirs="$(_mk_xdg_dirs "$XDG_DATA_DIRS" /usr/share /usr/share/kf5 "$KOMETA_XDG_DATA_DIR")" + result_xdg_data_dirs="$(_mk_xdg_dirs "$XDG_DATA_DIRS" /usr/share /usr/share/kf5 "$MOS_XDG_DATA_DIR")" case "$1" in systemd ) echo XDG_CONFIG_DIRS="$result_xdg_config_dirs" @@ -96,6 +96,6 @@ _main(){ esac } -if [ "$KOMETA_XDG_TESTING" = 0 ]; then - _main "$KOMETA_XDG_TYPE" +if [ "$MOS_XDG_TESTING" = 0 ]; then + _main "$MOS_XDG_TYPE" fi diff --git a/scripts/profile.sh b/scripts/profile.sh index 9dec685..ad328f6 100755 --- a/scripts/profile.sh +++ b/scripts/profile.sh @@ -1,3 +1,3 @@ #!/bin/sh -KOMETA_XDG_TYPE=profile -. kometa-xdg-env +MOS_XDG_TYPE=profile +. mos-xdg-env diff --git a/scripts/systemd.sh b/scripts/systemd.sh index 6b0c6f9..394fbef 100755 --- a/scripts/systemd.sh +++ b/scripts/systemd.sh @@ -1,3 +1,3 @@ #!/bin/sh -KOMETA_XDG_TYPE=systemd -. kometa-xdg-env +MOS_XDG_TYPE=systemd +. mos-xdg-env diff --git a/scripts/test.sh b/scripts/test.sh index 1c8f223..65218b8 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -2,20 +2,20 @@ set -x set -e trap 'if [ $? != 0 ]; then echo "ERROR!!!"; fi' EXIT -KOMETA_XDG_TESTING=1 -KOMETA_XDG_CONFIG_DIR=/etc/xdg/kometa -KOMETA_XDG_DATA_DIR=/usr/share/kometa +MOS_XDG_TESTING=1 +MOS_XDG_CONFIG_DIR=/etc/xdg/mos +MOS_XDG_DATA_DIR=/usr/share/mos export PATH="$PWD:$PATH" -. ./kometa-xdg-env +. ./mos-xdg-env # $XDG_CONFIG_DIRS -[ "$(_mk_xdg_dirs /etc/xdg /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" = $KOMETA_XDG_CONFIG_DIR:/etc/xdg ] -[ "$(_mk_xdg_dirs /etc/foo /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" = /etc/foo:$KOMETA_XDG_CONFIG_DIR:/etc/xdg ] -[ "$(_mk_xdg_dirs /etc/foo:/etc/xdg /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" = /etc/foo:$KOMETA_XDG_CONFIG_DIR:/etc/xdg ] -[ "$(_mk_xdg_dirs /etc/foo:$KOMETA_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" = /etc/foo:$KOMETA_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg ] -[ "$(_mk_xdg_dirs /home/user/.config/kdedefaults:/etc/kf5/xdg:/etc/xdg /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" = /home/user/.config/kdedefaults:$KOMETA_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg ] +[ "$(_mk_xdg_dirs /etc/xdg /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" = $MOS_XDG_CONFIG_DIR:/etc/xdg ] +[ "$(_mk_xdg_dirs /etc/foo /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" = /etc/foo:$MOS_XDG_CONFIG_DIR:/etc/xdg ] +[ "$(_mk_xdg_dirs /etc/foo:/etc/xdg /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" = /etc/foo:$MOS_XDG_CONFIG_DIR:/etc/xdg ] +[ "$(_mk_xdg_dirs /etc/foo:$MOS_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" = /etc/foo:$MOS_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg ] +[ "$(_mk_xdg_dirs /home/user/.config/kdedefaults:/etc/kf5/xdg:/etc/xdg /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" = /home/user/.config/kdedefaults:$MOS_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg ] # https://bugzilla.altlinux.org/show_bug.cgi?id=41566 -[ "$(_mk_xdg_dirs "" /etc/xdg /etc/kf5/xdg "$KOMETA_XDG_CONFIG_DIR")" = $KOMETA_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg ] +[ "$(_mk_xdg_dirs "" /etc/xdg /etc/kf5/xdg "$MOS_XDG_CONFIG_DIR")" = $MOS_XDG_CONFIG_DIR:/etc/kf5/xdg:/etc/xdg ] # $XDG_DATA_DIRS -[ "$(_mk_xdg_dirs /usr/share /usr/share /usr/share/kf5 "$KOMETA_XDG_DATA_DIR")" = $KOMETA_XDG_DATA_DIR:/usr/share ] +[ "$(_mk_xdg_dirs /usr/share /usr/share /usr/share/kf5 "$MOS_XDG_DATA_DIR")" = $MOS_XDG_DATA_DIR:/usr/share ]