Commit bafab0c0 authored by Vitaly Lipatov's avatar Vitaly Lipatov

commit packed 3.64.39

parent 8db9d200
...@@ -34,7 +34,7 @@ SHAREDIR="$PROGDIR" ...@@ -34,7 +34,7 @@ SHAREDIR="$PROGDIR"
# will replaced with /etc/eepm during install # will replaced with /etc/eepm during install
CONFIGDIR="$PROGDIR/../etc" CONFIGDIR="$PROGDIR/../etc"
export EPMVERSION="3.64.38" export EPMVERSION="3.64.39"
# package, single (file), pipe, git # package, single (file), pipe, git
EPMMODE="package" EPMMODE="package"
...@@ -496,7 +496,7 @@ set_sudo() ...@@ -496,7 +496,7 @@ set_sudo()
# start error section # start error section
SUDO_TESTED="1" SUDO_TESTED="1"
if is_command doas && a='' doas -C /etc/doas.conf > /dev/null 2>&1 ; then if is_command doas && ! is_command sudo > /dev/null 2>&1 ; then
SUDO="doas" SUDO="doas"
SUDO_TESTED="0" SUDO_TESTED="0"
return "$SUDO_TESTED" return "$SUDO_TESTED"
...@@ -771,6 +771,19 @@ disabled_eget() ...@@ -771,6 +771,19 @@ disabled_eget()
$EGET "$@" $EGET "$@"
} }
get_json_value()
{
local field="$1"
echo "$field" | grep -q -E "^\[" || field='["'$field'"]'
epm tool json -b | grep -m1 -F "$field" | sed -e 's|.*[[:space:]]||' | sed -e 's|"\(.*\)"|\1|g'
}
get_json_values()
{
local field="$1"
echo "$field" | grep -q -E "^\[" || field="\[$(echo "$field" | sed 's/[^ ]*/"&"/g' | sed 's/ /,/g'),[0-9]*\]"
epm tool json -b | grep "^$field" | sed -e 's|.*[[:space:]]||' | sed -e 's|"\(.*\)"|\1|g'
}
__epm_assure_7zip() __epm_assure_7zip()
{ {
...@@ -1675,6 +1688,9 @@ case $PMTYPE in ...@@ -1675,6 +1688,9 @@ case $PMTYPE in
# Only for alone packages: # Only for alone packages:
#sudocmd repo-add $pkg_filenames #sudocmd repo-add $pkg_filenames
;; ;;
stplr)
sudocmd stplr repo add "$repo"
;;
pisi) pisi)
sudocmd pisi add-repo "$repo" sudocmd pisi add-repo "$repo"
;; ;;
...@@ -1694,7 +1710,7 @@ case $PMTYPE in ...@@ -1694,7 +1710,7 @@ case $PMTYPE in
info "You need manually add repo to /etc/slackpkg/mirrors" info "You need manually add repo to /etc/slackpkg/mirrors"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_addrepo()'
;; ;;
esac esac
...@@ -1812,7 +1828,7 @@ case $PMTYPE in ...@@ -1812,7 +1828,7 @@ case $PMTYPE in
sudocmd apk audit sudocmd apk audit
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_audit()'
;; ;;
esac esac
...@@ -1954,7 +1970,7 @@ case $PMTYPE in ...@@ -1954,7 +1970,7 @@ case $PMTYPE in
fi fi
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_autoorphans()'
;; ;;
esac esac
...@@ -2307,7 +2323,7 @@ case $PMTYPE in ...@@ -2307,7 +2323,7 @@ case $PMTYPE in
fi fi
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_autoremove()'
;; ;;
esac esac
...@@ -2335,7 +2351,7 @@ __epm_changelog_files() ...@@ -2335,7 +2351,7 @@ __epm_changelog_files()
docmd_foreach "rpm -q -p --changelog" $@ docmd_foreach "rpm -q -p --changelog" $@
;; ;;
*) *)
fatal 'Have no suitable command for $1' fatal 'Have no suitable command for $1 in epm_changelog()'
;; ;;
esac esac
} }
...@@ -2345,7 +2361,7 @@ __epm_changelog_local_names() ...@@ -2345,7 +2361,7 @@ __epm_changelog_local_names()
[ -z "$*" ] && return [ -z "$*" ] && return
case $PMTYPE in case $PMTYPE in
apt-rpm|yum-rpm|dnf-rpm|dnf5-rpm|urpm-rpm|zypper-rpm) *-rpm)
docmd_foreach "rpm -q --changelog" $@ docmd_foreach "rpm -q --changelog" $@
;; ;;
apt-dpkg|aptitude-dpkg) apt-dpkg|aptitude-dpkg)
...@@ -2359,7 +2375,7 @@ __epm_changelog_local_names() ...@@ -2359,7 +2375,7 @@ __epm_changelog_local_names()
docmd pacman -Qc $1 docmd pacman -Qc $1
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_changelog()'
;; ;;
esac esac
} }
...@@ -2390,7 +2406,7 @@ __epm_changelog_unlocal_names() ...@@ -2390,7 +2406,7 @@ __epm_changelog_unlocal_names()
docmd equery changes -f "$1" docmd equery changes -f "$1"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE. Try install the package firstly.' fatal 'Have no suitable command for $PMTYPE in epm_changelog(). Try install the package firstly.'
;; ;;
esac esac
...@@ -2425,9 +2441,17 @@ __epm_check_container_issue_43533() ...@@ -2425,9 +2441,17 @@ __epm_check_container_issue_43533()
echo '%_netsharedpath /sys:/proc' | sudocmd tee /etc/rpm/macros.d/container echo '%_netsharedpath /sys:/proc' | sudocmd tee /etc/rpm/macros.d/container
} }
__epm_rpm_rebuilddb()
{
sudocmd rm -vf /var/lib/rpm/__db*
sudocmd rpm $(subst_option verbose -vv) --rebuilddb
}
epm_check() epm_check()
{ {
is_root || fatal "Run me under root user."
update_repo_if_needed update_repo_if_needed
local APTOPTIONS="$(subst_option non_interactive -y)" local APTOPTIONS="$(subst_option non_interactive -y)"
local DNFOPTIONS="$(subst_option non_interactive -y) $(subst_option verbose --verbose) " local DNFOPTIONS="$(subst_option non_interactive -y) $(subst_option verbose --verbose) "
...@@ -2441,8 +2465,9 @@ case $PMTYPE in ...@@ -2441,8 +2465,9 @@ case $PMTYPE in
apt-rpm) apt-rpm)
#sudocmd apt-get check || exit #sudocmd apt-get check || exit
#sudocmd apt-get update || exit #sudocmd apt-get update || exit
__epm_rpm_rebuilddb
sudocmd apt-get -f $APTOPTIONS install || return sudocmd apt-get -f $APTOPTIONS install || return
info "You can use epm dedup also" info "You can also use epm dedup"
;; ;;
apt-dpkg) apt-dpkg)
#sudocmd apt-get check || exit #sudocmd apt-get check || exit
...@@ -2457,6 +2482,8 @@ case $PMTYPE in ...@@ -2457,6 +2482,8 @@ case $PMTYPE in
#sudocmd apt-get autoremove #sudocmd apt-get autoremove
;; ;;
yum-rpm) yum-rpm)
__epm_rpm_rebuilddb
docmd yum check $DNFOPTIONS docmd yum check $DNFOPTIONS
docmd package-cleanup --problems docmd package-cleanup --problems
...@@ -2466,15 +2493,19 @@ case $PMTYPE in ...@@ -2466,15 +2493,19 @@ case $PMTYPE in
docmd rpm -Va --nofiles --nodigest docmd rpm -Va --nofiles --nodigest
;; ;;
dnf-rpm|dnf5-rpm) dnf-rpm|dnf5-rpm)
__epm_rpm_rebuilddb
sudocmd dnf check $DNFOPTIONS sudocmd dnf check $DNFOPTIONS
;; ;;
emerge) emerge)
sudocmd revdep-rebuild sudocmd revdep-rebuild
;; ;;
#urpm-rpm) #urpm-rpm)
# __epm_rpm_rebuilddb
# sudocmd urpme --auto-orphans # sudocmd urpme --auto-orphans
# ;; # ;;
zypper-rpm) zypper-rpm)
__epm_rpm_rebuilddb
sudocmd zypper $(subst_option non_interactive --non-interactive) verify sudocmd zypper $(subst_option non_interactive --non-interactive) verify
;; ;;
conary) conary)
...@@ -2483,6 +2514,9 @@ case $PMTYPE in ...@@ -2483,6 +2514,9 @@ case $PMTYPE in
pkgng) pkgng)
sudocmd pkg check -d -a sudocmd pkg check -d -a
;; ;;
stplr)
sudocmd stplr fix
;;
homebrew) homebrew)
docmd brew doctor docmd brew doctor
;; ;;
...@@ -2492,8 +2526,11 @@ case $PMTYPE in ...@@ -2492,8 +2526,11 @@ case $PMTYPE in
apk) apk)
sudocmd apk fix sudocmd apk fix
;; ;;
*-rpm)
__epm_rpm_rebuilddb
;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_check()'
;; ;;
esac esac
...@@ -2592,7 +2629,7 @@ case $PMTYPE in ...@@ -2592,7 +2629,7 @@ case $PMTYPE in
sudocmd pisi check $@ sudocmd pisi check $@
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_checkpkg()'
;; ;;
esac esac
...@@ -2679,7 +2716,7 @@ case $BASEDISTRNAME in ...@@ -2679,7 +2716,7 @@ case $BASEDISTRNAME in
epm_checksystem_$DISTRNAME epm_checksystem_$DISTRNAME
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_checksystem()'
;; ;;
esac esac
...@@ -2929,7 +2966,7 @@ case $PMTYPE in ...@@ -2929,7 +2966,7 @@ case $PMTYPE in
sudocmd pkg clean sudocmd pkg clean
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_clean()'
;; ;;
esac esac
info "Note: Also you can try (with CAUTION) '# epm autoremove' and '# epm autoorphans' commands to remove obsoleted and unused packages." info "Note: Also you can try (with CAUTION) '# epm autoremove' and '# epm autoorphans' commands to remove obsoleted and unused packages."
...@@ -2952,7 +2989,7 @@ epm_conflicts_files() ...@@ -2952,7 +2989,7 @@ epm_conflicts_files()
# a= docmd dpkg -I $pkg_files | grep "^ *Depends:" | sed "s|^ *Depends:||g" # a= docmd dpkg -I $pkg_files | grep "^ *Depends:" | sed "s|^ *Depends:||g"
# ;; # ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_conflicts()'
;; ;;
esac esac
} }
...@@ -3007,7 +3044,7 @@ case $PMTYPE in ...@@ -3007,7 +3044,7 @@ case $PMTYPE in
# CMD="equery depgraph" # CMD="equery depgraph"
# ;; # ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_conflicts()'
;; ;;
esac esac
...@@ -3208,7 +3245,7 @@ case "$BASEDISTRNAME" in ...@@ -3208,7 +3245,7 @@ case "$BASEDISTRNAME" in
fi fi
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_dedup()'
;; ;;
esac esac
...@@ -3544,7 +3581,7 @@ epm_downgrade() ...@@ -3544,7 +3581,7 @@ epm_downgrade()
sudocmd urpm-reposync -v sudocmd urpm-reposync -v
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_downgrade()'
;; ;;
esac esac
} }
...@@ -3802,8 +3839,10 @@ epm_download() ...@@ -3802,8 +3839,10 @@ epm_download()
case "$BASEDISTRNAME" in case "$BASEDISTRNAME" in
"alt") "alt")
__epm_download_alt $* if [ "$PMTYPE" = "apt-rpm" ] ; then
return __epm_download_alt $*
return
fi
;; ;;
esac esac
...@@ -3844,6 +3883,9 @@ epm_download() ...@@ -3844,6 +3883,9 @@ epm_download()
eopkg) eopkg)
docmd eopkg fetch $* docmd eopkg fetch $*
;; ;;
stplr)
sudocmd stplr build --package "$*"
;;
pisi) pisi)
docmd pisi fetch $* docmd pisi fetch $*
;; ;;
...@@ -3851,7 +3893,7 @@ epm_download() ...@@ -3851,7 +3893,7 @@ epm_download()
docmd brew fetch $* docmd brew fetch $*
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_download()'
;; ;;
esac esac
} }
...@@ -4316,6 +4358,15 @@ confirm_action() ...@@ -4316,6 +4358,15 @@ confirm_action()
fi fi
if is_command stplr ; then
confirm_action "Upgrade installed stplr packages? [Y/n]" || full_upgrade_no_stplr=1
if [ -z "$full_upgrade_no_stplr" ] ; then
[ -n "$quiet" ] || echo
docmd stplr upgrade
fi
fi
confirm_action "Do epm clean? [Y/n]" || full_upgrade_no_clean=1 confirm_action "Do epm clean? [Y/n]" || full_upgrade_no_clean=1
if [ -z "$full_upgrade_no_clean" ] ; then if [ -z "$full_upgrade_no_clean" ] ; then
[ -n "$quiet" ] || echo [ -n "$quiet" ] || echo
...@@ -4326,7 +4377,7 @@ confirm_action() ...@@ -4326,7 +4377,7 @@ confirm_action()
# File bin/epm-history: # File bin/epm-history:
EHOG='\(apt-get\|rpm\)' EHOG='\(apt-get\|rpm\)'
JCHAN='-t apt-get -t rpm' JCHAN='-t apt-get -t rpm -t apm'
__alt_epm_history_journal() __alt_epm_history_journal()
{ {
...@@ -4419,7 +4470,7 @@ Examples: ...@@ -4419,7 +4470,7 @@ Examples:
epm_history() epm_history()
{ {
if [ $PMTYPE = "apt-rpm" ] ; then if [ $PMTYPE = "apt-rpm" ] || [ $PMTYPE = "apm-rpm" ] ; then
case "$1" in case "$1" in
"-h"|"--help"|"help") # HELPCMD: help "-h"|"--help"|"help") # HELPCMD: help
epm_history_help epm_history_help
...@@ -4479,7 +4530,7 @@ case $PMTYPE in ...@@ -4479,7 +4530,7 @@ case $PMTYPE in
docmd cat /var/log/portage docmd cat /var/log/portage
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_history()'
;; ;;
esac esac
...@@ -4525,6 +4576,12 @@ case $PMTYPE in ...@@ -4525,6 +4576,12 @@ case $PMTYPE in
is_installed $pkg_names && docmd dpkg -p $pkg_names && return is_installed $pkg_names && docmd dpkg -p $pkg_names && return
docmd apt-cache show $pkg_names docmd apt-cache show $pkg_names
;; ;;
apm-rpm)
if [ -n "$direct" ] ; then
__epm_info_rpm_low && return
fi
docmd apm system info $full $pkg_names
;;
aptitude-dpkg) aptitude-dpkg)
if [ -n "$pkg_files" ] ; then if [ -n "$pkg_files" ] ; then
docmd dpkg -I $pkg_files docmd dpkg -I $pkg_files
...@@ -4609,6 +4666,9 @@ case $PMTYPE in ...@@ -4609,6 +4666,9 @@ case $PMTYPE in
eopkg) eopkg)
docmd eopkg info $pkg_files $pkg_names docmd eopkg info $pkg_files $pkg_names
;; ;;
stplr)
docmd stplr info $pkg_names
;;
pisi) pisi)
docmd pisi info $pkg_files $pkg_names docmd pisi info $pkg_files $pkg_names
;; ;;
...@@ -4622,7 +4682,7 @@ case $PMTYPE in ...@@ -4622,7 +4682,7 @@ case $PMTYPE in
docmd pkg show $pkg_names docmd pkg show $pkg_names
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_info()'
;; ;;
esac esac
} }
...@@ -4683,22 +4743,30 @@ __separate_sudocmd() ...@@ -4683,22 +4743,30 @@ __separate_sudocmd()
return 0 return 0
} }
VALID_BACKENDS="apt-rpm apt-dpkg apm-rpm stplr aptitude-dpkg deepsolver-rpm urpm-rpm packagekit pkgsrc pkgng redox-pkg emerge pacman aura yum-rpm dnf-rpm snappy zypper-rpm mpkg eopkg conary npackd slackpkg homebrew opkg nix apk tce guix termux-pkg aptcyg xbps appget winget"
__get_tpmtype() {
local arg="$1"
local tpmtype="$(echo "$arg" | cut -d: -f1)"
# need first three chars
echo "$arg" | grep -q "^[a-z][a-z][a-z-]*:" || return
echo "$VALID_BACKENDS" | tr ' ' '\n' | grep -w "^$tpmtype"
}
process_package_arguments() { process_package_arguments() {
local pmtype local pmtype
local name local name
local arg local arg
local package_groups local package_groups
declare -A package_groups declare -A package_groups
# ONLY supported backend in short form?
VALID_BACKENDS="apt-rpm apt-dpkg apm stplr aptitude-dpkg deepsolver-rpm urpm-rpm packagekit pkgsrc pkgng redox-pkg emerge pacman aura yum-rpm dnf-rpm snappy zypper-rpm mpkg eopkg conary npackd slackpkg homebrew opkg nix apk tce guix termux-pkg aptcyg xbps appget winget"
for arg in "$@"; do for arg in "$@"; do
pmtype=$PMTYPE pmtype=$PMTYPE
name="$arg" name="$arg"
tpmtype=$(echo "$arg" | cut -d: -f1)
case "$arg" in case "$arg" in
*:*) *:*)
# FIXME local tpmtype="$(__get_tpmtype "$arg")"
if echo "$arg" | grep -q "^[a-z][a-z][a-z]*:" && echo "$VALID_BACKENDS" | grep -qw "$tpmtype"; then if [ -n "$tpmtype" ] ; then
pmtype=$tpmtype pmtype=$tpmtype
# copied from distr_info # copied from distr_info
if [ "$pmtype" = "dnf-rpm" ] && a= dnf --version | grep -qi "dnf5" ; then if [ "$pmtype" = "dnf-rpm" ] && a= dnf --version | grep -qi "dnf5" ; then
...@@ -4756,6 +4824,9 @@ epm_install_names() ...@@ -4756,6 +4824,9 @@ epm_install_names()
echo "$*" | grep -q "^kernel-" && VIRTAPTOPTIONS='' echo "$*" | grep -q "^kernel-" && VIRTAPTOPTIONS=''
sudocmd apt-get $VIRTAPTOPTIONS $APTOPTIONS $noremove install $@ && save_installed_packages $@ sudocmd apt-get $VIRTAPTOPTIONS $APTOPTIONS $noremove install $@ && save_installed_packages $@
return ;; return ;;
apm-rpm)
sudocmd apm system install $@
return ;;
aptitude-dpkg) aptitude-dpkg)
sudocmd aptitude install $@ sudocmd aptitude install $@
return ;; return ;;
...@@ -4804,6 +4875,9 @@ epm_install_names() ...@@ -4804,6 +4875,9 @@ epm_install_names()
eopkg) eopkg)
sudocmd eopkg $(subst_option nodeps --ignore-dependency) install $@ sudocmd eopkg $(subst_option nodeps --ignore-dependency) install $@
return ;; return ;;
stplr)
sudocmd stplr install $@
return ;;
pisi) pisi)
sudocmd pisi $(subst_option nodeps --ignore-dependency) install $@ sudocmd pisi $(subst_option nodeps --ignore-dependency) install $@
return ;; return ;;
...@@ -4873,6 +4947,9 @@ epm_ni_install_names() ...@@ -4873,6 +4947,9 @@ epm_ni_install_names()
apt-dpkg) apt-dpkg)
sudocmd env ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive apt-get -y $noremove --force-yes -o APT::Install::VirtualVersion=true -o APT::Install::Virtual=true -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" $APTOPTIONS install $@ sudocmd env ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive apt-get -y $noremove --force-yes -o APT::Install::VirtualVersion=true -o APT::Install::Virtual=true -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" $APTOPTIONS install $@
return ;; return ;;
apm-rpm)
sudocmd apm system install $@
return ;;
aptitude-dpkg) aptitude-dpkg)
sudocmd env ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive aptitude -y install $@ sudocmd env ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive aptitude -y install $@
return ;; return ;;
...@@ -4923,6 +5000,9 @@ epm_ni_install_names() ...@@ -4923,6 +5000,9 @@ epm_ni_install_names()
pisi) pisi)
sudocmd pisi --yes-all install $@ sudocmd pisi --yes-all install $@
return ;; return ;;
stplr)
sudocmd stplr install -y $@
return ;;
nix) nix)
sudocmd nix-env --install $@ sudocmd nix-env --install $@
return ;; return ;;
...@@ -5100,11 +5180,11 @@ epm_install_files() ...@@ -5100,11 +5180,11 @@ epm_install_files()
epm_install() epm_install()
{ {
if [ "$BASEDISTRNAME" = "alt" ] ; then if [ "$BASEDISTRNAME" = "alt" ] ; then
if tasknumber "$pkg_names" >/dev/null ; then if tasknumberprefix $pkg_names; then
if [ -n "$interactive" ] ; then if [ -n "$interactive" ] ; then
confirm_info "You are about to install $pkg_names task(s) from https://git.altlinux.org." confirm_info "You are about to install $pkg_names task(s) from https://git.altlinux.org."
fi fi
epm_install_alt_tasks "$pkg_names" epm_install_alt_tasks $pkg_names
return return
fi fi
if echo "$pkg_urls" | grep -q -E "https://packages.altlinux.org/ru/tasks/[0-9]+/*$" || \ if echo "$pkg_urls" | grep -q -E "https://packages.altlinux.org/ru/tasks/[0-9]+/*$" || \
...@@ -5439,11 +5519,53 @@ apt_repo_after() ...@@ -5439,11 +5519,53 @@ apt_repo_after()
$SUDO rm /etc/apt/apt.conf.d/eepm-apt-noninteractive.conf 2>/dev/null $SUDO rm /etc/apt/apt.conf.d/eepm-apt-noninteractive.conf 2>/dev/null
} }
prepare_task_packages()
{
# Sets global vars:
# installlist — final list of packages to install
# unique_tasks — unique task names from args
#
# Local vars:
# seen_tasks, task_packages, task, pkg
installlist=""
unique_tasks=""
local seen_tasks=""
local task_packages=""
for arg in "$@"; do
# Parse argument into task and package
case "$arg" in
*:*)
local task=$(printf "%s" "$arg" | sed 's/:.*//')
local pkg=$(printf "%s" "$arg" | sed 's/.*://')
;;
*)
local task="$arg"
local pkg=""
;;
esac
# Fetch task packages once per unique task
if ! echo " $seen_tasks " | grep -q " $task "; then
unique_tasks="$unique_tasks $task"
task_packages=$(get_task_packages "$task")
seen_tasks="$seen_tasks $task"
fi
# Add specific package or all task packages to install list
if [ -n "$pkg" ]; then
installlist="$installlist $pkg"
else
installlist="$installlist $task_packages"
fi
done
}
epm_install_alt_tasks() epm_install_alt_tasks()
{ {
local installlist="$(get_task_packages "$@")" prepare_task_packages "$@"
[ -n "$verbose" ] && info "Packages from task(s): $installlist" [ -n "$verbose" ] && info "Packages from task(s): $installlist"
...@@ -5469,11 +5591,11 @@ epm_install_alt_tasks() ...@@ -5469,11 +5591,11 @@ epm_install_alt_tasks()
local res local res
try_change_alt_repo try_change_alt_repo
epm_addrepo "$@" epm_addrepo $unique_tasks
__epm_update __epm_update
(pkg_names="$installlist" epm_install) (pkg_names="$installlist" epm_install)
res=$? res=$?
epm_removerepo "$@" epm_removerepo $unique_tasks
end_change_alt_repo end_change_alt_repo
return $res return $res
} }
...@@ -5729,6 +5851,9 @@ epm_print_install_names_command() ...@@ -5729,6 +5851,9 @@ epm_print_install_names_command()
# this command not for complex use. ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive # this command not for complex use. ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive
echo "apt-get -y --force-yes -o APT::Install::VirtualVersion=true -o APT::Install::Virtual=true $APTOPTIONS install $*" echo "apt-get -y --force-yes -o APT::Install::VirtualVersion=true -o APT::Install::Virtual=true $APTOPTIONS install $*"
return ;; return ;;
apm-rpm)
echo "apm system install $*"
return ;;
aptitude-dpkg) aptitude-dpkg)
echo "aptitude -y install $*" echo "aptitude -y install $*"
return ;; return ;;
...@@ -5927,7 +6052,7 @@ esac ...@@ -5927,7 +6052,7 @@ esac
message "Skipping: kernel package will update during dist-upgrade" message "Skipping: kernel package will update during dist-upgrade"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_kernel_update()'
;; ;;
esac esac
} }
...@@ -6114,6 +6239,10 @@ case $PMTYPE in ...@@ -6114,6 +6239,10 @@ case $PMTYPE in
docmd apt-cache search . docmd apt-cache search .
fi fi
;; ;;
apm-rpm)
# TODO: --format json?
CMD="apm system list --limit 100000"
;;
dnf-*) dnf-*)
warmup_rpmbase warmup_rpmbase
if [ -n "$short" ] ; then if [ -n "$short" ] ; then
...@@ -6159,6 +6288,9 @@ case $PMTYPE in ...@@ -6159,6 +6288,9 @@ case $PMTYPE in
eopkg) eopkg)
CMD="eopkg list-available" CMD="eopkg list-available"
;; ;;
stplr)
CMD="stplr list"
;;
pisi) pisi)
CMD="pisi list-available" CMD="pisi list-available"
;; ;;
...@@ -6357,7 +6489,7 @@ case $PMTYPE in ...@@ -6357,7 +6489,7 @@ case $PMTYPE in
info "Manually: edit /etc/pacman.conf modifying IgnorePkg array" info "Manually: edit /etc/pacman.conf modifying IgnorePkg array"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_mark_hold()'
;; ;;
esac esac
...@@ -6433,7 +6565,7 @@ case $PMTYPE in ...@@ -6433,7 +6565,7 @@ case $PMTYPE in
cat /etc/pacman.conf cat /etc/pacman.conf
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_mark_showhold()'
;; ;;
esac esac
...@@ -6480,7 +6612,7 @@ case $PMTYPE in ...@@ -6480,7 +6612,7 @@ case $PMTYPE in
sudocmd emerge --oneshot "$@" sudocmd emerge --oneshot "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_mark_auto()'
;; ;;
esac esac
...@@ -6536,7 +6668,7 @@ case $PMTYPE in ...@@ -6536,7 +6668,7 @@ case $PMTYPE in
sudocmd dnf repoquery --unneeded sudocmd dnf repoquery --unneeded
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_mark_showauto()'
;; ;;
esac esac
...@@ -6560,7 +6692,7 @@ case $PMTYPE in ...@@ -6560,7 +6692,7 @@ case $PMTYPE in
sudocmd dnf repoquery --userinstalled sudocmd dnf repoquery --userinstalled
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_mark_showmanual'
;; ;;
esac esac
...@@ -6610,7 +6742,7 @@ epm_mark() ...@@ -6610,7 +6742,7 @@ epm_mark()
epm_mark_showmanual "$@" epm_mark_showmanual "$@"
;; ;;
*) *)
fatal 'Unknown command $ epm mark $CMD' fatal 'Unknown command $ epm mark $CMD in epm_mark()'
;; ;;
esac esac
...@@ -6657,7 +6789,7 @@ case $PMTYPE in ...@@ -6657,7 +6789,7 @@ case $PMTYPE in
a= rpm --rebuilddb a= rpm --rebuilddb
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_optimize()'
;; ;;
esac esac
...@@ -7016,6 +7148,9 @@ case $PMTYPE in ...@@ -7016,6 +7148,9 @@ case $PMTYPE in
eopkg) eopkg)
CMD="eopkg list-installed" CMD="eopkg list-installed"
;; ;;
stplr)
CMD="stplr list --installed"
;;
pisi) pisi)
CMD="pisi list-installed" CMD="pisi list-installed"
;; ;;
...@@ -7133,7 +7268,12 @@ __is_app_installed() ...@@ -7133,7 +7268,12 @@ __is_app_installed()
__get_app_package() __get_app_package()
{ {
grep -oP "^PKGNAME=[\"']*\K[^\"']+" "$psdir/$1.sh" && return if [ "$PKGFORMAT" = "deb" ] ; then
local pkgname
pkgname="$(grep -oP "^PKGNAME=[\"']*\K[^\"']+" "$psdir/$1.sh")" && echo "$pkgname" | tr "[:upper:]" "[:lower:]" && return
else
grep -oP "^PKGNAME=[\"']*\K[^\"']+" "$psdir/$1.sh" && return
fi
# fallback if PKGNAME is not set directly # fallback if PKGNAME is not set directly
__run_script "$1" --package-name "$2" "$3" 2>/dev/null __run_script "$1" --package-name "$2" "$3" 2>/dev/null
} }
...@@ -7166,6 +7306,15 @@ __list_all_packages() ...@@ -7166,6 +7306,15 @@ __list_all_packages()
done done
} }
__print_targeted_packages()
{
if [ "$PKGFORMAT" = "deb" ] ; then
tr "[:upper:]" "[:lower:]" <"$1"
return
fi
cat "$1"
}
__list_app_packages_table() __list_app_packages_table()
{ {
local pkglist="$1" local pkglist="$1"
...@@ -7186,7 +7335,7 @@ __list_app_packages_table() ...@@ -7186,7 +7335,7 @@ __list_app_packages_table()
grep -l -E "^SUPPORTEDARCHES=(''|\"\"|.*\<$arch\>)" $psdir/*.sh | xargs grep -oP "^PKGNAME=[\"']*\K[^\"']+" | sed -e "s|.*/\(.*\).sh:|\1 |" | grep -v -E "(^$IGNOREi586|^common|#.*$)" | LC_ALL=C sort -k1,1 >$tmplist1 grep -l -E "^SUPPORTEDARCHES=(''|\"\"|.*\<$arch\>)" $psdir/*.sh | xargs grep -oP "^PKGNAME=[\"']*\K[^\"']+" | sed -e "s|.*/\(.*\).sh:|\1 |" | grep -v -E "(^$IGNOREi586|^common|#.*$)" | LC_ALL=C sort -k1,1 >$tmplist1
# tmplist - app # tmplist - app
# tmplist1 - app package # tmplist1 - app package
LC_ALL=C join -j 1 -a 1 $tmplist $tmplist1 | while read -r app package ; do __print_targeted_packages $tmplist1 | LC_ALL=C join -j 1 -a 1 $tmplist - | while read -r app package ; do
[ -n "$package" ] || package="$(__get_resolved_app_package $app $pkglist </dev/null)" [ -n "$package" ] || package="$(__get_resolved_app_package $app $pkglist </dev/null)"
[ -n "$package" ] || continue # fatal "Missed package for $app" [ -n "$package" ] || continue # fatal "Missed package for $app"
echo "$package $app" echo "$package $app"
...@@ -7208,30 +7357,19 @@ __list_app_packages_table_old() ...@@ -7208,30 +7357,19 @@ __list_app_packages_table_old()
done done
} }
__get_all_alt_repacked_packages() __get_all_rpm_repacked_packages()
{ {
FORMAT="%{Name} %{Version} %{Packager}\n" FORMAT="%{Name} %{Version} %{Packager}\n"
a= rpmquery --queryformat "$FORMAT" -a | grep "EPM <support@e" a= rpmquery --queryformat "$FORMAT" -a | grep "EPM <support@e"
} }
__filter_by_installed_packages() __filter_by_repacked_rpm_packages()
{ {
local i local i
local tapt="$1" local tapt="$1"
local pkglist="$2" local pkglist="$2"
# hack for rpm based LC_ALL=C join -11 -21 $tapt $pkglist | uniq
if [ "$PKGFORMAT" = "rpm" ] ; then
LC_ALL=C join -11 -21 $tapt $pkglist | uniq
return
fi
# get intersect between full package list and available packages table
LC_ALL=C join -11 -21 $tapt $pkglist | uniq | while read -r package app ; do
if epm status --repacked "$package" </dev/null ; then
echo "$package $app"
fi
done
# rpm on Fedora/CentOS no more print missed packages to stderr # rpm on Fedora/CentOS no more print missed packages to stderr
# get supported packages list and print lines with it # get supported packages list and print lines with it
...@@ -7240,6 +7378,20 @@ __filter_by_installed_packages() ...@@ -7240,6 +7378,20 @@ __filter_by_installed_packages()
#done #done
} }
__filter_by_installed_packages()
{
local i
local tapt="$1"
local pkglist="$2"
# get intersect between full package list and available packages table
LC_ALL=C join -11 -21 $tapt $pkglist | uniq | while read -r package app ; do
if epm status --repacked "$package" </dev/null || epm status --thirdparty "$package" </dev/null ; then
echo "$package $app"
fi
done
}
__get_installed_table() __get_installed_table()
{ {
local i local i
...@@ -7252,13 +7404,17 @@ __get_installed_table() ...@@ -7252,13 +7404,17 @@ __get_installed_table()
remove_on_exit $pkglist remove_on_exit $pkglist
if [ "$PKGFORMAT" = "rpm" ] ; then if [ "$PKGFORMAT" = "rpm" ] ; then
__get_all_alt_repacked_packages | LC_ALL=C sort -u >$pkglist # fast hack to get all repacked packages
# it misses all thirdparty packages installed as is
__get_all_rpm_repacked_packages | LC_ALL=C sort -u >$pkglist
__list_app_packages_table $pkglist | LC_ALL=C sort -u >$tapt
__filter_by_repacked_rpm_packages $tapt $pkglist
else else
epm --short packages | LC_ALL=C sort -u >$pkglist epm --short packages | LC_ALL=C sort -u >$pkglist
__list_app_packages_table $pkglist | LC_ALL=C sort -u >$tapt
__filter_by_installed_packages $tapt $pkglist
fi fi
__list_app_packages_table $pkglist | LC_ALL=C sort -u >$tapt
__filter_by_installed_packages $tapt $pkglist
rm -f $tapt rm -f $tapt
rm -f $pkglist rm -f $pkglist
} }
...@@ -7864,7 +8020,7 @@ case $PMTYPE in ...@@ -7864,7 +8020,7 @@ case $PMTYPE in
docmd apk policy $pkg_names docmd apk policy $pkg_names
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_policy()'
;; ;;
esac esac
...@@ -8461,7 +8617,7 @@ epm_provides_files() ...@@ -8461,7 +8617,7 @@ epm_provides_files()
docmd dpkg -I $pkg_files | grep "^ *Provides:" | sed "s|^ *Provides:||g" docmd dpkg -I $pkg_files | grep "^ *Provides:" | sed "s|^ *Provides:||g"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_provides()'
;; ;;
esac esac
} }
...@@ -8489,6 +8645,17 @@ case $PMTYPE in ...@@ -8489,6 +8645,17 @@ case $PMTYPE in
return return
fi fi
;; ;;
apm-rpm)
# FIXME: need fix for a few names case
# TODO: separate this function to two section
if is_installed $pkg_names ; then
CMD="rpm -q --provides"
else
docmd apm system info --full --format=json $pkg_names | get_json_values "data packageInfo provides"
return
fi
;;
urpm-rpm) urpm-rpm)
if is_installed $pkg_names ; then if is_installed $pkg_names ; then
CMD="rpm -q --provides" CMD="rpm -q --provides"
...@@ -8537,7 +8704,7 @@ case $PMTYPE in ...@@ -8537,7 +8704,7 @@ case $PMTYPE in
fi fi
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_provides()'
;; ;;
esac esac
...@@ -8679,7 +8846,7 @@ __epm_get_hilevel_nameform() ...@@ -8679,7 +8846,7 @@ __epm_get_hilevel_nameform()
[ -n "$*" ] || return [ -n "$*" ] || return
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
# use # as delimeter for apt # use # as delimeter for apt
local pkg local pkg
pkg=$(a='' rpm -q --queryformat "%{NAME}=%{SERIAL}:%{VERSION}-%{RELEASE}\n" -- $1) pkg=$(a='' rpm -q --queryformat "%{NAME}=%{SERIAL}:%{VERSION}-%{RELEASE}\n" -- $1)
...@@ -9353,7 +9520,7 @@ epm_release_downgrade() ...@@ -9353,7 +9520,7 @@ epm_release_downgrade()
sudocmd guix pull --verbose sudocmd guix pull --verbose
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_release_downgrade()'
;; ;;
esac esac
...@@ -10036,7 +10203,7 @@ epm_release_upgrade() ...@@ -10036,7 +10203,7 @@ epm_release_upgrade()
sudocmd guix pull --verbose sudocmd guix pull --verbose
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_release_upgrade()'
;; ;;
esac esac
...@@ -10119,6 +10286,9 @@ epm_remove_names() ...@@ -10119,6 +10286,9 @@ epm_remove_names()
apt-dpkg) apt-dpkg)
sudocmd apt-get remove --purge $APTOPTIONS $@ sudocmd apt-get remove --purge $APTOPTIONS $@
return ;; return ;;
apm-rpm)
sudocmd apm system remove $@
return ;;
aptitude-dpkg) aptitude-dpkg)
sudocmd aptitude purge $@ sudocmd aptitude purge $@
return ;; return ;;
...@@ -10165,6 +10335,9 @@ epm_remove_names() ...@@ -10165,6 +10335,9 @@ epm_remove_names()
eopkg) eopkg)
sudocmd eopkg $(subst_option nodeps --ignore-dependency) remove $@ sudocmd eopkg $(subst_option nodeps --ignore-dependency) remove $@
return ;; return ;;
stplr)
sudocmd stplr remove $@
return ;;
pisi) pisi)
sudocmd pisi $(subst_option nodeps --ignore-dependency) remove $@ sudocmd pisi $(subst_option nodeps --ignore-dependency) remove $@
return ;; return ;;
...@@ -10212,7 +10385,7 @@ epm_remove_names() ...@@ -10212,7 +10385,7 @@ epm_remove_names()
sudocmd opkg $(subst_option force -force-depends) remove $@ sudocmd opkg $(subst_option force -force-depends) remove $@
return ;; return ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_remove_names()'
;; ;;
esac esac
} }
...@@ -10261,6 +10434,9 @@ epm_remove_nonint() ...@@ -10261,6 +10434,9 @@ epm_remove_nonint()
eopkg) eopkg)
sudocmd eopkg $(subst_option nodeps --ignore-dependency) --yes-all remove $@ sudocmd eopkg $(subst_option nodeps --ignore-dependency) --yes-all remove $@
return ;; return ;;
stplr)
sudocmd stplr remove -y $@
return ;;
pisi) pisi)
sudocmd pisi $(subst_option nodeps --ignore-dependency) --yes-all remove $@ sudocmd pisi $(subst_option nodeps --ignore-dependency) --yes-all remove $@
return ;; return ;;
...@@ -10320,7 +10496,7 @@ epm_print_remove_command() ...@@ -10320,7 +10496,7 @@ epm_print_remove_command()
echo "$PMTYPE uninstall -s $*" echo "$PMTYPE uninstall -s $*"
;; ;;
*) *)
fatal 'Have no suitable appropriate remove command for $PMTYPE' fatal 'Have no suitable appropriate remove command for $PMTYPE in epm_remove_nonint()'
;; ;;
esac esac
} }
...@@ -10470,7 +10646,7 @@ epm_remove_old_kernels() ...@@ -10470,7 +10646,7 @@ epm_remove_old_kernels()
case $PMTYPE in case $PMTYPE in
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_remove_old_kernels()'
;; ;;
esac esac
} }
...@@ -10655,6 +10831,9 @@ case $PMTYPE in ...@@ -10655,6 +10831,9 @@ case $PMTYPE in
eopkg) eopkg)
sudocmd eopkg remove-repo "$@" sudocmd eopkg remove-repo "$@"
;; ;;
stplr)
sudocmd stplr repo remove "$@"
;;
pisi) pisi)
sudocmd pisi remove-repo "$@" sudocmd pisi remove-repo "$@"
;; ;;
...@@ -10662,7 +10841,7 @@ case $PMTYPE in ...@@ -10662,7 +10841,7 @@ case $PMTYPE in
info "You need remove repo from /etc/slackpkg/mirrors" info "You need remove repo from /etc/slackpkg/mirrors"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_removerepo()'
;; ;;
esac esac
...@@ -10703,6 +10882,29 @@ __epm_check_if_needed_repack() ...@@ -10703,6 +10882,29 @@ __epm_check_if_needed_repack()
warning 'There is repack rule for $pkgname package. It is better install this package via epm install --repack or epm play.' warning 'There is repack rule for $pkgname package. It is better install this package via epm install --repack or epm play.'
} }
__epm_repack_copy()
{
local abspkg="$1"
local target="$2"
# if source file is not writable, try CoW or fallback to ordinal copy
#if [ ! -w "$abspkg" ] ; then
# cp --reflink=auto $verbose $abspkg $target 2>/dev/null && return
# return
#fi
# firstly try CoW
cp --reflink=always $verbose $abspkg $target 2>/dev/null && return
# next try create hardlink
cp -l $verbose $abspkg $target 2>/dev/null && return
# next try create symlink
cp -s $verbose $abspkg $target 2>/dev/null && return
# just make copy as fallback
cp $verbose $abspkg $target && return
fatal "Can't copy $abspkg to $target"
}
__epm_split_by_pkg_type() __epm_split_by_pkg_type()
{ {
local type="$1" local type="$1"
...@@ -10744,8 +10946,8 @@ __check_packrule() ...@@ -10744,8 +10946,8 @@ __check_packrule()
{ {
local pkg="$1" local pkg="$1"
local alf="$CONFIGDIR/packrules.list" local alf="$CONFIGDIR/packrules.list"
[ -s "$pkg" ] || return 1
[ -s "$alf" ] || return 1 [ -s "$alf" ] || return 1
[ -n "$pkg" ] || return 1
local tmpalf=$(__convert_packrule_to_regexp "$alf") local tmpalf=$(__convert_packrule_to_regexp "$alf")
remove_on_exit $tmpalf remove_on_exit $tmpalf
...@@ -10824,7 +11026,8 @@ __epm_repack_single() ...@@ -10824,7 +11026,8 @@ __epm_repack_single()
__epm_repack_to_rpm "$pkg" "$packversion" "$packrelease" || return __epm_repack_to_rpm "$pkg" "$packversion" "$packrelease" || return
;; ;;
deb) deb)
if __epm_have_repack_rule "$pkg" ; then # repack via rpm if source is not deb or we have rpm rule for the package
if __epm_have_repack_rule "$pkg" || ! rhas "$pkg" "\.deb$" ; then
# we have repack rules only for rpm, so use rpm step in any case # we have repack rules only for rpm, so use rpm step in any case
__epm_repack_to_rpm "$pkg" "$packversion" "$packrelease" || return __epm_repack_to_rpm "$pkg" "$packversion" "$packrelease" || return
[ -n "$repacked_pkg" ] || return [ -n "$repacked_pkg" ] || return
...@@ -10929,10 +11132,10 @@ __epm_repack_to_deb() ...@@ -10929,10 +11132,10 @@ __epm_repack_to_deb()
alpkg=$(basename $pkg) alpkg=$(basename $pkg)
# don't use abs package path: copy package to temp dir and use there # don't use abs package path: copy package to temp dir and use there
cp $verbose $pkg $TDIR/$alpkg __epm_repack_copy $abspkg $TDIR/$alpkg
cd $TDIR || fatal cd $TDIR || fatal
__prepare_source_package "$pkg" __prepare_source_package "$(pwd)/$alpkg"
showcmd_store_output fakeroot alien -d -k $verbose $scripts "$alpkg" showcmd_store_output fakeroot alien -d -k $verbose $scripts "$alpkg"
local DEBCONVERTED=$(grep "deb generated" $RC_STDOUT | sed -e "s| generated||g") local DEBCONVERTED=$(grep "deb generated" $RC_STDOUT | sed -e "s| generated||g")
...@@ -10951,15 +11154,22 @@ __epm_repack_to_deb() ...@@ -10951,15 +11154,22 @@ __epm_repack_to_deb()
# File bin/epm-repack-rpm: # File bin/epm-repack-rpm:
get_repack_script()
{
local repackcode="$1"
is_abs_path "$repackcode" || repackcode="$EPM_REPACK_SCRIPTS_DIR/$1.sh"
echo "$repackcode"
}
has_repack_script() has_repack_script()
{ {
local repackcode="$EPM_REPACK_SCRIPTS_DIR/$1.sh" [ -s "$(get_repack_script "$1")" ]
[ -s "$repackcode" ]
} }
__apply_fix_code() __apply_fix_code()
{ {
local repackcode="$EPM_REPACK_SCRIPTS_DIR/$1.sh" local repackcode="$(get_repack_script "$1")"
[ -s "$repackcode" ] || return 0 [ -s "$repackcode" ] || return 0
[ -f "$repackcode.rpmnew" ] && warning 'There is .rpmnew file(s) in $EPM_REPACK_SCRIPTS_DIR dir. The pack script can be outdated.' [ -f "$repackcode.rpmnew" ] && warning 'There is .rpmnew file(s) in $EPM_REPACK_SCRIPTS_DIR dir. The pack script can be outdated.'
...@@ -11067,7 +11277,7 @@ __epm_repack_to_rpm() ...@@ -11067,7 +11277,7 @@ __epm_repack_to_rpm()
alpkg=$(basename $pkg) alpkg=$(basename $pkg)
# don't use abs package path: copy package to temp dir and use there # don't use abs package path: copy package to temp dir and use there
cp -l $verbose $abspkg $tmpbuilddir/../$alpkg 2>/dev/null || cp -s $verbose $abspkg $tmpbuilddir/../$alpkg 2>/dev/null || cp $verbose $abspkg $tmpbuilddir/../$alpkg || fatal __epm_repack_copy $abspkg $tmpbuilddir/../$alpkg
[ -r "$pkg.eepm.yaml" ] && cp $verbose $pkg.eepm.yaml $tmpbuilddir/../$alpkg.eepm.yaml [ -r "$pkg.eepm.yaml" ] && cp $verbose $pkg.eepm.yaml $tmpbuilddir/../$alpkg.eepm.yaml
cd $tmpbuilddir/../ || fatal cd $tmpbuilddir/../ || fatal
...@@ -11112,10 +11322,13 @@ __epm_repack_to_rpm() ...@@ -11112,10 +11322,13 @@ __epm_repack_to_rpm()
# run generic scripts and repack script for the pkg # run generic scripts and repack script for the pkg
cd $buildroot || fatal cd $buildroot || fatal
local repackscript="$pkgname"
[ -n "$EPM_REPACK_SCRIPT" ] && repackscript="$EPM_REPACK_SCRIPT"
__apply_fix_code "generic" $buildroot $spec $pkgname $abspkg $SUBGENERIC __apply_fix_code "generic" $buildroot $spec $pkgname $abspkg $SUBGENERIC
__apply_fix_code "generic-$SUBGENERIC" $buildroot $spec $pkgname $abspkg __apply_fix_code "generic-$SUBGENERIC" $buildroot $spec $pkgname $abspkg
__apply_fix_code $pkgname $buildroot $spec $pkgname $abspkg __apply_fix_code $repackscript $buildroot $spec $pkgname $abspkg
if ! has_repack_script $pkgname ; then if ! has_repack_script $repackscript ; then
__apply_fix_code "generic-default" $buildroot $spec $pkgname $abspkg __apply_fix_code "generic-default" $buildroot $spec $pkgname $abspkg
fi fi
__apply_fix_code "generic-post" $buildroot $spec $pkgname $abspkg __apply_fix_code "generic-post" $buildroot $spec $pkgname $abspkg
...@@ -11555,7 +11768,7 @@ epm_repodisable() ...@@ -11555,7 +11768,7 @@ epm_repodisable()
{ {
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
assure_root assure_root
__epm_repodisable_alt "$@" __epm_repodisable_alt "$@"
;; ;;
...@@ -11579,7 +11792,7 @@ case $PMTYPE in ...@@ -11579,7 +11792,7 @@ case $PMTYPE in
docmd eoget disable-repo "$@" docmd eoget disable-repo "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repodisable()'
;; ;;
esac esac
...@@ -11613,7 +11826,7 @@ epm_repoenable() ...@@ -11613,7 +11826,7 @@ epm_repoenable()
{ {
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
assure_root assure_root
__epm_repoenable_alt "$@" __epm_repoenable_alt "$@"
;; ;;
...@@ -11637,7 +11850,7 @@ case $PMTYPE in ...@@ -11637,7 +11850,7 @@ case $PMTYPE in
docmd pisi enable-repo "$@" docmd pisi enable-repo "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repoenable()'
;; ;;
esac esac
...@@ -11902,7 +12115,7 @@ esac ...@@ -11902,7 +12115,7 @@ esac
case $PMTYPE in case $PMTYPE in
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repofix()'
;; ;;
esac esac
...@@ -12030,7 +12243,7 @@ epm_repoindex() ...@@ -12030,7 +12243,7 @@ epm_repoindex()
{ {
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
__epm_repoindex_alt "$@" __epm_repoindex_alt "$@"
;; ;;
apt-dpkg|aptitude-dpkg) apt-dpkg|aptitude-dpkg)
...@@ -12056,7 +12269,7 @@ case $PMTYPE in ...@@ -12056,7 +12269,7 @@ case $PMTYPE in
docmd eoget index "$@" docmd eoget index "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repoindex()'
;; ;;
esac esac
...@@ -12189,10 +12402,10 @@ print_apt_sources_list() ...@@ -12189,10 +12402,10 @@ print_apt_sources_list()
epm_repolist() epm_repolist()
{ {
[ -z "$*" ] || [ "$PMTYPE" = "apt-rpm" ] || [ "$PMTYPE" = "apt-dpkg" ] || fatal "No arguments are allowed here" [ -z "$*" ] || [ "$PMTYPE" = "apt-rpm" ] || [ "$PMTYPE" = "apm-rpm" ] || [ "$PMTYPE" = "apt-dpkg" ] || fatal "No arguments are allowed here"
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
if tasknumber "$1" >/dev/null ; then if tasknumber "$1" >/dev/null ; then
# FIXME: unexpectedly, a list of packages instead of repositories. # FIXME: unexpectedly, a list of packages instead of repositories.
get_task_packages "$@" get_task_packages "$@"
...@@ -12253,7 +12466,7 @@ case $PMTYPE in ...@@ -12253,7 +12466,7 @@ case $PMTYPE in
docmd grep -v -- "^#\|^$" /etc/slackpkg/mirrors docmd grep -v -- "^#\|^$" /etc/slackpkg/mirrors
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repolist()'
;; ;;
esac esac
...@@ -12344,11 +12557,11 @@ epm_repo_pkgadd() ...@@ -12344,11 +12557,11 @@ epm_repo_pkgadd()
{ {
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
__epm_repo_pkgadd_alt "$@" __epm_repo_pkgadd_alt "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repo_pkgadd()'
;; ;;
esac esac
...@@ -12359,11 +12572,11 @@ epm_repo_pkgupdate() ...@@ -12359,11 +12572,11 @@ epm_repo_pkgupdate()
{ {
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
__epm_repo_pkgupdate_alt "$@" __epm_repo_pkgupdate_alt "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repo_pkgupdate()'
;; ;;
esac esac
...@@ -12374,11 +12587,11 @@ epm_repo_pkgdel() ...@@ -12374,11 +12587,11 @@ epm_repo_pkgdel()
{ {
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm|apm-rpm)
__epm_repo_pkgdel_alt "$@" __epm_repo_pkgdel_alt "$@"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repo_pkgdel()'
;; ;;
esac esac
...@@ -12459,7 +12672,7 @@ case $PMTYPE in ...@@ -12459,7 +12672,7 @@ case $PMTYPE in
__save_alt_repo_lists __save_alt_repo_lists
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_reposave()'
;; ;;
esac esac
...@@ -12476,7 +12689,7 @@ case $PMTYPE in ...@@ -12476,7 +12689,7 @@ case $PMTYPE in
__restore_alt_repo_lists __restore_alt_repo_lists
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_reporestore()'
;; ;;
esac esac
...@@ -12496,7 +12709,7 @@ case $PMTYPE in ...@@ -12496,7 +12709,7 @@ case $PMTYPE in
sudocmd winget source reset sudocmd winget source reset
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_reporeset()'
;; ;;
esac esac
...@@ -12520,7 +12733,7 @@ case $PMTYPE in ...@@ -12520,7 +12733,7 @@ case $PMTYPE in
fi fi
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_repostatus()'
;; ;;
esac esac
} }
...@@ -12612,7 +12825,7 @@ epm_requires_files() ...@@ -12612,7 +12825,7 @@ epm_requires_files()
__epm_elf_requires $fl __epm_elf_requires $fl
;; ;;
*) *)
warning "Have no suitable command for handle file $fl with .$PKGTYPE" warning "Have no suitable command for handle file $fl with .$PKGTYPE in epm_requires()"
;; ;;
esac esac
done done
...@@ -12645,6 +12858,22 @@ case $PMTYPE in ...@@ -12645,6 +12858,22 @@ case $PMTYPE in
fi fi
fi fi
;; ;;
apm-rpm)
# FIXME: need fix for a few names case
# FIXME: too low level of requires name (libSOME.so)
if is_installed $pkg_names ; then
assure_exists rpm >/dev/null
__epm_alt_rpm_requires $pkg_names
return
else
if [ -n "$short" ] ; then
docmd apm system info --full --format=json $pkg_names | get_json_values "data packageInfo depends" | __epm_filter_out_base_alt_reqs | sed -e "s| .*||"
else
docmd apm system info --full --format=json $pkg_names | get_json_values "data packageInfo depends" | __epm_filter_out_base_alt_reqs
fi
return
fi
;;
packagekit) packagekit)
CMD="pkcon required-by" CMD="pkcon required-by"
;; ;;
...@@ -12719,7 +12948,7 @@ case $PMTYPE in ...@@ -12719,7 +12948,7 @@ case $PMTYPE in
return return
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_requires()'
;; ;;
esac esac
...@@ -13380,6 +13609,10 @@ case $PMTYPE in ...@@ -13380,6 +13609,10 @@ case $PMTYPE in
apt-rpm|apt-dpkg) apt-rpm|apt-dpkg)
CMD="apt-cache search --" CMD="apt-cache search --"
;; ;;
apm-rpm)
docmd apm system search -- $string
return
;;
aptitude-dpkg) aptitude-dpkg)
CMD="aptitude search --" CMD="aptitude search --"
;; ;;
...@@ -13411,6 +13644,9 @@ case $PMTYPE in ...@@ -13411,6 +13644,9 @@ case $PMTYPE in
eopkg) eopkg)
CMD="eopkg search --" CMD="eopkg search --"
;; ;;
stplr)
CMD="stplr search --"
;;
pisi) pisi)
CMD="pisi search --" CMD="pisi search --"
;; ;;
...@@ -13702,6 +13938,14 @@ docmd $CMD $pkg_filenames ...@@ -13702,6 +13938,14 @@ docmd $CMD $pkg_filenames
# File bin/epm-sh-altlinux: # File bin/epm-sh-altlinux:
tasknumberprefix() {
local potential
for potential in "$@"; do
[[ "$potential" =~ ^[0-9]+(:[^:]+)?$ ]] && return 0
done
return 1
}
tasknumber() tasknumber()
{ {
local num="$(echo "$1" | sed -e "s| *#*||g")" local num="$(echo "$1" | sed -e "s| *#*||g")"
...@@ -14392,7 +14636,7 @@ epm_stats() ...@@ -14392,7 +14636,7 @@ epm_stats()
CMD="apk stats" CMD="apk stats"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_stats()'
;; ;;
esac esac
...@@ -14510,8 +14754,8 @@ epm_status_supported() { ...@@ -14510,8 +14754,8 @@ epm_status_supported() {
epm_status_validate() epm_status_validate()
{ {
local pkg="$1" local pkg="$1"
local rpmversion="$(epm print field Version for "$pkg" 2>/dev/null)" local version="$(epm print field Version for "$pkg" 2>/dev/null)"
[ -n "$rpmversion" ] [ -n "$version" ]
} }
epm_status_original() epm_status_original()
...@@ -14539,6 +14783,10 @@ epm_status_original() ...@@ -14539,6 +14783,10 @@ epm_status_original()
# FIXME: how to check if the package is from ALT repo (verified)? # FIXME: how to check if the package is from ALT repo (verified)?
echo "$release" | grep -q "^alt" || return 1 echo "$release" | grep -q "^alt" || return 1
local packager="$(epm print field Packager for "$pkg" 2>/dev/null )"
# altlinux.ru, altlinux.org, altlinux.com, altlinux dot
echo "$packager" | grep -q "altlinux" || return 1
return 0 return 0
;; ;;
RedOS) RedOS)
...@@ -14598,7 +14846,7 @@ epm_status_repacked() ...@@ -14598,7 +14846,7 @@ epm_status_repacked()
local pkg="$1" local pkg="$1"
# dpkg package missing packager field # dpkg package missing packager field
local repacked="$(epm print field Description for "$1" 2>/dev/null | grep -qi "alien")" local repacked="$(epm print field Description for "$1" 2>/dev/null | grep -i "alien")"
local packager="$(epm print field Packager for "$1" 2>/dev/null)" local packager="$(epm print field Packager for "$1" 2>/dev/null)"
#is_installed $pkg || fatal "FIXME: implemented for installed packages as for now" #is_installed $pkg || fatal "FIXME: implemented for installed packages as for now"
...@@ -14632,19 +14880,21 @@ epm_status_thirdparty() ...@@ -14632,19 +14880,21 @@ epm_status_thirdparty()
#is_installed $pkg || fatal "FIXME: implemented for installed packages as for now" #is_installed $pkg || fatal "FIXME: implemented for installed packages as for now"
distribution="$(epm print field Distribution for "$pkg" 2>/dev/null )" distribution="$(epm print field Distribution for "$pkg" 2>/dev/null )"
repacked="$(epm print field Description for "$1" 2>/dev/null | grep -qi "alien")" #repacked="$(epm print field Description for "$1" 2>/dev/null | grep -qi "alien")"
maintainer="$(epm print field Maintainer for "$pkg" 2>/dev/null)" maintainer="$(epm print field Maintainer for "$pkg" 2>/dev/null)"
case $BASEDISTRNAME in case $BASEDISTRNAME in
alt) alt)
## FIXME: some repo packages have wrong Packager
#local packager="$(epm print field Packager for "$1" 2>/dev/null)"
#echo "$packager" && grep -q "altlinux" && return 0
#echo "$packager" && grep -q "basealt" && return 0
epm_status_validate $pkg || return 1 epm_status_validate $pkg || return 1
echo "$distribution" | grep -q "^ALT" && return 1
echo "$distribution" | grep -q "^EEPM" && return 1 echo "$distribution" | grep -q "^EEPM" && return 1
echo "$distribution" | grep -q "^ALT" || return 0
local packager="$(epm print field Packager for "$pkg" 2>/dev/null )"
# altlinux.ru, altlinux.org, altlinux.com, altlinux dot
echo "$packager" | grep -q "altlinux" && return 1
#echo "$packager" && grep -q "basealt" && return 1
return 0 return 0
;; ;;
redos) redos)
...@@ -14674,7 +14924,7 @@ epm_status_thirdparty() ...@@ -14674,7 +14924,7 @@ epm_status_thirdparty()
# On UncomOS maintainer Ubuntu and Debian * team # On UncomOS maintainer Ubuntu and Debian * team
echo "$maintainer" | grep -q "Debian" && return 1 echo "$maintainer" | grep -q "Debian" && return 1
echo "$maintainer" | grep -q "Ubuntu" && return 1 echo "$maintainer" | grep -q "Ubuntu" && return 1
[ ! -z "$repacked" ] && return 1 epm_status_repacked $pkg && return 1
return 0 return 0
;; ;;
*) *)
...@@ -14925,6 +15175,9 @@ case $PMTYPE in ...@@ -14925,6 +15175,9 @@ case $PMTYPE in
# apt-get update retrieve Contents file too # apt-get update retrieve Contents file too
#sudocmd apt-file update #sudocmd apt-file update
;; ;;
apm-rpm)
sudocmd apm system update
;;
packagekit) packagekit)
docmd pkcon refresh docmd pkcon refresh
;; ;;
...@@ -14976,6 +15229,9 @@ case $PMTYPE in ...@@ -14976,6 +15229,9 @@ case $PMTYPE in
eopkg) eopkg)
sudocmd eopkg update-repo sudocmd eopkg update-repo
;; ;;
stplr)
sudocmd stplr refresh
;;
pisi) pisi)
sudocmd pisi update-repo sudocmd pisi update-repo
;; ;;
...@@ -15148,6 +15404,9 @@ epm_upgrade() ...@@ -15148,6 +15404,9 @@ epm_upgrade()
local APTOPTIONS="$dryrun $(subst_option non_interactive -y) $(subst_option debug "-V -o Debug::pkgMarkInstall=1 -o Debug::pkgProblemResolver=1")" local APTOPTIONS="$dryrun $(subst_option non_interactive -y) $(subst_option debug "-V -o Debug::pkgMarkInstall=1 -o Debug::pkgProblemResolver=1")"
CMD="apt-get $APTOPTIONS $noremove $force_yes dist-upgrade" CMD="apt-get $APTOPTIONS $noremove $force_yes dist-upgrade"
;; ;;
apm-rpm)
CMD="apm system upgrade"
;;
aptitude-dpkg) aptitude-dpkg)
CMD="aptitude dist-upgrade" CMD="aptitude dist-upgrade"
;; ;;
...@@ -15212,6 +15471,9 @@ epm_upgrade() ...@@ -15212,6 +15471,9 @@ epm_upgrade()
eopkg) eopkg)
CMD="eopkg upgrade" CMD="eopkg upgrade"
;; ;;
stplr)
CMD="stplr upgrade"
;;
pisi) pisi)
CMD="pisi upgrade" CMD="pisi upgrade"
;; ;;
...@@ -15246,7 +15508,7 @@ epm_upgrade() ...@@ -15246,7 +15508,7 @@ epm_upgrade()
CMD="pkg upgrade" CMD="pkg upgrade"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_upgrade()'
;; ;;
esac esac
...@@ -15351,7 +15613,7 @@ case $PMTYPE in ...@@ -15351,7 +15613,7 @@ case $PMTYPE in
CMD="xbps-query -X" CMD="xbps-query -X"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_whatdepends()'
;; ;;
esac esac
...@@ -15365,9 +15627,9 @@ docmd $CMD $pkg ...@@ -15365,9 +15627,9 @@ docmd $CMD $pkg
epm_whatprovides() epm_whatprovides()
{ {
local CMD local CMD
[ -n "$pkg_files" ] && fatal "whatprovides does not handle files" [ -n "$pkg_url" ] && fatal "whatprovides does not handle URLs"
[ -n "$pkg_names" ] || fatal "whatprovides: package name is missed" [ -n "$pkg_files$pkg_names" ] || fatal "whatprovides: package name is missed"
local pkg=$(print_name $pkg_names) local pkg=$(print_name $pkg_files $pkg_names)
case $PMTYPE in case $PMTYPE in
conary) conary)
...@@ -15393,7 +15655,7 @@ case $PMTYPE in ...@@ -15393,7 +15655,7 @@ case $PMTYPE in
CMD="opkg whatprovides" CMD="opkg whatprovides"
;; ;;
*) *)
fatal 'Have no suitable command for $PMTYPE' fatal 'Have no suitable command for $PMTYPE in epm_whatprovides()'
;; ;;
esac esac
...@@ -15544,6 +15806,12 @@ pkgmanager() ...@@ -15544,6 +15806,12 @@ pkgmanager()
{ {
local CMD local CMD
case $DISTRO_NAME in
"ALT Atomic")
echo "apm-rpm" && return
;;
esac
case $VENDOR_ID in case $VENDOR_ID in
alt) alt)
echo "apt-rpm" && return echo "apt-rpm" && return
...@@ -16508,6 +16776,8 @@ print_eepm_env() ...@@ -16508,6 +16776,8 @@ print_eepm_env()
cat <<EOF cat <<EOF
# -d | --base-distro-name # -d | --base-distro-name
DISTRNAME="$(echo $DISTRIB_ID)" DISTRNAME="$(echo $DISTRIB_ID)"
# --distro-name
FULLDISTRNAME="$(echo "$DISTRO_NAME")"
# -v | --base-version # -v | --base-version
DISTRVERSION="$(echo "$DISTRIB_RELEASE")" DISTRVERSION="$(echo "$DISTRIB_RELEASE")"
# distro dependent arch # distro dependent arch
...@@ -19835,7 +20105,7 @@ check_command() ...@@ -19835,7 +20105,7 @@ check_command()
;; ;;
# HELPCMD: PART: Repository control: # HELPCMD: PART: Repository control:
update|update-repo|ur) # HELPCMD: update remote package repository databases update|refresh|update-repo|ur) # HELPCMD: update remote package repository databases
epm_cmd=update epm_cmd=update
direct_args=1 direct_args=1
;; ;;
......
...@@ -34,7 +34,7 @@ SHAREDIR=$PROGDIR ...@@ -34,7 +34,7 @@ SHAREDIR=$PROGDIR
# will replaced with /etc/eepm during install # will replaced with /etc/eepm during install
CONFIGDIR=$PROGDIR/../etc CONFIGDIR=$PROGDIR/../etc
EPMVERSION="3.64.38" EPMVERSION="3.64.39"
# package, single (file), pipe, git # package, single (file), pipe, git
EPMMODE="package" EPMMODE="package"
...@@ -493,7 +493,7 @@ set_sudo() ...@@ -493,7 +493,7 @@ set_sudo()
# start error section # start error section
SUDO_TESTED="1" SUDO_TESTED="1"
if is_command doas && a='' doas -C /etc/doas.conf > /dev/null 2>&1 ; then if is_command doas && ! is_command sudo > /dev/null 2>&1 ; then
SUDO="doas" SUDO="doas"
SUDO_TESTED="0" SUDO_TESTED="0"
return "$SUDO_TESTED" return "$SUDO_TESTED"
...@@ -768,6 +768,19 @@ disabled_eget() ...@@ -768,6 +768,19 @@ disabled_eget()
$EGET "$@" $EGET "$@"
} }
get_json_value()
{
local field="$1"
echo "$field" | grep -q -E "^\[" || field='["'$field'"]'
epm tool json -b | grep -m1 -F "$field" | sed -e 's|.*[[:space:]]||' | sed -e 's|"\(.*\)"|\1|g'
}
get_json_values()
{
local field="$1"
echo "$field" | grep -q -E "^\[" || field="\[$(echo "$field" | sed 's/[^ ]*/"&"/g' | sed 's/ /,/g'),[0-9]*\]"
epm tool json -b | grep "^$field" | sed -e 's|.*[[:space:]]||' | sed -e 's|"\(.*\)"|\1|g'
}
__epm_assure_7zip() __epm_assure_7zip()
{ {
...@@ -1182,7 +1195,7 @@ serv_common() ...@@ -1182,7 +1195,7 @@ serv_common()
sudocmd sv $SERVICE "$@" sudocmd sv $SERVICE "$@"
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_common()"
;; ;;
esac esac
} }
...@@ -1217,7 +1230,7 @@ serv_disable() ...@@ -1217,7 +1230,7 @@ serv_disable()
sudocmd rm -fv /var/service/$SERVICE sudocmd rm -fv /var/service/$SERVICE
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_disable()"
;; ;;
esac esac
} }
...@@ -1276,7 +1289,7 @@ serv_enable() ...@@ -1276,7 +1289,7 @@ serv_enable()
sudocmd ln -s /etc/sv/$SERVICE /var/service/ sudocmd ln -s /etc/sv/$SERVICE /var/service/
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_enable()"
;; ;;
esac esac
} }
...@@ -1382,7 +1395,7 @@ serv_list_all() ...@@ -1382,7 +1395,7 @@ serv_list_all()
fi fi
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_list_all()"
;; ;;
esac esac
} }
...@@ -1563,7 +1576,7 @@ serv_restart() ...@@ -1563,7 +1576,7 @@ serv_restart()
sudocmd rc-service restart "$SERVICE" sudocmd rc-service restart "$SERVICE"
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_restart()"
;; ;;
esac esac
} }
...@@ -1596,7 +1609,7 @@ serv_start() ...@@ -1596,7 +1609,7 @@ serv_start()
sudocmd rc-service start "$SERVICE" sudocmd rc-service start "$SERVICE"
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_start()"
;; ;;
esac esac
} }
...@@ -1629,7 +1642,7 @@ is_service_running() ...@@ -1629,7 +1642,7 @@ is_service_running()
sudorun sv status "$SERVICE" >/dev/null 2>/dev/null sudorun sv status "$SERVICE" >/dev/null 2>/dev/null
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in is_service_running()"
;; ;;
esac esac
} }
...@@ -1658,7 +1671,7 @@ is_service_autostart() ...@@ -1658,7 +1671,7 @@ is_service_autostart()
test -L "/var/service/$SERVICE" test -L "/var/service/$SERVICE"
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in is_service_autostart()"
;; ;;
esac esac
} }
...@@ -1688,7 +1701,7 @@ serv_status() ...@@ -1688,7 +1701,7 @@ serv_status()
sudocmd sv status "$SERVICE" sudocmd sv status "$SERVICE"
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_status()"
;; ;;
esac esac
} }
...@@ -1721,7 +1734,7 @@ serv_stop() ...@@ -1721,7 +1734,7 @@ serv_stop()
sudocmd rc-service stop "$SERVICE" sudocmd rc-service stop "$SERVICE"
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_stop()"
;; ;;
esac esac
} }
...@@ -1804,7 +1817,7 @@ serv_usage() ...@@ -1804,7 +1817,7 @@ serv_usage()
sudocmd systemctl $SERVICE 2>&1 sudocmd systemctl $SERVICE 2>&1
;; ;;
*) *)
fatal "Have no suitable command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE in serv_usage()"
;; ;;
esac esac
...@@ -1955,6 +1968,12 @@ pkgmanager() ...@@ -1955,6 +1968,12 @@ pkgmanager()
{ {
local CMD local CMD
case $DISTRO_NAME in
"ALT Atomic")
echo "apm-rpm" && return
;;
esac
case $VENDOR_ID in case $VENDOR_ID in
alt) alt)
echo "apt-rpm" && return echo "apt-rpm" && return
...@@ -2919,6 +2938,8 @@ print_eepm_env() ...@@ -2919,6 +2938,8 @@ print_eepm_env()
cat <<EOF cat <<EOF
# -d | --base-distro-name # -d | --base-distro-name
DISTRNAME="$(echo $DISTRIB_ID)" DISTRNAME="$(echo $DISTRIB_ID)"
# --distro-name
FULLDISTRNAME="$(echo "$DISTRO_NAME")"
# -v | --base-version # -v | --base-version
DISTRVERSION="$(echo "$DISTRIB_RELEASE")" DISTRVERSION="$(echo "$DISTRIB_RELEASE")"
# distro dependent arch # distro dependent arch
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment