Commit b9a92202 authored by Vitaly Lipatov's avatar Vitaly Lipatov

backported to M60P as 0.9.4-alt0.M60P.1 (with rpmbph script)

parents e96eae97 abcfb913
epm
\ No newline at end of file
......@@ -30,6 +30,7 @@ load_helper epm-sh-functions
set_sudo
check_tty
#############################
......@@ -81,7 +82,13 @@ case $progname in
epmqf)
epm_cmd=query_file
;;
epm|upm)
epmqa)
epm_cmd=packages
;;
epmqp)
epm_cmd=query_package
;;
epm|upm|eepm)
;;
*)
fatal "Unknown command: $progname"
......@@ -112,6 +119,9 @@ check_command()
-qa|list|packages) # HELPCMD: list of installed package(s)
epm_cmd=packages
;;
-qp|query_package) # HELPCMD: search in the list of installed packages
epm_cmd=query_package
;;
update) # HELPCMD: update remote package repository databases
epm_cmd=update
;;
......@@ -176,7 +186,6 @@ for opt in "$@" ; do
quiet=1
;;
--nodeps) # HELPOPT: skip dependency check (during install/simulate and so on)
fatal "--nodeps not realized yet"
nodeps="--nodeps"
;;
--auto) # HELPOPT: non interactive mode
......
......@@ -21,17 +21,26 @@
epm_addrepo()
{
case $PMTYPE in
#apt-rpm|apt-dpkg)
# docmd $SUDO apt-get check || exit
# ;;
#yum-rpm)
# docmd $SUDO yum repolist || exit
# ;;
apt-rpm|apt-dpkg)
echo "You need manually add repo to /etc/apt/sources.list"
;;
yum-rpm)
echo "You need manually add repo to /etc/yum.repos.d/"
;;
urpm-rpm)
docmd $SUDO urpmi.addmedia --distrib $pkg_filenames
docmd $SUDO urpmi.addmedia $pkg_filenames
;;
zypper-rpm)
docmd $SUDO zypper ar $pkg_filenames || exit
docmd $SUDO zypper ar $pkg_filenames
;;
emerge)
docmd $SUDO layman -a $pkg_filenames
;;
pacman)
echo "You need manually add repo to /etc/pacman.conf"
;;
slackpkg)
echo "You need manually add repo to /etc/slackpkg/mirrors"
;;
*)
fatal "Do not known command for $PMTYPE"
......
......@@ -18,8 +18,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
# copied from korinf/tools/run-script/scripts/update
epm_check()
{
case $PMTYPE in
......
......@@ -18,8 +18,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
# copied from korinf/tools/run-script/scripts/search
epm_filelist()
{
[ -n "$pkg_filenames" ] || fatal "Run query without names"
......
......@@ -18,10 +18,22 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
load_helper epm-query
epm_info()
{
case $PMTYPE in
apt-rpm|apt-dpkg)
apt-rpm)
if [ -n "$pkg_files" ] ; then
docmd rpm -qip $pkg_files
fi
[ -z "$pkg_names" ] && return
pkg_filenames=$pkg_names epm_query >/dev/null && docmd rpm -qi $pkg_names && return
docmd apt-cache show $pkg_names
;;
apt-dpkg)
[ -z "$pkg_names" ] && return
pkg_filenames=$pkg_names epm_query >/dev/null && docmd dpkg -I $pkg_names && return
docmd apt-cache show $pkg_names
;;
yum-rpm)
......@@ -33,6 +45,9 @@ case $PMTYPE in
pacman)
docmd pacman -Si $pkg_names
;;
slackpkg)
docmd slackpkg info $pkg_names
;;
*)
fatal "Do not known command for $PMTYPE"
;;
......
......@@ -73,8 +73,9 @@ epm_install_names()
mpkg)
docmd $SUDO mpkg install $@
return ;;
pkgtool)
docmd $SUDO installpkg $@
slackpkg)
# TODO: use upgrade if package is already installed
docmd $SUDO slackpkg install $@
return ;;
*)
fatal "Do not known install command for $PMTYPE"
......@@ -82,6 +83,7 @@ epm_install_names()
esac
}
# Non interactive install
epm_ni_install_names()
{
[ -z "$1" ] && return
......@@ -104,8 +106,9 @@ epm_ni_install_names()
pacman)
docmd $SUDO pacman -S --noconfirm $@
return ;;
pkgtool)
docmd $SUDO installpkg $@
slackpkg)
# TODO: use upgrade if package is already installed
docmd $SUDO slackpkg -batch=on -default_answer=yes install $@
return ;;
*)
fatal "Do not known appropriate install command for $PMTYPE"
......@@ -117,20 +120,11 @@ epm_install_files()
{
[ -z "$1" ] && return
case $DISTRNAME in
ALTLinux)
docmd $SUDO rpm -Uvh --force $@ && return
case $PMTYPE in
apt-rpm)
docmd $SUDO rpm -Uvh --force $nodeps $@ && return
docmd $SUDO apt-get install $@
return ;;
PCLinux)
docmd $SUDO rpm -Uvh --force $@
return ;;
FreeBSD)
docmd $SUDO pkg_add $@
return ;;
esac
case $PMTYPE in
apt-dpkg)
docmd $SUDO dpkg -i $@
docmd $SUDO apt-get -f install
......@@ -139,9 +133,18 @@ epm_install_files()
docmd $SUDO rpm -Uvh --force $@ && return
docmd $SUDO yum --nogpgcheck local install $@
return ;;
pkg_add)
docmd $SUDO pkg_add $@
return ;;
pacman)
docmd $SUDO pacman -U $@
return ;;
slackpkg)
docmd $SUDO installpkg $@
return ;;
*)
fatal "Do not known appropriate install command for $PMTYPE"
;;
esac
# other systems can install file package via ordinary command
......@@ -153,8 +156,8 @@ epm_install()
{
[ -n "$pkg_files$pkg_names" ] || fatal "Run install without packages"
local names=$(echo $pkg_names | filter_out_installed_packages)
local files=$(echo $pkg_files | filter_out_installed_packages)
local names="$(echo $pkg_names | filter_out_installed_packages)"
local files="$(echo $pkg_files | filter_out_installed_packages)"
[ -z "$files$names" ] && echo "Skip empty install list" && return 2
......
......@@ -18,8 +18,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
# copied from korinf/tools/run-script/scripts/search
epm_packages()
{
......@@ -39,9 +37,18 @@ case $PMTYPE in
zypper-rpm)
CMD="rpm -qa"
;;
emerge)
CMD="qlist -I"
;;
pkg_add)
CMD="pkg_info"
;;
pacman)
CMD="pacman -Qs"
;;
slackpkg)
CMD="ls -1 /var/log/packages/"
;;
*)
fatal "Do not known query command for $PMTYPE"
;;
......
......@@ -18,8 +18,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
# copied from korinf/tools/run-script/scripts/search
epm_query()
{
[ -n "$pkg_filenames" ] || fatal "Run query without names"
......
......@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
# etersoft-build-utils/bin/rpmqf
# copied from etersoft-build-utils/bin/rpmqf
# use and modify TOFILE recursively
real_file()
......@@ -45,7 +45,6 @@ real_file()
FULLFILEPATH=`readlink -f $TOFILE`
}
# copied from korinf/tools/run-script/scripts/search
__do_query()
{
case $PMTYPE in
......@@ -61,6 +60,9 @@ __do_query()
zypper-rpm)
CMD="rpm -qf"
;;
emerge)
CMD="equery belongs"
;;
pacman)
CMD="pacman -Qo"
;;
......
#!/bin/sh
#
# Copyright (C) 2012 Etersoft
# Copyright (C) 2012 Vitaly Lipatov <lav@etersoft.ru>
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
load_helper epm-packages
epm_query_package()
{
#showcmd grep --color "$pkg_filenames"
epm_packages | grep --color "$pkg_filenames"
}
......@@ -41,28 +41,30 @@ epm_reinstall_names()
pacman)
docmd $SUDO pacman -U $@
return ;;
slackpkg)
docmd $SUDO slackpkg reinstall $@
return ;;
*)
fatal "Do not known install command for $PMTYPE"
;;
esac
}
# for low level install
#is_alt && FANCYPERCENT=--fancypercent
#docmd $SUDO rpm -Uvh $FANCYPERCENT "$@"
epm_reinstall_files()
{
[ -z "$1" ] && return
case $DISTRNAME in
ALTLinux|PCLinux)
case $PMTYPE in
apt-rpm)
docmd $SUDO rpm -Uvh --force $@ && return
docmd $SUDO apt-get --reinstall install $@
return ;;
Ubuntu|Debian|Mint)
apt-pkg)
docmd $SUDO dpkg -i $@
return ;;
slackpkg)
docmd $SUDO installpkg $@
return ;;
esac
# other systems can install file package via ordinary command
......
......@@ -18,15 +18,13 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
# copied from korinf/tools/run-script/scripts/search
# TODO
# Try remove with low level removing
epm_remove_low()
{
[ -z "$1" ] && return
case $PMTYPE in
apt-rpm|yum-rpm|zypper-rpm|urpm-rpm)
docmd $SUDO rpm -e $@
docmd $SUDO rpm -ev $nodeps $@
return ;;
apt-dpkg)
docmd $SUDO dpkg -P $@
......@@ -37,27 +35,30 @@ epm_remove_low()
emerge)
docmd $SUDO emerge -unmerge $@
return ;;
pacman)
docmd $SUDO pacman -R $@
return ;;
mpkg)
docmd $SUDO mpkg remove $@
return ;;
pkgtool)
slackpkg)
docmd $SUDO removepkg $@
return ;;
*)
RET=1
fatal "Do not known command for $PMTYPE"
;;
esac
*)
fatal "Do not known command for $PMTYPE"
;;
esac
return 1
}
epm_remove()
{
[ -n "$pkg_file$pkg_names" ] || fatal "Run remove without names"
epm_remove_names $pkg_names || return
[ -n "$pkg_filenames" ] || fatal "Run remove without args"
epm_remove_low $pkg_filenames && return
if [ -n "$non_interactive" ] ; then
epm_remove_nonint $pkg_filenames
local RET=$?
# if not separate command, use usual command
[ "$RET" = "5" ] || return $RET
fi
epm_remove_names $pkg_filenames
}
epm_remove_names()
......@@ -75,10 +76,11 @@ epm_remove_names()
docmd $SUDO pkg_delete $@
return ;;
emerge)
docmd $SUDO emerge --unmerge $@
#docmd $SUDO emerge --unmerge $@
docmd $SUDO emerge -aC $@
return ;;
pacman)
docmd $SUDO pacman -R --noconfirm $@
docmd $SUDO pacman -R $@
return ;;
yum-rpm)
docmd $SUDO yum remove $@
......@@ -89,39 +91,41 @@ epm_remove_names()
mpkg)
docmd $SUDO mpkg remove $@
return ;;
pkgtool)
docmd $SUDO removepkg $@
slackpkg)
docmd $SUDO slackpkg remove $@
return ;;
*)
fatal "Do not known command for $PMTYPE"
;;
esac
#docmd $SUDO $CMD $pkg_names $pkg_files
}
# TODO
epm_remove_nonint()
{
case $DISTRNAME in
"ALTLinux"|"Ubuntu"|"Debian"|"PCLinux")
CMD="apt-get -y --force-yes remove"
;;
"LinuxXP"|"Fedora"|"ASPLinux"|"CentOS"|"RHEL"|"Scientific")
CMD="yum -y remove"
;;
"Mandriva")
CMD="urpme --auto"
;;
"SUSE")
CMD="zypper --non-interactive remove"
;;
*)
RET=1
CMD="echo \"Do not known install command for DISTRNAME $DISTRNAME\""
;;
esac
case $PMTYPE in
apt-rpm|apt-dpkg)
docmd $SUDO apt-get -y --force-yes remove --purge $@
return ;;
urpm-rpm)
docmd $SUDO urpme --auto $@
return ;;
pacman)
docmd $SUDO pacman -R --noconfirm $@
return ;;
yum-rpm)
docmd $SUDO yum -y remove $@
return ;;
zypper-rpm)
docmd $SUDO zypper --non-interactive remove $@
return ;;
slackpkg)
docmd $SUDO slackpkg -batch=on -default_answer=yes remove $@
return ;;
*)
fatal "Do not known command for $PMTYPE"
;;
esac
return 5
}
......@@ -21,14 +21,26 @@
epm_removerepo()
{
case $PMTYPE in
#apt-rpm|apt-dpkg)
# docmd $SUDO apt-get check || exit
# ;;
#yum-rpm)
# docmd $SUDO yum repolist || exit
# ;;
apt-rpm|apt-dpkg)
echo "You need remove repo from /etc/apt/sources.list"
;;
yum-rpm)
echo "You need remove repo from /etc/yum.repos.d/"
;;
urpm-rpm)
docmd $SUDO urpmi.removemedia $pkg_names
;;
zypper-rpm)
docmd $SUDO zypper removerepo $pkg_names || exit
docmd $SUDO zypper removerepo $pkg_names
;;
emerge)
docmd $SUDO layman -d$pkg_names
;;
pacman)
echo "You need remove repo from /etc/pacman.conf"
;;
slackpkg)
echo "You need remove repo from /etc/slackpkg/mirrors"
;;
*)
fatal "Do not known command for $PMTYPE"
......
......@@ -18,17 +18,39 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
print_apt_sources_list()
{
for i in $@ ; do
test -r "$i" || continue
#echo
#echo "$i:"
grep -v "^#" $i
done | grep -v "^$"
}
epm_repolist()
{
case $PMTYPE in
#apt-rpm|apt-dpkg)
# docmd $SUDO apt-get check || exit
# ;;
apt-rpm|apt-dpkg)
docmd print_apt_sources_list /etc/apt/sources.list /etc/apt/sources.list.d/*
;;
yum-rpm)
docmd $SUDO yum repolist
docmd yum repolist
;;
urpm-rpm)
docmd urpmq --list-media
;;
zypper-rpm)
docmd $USDO zypper sl -d
docmd zypper sl -d
;;
emerge)
docmd layman -L
;;
pacman)
docmd cat /etc/pacman.conf
;;
slackpkg)
docmd cat /etc/slackpkg/mirrors
;;
*)
fatal "Do not known command for $PMTYPE"
......
......@@ -28,18 +28,30 @@ case $PMTYPE in
apt-rpm|apt-dpkg)
CMD="apt-cache search"
;;
yum-rpm)
CMD="yum search"
;;
urpm-rpm)
CMD="urpmq -y"
;;
zypper-rpm)
CMD="zypper search"
pkg_add)
CMD="pkg_info -x"
;;
emerge)
CMD="emerge --search"
;;
pacman)
CMD="pacman -Ss"
;;
yum-rpm)
CMD="yum search"
;;
zypper-rpm)
CMD="zypper search"
;;
mpkg)
CMD="mpkg search"
;;
slackpkg)
CMD="slackpkg search"
;;
*)
fatal "Do not known search command for $PMTYPE"
;;
......
......@@ -28,15 +28,20 @@ case $PMTYPE in
docmd apt-file search $pkg_filenames
return ;;
yum-rpm)
fatal "TODO"
CMD="yum search"
CMD="yum provides"
;;
urpm-rpm)
CMD="urpmf"
;;
zupper-rpm)
zypper-rpm)
CMD="zypper wp vi"
;;
pacman)
CMD="pacman -Qo"
;;
slackpkg)
CMD="slackpkg file-search"
;;
*)
fatal "Do not known search file command for $PMTYPE"
;;
......
......@@ -27,11 +27,17 @@ isatty()
test -t 1
}
check_tty()
{
isatty || return
export USETTY=1
}
: ${BLACK:=0} ${RED:=1} ${GREEN:=2} ${YELLOW:=3} ${BLUE:=4} ${MAGENTA:=5} ${CYAN:=6} ${WHITE:=7}
set_boldcolor()
{
isatty || return
[ -n "$USETTY" ] || return
{
echo bold
echo setaf $1
......@@ -40,7 +46,7 @@ set_boldcolor()
restore_color()
{
isatty || return
[ -n "$USETTY" ] || return
{
echo op; # set Original color Pair.
echo sgr0; # turn off all special graphics mode (bold in our case).
......@@ -77,7 +83,7 @@ showcmd()
[ "$UID" = 0 ] && PROMTSIG="#"
echo " $PROMTSIG $@"
restore_color
fi
fi >&2
}
# Print command line and run command line
......@@ -174,7 +180,7 @@ case $DISTRNAME in
CMD="yum-rpm"
;;
Slackware)
CMD="pkgtool"
CMD="slackpkg"
;;
SUSE|SLED|SLES)
CMD="zypper-rpm"
......
......@@ -25,7 +25,7 @@ epm_simulate()
local CMD
[ -n "$pkg_filenames" ] || fatal "Run $epm_cmd without packages"
local filenames=$(echo $pkg_filenames | filter_out_installed_packages)
local filenames="$(echo $pkg_filenames | filter_out_installed_packages)"
# FIXME: can't correct receive status 2 in mandriva?
[ -z "$filenames" ] && echo "Skip empty simulate list" && return 0 #&& return 2
......@@ -49,8 +49,9 @@ epm_simulate()
showcmd $SUDO pacman -v -S $filenames
echo no | $SUDO pacman -v -S $filenames
return ;;
pkgtool)
return 0 ;;
slackpkg)
docmd slackpkg -batch=on -default_answer=yes download
;;
*)
fatal "Do not known simulate command for $PMTYPE"
;;
......
......@@ -23,15 +23,18 @@
epm_update()
{
case $PMTYPE in
"apt-rpm")
apt-rpm)
docmd $SUDO apt-get update || exit
#docmd $SUDO apt-get -f install || exit
;;
"apt-dpkg")
apt-dpkg)
docmd $SUDO apt-get update || exit
#docmd $SUDO apt-get -f install || exit
#docmd $SUDO apt-get autoremove
;;
yum-rpm)
docmd $SUDO yum check-update
;;
urpm-rpm)
docmd $SUDO urpmi.update -a
;;
......@@ -41,10 +44,14 @@ case $PMTYPE in
zypper-rpm)
docmd $SUDO zypper refresh
;;
emerge)
docmd $SUDO emerge --sync
;;
slackpkg)
docmd $SUDO slackpkg update
;;
*)
RET=1
echo \"Do not known install command for DISTRNAME $DISTRNAME\"
exit 1
fatal "Do not known update command for $PMTYPE"
;;
esac
......
......@@ -39,7 +39,16 @@ epm_upgrade()
CMD="zypper dist-upgrade"
;;
pacman)
CMD="zypper -S -u"
CMD="pacman -S -u"
;;
emerge)
CMD="emerge -NuDa world"
;;
pkg_add)
CMD="freebsd-update fetch install"
;;
slackpkg)
CMD="slackpkg upgrade-all"
;;
*)
fatal "Do not known command for $PMTYPE"
......
epm
\ No newline at end of file
epm
\ No newline at end of file
# This spec is backported to ALTLinux p6 automatically by rpmbph script. Do not edit it.
#
Name: eepm
Version: 0.9.1
Version: 0.9.4
Release: alt0.M60P.1
Summary: Etersoft EPM package manager
......@@ -17,6 +17,11 @@ Source: ftp://updates.etersoft.ru/pub/Etersoft/Sisyphus/sources/tarball/%name-%v
BuildArchitectures: noarch
# Contains the same command epm
Conflicts: epm
Provides: upm
%description
Etersoft EPM is the package manager for any platform
and any platform version. It provides
......@@ -37,13 +42,32 @@ with various distros.
%files
%doc README TODO
%_bindir/epm*
%_bindir/eepm
%_bindir/upm
%_bindir/distr_info
%changelog
* Tue Jul 31 2012 Vitaly Lipatov <lav@altlinux.ru> 0.9.1-alt0.M60P.1
* Fri Aug 03 2012 Vitaly Lipatov <lav@altlinux.ru> 0.9.4-alt0.M60P.1
- backport to ALTLinux p6 (by rpmbph script)
* Fri Aug 03 2012 Vitaly Lipatov <lav@altlinux.ru> 0.9.4-alt1
- add query package (-qp) support
- print command example in stderr
- add eepm link
- epm-info: try print info for installed package
- fix slackpkg install/reinstall/remove/simulate
* Thu Aug 02 2012 Vitaly Lipatov <lav@altlinux.ru> 0.9.3-alt1
- use slackpkg instead pkgtool for Slackware package manager name
- add missed command for Gentoo, Slackware, FreeBSD improve repo management commands
- fix using local with dash
- add --nodeps support for rpm in install/remove
* Wed Aug 01 2012 Vitaly Lipatov <lav@altlinux.ru> 0.9.2-alt1
- remove: try remove via low level command first
- install: drop DISTRNAME using
- add Slackware and add more distr in search
* Sat Jul 28 2012 Vitaly Lipatov <lav@altlinux.ru> 0.9.1-alt1
- epm-simulate: add support for --skip-installed
- add more distr in epm -i, epm -e and add some bugs in epm -e
......
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