libxbps: added XBPS_FLAG_INSTALL_REPRO for xbps_handle::flags.
If set, enable reproducible mode; skips adding the "install-date" obj into pkgdb.
This commit is contained in:
parent
d1c93bed52
commit
95a3ba651f
@ -50,7 +50,7 @@
|
|||||||
*
|
*
|
||||||
* This header documents the full API for the XBPS Library.
|
* This header documents the full API for the XBPS Library.
|
||||||
*/
|
*/
|
||||||
#define XBPS_API_VERSION "20191227"
|
#define XBPS_API_VERSION "20191229"
|
||||||
|
|
||||||
#ifndef XBPS_VERSION
|
#ifndef XBPS_VERSION
|
||||||
#define XBPS_VERSION "UNSET"
|
#define XBPS_VERSION "UNSET"
|
||||||
@ -230,6 +230,13 @@
|
|||||||
*/
|
*/
|
||||||
#define XBPS_FLAG_IGNORE_FILE_CONFLICTS 0x00004000
|
#define XBPS_FLAG_IGNORE_FILE_CONFLICTS 0x00004000
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def XBPS_FLAG_INSTALL_REPRO
|
||||||
|
* Enabled reproducible mode; skips adding the "install-date" obj into pkgdb.
|
||||||
|
* Must be set through the xbps_handle::flags member.
|
||||||
|
*/
|
||||||
|
#define XBPS_FLAG_INSTALL_REPRO 0x00008000
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @def XBPS_FETCH_CACHECONN
|
* @def XBPS_FETCH_CACHECONN
|
||||||
* Default (global) limit of cached connections used in libfetch.
|
* Default (global) limit of cached connections used in libfetch.
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
RANLIB ?= ranlib
|
RANLIB ?= ranlib
|
||||||
|
|
||||||
LIBXBPS_MAJOR = 4
|
LIBXBPS_MAJOR = 4
|
||||||
LIBXBPS_MINOR = 0
|
LIBXBPS_MINOR = 1
|
||||||
LIBXBPS_MICRO = 1
|
LIBXBPS_MICRO = 0
|
||||||
LIBXBPS_SHLIB = libxbps.so.$(LIBXBPS_MAJOR).$(LIBXBPS_MINOR).$(LIBXBPS_MICRO)
|
LIBXBPS_SHLIB = libxbps.so.$(LIBXBPS_MAJOR).$(LIBXBPS_MINOR).$(LIBXBPS_MICRO)
|
||||||
LDFLAGS += $(LIBXBPS_LDFLAGS) -shared -Wl,-soname,libxbps.so.$(LIBXBPS_MAJOR)
|
LDFLAGS += $(LIBXBPS_LDFLAGS) -shared -Wl,-soname,libxbps.so.$(LIBXBPS_MAJOR)
|
||||||
|
|
||||||
|
@ -67,23 +67,25 @@ xbps_register_pkg(struct xbps_handle *xhp, xbps_dictionary_t pkgrd)
|
|||||||
/*
|
/*
|
||||||
* Set the "install-date" object to know the pkg installation date.
|
* Set the "install-date" object to know the pkg installation date.
|
||||||
*/
|
*/
|
||||||
t = time(NULL);
|
if ((xhp->flags & XBPS_FLAG_INSTALL_REPRO) == 0) {
|
||||||
if ((tmp = localtime(&t)) == NULL) {
|
t = time(NULL);
|
||||||
xbps_dbg_printf(xhp, "%s: localtime failed: %s\n",
|
if ((tmp = localtime(&t)) == NULL) {
|
||||||
pkgver, strerror(errno));
|
xbps_dbg_printf(xhp, "%s: localtime failed: %s\n",
|
||||||
rv = EINVAL;
|
pkgver, strerror(errno));
|
||||||
goto out;
|
rv = EINVAL;
|
||||||
}
|
goto out;
|
||||||
if (strftime(outstr, sizeof(outstr)-1, "%F %R %Z", tmp) == 0) {
|
}
|
||||||
xbps_dbg_printf(xhp, "%s: strftime failed: %s\n",
|
if (strftime(outstr, sizeof(outstr)-1, "%F %R %Z", tmp) == 0) {
|
||||||
pkgver, strerror(errno));
|
xbps_dbg_printf(xhp, "%s: strftime failed: %s\n",
|
||||||
rv = EINVAL;
|
pkgver, strerror(errno));
|
||||||
goto out;
|
rv = EINVAL;
|
||||||
}
|
goto out;
|
||||||
if (!xbps_dictionary_set_cstring(pkgd, "install-date", outstr)) {
|
}
|
||||||
xbps_dbg_printf(xhp, "%s: install-date set failed!\n", pkgver);
|
if (!xbps_dictionary_set_cstring(pkgd, "install-date", outstr)) {
|
||||||
rv = EINVAL;
|
xbps_dbg_printf(xhp, "%s: install-date set failed!\n", pkgver);
|
||||||
goto out;
|
rv = EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Create a hash for the pkg's metafile if it exists.
|
* Create a hash for the pkg's metafile if it exists.
|
||||||
@ -115,7 +117,7 @@ xbps_register_pkg(struct xbps_handle *xhp, xbps_dictionary_t pkgrd)
|
|||||||
}
|
}
|
||||||
if (!xbps_dictionary_set(xhp->pkgdb, pkgname, pkgd)) {
|
if (!xbps_dictionary_set(xhp->pkgdb, pkgname, pkgd)) {
|
||||||
xbps_dbg_printf(xhp,
|
xbps_dbg_printf(xhp,
|
||||||
"%s: failed to set pkgd for %s\n", __func__, pkgver);
|
"%s: failed to set pkgd for %s\n", __func__, pkgver);
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
xbps_object_release(pkgd);
|
xbps_object_release(pkgd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user