Commit 0bdbb892 authored by Andrey Cherepanov's avatar Andrey Cherepanov

1.5.24-alt0.M70P.1

- Backport new version to p7 branch
parents 32c9e1bb 68caaee8
......@@ -51,6 +51,7 @@ pkgtype()
gentoo) echo "tbz2" ;;
windows) echo "exe" ;;
android) echo "apk" ;;
cygwin) echo "tar.xz" ;;
debian|ubuntu|mint|runtu|mcst) echo "deb" ;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles)
echo "rpm" ;;
......@@ -102,6 +103,10 @@ if distro altlinux-release ; then
elif has Citron ; then DISTRIB_RELEASE="2.4"
fi
elif [ `uname -o` = "Cygwin" ] ; then
DISTRIB_ID="Cygwin"
DISTRIB_RELEASE="all"
elif distro gentoo-release ; then
DISTRIB_ID="Gentoo"
MAKEPROFILE=$(readlink $ROOTDIR/etc/portage/make.profile 2>/dev/null) || MAKEPROFILE=$(readlink $ROOTDIR/etc/make.profile)
......
......@@ -36,6 +36,8 @@ load_helper epm-sh-functions
#PATH=$PATH:/sbin:/usr/sbin
set_pm_type
set_sudo
check_tty
......@@ -66,7 +68,6 @@ print_version()
Usage="Usage: epm [options] <command> [package name(s), package files]..."
Descr="epm - EPM package manager"
set_pm_type
verbose=
quiet=
......
......@@ -34,7 +34,8 @@ __is_repo_info_downloaded()
__is_repo_info_uptodate()
{
case $PMTYPE in
apt-*)
apt-rpm)
# apt-deb do not update lock file date
if $SUDO [ -r /var/lib/apt/lists ] ; then
local LOCKFILE=/var/lib/apt/lists/lock
$SUDO test -r $LOCKFILE || return
......
......@@ -23,7 +23,10 @@ epm_download()
case $PMTYPE in
dnf-rpm)
sudocmd dnf download $pkg_filename
sudocmd dnf download $pkg_filenames
;;
aptcyg)
sudocmd apt-cyg download $pkg_filenames
;;
*)
fatal "Have no suitable command for $PMTYPE"
......
......@@ -122,6 +122,10 @@ __epm_filelist_name()
pkgng)
CMD="pkg info -l"
;;
aptcyg)
docmd apt-cyg listfiles $@ | sed -e "s|^|/|g"
return
;;
slackpkg)
is_installed $@ || fatal "Query filelist for non installed packages does not realized"
docmd awk 'BEGIN{desk=1}{if(/^FILE LIST:$/){desk=0} else if (desk==0) {print}}' /var/log/packages/${pkg_filenames}* | less
......
......@@ -102,6 +102,9 @@ case $PMTYPE in
homebrew)
docmd brew info $pkg_names
;;
aptcyg)
docmd apt-cyg show $pkg_names
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
......
......@@ -169,6 +169,9 @@ epm_install_names()
android)
fatal "We still have no idea how to use package repository, ever if it is F-Droid."
return ;;
aptcyg)
sudocmd apt-cyg install $@
return ;;
*)
fatal "Have no suitable install command for $PMTYPE"
;;
......@@ -394,6 +397,9 @@ epm_print_install_command()
android)
echo "pm install $@"
;;
aptcyg)
echo "apt-cyg install $@"
;;
*)
fatal "Have no suitable appropriate install command for $PMTYPE"
;;
......
......@@ -20,11 +20,12 @@
# TODO: is it different from rpm --rebuilddb?
__repack_rpm_base()
{
assure_exists db_dump || fatal
assure_exists db_load || fatal
assure_exists db_dump || fatal
assure_exists db_load || fatal
cd /var/lib/rpm || fatal
mv Packages Packages.BACKUP || fatal
db_dump Packages.BACKUP | db_load Packages || fatal
# mask dependencies with a=
a= db_dump Packages.BACKUP | a= db_load Packages || fatal
rm Packages.BACKUP
}
......
......@@ -34,6 +34,13 @@ case $PMTYPE in
esac
}
__aptcyg_print_full()
{
#showcmd apt-cyg show
local VERSION=$(apt-cyg show "$1" | grep -m1 "^version: " | sed -e "s|^version: ||g")
echo "$1-$VERSION"
}
# TODO: we have a problem with error status here
epm_packages()
{
......@@ -123,11 +130,23 @@ case $PMTYPE in
docmd $CMD | sed -e "s|^package:||g"
return
;;
aptcyg)
CMD="apt-cyg list $pkg_filenames"
if [ -z "$short" ] ; then
showcmd $CMD
for i in $($CMD) ; do
__aptcyg_print_full $i
done
return
fi
;;
*)
fatal "Have no suitable query command for $PMTYPE"
;;
esac
docmd $CMD
# FIXME: do not print empty lines, but we will lost error status definitely
# | grep -v "^$"
}
#!/bin/sh
#
# Copyright (C) 2012, 2013 Etersoft
# Copyright (C) 2012, 2013 Vitaly Lipatov <lav@etersoft.ru>
# Copyright (C) 2012, 2013, 2015 Etersoft
# Copyright (C) 2012, 2013, 2015 Vitaly Lipatov <lav@etersoft.ru>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
......@@ -31,7 +31,7 @@ _get_grep_exp()
}
# TODO: combine with -qa (the difference only in return status now)
_query_via_packages_list()
_shortquery_via_packages_list()
{
local res=0
local grepexp
......@@ -40,9 +40,11 @@ _query_via_packages_list()
grepexp=$(_get_grep_exp $firstpkg)
# Note: we use short=1 here due grep by ^name$
# separate first line for print out command
short=1 pkg_filenames=$firstpkg epm_packages | grep -- "$grepexp" || res=1
local pkg
for pkg in "$@" ; do
grepexp=$(_get_grep_exp $pkg)
short=1 pkg_filenames=$pkg epm_packages 2>/dev/null | grep -- "$grepexp" || res=1
......@@ -51,6 +53,30 @@ _query_via_packages_list()
return $res
}
# Note: modified from _shortquery_via_packages_list
# TODO: non optimal double epm packages call
_query_via_packages_list()
{
local res=0
local grepexp
local firstpkg=$1
shift
grepexp=$(_get_grep_exp $firstpkg)
# Note: we use short=1 here due grep by ^name$
# separate first line for print out command
short=1 pkg_filenames=$firstpkg epm_packages | grep -q -- "$grepexp" && quiet=1 pkg_filenames=$firstpkg epm_packages $firstpkg || res=1
local pkg
for pkg in "$@" ; do
grepexp=$(_get_grep_exp $pkg)
short=1 pkg_filenames=$pkg epm_packages 2>/dev/null | grep -q -- "$grepexp" && quiet=1 pkg_filenames=$pkg epm_packages $pkg || res=1
done
return $res
}
# internal use only, for installed package
__epm_get_hilevel_nameform()
{
......@@ -89,7 +115,7 @@ __epm_get_hilevel_name()
for i in $@ ; do
local pkg
# get short form in pkg
quiet=1 short=1 pkg=$(__epm_query_name $i) || continue # drop not installed packages
quiet=1 pkg=$(__epm_query_shortname $i) || continue # drop not installed packages
# if already short form, skipped
[ "$pkg" = "$i" ] && echo "$i" && continue
# try get long form or use short form
......@@ -129,12 +155,10 @@ __epm_query_name()
case $PMTYPE in
*-rpm)
CMD="rpm -q"
[ -n "$short" ] && CMD="rpm -q --queryformat %{name}\n"
;;
*-dpkg)
#docmd dpkg -l $@ | grep "^ii"
CMD="dpkg-query -W --showformat=\${Package}-\${Version}\n"
[ -n "$short" ] && CMD="dpkg-query -W --showformat=\${Package}\n"
;;
npackd)
docmd "npackdcl path --package=$@"
......@@ -162,10 +186,49 @@ __epm_query_name()
docmd $CMD $@
}
__epm_query_shortname()
{
local CMD
[ -z "$*" ] && return
case $PMTYPE in
*-rpm)
CMD="rpm -q --queryformat %{name}\n"
;;
*-dpkg)
CMD="dpkg-query -W --showformat=\${Package}\n"
;;
npackd)
docmd "npackdcl path --package=$@"
return
;;
conary)
CMD="conary query"
;;
homebrew)
warning "fix query"
return 1
;;
# TODO: need to print name if exists
#pkgng)
# CMD="pkg info -e"
# ;;
# Note: slackpkg info pkgname
*)
# default slow workaround
_shortquery_via_packages_list $@
return
;;
esac
docmd $CMD $@
}
# check if pkg is installed
is_installed()
{
pkg_filenames="$@" pkg_names="$@" epm_query >/dev/null 2>/dev/null
short=1 pkg_filenames="$@" pkg_names="$@" epm_query >/dev/null 2>/dev/null
# broken way to recursive call here (overhead!)
#epm installed $@ >/dev/null 2>/dev/null
}
......@@ -186,5 +249,9 @@ epm_query()
__epm_query_file $pkg_files || return
__epm_query_name $(print_name $pkg_names) || return
if [ -n "$short" ] ; then
__epm_query_shortname $(print_name $pkg_names) || return
else
__epm_query_name $(print_name $pkg_names) || return
fi
}
......@@ -98,6 +98,11 @@ __do_query()
ipkg)
CMD="ipkg files"
;;
aptcyg)
#CMD="apt-cyg packageof"
# do not realized locally
return 1
;;
*)
fatal "Have no suitable query command for $PMTYPE"
;;
......
......@@ -122,6 +122,9 @@ epm_remove_names()
homebrew)
sudocmd brew remove $@
return ;;
aptcyg)
sudocmd apt-cyg remove $@
return ;;
ipkg)
sudocmd ipkg $(subst_option force -force-depends) remove $@
return ;;
......@@ -196,6 +199,9 @@ epm_print_remove_command()
ipkg)
echo "ipkg remove $@"
;;
aptcyg)
echo "apt-cyg remove $@"
;;
*)
fatal "Have no suitable appropriate remove command for $PMTYPE"
;;
......
......@@ -91,6 +91,12 @@ case $PMTYPE in
#CMD="pkg rquery '%dn-%dv'"
CMD="pkg info -d"
;;
aptcyg)
#CMD="apt-cyg depends"
# print show version
docmd apt-cyg show $pkg_names | grep "^requires: " | sed "s|^requires: ||g"
return
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
......
......@@ -88,6 +88,9 @@ case $PMTYPE in
android)
CMD="pm list packages"
;;
aptcyg)
CMD="apt-cyg searchall"
;;
*)
fatal "Have no suitable search command for $PMTYPE"
;;
......
......@@ -69,6 +69,10 @@ case $PMTYPE in
ipkg)
CMD="ipkg search"
;;
aptcyg)
docmd apt-cyg searchall $(echo " $pkg_filenames" | sed -e "s| /| |g")
return
;;
*)
fatal "Have no suitable search file command for $PMTYPE"
;;
......
......@@ -250,6 +250,10 @@ set_sudo()
SUDO=""
# skip SUDO if disabled
[ -n "$EPMNOSUDO" ] && return
if [ "$DISTRNAME" = "Cygwin" ] || [ "$DISTRNAME" = "Windows" ] ; then
# skip sudo using on Windows
return
fi
EFFUID=`id -u`
......@@ -435,6 +439,9 @@ case $DISTRNAME in
Android)
CMD="android"
;;
Cygwin)
CMD="aptcyg"
;;
*)
fatal "Have no suitable DISTRNAME $DISTRNAME"
;;
......
......@@ -83,6 +83,9 @@ case $PMTYPE in
# portsnap extract for the first time?
sudocmd portsnap fetch update
;;
aptcyg)
sudocmd apt-cyg update
;;
*)
fatal "Have no suitable update command for $PMTYPE"
;;
......
......@@ -89,6 +89,10 @@ epm_upgrade()
guix)
CMD="guix package -u"
;;
aptcyg)
docmd_foreach "epm install" $(short=1 epm packages)
return
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
......
......@@ -47,6 +47,9 @@ case $PMTYPE in
pkgng)
CMD="pkg info -r"
;;
aptcyg)
CMD="apt-cyg rdepends"
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
......
# This spec is backported to ALTLinux p7 automatically by rpmbph script. Do not edit it.
#
Name: eepm
Version: 1.5.23
Version: 1.5.24
Release: alt0.M70P.1
Summary: Etersoft EPM package manager
......@@ -67,6 +67,15 @@ chmod a+x %buildroot%_datadir/%name/{serv-,epm-}*
%_sysconfdir/bash_completion.d/cerv
%changelog
* Mon Dec 07 2015 Andrey Cherepanov <cas@altlinux.org> 1.5.24-alt0.M70P.1
- Backport new version to p7 branch
* Tue Dec 01 2015 Vitaly Lipatov <lav@altlinux.ru> 1.5.24-alt1
- add support apt-cyg on Cygwin
- drop pks-db requires
- epm-check_updated_rep: do not check on deb systems
- epm-query: fix print package version for other systems
* Sun Nov 22 2015 Vitaly Lipatov <lav@altlinux.ru> 1.5.23-alt0.M70P.1
- backport to ALTLinux p7 (by rpmbph script)
......
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