xbps-src: added new 'checkvers' target to check for new versions from srcpkgs
against current installed packages.
This commit is contained in:
parent
24dc6f2caf
commit
b9d0db9470
2 changed files with 89 additions and 11 deletions
63
xbps-src/shutils/check_installed_packages.sh
Normal file
63
xbps-src/shutils/check_installed_packages.sh
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#-
|
||||||
|
# Copyright (c) 2010 Juan Romero Pardines.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#-
|
||||||
|
#
|
||||||
|
# Check installed package versions against the source packages repository.
|
||||||
|
#
|
||||||
|
check_installed_packages()
|
||||||
|
{
|
||||||
|
local f lpkgn lpkgver rv srcpkgver
|
||||||
|
|
||||||
|
msg_normal "Checking for newer packages from srcpkgs, please wait..."
|
||||||
|
for f in $(xbps-bin.static list|awk '{print $1}'); do
|
||||||
|
lpkgn=$(xbps-uhelper.static getpkgname ${f})
|
||||||
|
lpkgver=$(xbps-uhelper.static getpkgversion ${f})
|
||||||
|
|
||||||
|
if [ ! -r ${XBPS_SRCPKGDIR}/${lpkgn}/template ]; then
|
||||||
|
msg_warn "Installed package ${f} not available as source pkg, skipping."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
. ${XBPS_SRCPKGDIR}/${lpkgn}/template
|
||||||
|
if [ -r ${XBPS_SRCPKGDIR}/${lpkgn}/${lpkgn}.template ]; then
|
||||||
|
unset revision
|
||||||
|
. ${XBPS_SRCPKGDIR}/${lpkgn}/${lpkgn}.template
|
||||||
|
fi
|
||||||
|
if [ -n "$revision" ]; then
|
||||||
|
srcpkgver="${version}_${revision}"
|
||||||
|
else
|
||||||
|
srcpkgver="${version}"
|
||||||
|
fi
|
||||||
|
xbps-uhelper.static cmpver ${lpkgver} ${srcpkgver}
|
||||||
|
rv=$?
|
||||||
|
if [ $rv -eq 255 ]; then
|
||||||
|
echo " ${f}: newer version -> ${srcpkgver}"
|
||||||
|
elif [ $rv -eq 1 ]; then
|
||||||
|
echo " ${f}: sourcepkg outdated -> ${srcpkgver}"
|
||||||
|
else
|
||||||
|
echo >&2 " ${f}: already up to date."
|
||||||
|
fi
|
||||||
|
reset_tmpl_vars
|
||||||
|
done
|
||||||
|
msg_normal "done."
|
||||||
|
}
|
|
@ -68,27 +68,32 @@ usage()
|
||||||
$progname: [-Ch] [-c <config_file>] [-m <masterdir>] [-p <pkgdir>] <target>
|
$progname: [-Ch] [-c <config_file>] [-m <masterdir>] [-p <pkgdir>] <target>
|
||||||
|
|
||||||
Targets:
|
Targets:
|
||||||
bootstrap Build and install the bootstrap packages into masterdir.
|
bootstrap Build and install the bootstrap packages into <masterdir>.
|
||||||
build Build a package (fetch + extract + configure + build).
|
build Build a package (fetch + extract + configure + build).
|
||||||
build-pkg [all] Build a binary package from <pkg>.
|
build-pkg [all] Build a binary package from <pkg>.
|
||||||
Package must be installed into destdir. If the <all>
|
Package must be installed into destdir. If the <all>
|
||||||
keyword is used all packages currently installed will
|
keyword is used all packages currently installed in
|
||||||
be used.
|
<masterdir>/<destdir> will be used.
|
||||||
chroot Enter to the chroot in masterdir.
|
checkvers Checks installed package versions against srcpkgs
|
||||||
|
for new available versions.
|
||||||
|
chroot Enter to the chroot in <masterdir>.
|
||||||
configure Configure a package (fetch + extract + configure).
|
configure Configure a package (fetch + extract + configure).
|
||||||
extract Extract distribution file(s) into build directory.
|
extract Extract distribution file(s) into build directory.
|
||||||
|
Build directory is always available in
|
||||||
|
<masterdir>/pkg-builddir/<pkg>.
|
||||||
fetch Download distribution file(s).
|
fetch Download distribution file(s).
|
||||||
info Show information for current pkg build template.
|
info Show information for current pkg build template.
|
||||||
install-destdir build + install into destdir.
|
install-destdir build + install into destdir.
|
||||||
install install-destdir + stow.
|
install install-destdir + stow.
|
||||||
list List installed packages in masterdir.
|
list List installed packages in <masterdir>.
|
||||||
listfiles List installed files from <pkg>.
|
listfiles List installed files from <pkg>.
|
||||||
make-repoidx Build a package index for the local repository associated
|
make-repoidx Build a package index for the local repository associated
|
||||||
with the master directory, or updates it.
|
with the master directory <masterdir> or <pkgdir>,
|
||||||
|
or updates it.
|
||||||
remove Remove package completely (destdir + masterdir).
|
remove Remove package completely (destdir + masterdir).
|
||||||
stow Stow <pkg> files from destdir into masterdir and
|
stow Stow <pkg> files from <destdir> into <masterdir> and
|
||||||
register package in database.
|
register package in database.
|
||||||
unstow Remove <pkg> files from masterdir and unregister
|
unstow Remove <pkg> files from <masterdir> and unregister
|
||||||
package from database.
|
package from database.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
@ -99,7 +104,7 @@ Options:
|
||||||
-m Master directory, overwritting the value set in the configuration
|
-m Master directory, overwritting the value set in the configuration
|
||||||
file at @@XBPS_INSTALL_ETCDIR@@/xbps-src.conf.
|
file at @@XBPS_INSTALL_ETCDIR@@/xbps-src.conf.
|
||||||
-p Package directory, overwritting default path at
|
-p Package directory, overwritting default path at
|
||||||
<XBPS_MASTERDIR>/pkg-binpkgs.
|
<masterdir>/pkg-binpkgs.
|
||||||
|
|
||||||
_EOF
|
_EOF
|
||||||
}
|
}
|
||||||
|
@ -240,7 +245,7 @@ bootstrap)
|
||||||
;;
|
;;
|
||||||
build|configure)
|
build|configure)
|
||||||
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
[ ! -r ./template ] && msg_error "missing build template file."
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
. ./template
|
. ./template
|
||||||
|
|
||||||
if [ -z "$base_chroot" -a -z "$in_chroot" ]; then
|
if [ -z "$base_chroot" -a -z "$in_chroot" ]; then
|
||||||
|
@ -293,16 +298,23 @@ build-pkg)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
setup_tmpl $(basename_cwd)
|
setup_tmpl $(basename_cwd)
|
||||||
xbps_make_binpkg
|
xbps_make_binpkg
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
checkvers)
|
||||||
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
|
. $XBPS_SHUTILSDIR/check_installed_packages.sh
|
||||||
|
check_installed_packages
|
||||||
|
;;
|
||||||
chroot)
|
chroot)
|
||||||
. $XBPS_SHUTILSDIR/chroot.sh
|
. $XBPS_SHUTILSDIR/chroot.sh
|
||||||
xbps_chroot_handler chroot dummy
|
xbps_chroot_handler chroot dummy
|
||||||
;;
|
;;
|
||||||
extract|fetch|info)
|
extract|fetch|info)
|
||||||
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
setup_tmpl $(basename_cwd)
|
setup_tmpl $(basename_cwd)
|
||||||
if [ "$target" = "info" ]; then
|
if [ "$target" = "info" ]; then
|
||||||
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
|
@ -319,7 +331,7 @@ extract|fetch|info)
|
||||||
;;
|
;;
|
||||||
install|install-destdir)
|
install|install-destdir)
|
||||||
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
[ ! -r ./template ] && msg_error "missing build template file."
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
. ./template
|
. ./template
|
||||||
|
|
||||||
install_destdir_target=no
|
install_destdir_target=no
|
||||||
|
@ -354,18 +366,21 @@ make-repoidx)
|
||||||
;;
|
;;
|
||||||
remove)
|
remove)
|
||||||
. $XBPS_SHUTILSDIR/pkgtarget_funcs.sh
|
. $XBPS_SHUTILSDIR/pkgtarget_funcs.sh
|
||||||
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
setup_tmpl $(basename_cwd)
|
setup_tmpl $(basename_cwd)
|
||||||
remove_pkg
|
remove_pkg
|
||||||
;;
|
;;
|
||||||
stow)
|
stow)
|
||||||
stow_flag=yes
|
stow_flag=yes
|
||||||
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
setup_tmpl $(basename_cwd)
|
setup_tmpl $(basename_cwd)
|
||||||
. $XBPS_SHUTILSDIR/stow_funcs.sh
|
. $XBPS_SHUTILSDIR/stow_funcs.sh
|
||||||
stow_pkg_handler stow
|
stow_pkg_handler stow
|
||||||
;;
|
;;
|
||||||
unstow)
|
unstow)
|
||||||
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
|
||||||
|
[ ! -r ./template ] && msg_error "missing build template in $(pwd)."
|
||||||
setup_tmpl $(basename_cwd)
|
setup_tmpl $(basename_cwd)
|
||||||
. $XBPS_SHUTILSDIR/stow_funcs.sh
|
. $XBPS_SHUTILSDIR/stow_funcs.sh
|
||||||
stow_pkg_handler unstow
|
stow_pkg_handler unstow
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue