Commit 964e8196 authored by Vitaly Lipatov's avatar Vitaly Lipatov

backported to p8 as 1.7.2-alt0.M80P.1 (with rpmbph script)

parents 216e67c1 f4ade02e
......@@ -51,6 +51,7 @@ pkgtype()
gentoo) echo "tbz2" ;;
windows) echo "exe" ;;
android) echo "apk" ;;
alpine) echo "apk" ;;
cygwin) echo "tar.xz" ;;
debian|ubuntu|mint|runtu|mcst) echo "deb" ;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles)
......@@ -89,9 +90,10 @@ if distro altlinux-release ; then
if has Sisyphus ; then DISTRIB_RELEASE="Sisyphus"
elif has "ALT Linux 7." ; then DISTRIB_RELEASE="p7"
elif has "ALT Linux 8." ; then DISTRIB_RELEASE="p8"
elif has "Simply Linux 6." ; then DISTRIB_RELEASE="p6"
elif has "Simply Linux 7." ; then DISTRIB_RELEASE="p7"
elif has "Simply Linux 8." ; then DISTRIB_RELEASE="p8"
elif has "ALT Linux 6.0" ; then DISTRIB_RELEASE="p6"
elif has "ALT Linux 6." ; then DISTRIB_RELEASE="p6"
elif has "ALT Linux p8" ; then DISTRIB_RELEASE="p8"
elif has "ALT Linux p7" ; then DISTRIB_RELEASE="p7"
elif has "ALT Linux p6" ; then DISTRIB_RELEASE="p6"
......@@ -130,6 +132,11 @@ elif distro slackware-version ; then
DISTRIB_ID="Slackware"
DISTRIB_RELEASE="$(grep -Eo [0-9]+\.[0-9]+ $DISTROFILE)"
elif distro os-release && which apk 2>/dev/null >/dev/null ; then
. $ROOTDIR/etc/os-release
DISTRIB_ID="$ID"
DISTRIB_RELEASE="$VERSION_ID"
elif distro arch-release ; then
DISTRIB_ID="ArchLinux"
DISTRIB_RELEASE="2010"
......
......@@ -163,6 +163,9 @@ epm_install_names()
nix)
__separate_sudocmd "nix-env --install" "nix-env --upgrade" $@
return ;;
apk)
sudocmd apk add $@
return ;;
guix)
__separate_sudocmd "guix package -i" "guix package -i" $@
return ;;
......@@ -231,6 +234,9 @@ epm_ni_install_names()
nix)
sudocmd nix-env --install $@
return ;;
apk)
sudocmd apk add $@
return ;;
#android)
# sudocmd pm install $@
# return ;;
......
......@@ -23,6 +23,11 @@ epm_kernel_update()
case $DISTRNAME in
ALTLinux)
load_helper epm-query_package
if ! __epm_query_package kernel-image >/dev/null ; then
info "No installed kernel packages, skipping update"
return
fi
assure_exists update-kernel
sudocmd update-kernel $pkg_filenames
return ;;
......
......@@ -122,6 +122,9 @@ case $PMTYPE in
ipkg)
CMD="ipkg list"
;;
apk)
CMD="apk info"
;;
guix)
CMD="guix package -I"
;;
......
......@@ -20,6 +20,11 @@
load_helper epm-packages
load_helper epm-search
__epm_query_package()
{
pkg_filenames="$@" quoted_args="$@" quiet=1 epm_query_package
}
epm_query_package()
{
[ -n "$pkg_filenames" ] || fatal "Please, use search with some argument or run epmqa for get all packages."
......
......@@ -72,6 +72,9 @@ epm_reinstall()
{
[ -n "$pkg_filenames" ] || fatal "Reinstall: missing package(s) name."
# get package name for hi level package management command (with version if supported and if possible)
pkg_names=$(__epm_get_hilevel_name $pkg_names)
epm_reinstall_names $pkg_names
epm_reinstall_files $pkg_files
}
......
......@@ -49,11 +49,12 @@ __update_alt_repo_to_next_distro()
__replace_alt_version_in_repo p6 p7
__replace_text_in_alt_repo "/^ *#/! s!\[p6\]![updates]!g"
docmd epm update || fatal
docmd epm install apt rpm apt-conf-branch || fatal
docmd epm install apt rpm apt-conf-branch || fatal "Check an error and run epm release-upgrade again"
__replace_text_in_alt_repo "/^ *#/! s!\[updates\]![p7]!g"
docmd epm update || fatal
docmd epm upgrade
docmd epm upgrade || fatal "Check an error and run epm release-upgrade again"
docmd epm update-kernel
info "Done."
info "Run epm release-upgrade again for update to p8"
;;
p7)
......@@ -63,15 +64,16 @@ __update_alt_repo_to_next_distro()
__replace_alt_version_in_repo p7 p8
__replace_text_in_alt_repo "/^ *#/! s!\[p7\]![updates]!g"
docmd epm update || fatal
docmd epm install apt rpm apt-conf-branch || fatal
__replace_text_in_alt_repo "/^ *#/! s!\[updates\]![p7]!g"
docmd epm install apt rpm apt-conf-branch || fatal "Check an error and run epm release-upgrade again"
__replace_text_in_alt_repo "/^ *#/! s!\[updates\]![p8]!g"
docmd epm update || fatal
if is_installed systemd ; then
if is_installed systemd && is_active_systemd systemd ; then
docmd epm install systemd || fatal
fi
docmd epm upgrade || fatal
docmd epm upgrade || fatal "Check an error and run epm release-upgrade again"
#info " # epmi branding-simply-linux-release branding-simply-linux-graphics"
docmd epm update-kernel || fatal
info "Done."
;;
*)
info "Have no idea how to update from $DISTRNAME $DISTRVERSION. Try install branding-simply-linux-release package before."
......
......@@ -107,6 +107,9 @@ epm_remove_names()
nix)
sudocmd nix-env --uninstall $@
return ;;
apk)
sudocmd apk del $@
return ;;
guix)
sudocmd guix package -r $@
return ;;
......
......@@ -64,6 +64,9 @@ case $PMTYPE in
mpkg)
CMD="mpkg search"
;;
apk)
CMD="apk search"
;;
conary)
CMD="conary repquery"
;;
......
......@@ -469,6 +469,9 @@ case $DISTRNAME in
Cygwin)
CMD="aptcyg"
;;
alpine)
CMD="apk"
;;
*)
fatal "Have no suitable DISTRNAME $DISTRNAME"
;;
......@@ -476,3 +479,15 @@ esac
PMTYPE=$CMD
}
is_active_systemd()
{
local a
SYSTEMCTL=/bin/systemctl
SYSTEMD_CGROUP_DIR=/sys/fs/cgroup/systemd
[ -x "$SYSTEMCTL" ] || return
[ -d "$SYSTEMD_CGROUP_DIR" ] || return
a= mountpoint -q "$SYSTEMD_CGROUP_DIR" || return
# some hack
pidof systemd >/dev/null
}
......@@ -80,6 +80,9 @@ case $PMTYPE in
ipkg)
sudocmd ipkg update
;;
apk)
sudocmd apk update
;;
pkgsrc)
# portsnap extract for the first time?
sudocmd portsnap fetch update
......
......@@ -54,18 +54,6 @@ set_service_type()
[ -n "$DISTRVERSION" ] || DISTRVERSION=$($DISTRVENDOR -v)
set_target_pkg_env
is_active_systemd()
{
local a
SYSTEMCTL=/bin/systemctl
SYSTEMD_CGROUP_DIR=/sys/fs/cgroup/systemd
[ -x "$SYSTEMCTL" ] || return
[ -d "$SYSTEMD_CGROUP_DIR" ] || return
a= mountpoint -q "$SYSTEMD_CGROUP_DIR" || return
# some hack
pidof systemd >/dev/null
}
case $DISTRNAME in
ALTLinux)
CMD="service-chkconfig"
......
# This spec is backported to ALTLinux p8 automatically by rpmbph script from etersoft-build-utils.
#
Name: eepm
Version: 1.6.8
Version: 1.7.2
Release: alt0.M80P.1
Summary: Etersoft EPM package manager
......@@ -67,9 +67,26 @@ chmod a+x %buildroot%_datadir/%name/{serv-,epm-}*
%_sysconfdir/bash_completion.d/cerv
%changelog
* Mon Apr 18 2016 Vitaly Lipatov <lav@altlinux.ru> 1.6.8-alt0.M80P.1
* Wed Apr 20 2016 Vitaly Lipatov <lav@altlinux.ru> 1.7.2-alt0.M80P.1
- backport to ALTLinux p8 (by rpmbph script)
* Wed Apr 20 2016 Vitaly Lipatov <lav@altlinux.ru> 1.7.2-alt1
- distr_info: fix os-release detection
* Wed Apr 20 2016 Vitaly Lipatov <lav@altlinux.ru> 1.7.1-alt1
- epm: added alpine apk package manager install, update, remove, qa, search commands
- fix Simply Linux 6.0 detection
- kernel_update: do not install kernel if it is not installed (for ovz containers)
* Tue Apr 19 2016 Vitaly Lipatov <lav@altlinux.ru> 1.7.0-alt1
- epm release-upgrade with ALT Linux p8 support
- epm-reinstall: add names filtering (to support epmqp some | epm reinstall)
- release-upgrade: print some info
* Tue Apr 19 2016 Vitaly Lipatov <lav@altlinux.ru> 1.6.9-alt1
- check if systemd is active
- release_upgrade: fix version
* Mon Apr 18 2016 Vitaly Lipatov <lav@altlinux.ru> 1.6.8-alt1
- small output fix
- rewrite release-upgrade
......
......@@ -459,6 +459,9 @@ case $DISTRNAME in
Cygwin)
CMD="aptcyg"
;;
alpine)
CMD="apk"
;;
*)
fatal "Have no suitable DISTRNAME $DISTRNAME"
;;
......@@ -467,6 +470,18 @@ PMTYPE=$CMD
}
is_active_systemd()
{
local a
SYSTEMCTL=/bin/systemctl
SYSTEMD_CGROUP_DIR=/sys/fs/cgroup/systemd
[ -x "$SYSTEMCTL" ] || return
[ -d "$SYSTEMD_CGROUP_DIR" ] || return
a= mountpoint -q "$SYSTEMD_CGROUP_DIR" || return
# some hack
pidof systemd >/dev/null
}
# File bin/epm-addrepo:
epm_addrepo()
......@@ -1694,6 +1709,9 @@ epm_install_names()
nix)
__separate_sudocmd "nix-env --install" "nix-env --upgrade" $@
return ;;
apk)
sudocmd apk add $@
return ;;
guix)
__separate_sudocmd "guix package -i" "guix package -i" $@
return ;;
......@@ -1761,6 +1779,9 @@ epm_ni_install_names()
nix)
sudocmd nix-env --install $@
return ;;
apk)
sudocmd apk add $@
return ;;
#android)
# sudocmd pm install $@
# return ;;
......@@ -1984,7 +2005,7 @@ epm_Install()
yum-rpm)
;;
*)
epm_update || return
pkg_filenames= epm_update || return
;;
esac
......@@ -2076,6 +2097,11 @@ epm_kernel_update()
case $DISTRNAME in
ALTLinux)
load_helper epm-query_package
if ! __epm_query_package kernel-image >/dev/null ; then
info "No installed kernel packages, skipping update"
return
fi
assure_exists update-kernel
sudocmd update-kernel $pkg_filenames
return ;;
......@@ -2224,6 +2250,9 @@ case $PMTYPE in
ipkg)
CMD="ipkg list"
;;
apk)
CMD="apk info"
;;
guix)
CMD="guix package -I"
;;
......@@ -2954,6 +2983,11 @@ epm_query_file()
# File bin/epm-query_package:
__epm_query_package()
{
pkg_filenames="$@" quoted_args="$@" quiet=1 epm_query_package
}
epm_query_package()
{
[ -n "$pkg_filenames" ] || fatal "Please, use search with some argument or run epmqa for get all packages."
......@@ -3020,6 +3054,9 @@ epm_reinstall()
{
[ -n "$pkg_filenames" ] || fatal "Reinstall: missing package(s) name."
# get package name for hi level package management command (with version if supported and if possible)
pkg_names=$(__epm_get_hilevel_name $pkg_names)
epm_reinstall_names $pkg_names
epm_reinstall_files $pkg_files
}
......@@ -3027,22 +3064,24 @@ epm_reinstall()
# File bin/epm-release_upgrade:
__replace_text_in_alt_repo()
{
local i
for i in /etc/apt/sources.list /etc/apt/sources.list.d/*.list ; do
[ -s "$i" ] || continue
regexp_subst "$1" "$i"
done
}
__replace_alt_version_in_repo()
{
local i
assure_exists apt-repo
echo "Upgrading $DISTRNAME from $1 to $2 ..."
docmd apt-repo list | sed -e "s|\($1/branch\)|{\1}->$2/branch<|g" | egrep --color -- "$1/branch"
docmd apt-repo list | sed -e "s|\($1/branch\)|{\1}->{$2/branch}|g" | egrep --color -- "$1/branch"
confirm "Are these correct changes?" || fatal "Exiting"
for i in /etc/apt/sources.list /etc/apt/sources.list.d/*.list ; do
[ -s "$i" ] || continue
# TODO: only for uncommended strings
#sed -i -r -e "s!$1/branch!$2/branch!g" $i
regexp_subst "/^ *#/! s!$1/branch!$2/branch!g" $i
# TODO: start with improve to [p8] - install some package firstly?
regexp_subst "/^ *#/! s s!\[$1\]![alt]/branch!g" $i
done
__replace_text_in_alt_repo "/^ *#/! s!$1/branch!$2/branch!g"
docmd apt-repo list
}
......@@ -3050,14 +3089,40 @@ __update_alt_repo_to_next_distro()
{
case "$DISTRVERSION" in
p6)
docmd epm install apt-conf-branch || fatal
load_helper epm-repofix
pkg_filenames= epm_repofix
__replace_alt_version_in_repo p6 p7
__replace_text_in_alt_repo "/^ *#/! s!\[p6\]![updates]!g"
docmd epm update || fatal
docmd epm install apt rpm apt-conf-branch || fatal "Check an error and run epm release-upgrade again"
__replace_text_in_alt_repo "/^ *#/! s!\[updates\]![p7]!g"
docmd epm update || fatal
docmd epm upgrade || fatal "Check an error and run epm release-upgrade again"
docmd epm update-kernel
info "Done."
info "Run epm release-upgrade again for update to p8"
;;
p7)
docmd epm install apt-conf-branch || fatal
load_helper epm-repofix
pkg_filenames= epm_repofix
__replace_alt_version_in_repo p7 p8
__replace_text_in_alt_repo "/^ *#/! s!\[p7\]![updates]!g"
docmd epm update || fatal
docmd epm install apt rpm apt-conf-branch || fatal "Check an error and run epm release-upgrade again"
__replace_text_in_alt_repo "/^ *#/! s!\[updates\]![p8]!g"
docmd epm update || fatal
if is_installed systemd && is_active_systemd systemd ; then
docmd epm install systemd || fatal
fi
docmd epm upgrade || fatal "Check an error and run epm release-upgrade again"
#info " # epmi branding-simply-linux-release branding-simply-linux-graphics"
docmd epm update-kernel || fatal
info "Done."
;;
*)
info "Have no idea how to update from $DISTRNAME $DISTRVERSION"
info "Have no idea how to update from $DISTRNAME $DISTRVERSION. Try install branding-simply-linux-release package before."
return 1
esac
}
......@@ -3072,10 +3137,7 @@ epm_release_upgrade()
ALTLinux)
docmd epm update
docmd epm install apt rpm
pkg_filenames= epm_repofix
__update_alt_repo_to_next_distro || exit
docmd epm Upgrade
docmd epm update-kernel
__update_alt_repo_to_next_distro
return
;;
*)
......@@ -3222,6 +3284,9 @@ epm_remove_names()
nix)
sudocmd nix-env --uninstall $@
return ;;
apk)
sudocmd apk del $@
return ;;
guix)
sudocmd guix package -r $@
return ;;
......@@ -3393,10 +3458,10 @@ esac
# File bin/epm-repofix:
SUBST_ALT_RULE='s!^([^#].*)[/ ](ALTLinux|LINUX\@Etersoft)[/ ](Sisyphus|p8[/ ]branch|p7[/ ]branch|p6[/ ]branch)[/ ](x86_64|i586|x86_64-i586|noarch) !\1 \2/\3/\4 !gi'
__fix_apt_sources_list()
{
local SUBST_ALT_RULE='s!^(.*)[/ ](ALTLinux|LINUX\@Etersoft)[/ ](Sisyphus|p8[/ ]branch|p7[/ ]branch|p6[/ ]branch)[/ ](x86_64|i586|x86_64-i586|noarch) !\1 \2/\3/\4 !gi'
local i
assure_root
for i in "$@" ; do
......@@ -3405,6 +3470,12 @@ __fix_apt_sources_list()
# TODO: only for uncommented strings
#sed -i -r -e "$SUBST_ALT_RULE" $i
regexp_subst "/^ *#/! $SUBST_ALT_RULE" $i
local br
for br in p6 p7 p8 ; do
# sed -r -e "/ALTLinux\/p8\/branch/s/rpm *([fhr])/rpm [p8] \1/"
regexp_subst "/ALTLinux\/$br\/branch/s/^rpm *([fhr])/rpm [$br] \1/" $i
regexp_subst "/Etersoft\/$br\/branch/s/^rpm *([fhr])/rpm [etersoft] \1/" $i
done
done
}
......@@ -3647,6 +3718,9 @@ case $PMTYPE in
mpkg)
CMD="mpkg search"
;;
apk)
CMD="apk search"
;;
conary)
CMD="conary repquery"
;;
......@@ -4148,6 +4222,9 @@ case $PMTYPE in
ipkg)
sudocmd ipkg update
;;
apk)
sudocmd apk update
;;
pkgsrc)
# portsnap extract for the first time?
sudocmd portsnap fetch update
......@@ -4258,7 +4335,7 @@ epm_Upgrade()
yum-rpm)
;;
*)
epm_update || return
pkg_filenames= epm_update || return
;;
esac
......@@ -4400,6 +4477,7 @@ pkgtype()
gentoo) echo "tbz2" ;;
windows) echo "exe" ;;
android) echo "apk" ;;
alpine) echo "apk" ;;
cygwin) echo "tar.xz" ;;
debian|ubuntu|mint|runtu|mcst) echo "deb" ;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles)
......@@ -4438,9 +4516,10 @@ if distro altlinux-release ; then
if has Sisyphus ; then DISTRIB_RELEASE="Sisyphus"
elif has "ALT Linux 7." ; then DISTRIB_RELEASE="p7"
elif has "ALT Linux 8." ; then DISTRIB_RELEASE="p8"
elif has "Simply Linux 6." ; then DISTRIB_RELEASE="p6"
elif has "Simply Linux 7." ; then DISTRIB_RELEASE="p7"
elif has "Simply Linux 8." ; then DISTRIB_RELEASE="p8"
elif has "ALT Linux 6.0" ; then DISTRIB_RELEASE="p6"
elif has "ALT Linux 6." ; then DISTRIB_RELEASE="p6"
elif has "ALT Linux p8" ; then DISTRIB_RELEASE="p8"
elif has "ALT Linux p7" ; then DISTRIB_RELEASE="p7"
elif has "ALT Linux p6" ; then DISTRIB_RELEASE="p6"
......@@ -4479,6 +4558,11 @@ elif distro slackware-version ; then
DISTRIB_ID="Slackware"
DISTRIB_RELEASE="$(grep -Eo [0-9]+\.[0-9]+ $DISTROFILE)"
elif distro os-release && which apk 2>/dev/null >/dev/null ; then
. $ROOTDIR/etc/os-release
DISTRIB_ID="$ID"
DISTRIB_RELEASE="$VERSION_ID"
elif distro arch-release ; then
DISTRIB_ID="ArchLinux"
DISTRIB_RELEASE="2010"
......@@ -4694,9 +4778,9 @@ $(get_help HELPOPT)
print_version()
{
echo "EPM package manager version 1.6.4"
echo "EPM package manager version 1.7.2"
echo "Running on $($DISTRVENDOR) ('$PMTYPE' package manager uses '$PKGFORMAT' package format)"
echo "Copyright (c) Etersoft 2012-2015"
echo "Copyright (c) Etersoft 2012-2016"
echo "This program may be freely redistributed under the terms of the GNU AGPLv3."
}
......
......@@ -457,6 +457,9 @@ case $DISTRNAME in
Cygwin)
CMD="aptcyg"
;;
alpine)
CMD="apk"
;;
*)
fatal "Have no suitable DISTRNAME $DISTRNAME"
;;
......@@ -465,6 +468,18 @@ PMTYPE=$CMD
}
is_active_systemd()
{
local a
SYSTEMCTL=/bin/systemctl
SYSTEMD_CGROUP_DIR=/sys/fs/cgroup/systemd
[ -x "$SYSTEMCTL" ] || return
[ -d "$SYSTEMD_CGROUP_DIR" ] || return
a= mountpoint -q "$SYSTEMD_CGROUP_DIR" || return
# some hack
pidof systemd >/dev/null
}
# File bin/serv-common:
serv_common()
......@@ -859,6 +874,7 @@ pkgtype()
gentoo) echo "tbz2" ;;
windows) echo "exe" ;;
android) echo "apk" ;;
alpine) echo "apk" ;;
cygwin) echo "tar.xz" ;;
debian|ubuntu|mint|runtu|mcst) echo "deb" ;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles)
......@@ -897,9 +913,10 @@ if distro altlinux-release ; then
if has Sisyphus ; then DISTRIB_RELEASE="Sisyphus"
elif has "ALT Linux 7." ; then DISTRIB_RELEASE="p7"
elif has "ALT Linux 8." ; then DISTRIB_RELEASE="p8"
elif has "Simply Linux 6." ; then DISTRIB_RELEASE="p6"
elif has "Simply Linux 7." ; then DISTRIB_RELEASE="p7"
elif has "Simply Linux 8." ; then DISTRIB_RELEASE="p8"
elif has "ALT Linux 6.0" ; then DISTRIB_RELEASE="p6"
elif has "ALT Linux 6." ; then DISTRIB_RELEASE="p6"
elif has "ALT Linux p8" ; then DISTRIB_RELEASE="p8"
elif has "ALT Linux p7" ; then DISTRIB_RELEASE="p7"
elif has "ALT Linux p6" ; then DISTRIB_RELEASE="p6"
......@@ -938,6 +955,11 @@ elif distro slackware-version ; then
DISTRIB_ID="Slackware"
DISTRIB_RELEASE="$(grep -Eo [0-9]+\.[0-9]+ $DISTROFILE)"
elif distro os-release && which apk 2>/dev/null >/dev/null ; then
. $ROOTDIR/etc/os-release
DISTRIB_ID="$ID"
DISTRIB_RELEASE="$VERSION_ID"
elif distro arch-release ; then
DISTRIB_ID="ArchLinux"
DISTRIB_RELEASE="2010"
......@@ -1151,18 +1173,6 @@ set_service_type()
[ -n "$DISTRVERSION" ] || DISTRVERSION=$($DISTRVENDOR -v)
set_target_pkg_env
is_active_systemd()
{
local a
SYSTEMCTL=/bin/systemctl
SYSTEMD_CGROUP_DIR=/sys/fs/cgroup/systemd
[ -x "$SYSTEMCTL" ] || return
[ -d "$SYSTEMD_CGROUP_DIR" ] || return
a= mountpoint -q "$SYSTEMD_CGROUP_DIR" || return
# some hack
pidof systemd >/dev/null
}
case $DISTRNAME in
ALTLinux)
CMD="service-chkconfig"
......@@ -1225,7 +1235,7 @@ $(get_help HELPOPT)
print_version()
{
echo "Service manager version 1.6.4"
echo "Service manager version 1.7.2"
echo "Running on $($DISTRVENDOR)"
echo "Copyright (c) Etersoft 2012, 2013, 2016"
echo "This program may be freely redistributed under the terms of the GNU AGPLv3."
......
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