Added support to put packages "on hold".
This commit is contained in:
parent
b7961ae611
commit
28767f2ea8
5
NEWS
5
NEWS
@ -1,5 +1,10 @@
|
||||
xbps-0.16 (???):
|
||||
|
||||
* Added support to put packages "on hold". Packages on hold
|
||||
won't be updated by system upgrades even if there is a newer version.
|
||||
The configuration string list "PackagesOnHold" in xbps.conf expects
|
||||
a list of package names.
|
||||
|
||||
* xbps-repo(8): new target: 'clean'. This removes obsolete binpkgs
|
||||
from cachedir, either because the binpkg is not available in repository
|
||||
pool anymore or because its sha256 hash that doesn't match with the
|
||||
|
1
TODO
1
TODO
@ -1,6 +1,5 @@
|
||||
libxbps:
|
||||
- conflicts: the object is there but is not handled yet (ETA 0.16)
|
||||
- properties: (hold) still unimplemented (ETA 0.16)
|
||||
- properties: (update-first) still unimplemented.
|
||||
|
||||
xbps-repo:
|
||||
|
@ -56,6 +56,15 @@ repositories = {
|
||||
http://xbps.nopcode.org/repos/current/nonfree/x86_64
|
||||
}
|
||||
|
||||
# Packages on hold.
|
||||
#
|
||||
# Packages that are put on hold won't be updated even if there is a
|
||||
# newer version in repository pool.
|
||||
#
|
||||
# This expects package names and separated by commas.
|
||||
#
|
||||
#PackagesOnHold = { glibc, xbps }
|
||||
|
||||
# Virtual packages.
|
||||
#
|
||||
# The following syntax is used:
|
||||
|
@ -56,7 +56,7 @@
|
||||
*/
|
||||
#define XBPS_PKGINDEX_VERSION "1.4"
|
||||
|
||||
#define XBPS_API_VERSION "20120506-1"
|
||||
#define XBPS_API_VERSION "20120508"
|
||||
#define XBPS_VERSION "0.16"
|
||||
|
||||
/**
|
||||
|
@ -110,6 +110,7 @@ xbps_init(struct xbps_handle *xh)
|
||||
XBPS_TRANS_FLUSH, CFGF_NONE),
|
||||
CFG_BOOL(__UNCONST("syslog"), true, CFGF_NONE),
|
||||
CFG_STR_LIST(__UNCONST("repositories"), NULL, CFGF_MULTI),
|
||||
CFG_STR_LIST(__UNCONST("PackagesOnHold"), NULL, CFGF_MULTI),
|
||||
CFG_SEC(__UNCONST("virtual-package"),
|
||||
vpkg_opts, CFGF_MULTI|CFGF_TITLE),
|
||||
CFG_FUNC(__UNCONST("include"), &cfg_include),
|
||||
|
@ -188,13 +188,23 @@ out:
|
||||
static int
|
||||
update_pkgs_cb(prop_object_t obj, void *arg, bool *done)
|
||||
{
|
||||
const char *pkgname;
|
||||
struct xbps_handle *xhp = xbps_handle_get();
|
||||
const char *pkgname, *holdpkgname;
|
||||
bool *newpkg_found = arg;
|
||||
int rv = 0;
|
||||
size_t i;
|
||||
|
||||
(void)done;
|
||||
|
||||
prop_dictionary_get_cstring_nocopy(obj, "pkgname", &pkgname);
|
||||
for (i = 0; i < cfg_size(xhp->cfg, "PackagesOnHold"); i++) {
|
||||
holdpkgname = cfg_getnstr(xhp->cfg, "PackagesOnHold", i);
|
||||
if (strcmp(pkgname, holdpkgname) == 0) {
|
||||
xbps_dbg_printf("[rpool] package %s on hold, "
|
||||
"ignoring updates.\n", pkgname);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
rv = xbps_transaction_update_pkg(pkgname);
|
||||
if (rv == 0)
|
||||
*newpkg_found = true;
|
||||
|
Loading…
Reference in New Issue
Block a user