Commit 0a0e1091 authored by Vitaly Lipatov's avatar Vitaly Lipatov

commit packed 3.64.12

parent ef7207cb
...@@ -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.11" export EPMVERSION="3.64.12"
# package, single (file), pipe, git # package, single (file), pipe, git
EPMMODE="package" EPMMODE="package"
...@@ -1178,7 +1178,7 @@ __epm_addrepo_etersoft_addon() ...@@ -1178,7 +1178,7 @@ __epm_addrepo_etersoft_addon()
fi fi
} }
__epm_addrepo_alt_repo() __epm_addrepo_main_alt_repo()
{ {
local comp local comp
local sign local sign
...@@ -1200,7 +1200,7 @@ get_archlist() ...@@ -1200,7 +1200,7 @@ get_archlist()
echo "$DISTRARCH" echo "$DISTRARCH"
case $DISTRARCH in case $DISTRARCH in
x86_64) x86_64)
echo "i586" echo "x86_64-i586"
;; ;;
esac esac
} }
...@@ -1224,6 +1224,9 @@ __epm_addrepo_altlinux_url() ...@@ -1224,6 +1224,9 @@ __epm_addrepo_altlinux_url()
local arch local arch
local base local base
# apt supports 302 redirect only since apt 0.7.21 (14th April 2009)
url="$(eget --get-real-url $url)"
# URL to path/RPMS.addon # URL to path/RPMS.addon
base="$(basename "$url")" base="$(basename "$url")"
if echo "$base" | grep -q "^RPMS\." ; then if echo "$base" | grep -q "^RPMS\." ; then
...@@ -1259,7 +1262,6 @@ __epm_addrepo_altlinux_url() ...@@ -1259,7 +1262,6 @@ __epm_addrepo_altlinux_url()
__epm_addrepo_altlinux_help() __epm_addrepo_altlinux_help()
{ {
#sudocmd apt-repo $dryrun add branch
message ' message '
epm repo add - add branch repo. Use follow params: epm repo add - add branch repo. Use follow params:
...@@ -1287,6 +1289,25 @@ Examples: ...@@ -1287,6 +1289,25 @@ Examples:
return return
} }
__epm_addrepo_apt()
{
local repo="$*"
epm repo list --quiet 2>/dev/null | grep -q -F "$repo" && return 0
if [ -n "$dryrun" ] ; then
echo "$repo"
return
fi
local sc="sudocmd"
[ -z "$quiet" ] || sc="sudorun"
[ -z "$(tail -n1 /etc/apt/sources.list)" ] || echo "" | $sc tee -a /etc/apt/sources.list
echo "$repo" | $sc tee -a /etc/apt/sources.list
}
__epm_addrepo_altlinux() __epm_addrepo_altlinux()
{ {
local repo="$*" local repo="$*"
...@@ -1375,6 +1396,10 @@ __epm_addrepo_altlinux() ...@@ -1375,6 +1396,10 @@ __epm_addrepo_altlinux()
return 0 return 0
;; ;;
archive) archive)
if [ "$2" = "sisyphus" ] ; then
branch="$2"
shift
fi
datestr="$2" datestr="$2"
echo "$datestr" | grep -Eq "^20[0-2][0-9]/[01][0-9]/[0-3][0-9]$" || fatal "use follow date format: 2017/01/31" echo "$datestr" | grep -Eq "^20[0-2][0-9]/[01][0-9]/[0-3][0-9]$" || fatal "use follow date format: 2017/01/31"
...@@ -1391,20 +1416,21 @@ __epm_addrepo_altlinux() ...@@ -1391,20 +1416,21 @@ __epm_addrepo_altlinux()
;; ;;
esac esac
assure_exists apt-repo
if tasknumber "$repo" >/dev/null ; then if tasknumber "$repo" >/dev/null ; then
sudocmd_foreach "apt-repo $dryrun add" $(tasknumber "$repo") #sudocmd_foreach "apt-repo $dryrun add" $(tasknumber "$repo")
for i in $repo ; do
epm repo add "https://git.altlinux.org/tasks/$i/build/repo"
done
return return
fi fi
case "$repo" in case "$repo" in
c10f2|c10f1|c9f2|c9f1|c9) c10f2|c10f1|c9f2|c9f1|c9)
__epm_addrepo_alt_repo "$repo" __epm_addrepo_main_alt_repo "$repo"
return return
;; ;;
p11|p10|p9|p8) p11|p10|p9|p8)
__epm_addrepo_alt_repo "$repo" __epm_addrepo_main_alt_repo "$repo"
return return
;; ;;
esac esac
...@@ -1419,8 +1445,15 @@ __epm_addrepo_altlinux() ...@@ -1419,8 +1445,15 @@ __epm_addrepo_altlinux()
assure_exists $mh apt-https assure_exists $mh apt-https
fi fi
sudocmd apt-repo $dryrun add "$repo" # when add correct sources.list string
if echo "$repo" | grep "^rpm " ; then
__epm_addrepo_apt "$repo"
return
fi
# TODO: rewrite this fallback
assure_exists apt-repo
sudocmd apt-repo $dryrun add "$repo"
} }
...@@ -1468,12 +1501,9 @@ __epm_addrepo_astra() ...@@ -1468,12 +1501,9 @@ __epm_addrepo_astra()
;; ;;
esac esac
echo "Use workaround for AstraLinux ..." #echo "Use workaround for AstraLinux ..."
# aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for AstraLinuxCE/orel # aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for AstraLinuxCE/orel
# don't add again __epm_addrepo_apt "$repo"
epm repo list --quiet | grep -q -F "$repo" && return 0
[ -z "$(tail -n1 /etc/apt/sources.list)" ] || echo "" | sudocmd tee -a /etc/apt/sources.list
echo "$repo" | sudocmd tee -a /etc/apt/sources.list
return return
} }
...@@ -1969,6 +1999,7 @@ __epm_autoremove_altrpm_lib() ...@@ -1969,6 +1999,7 @@ __epm_autoremove_altrpm_lib()
| grep -E -v -- "$develrule" \ | grep -E -v -- "$develrule" \
| grep -E -v -- "-(debuginfo)$" \ | grep -E -v -- "-(debuginfo)$" \
| grep -E -v -- "-(util|utils|tool|tools|plugin|daemon|help)$" \ | grep -E -v -- "-(util|utils|tool|tools|plugin|daemon|help)$" \
| grep -E -v -- "^(libva-|libvdpau-va-gl)$" \
| grep -E -v -- "^(libsystemd|libreoffice|libnss|libvirt-client|libvirt-daemon|libsasl2-plugin|eepm|distro_info)" ) | grep -E -v -- "^(libsystemd|libreoffice|libnss|libvirt-client|libvirt-daemon|libsasl2-plugin|eepm|distro_info)" )
pkgs=$(skip_manually_installed $fullpkgs) pkgs=$(skip_manually_installed $fullpkgs)
...@@ -2612,7 +2643,7 @@ __epm_apt_set_lists_pkg() ...@@ -2612,7 +2643,7 @@ __epm_apt_set_lists_pkg()
if [ "$BASEDISTRNAME" = "alt" ] ; then if [ "$BASEDISTRNAME" = "alt" ] ; then
pkg="pkglist" pkg="pkglist"
# see update-kernel: Use Dir::State::lists for apt update freshness check (ALT bug 46987) # see update-kernel: Use Dir::State::lists for apt update freshness check (ALT bug 46987)
eval "$(apt-config shell LISTS Dir::State::lists/f)" eval "$(a='' apt-config shell LISTS Dir::State::lists/f)"
fi fi
} }
...@@ -3087,14 +3118,14 @@ try_fix_apt_rpm_dupls() ...@@ -3087,14 +3118,14 @@ try_fix_apt_rpm_dupls()
local TODEL local TODEL
for i in $PKGLIST ; do for i in $PKGLIST ; do
local pkg=${i/.32bit/} local pkg=${i/.32bit/}
local todel="$(rpm -q $pkg | head -n1)" local todel="$(a='' rpm -q $pkg | head -n1)"
local todel2="$(rpm -q $pkg | head -n2 | tail -n1)" local todel2="$(a='' rpm -q $pkg | head -n2 | tail -n1)"
if [ "$todel" = "$todel2" ] ; then if [ "$todel" = "$todel2" ] ; then
message "Fix the same name duplicates for $pkg..." message "Fix the same name duplicates for $pkg..."
sudocmd rpm -e "$todel" --allmatches --nodeps --justdb && epm install $pkg && continue sudocmd rpm -e "$todel" --allmatches --nodeps --justdb && epm install $pkg && continue
fi fi
# first use older package # first use older package
[ "$(rpmevrcmp "$todel" "$todel2")" = "1" ] && todel="$todel2" [ "$(a='' rpmevrcmp "$todel" "$todel2")" = "1" ] && todel="$todel2"
sudocmd rpm -e "$todel" || TODEL="$TODEL $todel" sudocmd rpm -e "$todel" || TODEL="$TODEL $todel"
done done
[ -n "$TODEL" ] && sudocmd rpm -e $TODEL [ -n "$TODEL" ] && sudocmd rpm -e $TODEL
...@@ -3634,7 +3665,6 @@ __epm_download_alt() ...@@ -3634,7 +3665,6 @@ __epm_download_alt()
if tasknumber "$@" >/dev/null ; then if tasknumber "$@" >/dev/null ; then
local installlist="$(get_task_packages $*)" local installlist="$(get_task_packages $*)"
# hack: drop -devel packages to avoid package provided by multiple packages
installlist="$(estrlist reg_exclude ".*-devel .*-devel-static .*-checkinstall .*-debuginfo" "$installlist")" installlist="$(estrlist reg_exclude ".*-devel .*-devel-static .*-checkinstall .*-debuginfo" "$installlist")"
[ -n "$verbose" ] && info 'Packages from task(s): $installlist' [ -n "$verbose" ] && info 'Packages from task(s): $installlist'
...@@ -3799,7 +3829,7 @@ __epm_korinf_install_eepm() ...@@ -3799,7 +3829,7 @@ __epm_korinf_install_eepm()
[ -n "$interactive" ] || non_interactive="--auto" [ -n "$interactive" ] || non_interactive="--auto"
fi fi
# as now, can't install one package from task (and old apt-repo can't install one package) # as now, can't install one package from task
if false && [ "$BASEDISTRNAME" = "alt" ] && [ -z "$direct" ] ; then if false && [ "$BASEDISTRNAME" = "alt" ] && [ -z "$direct" ] ; then
local task="$(docmd eget -O- https://eepm.ru/vendor/alt/task)" local task="$(docmd eget -O- https://eepm.ru/vendor/alt/task)"
if [ -n "$task" ] ; then if [ -n "$task" ] ; then
...@@ -5176,7 +5206,7 @@ get_latest_kernel_rel() ...@@ -5176,7 +5206,7 @@ get_latest_kernel_rel()
kmaxver= kmaxver=
while read version while read version
do do
comparever="$(rpmevrcmp "$kmaxver" "$version")" comparever="$(a='' rpmevrcmp "$kmaxver" "$version")"
[ "$comparever" -lt 0 ] && kmaxver="$version" ||: [ "$comparever" -lt 0 ] && kmaxver="$version" ||:
done <<<"$(epm print version-release for package kernel-image-$kernel_flavour)" done <<<"$(epm print version-release for package kernel-image-$kernel_flavour)"
[ -z "$kmaxver" ] && echo "$rrel" && return [ -z "$kmaxver" ] && echo "$rrel" && return
...@@ -5256,7 +5286,6 @@ epm_install_alt_names() ...@@ -5256,7 +5286,6 @@ epm_install_alt_names()
epm_install_alt_kernel_module $kmlist || return epm_install_alt_kernel_module $kmlist || return
} }
apt_repo_prepare() apt_repo_prepare()
{ {
assure_exists apt-repo assure_exists apt-repo
...@@ -5277,14 +5306,39 @@ apt_repo_after() ...@@ -5277,14 +5306,39 @@ apt_repo_after()
epm_install_alt_tasks() epm_install_alt_tasks()
{ {
local res
# TODO: don't use apt-repo
apt_repo_prepare
sudocmd_foreach "apt-repo test" $(tasknumber "$@") local installlist="$(get_task_packages "$@")"
res=$?
[ -n "$verbose" ] && info "Packages from task(s): $installlist"
apt_repo_after if [ -n "$full" ] ; then
installlist="$(estrlist reg_exclude ".*-checkinstall .*-debuginfo" "$installlist")"
else
# hack: drop -devel packages to avoid package provided by multiple packages
installlist="$(estrlist reg_exclude ".*-devel .*-devel-static .*-checkinstall .*-debuginfo" "$installlist")"
fi
# TODO: need we this option?
#if [ -z "$force" ] ; then
# # skip i586- on install
installlist="$(estrlist reg_exclude "i586-.*" "$installlist")"
#fi
[ -n "$verbose" ] && info "Packages to install: $installlist"
if [ -z "$installlist" ] ; then
warning 'There is no installed packages for upgrade from task $*'
return 22
fi
local res
try_change_alt_repo
epm_addrepo "$@"
__epm_update
(pkg_names="$installlist" epm_install)
res=$?
epm_removerepo "$@"
end_change_alt_repo
return $res return $res
} }
...@@ -5655,8 +5709,8 @@ epm_install_files_rpm() ...@@ -5655,8 +5709,8 @@ epm_install_files_rpm()
# File bin/epm-kernel_update: # File bin/epm-kernel_update:
EFI=$(bootctl -p 2>/dev/null) EFI=$(a="" bootctl -p 2>/dev/null)
sdboot_loader_id=$(bootctl status 2>/dev/null | grep -oP '(?<=id: ).*') sdboot_loader_id=$(a="" bootctl status 2>/dev/null | grep -oP '(?<=id: ).*')
if [ -f "$EFI/loader/entries/$sdboot_loader_id" ]; then if [ -f "$EFI/loader/entries/$sdboot_loader_id" ]; then
entry_file="$EFI/loader/entries/$sdboot_loader_id" entry_file="$EFI/loader/entries/$sdboot_loader_id"
...@@ -8243,9 +8297,9 @@ __epm_get_hilevel_nameform() ...@@ -8243,9 +8297,9 @@ __epm_get_hilevel_nameform()
apt-rpm) apt-rpm)
# use # as delimeter for apt # use # as delimeter for apt
local pkg local pkg
pkg=$(rpm -q --queryformat "%{NAME}=%{SERIAL}:%{VERSION}-%{RELEASE}\n" -- $1) pkg=$(a='' rpm -q --queryformat "%{NAME}=%{SERIAL}:%{VERSION}-%{RELEASE}\n" -- $1)
# for case if serial is missed # for case if serial is missed
echo $pkg | grep -q "(none)" && pkg=$(rpm -q --queryformat "%{NAME}#%{VERSION}-%{RELEASE}\n" -- $1) echo $pkg | grep -q "(none)" && pkg=$(a='' rpm -q --queryformat "%{NAME}#%{VERSION}-%{RELEASE}\n" -- $1)
# HACK: can use only for multiple install packages like kernel # HACK: can use only for multiple install packages like kernel
echo $pkg | grep -q kernel || return 1 echo $pkg | grep -q kernel || return 1
echo $pkg echo $pkg
...@@ -8256,7 +8310,7 @@ __epm_get_hilevel_nameform() ...@@ -8256,7 +8310,7 @@ __epm_get_hilevel_nameform()
local pkg local pkg
#pkg=$(rpm -q --queryformat "%{EPOCH}:%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -- $1) #pkg=$(rpm -q --queryformat "%{EPOCH}:%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -- $1)
#echo $pkg | grep -q "(none)" && pkg=$(rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -- $1) #echo $pkg | grep -q "(none)" && pkg=$(rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -- $1)
pkg=$(rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -- $1) pkg=$(a='' rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -- $1)
echo $pkg echo $pkg
return return
;; ;;
...@@ -8273,7 +8327,7 @@ __epm_get_hilevel_name() ...@@ -8273,7 +8327,7 @@ __epm_get_hilevel_name()
local pkg local pkg
# get short form in pkg # get short form in pkg
# FIXME: where we use it? continue or pkg=$i? # FIXME: where we use it? continue or pkg=$i?
quiet=1 pkg=$(__epm_query_shortname "$i") || pkg="$i" #continue # drop not installed packages quiet=1 pkg=$(__epm_query_shortname "$i" 2>/dev/null) || pkg="$i" #continue # drop not installed packages
# if already short form, skipped # if already short form, skipped
[ "$pkg" = "$i" ] && echo "$i" && continue [ "$pkg" = "$i" ] && echo "$i" && continue
# try get long form or use short form # try get long form or use short form
...@@ -8340,7 +8394,7 @@ __epm_query_name() ...@@ -8340,7 +8394,7 @@ __epm_query_name()
eopkg) eopkg)
showcmd eopkg blame $1 showcmd eopkg blame $1
local str local str
str="$(LC_ALL=C eopkg blame $1 | grep "^Name")" str="$(LC_ALL=C a='' eopkg blame $1 | grep "^Name")"
[ -n "$str" ] || return 1 [ -n "$str" ] || return 1
echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1-\2-\3|" echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1-\2-\3|"
return return
...@@ -8348,7 +8402,7 @@ __epm_query_name() ...@@ -8348,7 +8402,7 @@ __epm_query_name()
pisi) pisi)
showcmd pisi blame $1 showcmd pisi blame $1
local str local str
str="$(LC_ALL=C pisi blame $1 | grep "^Name")" str="$(LC_ALL=C a='' pisi blame $1 | grep "^Name")"
[ -n "$str" ] || return 1 [ -n "$str" ] || return 1
echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1-\2-\3|" echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1-\2-\3|"
return return
...@@ -8408,7 +8462,7 @@ __epm_query_shortname() ...@@ -8408,7 +8462,7 @@ __epm_query_shortname()
eopkg) eopkg)
showcmd eopkg blame $1 showcmd eopkg blame $1
local str local str
str="$(LC_ALL=C eopkg blame $1 | grep "^Name")" str="$(LC_ALL=C a='' eopkg blame $1 | grep "^Name")"
[ -n "$str" ] || return 1 [ -n "$str" ] || return 1
echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1|" echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1|"
return return
...@@ -8416,7 +8470,7 @@ __epm_query_shortname() ...@@ -8416,7 +8470,7 @@ __epm_query_shortname()
pisi) pisi)
showcmd pisi blame $1 showcmd pisi blame $1
local str local str
str="$(LC_ALL=C pisi blame $1 | grep "^Name")" str="$(LC_ALL=C a='' pisi blame $1 | grep "^Name")"
[ -n "$str" ] || return 1 [ -n "$str" ] || return 1
echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1|" echo "$str" | sed -e "s|Name[[:space:]]*: \(.*\), version: \(.*\), release: \(.*\)|\1|"
return return
...@@ -8539,7 +8593,7 @@ dpkg_print_name_version() ...@@ -8539,7 +8593,7 @@ dpkg_print_name_version()
local ver i local ver i
for i in "$@" ; do for i in "$@" ; do
[ -n "$i" ] || continue [ -n "$i" ] || continue
ver=$(dpkg -s "$i" 2>/dev/null | grep "Version:" | sed -e "s|Version: ||g") ver=$(a='' dpkg -s "$i" 2>/dev/null | grep "Version:" | sed -e "s|Version: ||g")
if [ -z "$ver" ] ; then if [ -z "$ver" ] ; then
echo "$i" echo "$i"
else else
...@@ -8555,7 +8609,7 @@ __do_query() ...@@ -8555,7 +8609,7 @@ __do_query()
case $PMTYPE in case $PMTYPE in
*-dpkg) *-dpkg)
showcmd dpkg -S "$1" showcmd dpkg -S "$1"
dpkg_print_name_version "$(dpkg -S "$1" | grep -v "^diversion by" | sed -e "s|:.*||")" dpkg_print_name_version "$(a='' dpkg -S "$1" | grep -v "^diversion by" | sed -e "s|:.*||")"
return ;; return ;;
*-rpm) *-rpm)
CMD="rpm -qf" CMD="rpm -qf"
...@@ -8987,13 +9041,13 @@ __p11_upgrade_fix() ...@@ -8987,13 +9041,13 @@ __p11_upgrade_fix()
# файл /etc/openssl/openssl.cnf из устанавливаемого пакета openssl-config-3.2.0-alt1.noarch конфликтует с файлом из пакета libcrypto10-1.0.2u-alt1.p9.2.x86_64 # файл /etc/openssl/openssl.cnf из устанавливаемого пакета openssl-config-3.2.0-alt1.noarch конфликтует с файлом из пакета libcrypto10-1.0.2u-alt1.p9.2.x86_64
docmd epm remove libcrypto10 libssl10 docmd epm remove libcrypto10 libssl10
# libcrypto1.1 fix # libcrypto1.1 workaround
docmd epm repo save docmd epm repo save
docmd epm repo rm all docmd epm repo rm all
docmd apt-repo add branch sisyphus 2024/05/22 docmd epm repo add archive sisyphus 2024/05/22
docmd epm update docmd epm update
docmd epm install libcrypto1.1 docmd epm install libcrypto1.1
docmd epm repo rm all #docmd epm repo rm all
docmd epm repo restore docmd epm repo restore
} }
...@@ -9619,6 +9673,9 @@ epm_remove_low() ...@@ -9619,6 +9673,9 @@ epm_remove_low()
cd /tmp || fatal cd /tmp || fatal
__epm_check_vendor $@ __epm_check_vendor $@
set_sudo set_sudo
sudocmd rpm -ev $noscripts $nodeps $@
return
# we don't need RPMISNOTINSTALLED as for now
store_output sudocmd rpm -ev $noscripts $nodeps $@ store_output sudocmd rpm -ev $noscripts $nodeps $@
# rpm returns number of packages if failed on removing # rpm returns number of packages if failed on removing
__check_rpm_e_result $RC_STDOUT $? __check_rpm_e_result $RC_STDOUT $?
...@@ -9640,7 +9697,7 @@ epm_remove_low() ...@@ -9640,7 +9697,7 @@ epm_remove_low()
sudocmd emerge --unmerge $@ sudocmd emerge --unmerge $@
return ;; return ;;
pacman) pacman)
sudocmd pacman -R $@ sudocmd pacman $(subst_option non_interactive --noconfirm) -R $@
return ;; return ;;
eopkg) eopkg)
sudocmd eopkg $(subst_option nodeps --ignore-dependency) remove $@ sudocmd eopkg $(subst_option nodeps --ignore-dependency) remove $@
...@@ -9888,7 +9945,6 @@ epm_remove() ...@@ -9888,7 +9945,6 @@ epm_remove()
if [ "$BASEDISTRNAME" = "alt" ] ; then if [ "$BASEDISTRNAME" = "alt" ] ; then
if tasknumber "$pkg_names" >/dev/null ; then if tasknumber "$pkg_names" >/dev/null ; then
assure_exists apt-repo
pkg_names="$(get_task_packages $pkg_names)" pkg_names="$(get_task_packages $pkg_names)"
fi fi
fi fi
...@@ -9935,7 +9991,9 @@ epm_remove() ...@@ -9935,7 +9991,9 @@ epm_remove()
epm_remove_low $pkg_names && return epm_remove_low $pkg_names && return
local STATUS=$? local STATUS=$?
if [ -n "$direct" ] || [ -n "$nodeps" ] || [ "$STATUS" = "$RPMISNOTINSTALLED" ]; then # || [ "$STATUS" = "$RPMISNOTINSTALLED" ]
# see https://github.com/Etersoft/eepm/issues/236
if [ -n "$direct" ] || [ -n "$nodeps" ] ; then
[ -n "$force" ] || return $STATUS [ -n "$force" ] || return $STATUS
fi fi
...@@ -10028,6 +10086,38 @@ epm_remove_old_kernels() ...@@ -10028,6 +10086,38 @@ epm_remove_old_kernels()
# File bin/epm-removerepo: # File bin/epm-removerepo:
__epm_removerepo_apt()
{
local repo="$*"
[ -n "$repo" ] || fatal "empty repo name"
if [ -n "$dryrun" ] ; then
echo "$repo"
return
fi
local sc="sudocmd"
[ -z "$quiet" ] || sc="sudorun"
local i
for i in /etc/apt/sources.list /etc/apt/sources.list.d/*.list ; do
[ -s "$i" ] || continue
# touch file only when it is needed
grep -q -E "$repo" $i || continue
$sc sed -i -e "s|.*$repo.*||" $i
done
}
__epm_grep_repo_list()
{
while [ -n "$1" ] ; do
epm --quiet repo list | grep -E "$1"
shift
done
}
__epm_removerepo_alt_grepremove() __epm_removerepo_alt_grepremove()
{ {
local rl local rl
...@@ -10035,20 +10125,14 @@ __epm_removerepo_alt_grepremove() ...@@ -10035,20 +10125,14 @@ __epm_removerepo_alt_grepremove()
if [ "$1" = "all" ] || rhas "$1" "^rpm" ; then if [ "$1" = "all" ] || rhas "$1" "^rpm" ; then
rl="$1" rl="$1"
else else
rl="$( epm --quiet repolist 2>/dev/null | grep -F "$1")" rl="$(__epm_grep_repo_list "$@" 2>/dev/null)"
[ -z "$rl" ] && warning 'Can'\''t find '$1' in the repos (see # epm repolist output)' && return 1 if [ -z "$rl" ] ; then
[ -n "$verbose" ] && warning 'Can'\''t find '$*' in the repos (see # epm repolist output)'
return 1
fi
fi fi
echo "$rl" | while read rp ; do echo "$rl" | while read rp ; do
# TODO: print removed lines __epm_removerepo_apt "$rp"
if [ -n "$dryrun" ] ; then
docmd apt-repo $dryrun rm "$rp"
continue
fi
if [ -z "$quiet" ] ; then
sudocmd apt-repo $dryrun rm "$rp"
else
sudorun apt-repo $dryrun rm "$rp"
fi
done done
} }
...@@ -10057,12 +10141,10 @@ __epm_removerepo_alt() ...@@ -10057,12 +10141,10 @@ __epm_removerepo_alt()
local repo="$*" local repo="$*"
[ -n "$repo" ] || fatal "No such repo or task. Use epm repo remove <regexp|autoimports|archive|tasks|TASKNUMBER>" [ -n "$repo" ] || fatal "No such repo or task. Use epm repo remove <regexp|autoimports|archive|tasks|TASKNUMBER>"
assure_exists apt-repo
if tasknumber "$repo" >/dev/null ; then if tasknumber "$repo" >/dev/null ; then
local tn local tn
for tn in $(tasknumber "$repo") ; do for tn in $(tasknumber "$repo") ; do
__epm_removerepo_alt_grepremove " repo/$tn/" __epm_removerepo_alt_grepremove " repo/$tn/" "/tasks/$tn " "/$tn[ /]build/repo"
done done
return return
fi fi
...@@ -10071,32 +10153,41 @@ __epm_removerepo_alt() ...@@ -10071,32 +10153,41 @@ __epm_removerepo_alt()
case "$1" in case "$1" in
autoimports) autoimports)
info "remove autoimports repo" info "removing autoimports repo"
[ -n "$DISTRVERSION" ] || fatal "Empty DISTRVERSION" [ -n "$DISTRVERSION" ] || fatal "Empty DISTRVERSION"
repo="autoimports.$branch" repo="autoimports.$branch"
sudocmd apt-repo $dryrun rm "$repo" __epm_removerepo_alt_grepremove "$repo/"
;; ;;
archive) archive)
info "remove archive repos" info "removing archive repos"
__epm_removerepo_alt_grepremove "archive/" __epm_removerepo_alt_grepremove "archive/"
;; ;;
korinf) korinf)
info "remove korinf repo" info "removing korinf repo"
__epm_removerepo_alt_grepremove "Korinf/" __epm_removerepo_alt_grepremove "Korinf/"
;; ;;
cdroms)
info "removing cdroms entries"
__epm_removerepo_alt_grepremove "/^[[:space:]]*rpm[[:space:]]+cdrom:/" "/^cdrom(s)?$/"
;;
tasks) tasks)
info "remove task repos" info "removing tasks' repos"
__epm_removerepo_alt_grepremove " repo/[0-9]+/" __epm_removerepo_alt_grepremove " repo/[0-9]+/" "/tasks/[0-9]+ " "/[0-9]+[ /]build/repo"
;; ;;
task) task)
shift shift
__epm_removerepo_alt_grepremove " repo/$1/" __epm_removerepo_alt_grepremove " repo/$1/" "/tasks/$1 " "/$1[ /]build/repo"
;; ;;
-*) -*)
fatal "epm removerepo: no options are supported" fatal "epm removerepo: no options are supported"
;; ;;
*) *)
__epm_removerepo_alt_grepremove "$*" if echo "$*" | grep -q "^rpm" ] ; then
__epm_removerepo_apt "$*"
else
info "removing source.list entries by mask '$*'"
__epm_removerepo_alt_grepremove "$*"
fi
;; ;;
esac esac
...@@ -10112,12 +10203,8 @@ case $BASEDISTRNAME in ...@@ -10112,12 +10203,8 @@ case $BASEDISTRNAME in
;; ;;
"astra") "astra")
echo "Use workaround for AstraLinux" echo "Use workaround for AstraLinux"
[ -n "$*" ] || fatal "empty repo name"
# aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for AstraLinuxCE/orel # aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for AstraLinuxCE/orel
sudocmd sed -i -e "s|.*$*.*||" /etc/apt/sources.list __epm_removerepo_apt "$@"
if [ -d /etc/apt/sources.list.d ] && ls /etc/apt/sources.list.d/*.list >/dev/null 2>/dev/null ; then
sudocmd sed -i -e "s|.*$*.*||" /etc/apt/sources.list.d/*.list
fi
return return
;; ;;
esac; esac;
...@@ -10759,9 +10846,7 @@ epm_repo() ...@@ -10759,9 +10846,7 @@ epm_repo()
epm_addkey "$@" epm_addkey "$@"
;; ;;
clean) # HELPCMD: remove temp. repos (tasks and CD-ROMs) clean) # HELPCMD: remove temp. repos (tasks and CD-ROMs)
[ "$BASEDISTRNAME" = "alt" ] || fatal "TODO: only ALT now is supported" epm_repoclean "$@"
# TODO: check for ALT
sudocmd apt-repo $dryrun clean
;; ;;
save) # HELPCMD: save sources lists to a temp place save) # HELPCMD: save sources lists to a temp place
epm_reposave "$@" epm_reposave "$@"
...@@ -11157,14 +11242,12 @@ __repofix_filter_vendor() ...@@ -11157,14 +11242,12 @@ __repofix_filter_vendor()
__replace_alt_version_in_repo() __replace_alt_version_in_repo()
{ {
local i local i
assure_exists apt-repo
#echo "Upgrading $DISTRNAME from $1 to $2 ..." #echo "Upgrading $DISTRNAME from $1 to $2 ..."
a='' apt-repo list | sed -E -e "s|($1)|{\1}->{$2}|g" | grep -E --color -- "$1" epm --quiet repo list | sed -E -e "s|($1)|{\1}->{$2}|g" | grep -E --color -- "$1"
# ask and replace only we will have changes # ask and replace only we will have changes
if a='' apt-repo list | grep -E -q -- "$1" ; then if epm --quiet repo list | grep -E -q -- "$1" ; then
__replace_text_in_alt_repo "/^ *#/! s!$1!$2!g" __replace_text_in_alt_repo "/^ *#/! s!$1!$2!g"
fi fi
#docmd apt-repo list
} }
__alt_replace_sign_name() __alt_replace_sign_name()
...@@ -11286,7 +11369,7 @@ __change_repo() ...@@ -11286,7 +11369,7 @@ __change_repo()
local SHORT="$1" local SHORT="$1"
local REPLTO="$2" local REPLTO="$2"
local NN local NN
a="" apt-repo list | grep -v $SHORT | grep -v "file:/" | while read nn ; do epm --quiet repo list | grep -v $SHORT | grep -v "file:/" | while read nn ; do
NN="$(__subst_with_repo_url "$nn" "$REPLTO")" NN="$(__subst_with_repo_url "$nn" "$REPLTO")"
[ "$NN" = "$nn" ] && continue [ "$NN" = "$nn" ] && continue
epm addrepo "$NN" && epm removerepo "$nn" || return 1 epm addrepo "$NN" && epm removerepo "$nn" || return 1
...@@ -11339,14 +11422,13 @@ epm_repofix() ...@@ -11339,14 +11422,13 @@ epm_repofix()
case $BASEDISTRNAME in case $BASEDISTRNAME in
"alt") "alt")
assure_exists apt-repo [ -n "$quiet" ] || docmd epm repo list
[ -n "$quiet" ] || docmd apt-repo list
assure_root assure_root
__fix_alt_sources_list /etc/apt/sources.list __fix_alt_sources_list /etc/apt/sources.list
__fix_alt_sources_list /etc/apt/sources.list.d/*.list __fix_alt_sources_list /etc/apt/sources.list.d/*.list
[ -n "$quiet" ] || docmd apt-repo list [ -n "$quiet" ] || docmd epm repo list
return return
;; ;;
esac esac
...@@ -11359,6 +11441,12 @@ esac ...@@ -11359,6 +11441,12 @@ esac
} }
epm_repoclean()
{
epm repo remove tasks
epm repo remove cdroms
}
# File bin/epm-repoindex: # File bin/epm-repoindex:
...@@ -11481,20 +11569,24 @@ epm_repocreate() ...@@ -11481,20 +11569,24 @@ epm_repocreate()
__print_apt_sources_list() __print_apt_sources_list()
{ {
local regexp="$1"
shift
local i local i
for i in $@ ; do for i in $@ ; do
test -r "$i" || continue test -r "$i" || continue
grep -v -- "^.*#" $i grep -v -- "^.*#" $i
done | grep -v -- "^ *\$" done | grep -v -- "^ *\$" | grep -E "$regexp"
} }
__print_apt_sources_list_full() __print_apt_sources_list_full()
{ {
local regexp="$1"
shift
local i local i
for i in $@ ; do for i in $@ ; do
test -r "$i" || continue test -r "$i" || continue
grep -- "^[[:space:]]*#*[[:space:]]*rpm" $i grep -- "^[[:space:]]*#*[[:space:]]*rpm" $i
done | grep -v -- "^ *\$" done | grep -v -- "^ *\$" | grep -E "$regexp"
} }
__print_apt_sources_list_list() __print_apt_sources_list_list()
...@@ -11515,21 +11607,25 @@ __info_cyan() ...@@ -11515,21 +11607,25 @@ __info_cyan()
__print_apt_sources_list_verbose() __print_apt_sources_list_verbose()
{ {
local regexp="$1"
shift
local i local i
for i in $@ ; do for i in $@ ; do
test -r "$i" || continue test -r "$i" || continue
grep -v -- "^.*#" $i | grep -v -- "^ *\$" | grep -q . && __info_cyan "$i:" || continue grep -v -- "^.*#" $i | grep -v -- "^ *\$" | grep -q . && __info_cyan "$i:" || continue
grep -v -- "^.*#" $i | grep -v -- "^ *\$" | sed -e 's|^| |' grep -v -- "^.*#" $i | grep -v -- "^ *\$" | sed -e 's|^| |' | grep -E --color "$regexp"
done done
} }
__print_apt_sources_list_verbose_full() __print_apt_sources_list_verbose_full()
{ {
local regexp="$1"
shift
local i local i
for i in $@ ; do for i in $@ ; do
test -r "$i" || continue test -r "$i" || continue
grep -- "^[[:space:]]*#*[[:space:]]*rpm" $i | grep -v -- "^ *\$" | grep -q . && echo && __info_cyan "$i:" || continue grep -- "^[[:space:]]*#*[[:space:]]*rpm" $i | grep -v -- "^ *\$" | grep -q . && echo && __info_cyan "$i:" || continue
grep -- "^[[:space:]]*#*[[:space:]]*rpm" $i | grep -v -- "^ *\$" | sed -e 's|^| |' -e "s|\(.*#.*\)|$(set_color $WHITE)\1$(restore_color)|" grep -- "^[[:space:]]*#*[[:space:]]*rpm" $i | grep -v -- "^ *\$" | sed -e 's|^| |' -e "s|\(.*#.*\)|$(set_color $WHITE)\1$(restore_color)|" | grep -E --color "$regexp"
done done
} }
...@@ -11538,18 +11634,19 @@ print_apt_sources_list() ...@@ -11538,18 +11634,19 @@ print_apt_sources_list()
local LISTS='/etc/apt/sources.list /etc/apt/sources.list.d/*.list' local LISTS='/etc/apt/sources.list /etc/apt/sources.list.d/*.list'
if [ "$1" = "-a" ] || [ "$1" = "--all" ] ; then if [ "$1" = "-a" ] || [ "$1" = "--all" ] ; then
shift
if [ -n "$quiet" ] ; then if [ -n "$quiet" ] ; then
__print_apt_sources_list_full $LISTS __print_apt_sources_list_full "$*" $LISTS
else else
__print_apt_sources_list_verbose_full $LISTS __print_apt_sources_list_verbose_full "$*" $LISTS
fi fi
return return
fi fi
if [ -n "$quiet" ] ; then if [ -n "$quiet" ] ; then
__print_apt_sources_list $LISTS __print_apt_sources_list "$*" $LISTS
else else
__print_apt_sources_list_verbose $LISTS __print_apt_sources_list_verbose "$*" $LISTS
fi fi
} }
...@@ -11561,12 +11658,11 @@ epm_repolist() ...@@ -11561,12 +11658,11 @@ epm_repolist()
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm)
#assure_exists apt-repo
if tasknumber "$1" >/dev/null ; then if tasknumber "$1" >/dev/null ; then
# FIXME: unexpectedly, a list of packages instead of repositories.
get_task_packages "$@" get_task_packages "$@"
else else
print_apt_sources_list "$@" print_apt_sources_list "$@"
#docmd apt-repo list
fi fi
;; ;;
deepsolver-rpm) deepsolver-rpm)
...@@ -11783,17 +11879,19 @@ __restore_alt_repo_lists() ...@@ -11783,17 +11879,19 @@ __restore_alt_repo_lists()
info 'Restoring copy of all sources lists from $SAVELISTDIR ...' info 'Restoring copy of all sources lists from $SAVELISTDIR ...'
local i local i
[ -d "$SAVELISTDIR/apt" ] || return 0 [ -d "$SAVELISTDIR/apt" ] || return 0
mkdir -p $SAVELISTDIR/apt/ $SAVELISTDIR/apt/sources.list.d/
for i in /etc/apt/sources.list /etc/apt/sources.list.d/*.list ; do mkdir -p /etc/apt/ /etc/apt/sources.list.d/
for i in $SAVELISTDIR/apt/sources.list $SAVELISTDIR/apt/sources.list.d/*.list ; do
[ -s "$i" ] || continue [ -s "$i" ] || continue
local DD="$(echo "$i" | sed -e "s|/etc|$SAVELISTDIR|")" local DD="$(echo "$i" | sed -e "s|$SAVELISTDIR|/etc|")"
# restore only if there are differences # restore only if there are differences
if diff -q "$DD" "$i" >/dev/null ; then if diff -q "$i" "$DD" >/dev/null ; then
rm -f $verbose "$DD" rm -f $verbose "$i"
else else
mv $verbose "$DD" "$i" || warning 'Can'\''t restore $i file' mv $verbose "$i" "$DD" || warning 'Can'\''t restore $i file'
fi fi
done done
rmdir "$SAVELISTDIR/apt/sources.list.d" "$SAVELISTDIR/apt"
} }
__on_error_restore_alt_repo_lists() __on_error_restore_alt_repo_lists()
...@@ -11915,7 +12013,7 @@ get_linked_shared_libs() ...@@ -11915,7 +12013,7 @@ get_linked_shared_libs()
assure_exists readelf binutils assure_exists readelf binutils
#is_command readelf || fatal "Can't get required shared library: readelf is missed. Try install binutils package." #is_command readelf || fatal "Can't get required shared library: readelf is missed. Try install binutils package."
#ldd "$exe" | sed -e 's|[[:space:]]*||' | grep "^lib.*[[:space:]]=>[[:space:]]\(/usr/lib\|/lib\)" | sed -e 's|[[:space:]].*||' #ldd "$exe" | sed -e 's|[[:space:]]*||' | grep "^lib.*[[:space:]]=>[[:space:]]\(/usr/lib\|/lib\)" | sed -e 's|[[:space:]].*||'
LC_ALL=C readelf -d "$1" | grep "(NEEDED)" | grep "Shared library:" | sed -e 's|.*Shared library: \[||' -e 's|\]$||' | grep "^lib" LC_ALL=C a="" readelf -d "$1" | grep "(NEEDED)" | grep "Shared library:" | sed -e 's|.*Shared library: \[||' -e 's|\]$||' | grep "^lib"
} }
__epm_elf32_requires() __epm_elf32_requires()
...@@ -11973,7 +12071,7 @@ epm_requires_files() ...@@ -11973,7 +12071,7 @@ epm_requires_files()
;; ;;
pisi) pisi)
showcmd pisi info $fl showcmd pisi info $fl
LC_ALL=C pisi info $fl | grep "^Dependencies" | head -n1 | sed -e "s|Dependencies[[:space:]]*: ||" LC_ALL=C a='' pisi info $fl | grep "^Dependencies" | head -n1 | sed -e "s|Dependencies[[:space:]]*: ||"
;; ;;
ELF) ELF)
__epm_elf_requires $fl __epm_elf_requires $fl
...@@ -12037,6 +12135,7 @@ case $PMTYPE in ...@@ -12037,6 +12135,7 @@ case $PMTYPE in
fi fi
;; ;;
pacman) pacman)
assure_exists pactree pacman-contrib
CMD="pactree" CMD="pactree"
;; ;;
apt-dpkg|aptitude-dpkg) apt-dpkg|aptitude-dpkg)
...@@ -12072,7 +12171,7 @@ case $PMTYPE in ...@@ -12072,7 +12171,7 @@ case $PMTYPE in
;; ;;
pisi) pisi)
showcmd pisi info $pkg_names showcmd pisi info $pkg_names
LC_ALL=C pisi info $pkg_names | grep "^Dependencies" | sed -e "s|Dependencies[[:space:]]*: ||" LC_ALL=C a='' pisi info $pkg_names | grep "^Dependencies" | sed -e "s|Dependencies[[:space:]]*: ||"
return return
;; ;;
xbps) xbps)
...@@ -13079,26 +13178,50 @@ tasknumber() ...@@ -13079,26 +13178,50 @@ tasknumber()
isnumber "$num" && echo "$*" isnumber "$num" && echo "$*"
} }
get_task_arepo_packages() ALTTASKURL="http://git.altlinux.org/tasks"
get_task_status()
{
local tn="$1"
docmd eget --check-url $ALTTASKURL/$tn/plan/add-bin
}
get_task_arepo_status()
{
local tn="$1"
docmd eget --check-url $ALTTASKURL/$tn/plan/arepo-add-x86_64-i586
}
get_task_packages_list()
{ {
local tn="$1"
local res local res
assure_exists apt-repo
info "TODO: please, improve apt-repo to support arepo (i586-) packages for apt-repo list task" showcmd "eget -q -O- $ALTTASKURL/$tn/plan/add-bin"
showcmd "eget -q -O- http://git.altlinux.org/tasks/$tn/plan/arepo-add-x86_64-i586 | cut -f1" res="$(eget -q -O- $ALTTASKURL/$tn/plan/add-bin)" || return
# TODO: retrieve one time echo "$res" | cut -f1-3 | grep -E "(noarch|$DISTRARCH)$" | cut -f1
res="$(eget -q -O- http://git.altlinux.org/tasks/$tn/plan/arepo-add-x86_64-i586 2>/dev/null)" || return #{ warning "There is a download error for x86_64-i586 arepo." ; return ; } }
get_task_arepo_packages_list()
{
local tn="$1"
local res
showcmd "eget -q -O- $ALTTASKURL/$tn/plan/arepo-add-x86_64-i586"
res="$(eget -q -O- $ALTTASKURL/$tn/plan/arepo-add-x86_64-i586)" || return
echo "$res" | cut -f1 echo "$res" | cut -f1
} }
get_task_packages() get_task_packages()
{ {
local tn local tn
for tn in $(tasknumber "$@") ; do for tn in $(tasknumber "$@") ; do
showcmd apt-repo list task "$tn" get_task_status "$tn" || continue
a='' apt-repo list task "$tn" >/dev/null || continue get_task_packages_list "$tn"
a='' apt-repo list task "$tn" [ "$DISTRARCH" = "x86_64" ] || continue
[ "$DISTRARCH" = "x86_64" ] && get_task_arepo_packages "$tn" get_task_arepo_status "$tn" || continue
get_task_arepo_packages_list "$tn"
done done
} }
...@@ -13346,8 +13469,9 @@ __epm_check_vendor() ...@@ -13346,8 +13469,9 @@ __epm_check_vendor()
# it is missed package probably (package remove case) # it is missed package probably (package remove case)
if is_installed "$i" ; then if is_installed "$i" ; then
warning 'Can'\''t get any info for $i package. Scripts are DISABLED for package $bi. Use --scripts if you need run scripts from such packages.' warning 'Can'\''t get any info for $i package. Scripts are DISABLED for package $bi. Use --scripts if you need run scripts from such packages.'
noscripts="--noscripts"
fi fi
noscripts="--noscripts" # don't set --noscripts for non existent packages (will run scripts when remove by provides, see https://github.com/Etersoft/eepm/issues/236)
continue continue
fi fi
...@@ -14390,6 +14514,38 @@ __check_upgrade_conditions() ...@@ -14390,6 +14514,38 @@ __check_upgrade_conditions()
return 0 return 0
} }
epm_upgrade_alt_tasks()
{
local installlist="$(get_task_packages "$@")"
[ -n "$verbose" ] && info "Packages from task(s): $installlist"
if [ -z "$full" ] ; then
# hack: drop -devel packages to avoid package provided by multiple packages
installlist="$(estrlist reg_exclude ".*-devel .*-devel-static .*-checkinstall .*-debuginfo" "$installlist")"
fi
# install only installed packages (simulate upgrade packages)
installlist="$(get_only_installed_packages "$installlist")"
[ -n "$verbose" ] && info "Packages to upgrade: $installlist"
if [ -z "$installlist" ] ; then
warning 'There is no installed packages for upgrade from task $*'
return 22
fi
local res
try_change_alt_repo
epm_addrepo "$@"
__epm_update
(pkg_names="$installlist" epm_install)
res=$?
epm_removerepo "$@"
end_change_alt_repo
return $res
}
epm_upgrade() epm_upgrade()
{ {
...@@ -14402,26 +14558,7 @@ epm_upgrade() ...@@ -14402,26 +14558,7 @@ epm_upgrade()
if [ "$BASEDISTRNAME" = "alt" ] ; then if [ "$BASEDISTRNAME" = "alt" ] ; then
if tasknumber "$@" >/dev/null ; then if tasknumber "$@" >/dev/null ; then
epm_upgrade_alt_tasks "$@"
local installlist="$(get_task_packages $*)"
# hack: drop -devel packages to avoid package provided by multiple packages
installlist="$(estrlist reg_exclude ".*-devel .*-devel-static" "$installlist")"
[ -n "$verbose" ] && info "Packages from task(s): $installlist"
# install only installed packages (simulate upgrade packages)
installlist="$(get_only_installed_packages "$installlist")"
[ -n "$verbose" ] && info "Packages to upgrade: $installlist"
if [ -z "$installlist" ] ; then
warning 'There is no installed packages for upgrade from task $*'
return 22
fi
try_change_alt_repo
epm_addrepo "$@"
__epm_update
(pkg_names="$installlist" epm_install) || fatal "Can't update repo"
epm_removerepo "$@"
end_change_alt_repo
return return
fi fi
...@@ -14499,7 +14636,7 @@ epm_upgrade() ...@@ -14499,7 +14636,7 @@ epm_upgrade()
CMD="zypper $(subst_option non_interactive --non-interactive) dist-upgrade" CMD="zypper $(subst_option non_interactive --non-interactive) dist-upgrade"
;; ;;
pacman) pacman)
CMD="pacman -S -u $force" CMD="pacman -S -u $force $(subst_option non_interactive --noconfirm)"
;; ;;
aura) aura)
CMD="aura -A -u" CMD="aura -A -u"
...@@ -14662,13 +14799,13 @@ case $PMTYPE in ...@@ -14662,13 +14799,13 @@ case $PMTYPE in
eopkg) eopkg)
showcmd eopkg info $pkg showcmd eopkg info $pkg
# eopkg info prints it only from repo info # eopkg info prints it only from repo info
LC_ALL=C a= eopkg info $pkg | grep "^Reverse Dependencies" | sed -e "s|Reverse Dependencies[[:space:]]*: ||" | grep -v "^$" LC_ALL=C a='' eopkg info $pkg | grep "^Reverse Dependencies" | sed -e "s|Reverse Dependencies[[:space:]]*: ||" | grep -v "^$"
return return
;; ;;
pisi) pisi)
showcmd pisi info $pkg showcmd pisi info $pkg
# pisi info prints it only from repo info # pisi info prints it only from repo info
LC_ALL=C pisi info $pkg | grep "^Reverse Dependencies" | sed -e "s|Reverse Dependencies[[:space:]]*: ||" | grep -v "^$" LC_ALL=C a='' pisi info $pkg | grep "^Reverse Dependencies" | sed -e "s|Reverse Dependencies[[:space:]]*: ||" | grep -v "^$"
return return
;; ;;
xbps) xbps)
...@@ -15499,7 +15636,7 @@ case "$DIST_ARCH" in ...@@ -15499,7 +15636,7 @@ case "$DIST_ARCH" in
armv7*) armv7*)
# TODO: use uname only # TODO: use uname only
# uses binutils package # uses binutils package
if is_command readelf && [ -z "$(readelf -A /proc/self/exe | grep Tag_ABI_VFP_args)" ] ; then if is_command readelf && [ -z "$(a='' readelf -A /proc/self/exe | grep Tag_ABI_VFP_args)" ] ; then
DIST_ARCH="armel" DIST_ARCH="armel"
else else
DIST_ARCH="armhf" DIST_ARCH="armhf"
...@@ -15649,7 +15786,7 @@ get_virt() ...@@ -15649,7 +15786,7 @@ get_virt()
{ {
local VIRT local VIRT
if is_command systemd-detect-virt ; then if is_command systemd-detect-virt ; then
VIRT="$(systemd-detect-virt)" VIRT="$(a='' systemd-detect-virt)"
[ "$VIRT" = "none" ] && echo "(host system)" && return [ "$VIRT" = "none" ] && echo "(host system)" && return
[ -z "$VIRT" ] && echo "(unknown)" && return [ -z "$VIRT" ] && echo "(unknown)" && return
echo "$VIRT" && return echo "$VIRT" && return
...@@ -18771,6 +18908,7 @@ nodeps= ...@@ -18771,6 +18908,7 @@ nodeps=
noremove= noremove=
dryrun= dryrun=
force= force=
full=
repack= repack=
norepack= norepack=
install= install=
...@@ -19180,6 +19318,9 @@ check_option() ...@@ -19180,6 +19318,9 @@ check_option()
--force) # HELPOPT: force install/remove package (f.i., override) --force) # HELPOPT: force install/remove package (f.i., override)
force="--force" force="--force"
;; ;;
--full) # HELPOPT: do full operation (f.i., use all packages from task, without excludes)
full="--full"
;;
--noremove|--no-remove) # HELPOPT: exit if any packages are to be removed during upgrade --noremove|--no-remove) # HELPOPT: exit if any packages are to be removed during upgrade
noremove="--no-remove" noremove="--no-remove"
;; ;;
...@@ -19310,7 +19451,7 @@ if [ -n "$quiet" ] ; then ...@@ -19310,7 +19451,7 @@ if [ -n "$quiet" ] ; then
fi fi
# fill # fill
export EPM_OPTIONS="$nodeps $force $verbose $debug $quiet $interactive $non_interactive $save_only $download_only $force_overwrite $manual_requires" export EPM_OPTIONS="$nodeps $force $full $verbose $debug $quiet $interactive $non_interactive $save_only $download_only $force_overwrite $manual_requires"
# if input is not console and run script from file, get pkgs from stdin too # if input is not console and run script from file, get pkgs from stdin too
if [ ! -n "$inscript" ] && [ -p /dev/stdin ] && [ "$EPMMODE" != "pipe" ] ; then if [ ! -n "$inscript" ] && [ -p /dev/stdin ] && [ "$EPMMODE" != "pipe" ] ; then
......
...@@ -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.11" EPMVERSION="3.64.12"
# package, single (file), pipe, git # package, single (file), pipe, git
EPMMODE="package" EPMMODE="package"
...@@ -2575,7 +2575,7 @@ case "$DIST_ARCH" in ...@@ -2575,7 +2575,7 @@ case "$DIST_ARCH" in
armv7*) armv7*)
# TODO: use uname only # TODO: use uname only
# uses binutils package # uses binutils package
if is_command readelf && [ -z "$(readelf -A /proc/self/exe | grep Tag_ABI_VFP_args)" ] ; then if is_command readelf && [ -z "$(a='' readelf -A /proc/self/exe | grep Tag_ABI_VFP_args)" ] ; then
DIST_ARCH="armel" DIST_ARCH="armel"
else else
DIST_ARCH="armhf" DIST_ARCH="armhf"
...@@ -2725,7 +2725,7 @@ get_virt() ...@@ -2725,7 +2725,7 @@ get_virt()
{ {
local VIRT local VIRT
if is_command systemd-detect-virt ; then if is_command systemd-detect-virt ; then
VIRT="$(systemd-detect-virt)" VIRT="$(a='' systemd-detect-virt)"
[ "$VIRT" = "none" ] && echo "(host system)" && return [ "$VIRT" = "none" ] && echo "(host system)" && return
[ -z "$VIRT" ] && echo "(unknown)" && return [ -z "$VIRT" ] && echo "(unknown)" && return
echo "$VIRT" && return echo "$VIRT" && return
......
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